123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272 |
- using JLHHJSvr.BLL;
- using JLHHJSvr.Com;
- using JLHHJSvr.Com.Model;
- using JLHHJSvr.LJException;
- using JLHHJSvr.Tools;
- using LJLib.DAL.SQL;
- using System;
- using System.Collections.Generic;
- using System.Data.SqlClient;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace JLHHJSvr.Helper
- {
- internal class InterfaceHelper : HelperBase
- {
- /// <summary>
- /// 数据库连接
- /// </summary>
- public SqlCommand erp_cmd { get; set; }
- /// <summary>
- /// 床垫接口-保存
- /// </summary>
- /// <param name="mattress"></param>
- /// <param name="mxlist"></param>
- /// <param name="qdlist"></param>
- /// <exception cref="LJCommonException"></exception>
- public void SaveMattressInterface(u_mattress mattress, List<u_mattress_interface> mxlist, List<u_mattress_interface_qd> qdlist)
- {
- if(mattress.mattressid <= 0)
- {
- throw new LJCommonException("错误的床垫id");
- }
- AutoSetMtrlName(mattress, mxlist);
- AutoInit.AutoInitS(cmd, mattress);
- if(string.IsNullOrEmpty(mattress.erp_mtrlcode))
- {
- throw new LJCommonException("请输入物料名称!");
- }
- if (mattress.erp_mtrltypeid == null || mattress.erp_mtrltypeid <= 0)
- {
- throw new LJCommonException("请选择物料类别!");
- }
- if (mattress.erp_configcodetype == null || mattress.erp_configcodetype <= 0)
- {
- throw new LJCommonException("请选择配置类型!");
- }
- DbSqlHelper.Update(cmd, mattress, "erp_mtrlid,erp_mtrltypeid,erp_mtrlcode,erp_mtrlname,erp_mtrlmode,erp_mtrltype,erp_mtrlunit,erp_mtrlengname,erp_configcodetype,old_mtrlname");
- // 保存接口数据
- var mattressHelper = GetHelper<MattressHelper>(cmd);
- mattressHelper.SaveMattressInterface(mattress.mattressid, mxlist, qdlist);
- }
- public void AutoSetMtrlName(u_mattress mattress,List<u_mattress_interface> mxlist)
- {
- string mtrltypename = string.Empty, mtrltypecode = string.Empty;
- string mattresstypename = string.Empty, mattresstypecode = string.Empty;
- string packtypename = string.Empty, packtypecode = string.Empty;
- var materialCodes = new Dictionary<string, string>
- {
- { "两边单层", "21" },
- { "两边直出", "23" },
- { "三边加顶", "32" },
- { "三边直出", "33" },
- { "假三边", "34" },
- { "拉假边", "3C" },
- { "假三边加顶", "42" },
- { "上下假三边", "44" },
- { "四边双顶", "45" },
- { "四边顶上顶", "46" },
- { "四边假分体", "47" }
- };
- var mattressTypeCodes = new Dictionary<string, string>
- {
- { "袋装网", "P" },
- { "拉丝网", "C" },
- { "圆网", "B" }
- };
- var packTypeCodes = new Dictionary<string, string>
- {
- { "平压", "A" },
- { "卷包", "B" }
- };
- foreach (var mx in mxlist)
- {
- if(mx.bj_pzname.IndexOf("床垫类别") > -1)
- {
- mtrltypename = mx.bj_namemx;
- break;
- }
- }
- foreach (var mx in mxlist)
- {
- if (mx.bj_pzname.IndexOf("床网") > -1)
- {
- mattresstypename = mx.bj_namemx;
- break;
- }
- }
- foreach (var mx in mxlist)
- {
- if (mx.bj_pzname.IndexOf("包装方式") > -1)
- {
- packtypename = mx.bj_namemx;
- break;
- }
- }
- mtrltypecode = materialCodes.ContainsKey(mtrltypename) ? materialCodes[mtrltypename] : "99";
- mattresstypecode = mattressTypeCodes.ContainsKey(mtrltypename) ? mattressTypeCodes[mtrltypename] : "Z";
- packtypecode = packTypeCodes.ContainsKey(mtrltypename) ? packTypeCodes[mtrltypename] : "J";
- // 获取mxlist最后一项
- if(mattress.mattressid > 0)
- {
- mattress.erp_mtrlname = new StringBuilder().Append(mtrltypecode).Append(mattresstypecode).Append(packtypecode).ToString();
- }
- }
- /// <summary>
- /// 导入清单
- /// </summary>
- /// <param name="mattressid"></param>
- /// <exception cref="LJCommonException"></exception>
- public void ImportMattressInterfaceList(int mattressid)
- {
- if(mattressid <= 0)
- {
- throw new LJCommonException("床垫id有误");
- }
- var mattressHelper = GetHelper<MattressHelper>(cmd);
- var mattress = mattressHelper.GetMattress(mattressid);
- var mattress_type = new u_mattress_type() { mattresstypeid = mattress.mattresstypeid };
- DbSqlHelper.SelectOne(cmd, mattress_type, "typename");
- var mxlist = mattressHelper.GetMattressMxMtrl(mattressid, new List<string>() { "u_mattress_formula.formulatype IN (0,1,2,3,99,104)" });
- var mxlist_103 = mattressHelper.GetMattressMxMtrl(mattressid, new List<string>() { "u_mattress_formula.formulatype = 103" });
- var intefaceList = new List<u_mattress_interface>();
- var name_arr = new string[5];
- // 高度
- name_arr[0] = $"{mattress.mattress_height}";
- intefaceList.Add(InserMattressInterfacePz("床垫", "高度", 2, name_arr));
- // 参考外观
- name_arr[0] = string.Empty;
- intefaceList.Add(InserMattressInterfacePz("床垫", "参考外观", 1, name_arr));
- // 尺寸
- mattress.erp_mtrlcode = $"{mattress.mattress_width}*{mattress.mattress_length}*{mattress.mattress_height}";
- name_arr[0] = mattress.erp_mtrlcode;
- intefaceList.Add(InserMattressInterfacePz("床垫", "尺寸", 2, name_arr));
- // 床垫类别
- name_arr[0] = mattress_type.typename;
- intefaceList.Add(InserMattressInterfacePz("床垫", "床垫类别", 2, name_arr));
- // 拆装类型
- name_arr[0] = string.Empty;
- if (mattress.if_m_chai == 1) name_arr[0] = AppendToString(name_arr[0], "面拆");
- if (mattress.if_z_chai == 1) name_arr[0] = AppendToString(name_arr[0], "中拆");
- if (mattress.if_d_chai == 1) name_arr[0] = AppendToString(name_arr[0], "底拆");
- intefaceList.Add(InserMattressInterfacePz("床垫", "拆装类型", 1, name_arr));
- // 床垫分类
- name_arr[0] = string.Empty;
- if(mattress.if_haimian_type == 1) name_arr[0] = AppendToString(name_arr[0], "海绵床垫");
- else name_arr[0] = AppendToString(name_arr[0], "弹簧床垫");
- if(mattress.if_zhedie_type == 1) name_arr[0] = AppendToString(name_arr[0], "折叠床垫");
- intefaceList.Add(InserMattressInterfacePz("床垫", "拆装类型", 1, name_arr));
- // 外观布套做法
- name_arr[0] = string.Empty;
- if(mattress.if_m_wbutao_way == 1) name_arr[0] = AppendToString(name_arr[0], $"面层向大侧覆盖{mattress.s_m_cover_qty}CM、大侧向底层覆盖{mattress.z_m_cover_qty}CM、底层向大侧覆盖{mattress.x_m_cover_qty}CM");
- intefaceList.Add(InserMattressInterfacePz("床垫", "外观布套做法", 1, name_arr));
- // 边带
- name_arr[0] = string.Empty;
- intefaceList.Add(InserMattressInterfacePz("床垫", "边带", 2, name_arr));
- // 裥面
- name_arr[0] = "面层裥棉";
- name_arr[1] = "面层裥棉图案";
- var jianmianList = mxlist.Where(t => t.formulatype == 0).ToList();
- foreach(var mx in jianmianList)
- {
- if(mx.mtrlid > 0 && new int[] { 0,40,50,60,70,80 }.Contains(mx.formulakind.Value) && "面裥绵".Equals(mx.chastr))
- {
- //布料 u_mattress_formula_formulakind=0
- if(mx.formulakind == 0)
- {
- name_arr[0] = SplitNameCount(mx.mtrlname,Convert.ToInt32(mx.qty.Value));
- }
- //喷胶棉 u_mattress_formula_formulakind=40
- if (mx.formulakind == 40)
- {
- name_arr[1] = SplitNameCount(mx.mtrlname, Convert.ToInt32(mx.qty.Value));
- }
- //裥面海绵 u_mattress_formula_formulakind=50
- if (mx.formulakind == 40)
- {
- name_arr[1] = SplitNameCount(mx.mtrlname, Convert.ToInt32(mx.qty.Value));
- }
- }
- }
- }
- public u_mattress_interface InserMattressInterfacePz(string itemname,string bj_pzname,byte inputtype, string[] names)
- {
- var mattress_interface = new u_mattress_interface()
- {
- itemname = itemname,
- bj_pzname = bj_pzname,
- bj_inputtype = inputtype,
- bj_namemx = SetInterfacePzName(names)
- };
- return mattress_interface;
- }
- private string SetInterfacePzName(string[] names)
- {
- var result = string.Empty;
- foreach(var name in names)
- {
- if (string.IsNullOrEmpty(name)) continue;
- result = AppendToString(result, name);
- }
- return result;
- }
- private string AppendToString(string currentString, string newPart)
- {
- if (string.IsNullOrEmpty(currentString))
- {
- return newPart;
- }
- else
- {
- return currentString + " + " + newPart;
- }
- }
- private string SplitNameCount(string name,int qty)
- {
- if (qty <= 1) return name;
- var result = name;
- result = AppendToString(result, SplitNameCount(name, --qty));
- return result;
- }
- }
- }
|