| | |
| | | /// </summary> |
| | | /// <param name="model"></param> |
| | | /// <returns></returns> |
| | | internal static SimpleResult Mater_In(MaterDto.Root model) |
| | | internal static WLReturnRoot.Root Mater_In(MaterDto.Root model) |
| | | { |
| | | var db = new SqlHelper<object>().GetInstance(); |
| | | var result = new SimpleResult(); |
| | | result.resultMsg = "成功"; |
| | | try |
| | | var response = new WLReturnRoot.Root |
| | | { |
| | | db.BeginTran(); |
| | | List<TN_Material> list = new List<TN_Material>(); |
| | | foreach (var item in model.ROOT.ITEM) |
| | | ROOT = new WLReturnRoot.ROOT |
| | | { |
| | | ITEM = new List<WLReturnRoot.ITEM> |
| | | { |
| | | |
| | | } |
| | | } |
| | | }; |
| | | db.BeginTran(); |
| | | List<WLReturnRoot.ITEM> list = new List<WLReturnRoot.ITEM>(); |
| | | foreach (var item in model.ROOT.ITEM) |
| | | { |
| | | try |
| | | { |
| | | |
| | | var result = new WLReturnRoot.ITEM(); |
| | | |
| | | var materlist = db.Queryable<TN_Material>().Where(it => it.S_ITEM_CODE == item.WLBM).First(); |
| | | if (materlist == null) |
| | | { |
| | |
| | | tN_Material.S_CPZ = item.CPZ; |
| | | tN_Material.S_CPZMS = item.CPZMS; |
| | | tN_Material.S_ITEM_NAME = item.VTEXT; |
| | | list.Add(tN_Material); |
| | | db.Insertable<TN_Material>(tN_Material).ExecuteCommand(); |
| | | result.MSGDESP = "成功"; |
| | | result.MSGCODE = 0; |
| | | result.GCBM = item.GCBM; |
| | | result.WLBM = item.WLBM; |
| | | list.Add(result); |
| | | } |
| | | |
| | | else |
| | | { |
| | | materlist.S_ITEM_CODE = item.WLBM; |
| | | materlist.S_GCBM = item.GCBM; |
| | | materlist.S_WLZBM = item.WLZBM; |
| | | materlist.S_WLZMS = item.WLZMS; |
| | | materlist.S_WLLX = item.WLLX; |
| | | materlist.S_WLMS = item.WLMS; |
| | | materlist.S_WLCMS = item.WLCMS; |
| | | materlist.S_DWBM = item.DWBM; |
| | | materlist.S_DWMS = item.DWMS; |
| | | materlist.S_JBM = item.JBM; |
| | | materlist.S_CPZ = item.CPZ; |
| | | materlist.S_CPZMS = item.CPZMS; |
| | | materlist.S_ITEM_NAME = item.VTEXT; |
| | | db.Updateable<TN_Material>(materlist).ExecuteCommand(); |
| | | result.MSGDESP = "成功"; |
| | | result.MSGCODE = 0; |
| | | result.GCBM = item.GCBM; |
| | | result.WLBM = item.WLBM; |
| | | list.Add(result); |
| | | } |
| | | } |
| | | db.Insertable<TN_Material>(list).ExecuteCommand(); |
| | | db.CommitTran(); |
| | | catch (Exception e) |
| | | { |
| | | var result = new WLReturnRoot.ITEM(); |
| | | result.MSGDESP = e.Message; |
| | | result.MSGCODE = 1; |
| | | result.GCBM = item.GCBM; |
| | | result.WLBM = item.WLBM; |
| | | list.Add(result); |
| | | db.RollbackTran(); |
| | | throw; |
| | | } |
| | | } |
| | | response.ROOT.ITEM = list; |
| | | //db.Insertable<TN_Material>(list).ExecuteCommand(); |
| | | db.CommitTran(); |
| | | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | db.RollbackTran(); |
| | | throw; |
| | | } |
| | | return result; |
| | | |
| | | return response; |
| | | } |
| | | |
| | | |
| | |
| | | S_START_AREA = locinfo.S_AREA_CODE, |
| | | S_START_WH = locinfo.S_WH_CODE, |
| | | S_END_LOC = model.start, |
| | | //S_BS_NO = model.arrival_no, |
| | | S_BS_NO = model.MaterList[0].arrival_no, |
| | | N_TYPE = 1, |
| | | S_TYPE = WMSTask.GetTypeStr(1), |
| | | S_OP_DEF_CODE = "", |
| | |
| | | var startinfo = db.Queryable<Location>().Where(it => it.S_CODE == start).First(); |
| | | //出库单详情 |
| | | var po = db.Queryable<TN_Outbound_Order>().Includes(s => s.Details).Where(a => a.S_NO == arrival_no).First(); |
| | | |
| | | //分拣单 |
| | | //var popp = db.Queryable<TN_Distribution_CNTR>().Where(a => a.S_BS_NO == arrival_no&&a.S_SORT_TYPE=="未分类" && a.N_B_STATE == 2).First(); |
| | | |
| | | //回参物料信息 |
| | | List<OutboundRecord> records = new List<OutboundRecord>(); |
| | |
| | | //添加凭证记录表 |
| | | result.resultMsg = data.ROOT.ITEM.MSGDESP; |
| | | result.resultCode = data.ROOT.ITEM.MSGCODE; |
| | | MaterialVoucher materialVoucher = new MaterialVoucher(); |
| | | materialVoucher.S_NO = po.S_NO; |
| | | materialVoucher.S_TYPE = po.S_OUT_TYPE; |
| | | materialVoucher.S_WLPZBH = data.ROOT.ITEM?.WLPZBH; |
| | | materialVoucher.S_WLPZND = data.ROOT.ITEM?.WLPZND; |
| | | materialVoucher.STATUS = 0; |
| | | db.Insertable<MaterialVoucher>(materialVoucher).ExecuteCommand(); |
| | | foreach (var item in MaterList) |
| | | { |
| | | MaterialVoucher materialVoucher = new MaterialVoucher(); |
| | | materialVoucher.S_NO = po.S_NO; |
| | | materialVoucher.S_TYPE = po.S_OUT_TYPE; |
| | | materialVoucher.S_WLBM = item.item_code; |
| | | materialVoucher.S_WLH = item.N_ROW_NO; |
| | | materialVoucher.S_WLPZBH = data.ROOT.ITEM?.WLPZBH; |
| | | materialVoucher.S_WLPZND = data.ROOT.ITEM?.WLPZND; |
| | | materialVoucher.STATUS = 0; |
| | | db.Insertable<MaterialVoucher>(materialVoucher).ExecuteCommand(); |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | db.CommitTran(); |
| | |
| | | var startinfo = db.Queryable<Location>().Where(it => it.S_CODE == start).First(); |
| | | //出库单详情 |
| | | var po = db.Queryable<TN_Outbound_Order>().Includes(s => s.Details).Where(a => a.S_NO == arrival_no).First(); |
| | | |
| | | string GZRQ = ""; |
| | | if (po.BUDAT != null) |
| | | { |
| | | GZRQ = DateTime.Parse(po.BUDAT.ToString()).ToString("yyyyMMdd"); |
| | | } |
| | | |
| | | //来源冲销凭证对应的物料凭证信息 |
| | | //var poIn = db.Queryable<TN_Inbound_Order>().Includes(s => s.Details).Where(a => a.S_NO == po.S_BS_NO).First(); |
| | | //根据入库查看凭证编号信息 |
| | |
| | | { |
| | | ROOT = new CXCkBackDto.ROOT |
| | | { |
| | | HEAD = new CXCkBackDto.HEAD |
| | | HEAD = new List<CXCkBackDto.HEAD> |
| | | { |
| | | WLPZ = po.S_WLPZ, |
| | | WLPZNF = po.S_WLPZNF, |
| | | WLPZXM = MaterList[0].N_ROW_NO, |
| | | GZRQ = "2025-03-20", |
| | | SRRQ = "2025-03-19", |
| | | GZRY = "过账人员姓名" |
| | | |
| | | //GZRQ = GZRQ, |
| | | //SRRQ = PZZDRQ, |
| | | //WLPZ = po.S_WLPZ, |
| | | //WLPZNF = po.S_WLPZNF, |
| | | //WLPZXM = MaterList[0].N_ROW_NO, |
| | | |
| | | //GZRY = po.UNAME |
| | | } |
| | | } |
| | | }; |
| | | //回参物料信息 |
| | | //List<OutboundRecord> records = new List<OutboundRecord>(); |
| | | //foreach (var item in MaterList) |
| | | //{ |
| | | List<CXCkBackDto.HEAD> listhead = new List<CXCkBackDto.HEAD>(); |
| | | foreach (var item in po.Details) |
| | | { |
| | | CXCkBackDto.HEAD hEAD = new CXCkBackDto.HEAD(); |
| | | hEAD.GZRQ = GZRQ; |
| | | hEAD.SRRQ = DateTime.Now.ToString("yyyyMMdd"); |
| | | hEAD.WLPZ = po.S_NO; |
| | | hEAD.WLPZNF = po.S_WLPZND; |
| | | hEAD.WLPZXM = item.N_ROW_NO; |
| | | hEAD.GZRY = po.UNAME; |
| | | listhead.Add(hEAD); |
| | | } |
| | | myRoot.ROOT.HEAD = listhead; |
| | | |
| | | // db.BeginTran(); |
| | | // //出库记录 |
| | | // var pz = db.Queryable<MaterialVoucher>().Where(a => a.S_NO == arrival_no).First(); |
| | | // OutboundRecord outboundRecord = new OutboundRecord(); |
| | | // outboundRecord.S_WLPZBH = pz.S_WLPZBH; |
| | | // outboundRecord.S_WLPZND = pz.S_WLPZND; |
| | | |
| | | // outboundRecord.S_NO = arrival_no; |
| | | // outboundRecord.S_WLBM = item.item_code; |
| | | // outboundRecord.S_SL = item.qty; |
| | | // outboundRecord.S_CNTR_CODE = cntr_code; |
| | | // records.Add(outboundRecord); |
| | | |
| | | //} |
| | | //db.Insertable<OutboundRecord>(records).ExecuteCommand(); |
| | | #region wms-sap回调 |
| | | |
| | | |
| | | |
| | | //类转json |
| | | var json = JsonConvert.SerializeObject(myRoot.ROOT); |
| | | //json转xml |
| | | string xml = JsonConvert.DeserializeXmlNode(json, "ROOT").OuterXml; |
| | | |
| | | LogHelper.Info($"冲销出库回调xml数据{xml}"); |
| | | // 创建 StringContent 并指定媒体类型为 "text/xml" |
| | | HttpContent content = new StringContent(xml, Encoding.UTF8, "application/xml"); |
| | | string url = Settings.WCSSeverUrl + "/api/WmsSap/cesReceiveXmlData"; |
| | | string responseXml = ""; |
| | | using (HttpClient client = new HttpClient()) |
| | | { |
| | | // 发送 POST 请求并接收响应 |
| | | HttpResponseMessage responsess = await client.PostAsync(url, content); |
| | | responseXml = await responsess.Content.ReadAsStringAsync(); |
| | | |
| | | } |
| | | ZSCM2_CXPZ service = new ZSCM2_CXPZ(); |
| | | // service.Credentials = new NetworkCredential("CONN_RFC", "Init.1234"); |
| | | // 准备请求参数 |
| | | ZfmScm2CxpzMm001 request = new ZfmScm2CxpzMm001(); |
| | | request.Input = "<?xml version=\"1.0\" encoding=\"utf-8\" ?>" + xml; |
| | | LogHelper.Info($"通用冲销SAP回调"); |
| | | // 调用Web Service |
| | | ZfmScm2CxpzMm001Response responses = service.ZfmScm2CxpzMm001(request); |
| | | |
| | | // 处理响应 |
| | | LogHelper.Info("通用冲销SAP返回结果: " + responses.Output); |
| | | |
| | | XmlDocument xmlDoc = new XmlDocument(); |
| | | xmlDoc.LoadXml(responseXml.ToString()); |
| | | xmlDoc.LoadXml(responses.Output.ToString()); |
| | | JObject jsonObject = JsonConvert.DeserializeObject<JObject>(JsonConvert.SerializeXmlNode(xmlDoc)); |
| | | var data = JsonConvert.DeserializeObject<ReturnWcBcak.Root>(jsonObject.ToString()); |
| | | var data = JsonConvert.DeserializeObject<ReturnTYBcak.Root>(jsonObject.ToString()); |
| | | var resmeg = ""; |
| | | int rescode = 0; |
| | | //添加凭证记录表 |
| | | result.resultMsg = data.ROOT.ITEM.MSGDESP; |
| | | result.resultCode = data.ROOT.ITEM.MSGCODE; |
| | | MaterialVoucher materialVoucher = new MaterialVoucher(); |
| | | materialVoucher.S_NO = po.S_NO; |
| | | materialVoucher.S_TYPE = po.S_OUT_TYPE; |
| | | materialVoucher.S_WLPZBH = data.ROOT.ITEM?.WLPZBH; |
| | | materialVoucher.S_WLPZND = data.ROOT.ITEM?.WLPZND; |
| | | materialVoucher.STATUS = 0; |
| | | db.Insertable<MaterialVoucher>(materialVoucher).ExecuteCommand(); |
| | | if (data!=null) |
| | | { |
| | | List<MaterialVoucher> materiallist = new List<MaterialVoucher>(); |
| | | foreach (var item in data.ROOT.ITEM) |
| | | { |
| | | if (item.MSGCODE == 0) |
| | | { |
| | | MaterialVoucher materialVoucher = new MaterialVoucher(); |
| | | materialVoucher.S_NO = po.S_NO; |
| | | materialVoucher.S_TYPE = po.S_OUT_TYPE; |
| | | materialVoucher.S_WLPZBH = item?.WLPZBH; |
| | | materialVoucher.S_WLPZND = item?.WLPZND; |
| | | materialVoucher.S_WLPZHXM = item?.WLPZHXM; |
| | | |
| | | materialVoucher.S_YWLPZBH = item?.YWLPZBH; |
| | | materialVoucher.S_YWLPZND = item?.YWLPZND; |
| | | materialVoucher.S_YWLPZHXM = item?.YWLPZHXM; |
| | | materialVoucher.STATUS = 0; |
| | | resmeg += item?.MSGDESP; |
| | | materiallist.Add(materialVoucher); |
| | | } |
| | | else { |
| | | rescode = 1; |
| | | } |
| | | |
| | | |
| | | } |
| | | if (materiallist.Count()>0) |
| | | { |
| | | |
| | | db.Insertable<MaterialVoucher>(materiallist).ExecuteCommand(); |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | result.resultMsg = resmeg; |
| | | result.resultCode = rescode; |
| | | #endregion |
| | | |
| | | db.CommitTran(); |
| | |
| | | |
| | | try |
| | | { |
| | | |
| | | if (MaterList.Count()<1) |
| | | { |
| | | throw new Exception("累计码盘数量物料数据为空"); |
| | | } |
| | | foreach (var item in MaterList) |
| | | { |
| | | var allInfolist = db.Queryable<TN_Inbound_Detail>() |
| | |
| | | { |
| | | ROOT = new CXCkBackDto.ROOT |
| | | { |
| | | HEAD = new CXCkBackDto.HEAD |
| | | HEAD = new List<CXCkBackDto.HEAD> |
| | | { |
| | | WLPZ = materpz.S_WLPZ, |
| | | WLPZNF = materpz.S_WLPZNF, |
| | | WLPZXM = null, |
| | | GZRQ = "2025-03-20", |
| | | SRRQ = DateTime.Now.ToString(), |
| | | GZRY = "过账人员姓名" |
| | | //WLPZ = materpz.S_WLPZ, |
| | | //WLPZNF = materpz.S_WLPZNF, |
| | | //WLPZXM = null, |
| | | //GZRQ = "2025-03-20", |
| | | //SRRQ = DateTime.Now.ToString(), |
| | | //GZRY = "过账人员姓名" |
| | | } |
| | | } |
| | | }; |
| | |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | LogHelper.Info($"入库回调报错{ex.Message}"); |
| | | LogHelper.Info($"冲销回库回调报错{ex.Message}"); |
| | | db.RollbackTran(); |
| | | throw; |
| | | } |