| | |
| | | } |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 批量生成xml |
| | | /// </summary> |
| | | /// <param name="date">日期</param> |
| | | /// <param name="userId">用户id</param> |
| | | /// <returns></returns> |
| | | /// <exception cref="Exception"></exception> |
| | | public List<ExportXmlDto> AddExportXmls(string date, int userId) |
| | | { |
| | | List<ExportXmlDto> xmlList = new List<ExportXmlDto>(); |
| | | try |
| | | { |
| | | string exportSql = $@"select SONo,Status,Type,case isnull(CustomerNo,'') when '' then 'null' else CustomerNo end CustomerNo |
| | | from BllExportNotice |
| | | where IsDel='0' and Type='0'and SONo like 'SO{date.Replace("-", "")}%' |
| | | order by SONo"; |
| | | DataTable exportDt = Db.Ado.GetDataTable(exportSql); |
| | | |
| | | if (exportDt == null || exportDt.Rows.Count < 1) |
| | | { |
| | | return xmlList; |
| | | } |
| | | |
| | | foreach (DataRow dr in exportDt.Rows) |
| | | { |
| | | string soNo = dr["SONo"] + ""; |
| | | string status = dr["Status"] + ""; |
| | | string type = dr["Type"] + ""; |
| | | |
| | | var noticeDetial = Db.Queryable<BllExportNoticeDetail>().Where(w => w.IsDel == "0" && w.SONo == soNo).First(); |
| | | if (noticeDetial == null) |
| | | { |
| | | throw new Exception("未查询到出库单据明细信息"); |
| | | } |
| | | List<string> statusList = new List<string>() { "4", "5", "6" }; |
| | | if (!statusList.Contains(status)) |
| | | { |
| | | throw new Exception("参数异常,请检查状态是否为执行完成或订单关闭/已上传"); |
| | | } |
| | | string xmlName = string.Empty; |
| | | string fileName = ""; |
| | | switch (type) |
| | | { |
| | | //成品出库/销售出库 |
| | | case "0": { xmlName = "SalesWareHouseOut"; fileName = $@"SalesWareHouseOut_{dr["CustomerNo"] + ""}_linklink"; } break; |
| | | //抽检出库 |
| | | case "2": { xmlName = "CheckWareHouseOut"; fileName = $@"CheckWareHouseOut_{dr["CustomerNo"] + ""}_linklink"; } break; |
| | | default: throw new Exception("单据类型异常"); |
| | | } |
| | | |
| | | var materiDetial = Db.Queryable<SysMaterials>().First(w => w.IsDel == "0" && w.SkuNo == noticeDetial.SkuNo); |
| | | var packType = Db.Queryable<SysPackag>().First(w => w.IsDel == "0" && w.PackagNo == materiDetial.PackagNo); |
| | | int level = 0; |
| | | if (!string.IsNullOrEmpty(packType.L2Name)) |
| | | { |
| | | level = 1; |
| | | } |
| | | if (!string.IsNullOrEmpty(packType.L3Name)) |
| | | { |
| | | level = 2; |
| | | } |
| | | if (!string.IsNullOrEmpty(packType.L4Name)) |
| | | { |
| | | level = 3; |
| | | } |
| | | //出库单明细 |
| | | var comDetail = Db.Queryable<BllCompleteDetail>().Where(m => m.IsDel == "0" && m.SONo == soNo).ToList(); |
| | | var userinfo = Db.Queryable<SysUserInfor>().Where(m => m.Id == comDetail.First().CreateUser).First().RealName; |
| | | |
| | | //开启事务 |
| | | Db.BeginTran(); |
| | | try |
| | | { |
| | | var pars = new List<string>(); |
| | | string[] strr = new string[comDetail.Count]; |
| | | |
| | | for (int i = 0; i < comDetail.Count(); i++) |
| | | { |
| | | switch (level) |
| | | { |
| | | case 1: strr[i] = comDetail[i].BoxNo + "," + comDetail[i].SONo + "," + userinfo + "," + Convert.ToString(comDetail[i].CreateTime); break; |
| | | case 2: strr[i] = comDetail[i].BoxNo3 + "," + comDetail[i].SONo + "," + userinfo + "," + Convert.ToString(comDetail[i].CreateTime); break; |
| | | case 3: strr[i] = comDetail[i].BoxNo2 + "," + comDetail[i].SONo + "," + userinfo + "," + Convert.ToString(comDetail[i].CreateTime); break; |
| | | default: break; |
| | | } |
| | | pars.Add(strr[i]); |
| | | } |
| | | |
| | | XmlDocument dom = HttpHelper.EncodeParsToFuMa(pars, "", xmlName, "ExInfoXml"); |
| | | |
| | | ExportXmlDto xmlDto = new ExportXmlDto() |
| | | { |
| | | fileName = fileName, |
| | | fileContent = dom.InnerXml |
| | | }; |
| | | xmlList.Add(xmlDto); |
| | | //添加操作日志记录 |
| | | var k = new OperationSOServer().AddLogOperationSo("出库作业", "出库单据", soNo, "上传", $"上传了单据号为{soNo}的单据信息", userId); |
| | | |
| | | Db.CommitTran(); |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | Db.RollbackTran(); |
| | | throw new Exception(e.Message); |
| | | } |
| | | } |
| | | return xmlList; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | throw new Exception("生成XML文件错误:" + ex.Message); |
| | | } |
| | | } |
| | | |
| | | |
| | | #endregion |
| | | |
| | | #region 托盘出库 |