| StandardInterface/MES.Service/Dto/webApi/ERPZZCXD.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| StandardInterface/MES.Service/Modes/ZZCX.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| StandardInterface/MES.Service/Modes/Zzcxa.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| StandardInterface/MES.Service/Modes/Zzcxb.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| StandardInterface/MES.Service/service/ZZCXDManager.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| StandardInterface/MESApplication/Controllers/ZZCXDController.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
StandardInterface/MES.Service/Dto/webApi/ERPZZCXD.cs
@@ -1,50 +1,90 @@ using System.Collections.Generic; // æä»¶: MES.Service.Dto.webApi/ERPZZCX.cs using System.Collections.Generic; namespace MES.Service.Dto.webApi { /// <summary> /// ERP ä¼ è¾çå¶é æå¸åï¼ä¸»è¡¨ + æç»éåï¼ /// ERP ç»è£ æå¸ æ´å DTOï¼ä¸»è¡¨ + å表éåï¼å表ä¸å å«å表éåï¼ /// </summary> public class ERPZZCXD { public ERPZZCXA ERPZZCXA { get; set; } = new ERPZZCXA(); public List<ERPZZCXB> ERPZZCXB { get; set; } = new List<ERPZZCXB>(); /// <summary> /// ERP 主表ï¼å¯¹åº DB 表 ZZCX çæ°æ®ï¼ERPIDãBILL_NOï¼ /// </summary> public ERPZZCXMain Main { get; set; } = new ERPZZCXMain(); /// <summary> /// å表éåï¼æ¯ä¸ªå表å¯å å«å表éåï¼ /// </summary> public List<ERPZZCXA> Children { get; set; } = new List<ERPZZCXA>(); } /// <summary> /// ERP å¶é æå¸å 主表 DTO /// ERP 主表 DTO (ZZCX) /// </summary> public class ERPZZCXMain { public string? erpid { get; set; } // ERP 主表idï¼ä¸»è¡¨ç ERPIDï¼ public string? bill_no { get; set; } // åæ®ç¼ç public string? type { get; set; } // public string? dj_lx { get; set; } // åæ®ç±»å public string? kc_zz { get; set; } // åºåç»ç» public string? sw_lx { get; set; } // äºå¡ç±»å public string? time { get; set; } // æ¥æ public string? bm { get; set; } // é¨é¨ public string? cgy { get; set; } // ä»ç®¡å public string? kcz { get; set; } // åºåç» public string? dj_zt { get; set; } // åæ®ç¶æ public string? memo { get; set; } // 夿³¨ public string? cphzlx { get; set; } // æå货主类å public string? cphz { get; set; } // æå货主 public string? zjhzlx { get; set; } // å件货主类å public string? zjhz { get; set; } // å件货主 } /// <summary> /// ERP å表 DTOï¼ZZCXAï¼ ââ å å«ä¹å ZZCXA çå ¨é¨å段ï¼å¹¶æ°å¢å¯æ¾ç½®å表éå /// NOTE: è¿éç yd_id åºå½ç±ä¸»è¡¨ç erpid å¡«å ï¼ä½ è¦æ±çéæ±ï¼ /// </summary> public class ERPZZCXA { public string? bill_no { get; set; } // åæ®ç¼ç public string? dj_lx { get; set; } // åæ®ç±»å public string? kc_zz { get; set; } // åºåç»ç» public string? sw_lx { get; set; } // äºå¡ç±»å public string? time { get; set; } // æ¥æ public string? bm { get; set; } // é¨é¨ public string? cgy { get; set; } // ä»ç®¡å public string? kcz { get; set; } // åºåç» public string? dj_zt { get; set; } // åæ®ç¶æ public string? memo { get; set; } // 夿³¨ public string? cphzlx { get; set; } // æå货主类å public string? cphz { get; set; } // æå货主 public string? zjhzlx { get; set; } // å件货主类å public string? zjhz { get; set; } // å件货主 public string? item_id { get; set; } // ç©æç¼ç id public string? qty { get; set; } // æ°é public string? unit { get; set; } // åä½ public string? depot_id { get; set; } // ä»åº public string? erpid { get; set; } // ERP 主表id public string? type { get; set; } // å ³è主表 public string? yd_id { get; set; } // 对åºä¸»è¡¨ ERPIDï¼ç±ä¸»è¡¨å¡«å ï¼ public string? erpid { get; set; } // ERP å表idï¼å¦æ ERP æè¡ idï¼ /* public string? bill_no { get; set; } // åæ®ç¼ç ï¼å¯éå¤ï¼ public string? dj_lx { get; set; } // åæ®ç±»å public string? kc_zz { get; set; } // åºåç»ç» public string? sw_lx { get; set; } // äºå¡ç±»å public string? time { get; set; } // æ¥æ public string? bm { get; set; } // é¨é¨ public string? cgy { get; set; } // ä»ç®¡å public string? kcz { get; set; } // åºåç» public string? dj_zt { get; set; } // åæ®ç¶æ public string? memo { get; set; } // 夿³¨ public string? cphzlx { get; set; } // æå货主类å public string? cphz { get; set; } // æå货主 public string? zjhzlx { get; set; } // å件货主类å public string? zjhz { get; set; } // å件货主*/ // æç»ç¸å ³å段ï¼å表å¯è½ä¹è®°å½ææ¡ç©æä¿¡æ¯ï¼ public string? item_id { get; set; } // ç©æç¼ç id public string? qty { get; set; } // æ°é public string? unit { get; set; } // åä½ public string? depot_id { get; set; } // ä»åº /// <summary> /// å表éåï¼æ¯æ¡å表记å½å¯¹åº 0..N æ¡å表ï¼ZZCXBï¼ /// </summary> public List<ERPZZCXB> SubItems { get; set; } = new List<ERPZZCXB>(); } /// <summary> /// ERP å¶é æå¸å æç» DTO /// ERP å表 DTOï¼ZZCXBï¼ /// </summary> public class ERPZZCXB { public string? erpid { get; set; } // ERP 主表id public string? eid { get; set; } // ERP 忮头id public string? erpid { get; set; } // ERP 主表idï¼æåä½ï¼ public string? eid { get; set; } // ERP å表id / è¡id public string? item_id { get; set; } // ç©æç¼ç id public string? qty { get; set; } // æ°é public string? unit { get; set; } // åä½ StandardInterface/MES.Service/Modes/ZZCX.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,115 @@ // æä»¶: MES.Service.Modes/ZZCX.cs using System; using SqlSugar; namespace MES.Service.Modes { /// <summary> /// ZZCX - ç»è£ æå¸ 主表 /// </summary> [SugarTable("ZZCX")] public class ZZCX { /// <summary> /// ä¸»é® ID /// </summary> [SugarColumn(ColumnName = "ID", IsPrimaryKey = true, OracleSequenceName = "SEQ_ZZCX")] public decimal? Id { get; set; } /// <summary> /// ERP 主表 ID /// </summary> [SugarColumn(ColumnName = "ERPID")] public string Erpid { get; set; } /// <summary> /// åæ®ç¼ç /// </summary> [SugarColumn(ColumnName = "BILL_NO")] public string BillNo { get; set; } /// <summary> /// åæ®ç¼ç /// </summary> [SugarColumn(ColumnName = "TYPE")] public string Type { get; set; } /// <summary> /// åæ®ç±»å /// </summary> [SugarColumn(ColumnName = "DJ_LX")] public string DjLx { get; set; } /// <summary> /// åºåç»ç» /// </summary> [SugarColumn(ColumnName = "KC_ZZ")] public string KcZz { get; set; } /// <summary> /// äºå¡ç±»å /// </summary> [SugarColumn(ColumnName = "SW_LX")] public string SwLx { get; set; } /// <summary> /// æ¥æ /// </summary> [SugarColumn(ColumnName = "TIME")] public string Time { get; set; } /// <summary> /// é¨é¨ /// </summary> [SugarColumn(ColumnName = "BM")] public string Bm { get; set; } /// <summary> /// ä»ç®¡å /// </summary> [SugarColumn(ColumnName = "CGY")] public string Cgy { get; set; } /// <summary> /// åºåç» /// </summary> [SugarColumn(ColumnName = "KCZ")] public string Kcz { get; set; } /// <summary> /// åæ®ç¶æ /// </summary> [SugarColumn(ColumnName = "DJ_ZT")] public string DjZt { get; set; } /// <summary> /// 夿³¨ /// </summary> [SugarColumn(ColumnName = "MEMO")] public string Memo { get; set; } /// <summary> /// æå货主类å /// </summary> [SugarColumn(ColumnName = "CPHZLX")] public string Cphzlx { get; set; } /// <summary> /// æå货主 /// </summary> [SugarColumn(ColumnName = "CPHZ")] public string Cphz { get; set; } /// <summary> /// å件货主类å /// </summary> [SugarColumn(ColumnName = "ZJHZLX")] public string Zjhzlx { get; set; } /// <summary> /// å件货主 /// </summary> [SugarColumn(ColumnName = "ZJHZ")] public string Zjhz { get; set; } } } StandardInterface/MES.Service/Modes/Zzcxa.cs
@@ -1,19 +1,38 @@ using System; // æä»¶: MES.Service.Modes/ZZCXA.cs using System; using SqlSugar; namespace MES.Service.Modes { /// <summary> /// ZZCXA 主表 /// ZZCXA - ç»è£ æå¸ å表ï¼ä¹åç ZZCXA åæ®µéåï¼ï¼æ°å¢ YD_ID åæ®µæ¥è®°å½ä¸»è¡¨ ERPID /// </summary> [SugarTable("ZZCXA")] public class Zzcxa public class ZZCXA { /// <summary> /// 主é®ID /// ä¸»é® ID /// </summary> [SugarColumn(ColumnName = "ID", IsPrimaryKey = true, OracleSequenceName = "SEQ_ZZCXA")] public decimal? Id { get; set; } /// <summary> /// ç¶è¡¨ ID (å¯¹åº ZZCX.ID) ââ å¯ç¨äºå ³ç³»æ¥è¯¢ /// </summary> [SugarColumn(ColumnName = "PID")] public decimal? Pid { get; set; } /// <summary> /// YD_IDï¼åå ¥ä¸»è¡¨ç ERPIDï¼ä½ è¦æ±ï¼å表ç yd_id å主表ç erpidï¼ /// </summary> [SugarColumn(ColumnName = "YD_ID")] public string YdId { get; set; } /// <summary> /// ERP å表/è¡ idï¼erpid/eid ç ERP è¡æ è¯ï¼ /// </summary> [SugarColumn(ColumnName = "ERPID")] public string Erpid { get; set; } /// <summary> /// åæ®ç¼ç @@ -100,10 +119,10 @@ public string Zjhz { get; set; } /// <summary> /// ç©æç¼ç id /// ç©æç¼ç id /// </summary> [SugarColumn(ColumnName = "ITEM_ID")] public decimal? ItemId { get; set; } public string ItemId { get; set; } /// <summary> /// æ°é @@ -123,10 +142,9 @@ [SugarColumn(ColumnName = "DEPOT_ID")] public string DepotId { get; set; } /// <summary> /// ERP 主表id /// </summary> [SugarColumn(ColumnName = "ERPID")] public string Erpid { get; set; } [SugarColumn(IsIgnore = true)] public List<ZZCXB> SubItems { get; set; } = new List<ZZCXB>(); } } StandardInterface/MES.Service/Modes/Zzcxb.cs
@@ -1,43 +1,43 @@ using System; // æä»¶: MES.Service.Modes/ZZCXB.cs using SqlSugar; namespace MES.Service.Modes { /// <summary> /// ZZCXB æç»è¡¨ /// ZZCXB - ç»è£ æå¸ å表ï¼ä¸å表ä¸å¯¹å¤ï¼ /// </summary> [SugarTable("ZZCXB")] public class Zzcxb public class ZZCXB { /// <summary> /// 主é®ID /// ä¸»é® ID /// </summary> [SugarColumn(ColumnName = "ID", IsPrimaryKey = true, OracleSequenceName = "SEQ_ZZCXB")] public decimal? Id { get; set; } /// <summary> /// 主表ID /// 对åºå表 ID (ZZCXA.ID) /// </summary> [SugarColumn(ColumnName = "PID")] public decimal? Pid { get; set; } /// <summary> /// ERP 主表id /// ERP 主表 idï¼åä½ï¼ /// </summary> [SugarColumn(ColumnName = "ERPID")] public string Erpid { get; set; } /// <summary> /// ERP 忮头id /// ERP åè¡¨è¡ id (EID) /// </summary> [SugarColumn(ColumnName = "EID")] public string Eid { get; set; } /// <summary> /// ç©æç¼ç id /// ç©æç¼ç id /// </summary> [SugarColumn(ColumnName = "ITEM_ID")] public decimal? ItemId { get; set; } public string ItemId { get; set; } /// <summary> /// æ°é StandardInterface/MES.Service/service/ZZCXDManager.cs
@@ -8,7 +8,7 @@ namespace MES.Service.service { public class ZzcxdManager : Repository<Zzcxa> public class ZzcxManager : Repository<ZZCX> { public bool SaveList(List<ERPZZCXD> list) { @@ -18,51 +18,50 @@ public bool Save(ERPZZCXD data) { var head = MapErpToMesHead(data.ERPZZCXA); var details = MapErpDbckbToDbckb(data.ERPZZCXB); var head = MapErpToMesHead(data.Main); var children = MapErpChildren(data.Children, data.Main.erpid); return UseTransaction(db => { switch (data.ERPZZCXA.type) switch (data.Main.type) { case "3": return UpdateData(db, head, details) ? 1 : 0; case "3": // å é¤ / ç¦ç¨ return UpdateData(db, head, children) ? 1 : 0; case "2": case "4": case "5": return SaveOrUpdateData(db, head, details) ? 1 : 0; case "5": // æ°å¢ææ´æ° return SaveOrUpdateData(db, head, children) ? 1 : 0; default: throw new NotImplementedException($"type没æ {data.ERPZZCXA.type} è¿ä¸ªç±»å"); throw new NotImplementedException($"type 没æ {data.Main.type} è¿ä¸ªç±»å"); } }) > 0; } private Zzcxa MapErpToMesHead(ERPZZCXA dto) private ZZCX MapErpToMesHead(ERPZZCXMain dto) { var entity = new Zzcxa var entity = new ZZCX { BillNo = dto.bill_no, // åæ®ç¼ç DjLx = dto.dj_lx, // åæ®ç±»å KcZz = dto.kc_zz, // åºåç»ç» SwLx = dto.sw_lx, // äºå¡ç±»å Time = dto.time , // æ¥æ Bm = dto.bm, // é¨é¨ Cgy = dto.cgy, // ä»ç®¡å Kcz = dto.kcz, // åºåç» DjZt = dto.dj_zt, // åæ®ç¶æ Memo = dto.memo, // 夿³¨ Cphzlx = dto.cphzlx, // æå货主类å Cphz = dto.cphz, // æå货主 Zjhzlx = dto.zjhzlx, // å件货主类å Zjhz = dto.zjhz, // å件货主 ItemId = string.IsNullOrEmpty(dto.item_id) ? null : Convert.ToDecimal(dto.item_id), // ç©æç¼ç id Qty = string.IsNullOrEmpty(dto.qty) ? null : Convert.ToDecimal(dto.qty), // æ°é Unit = dto.unit, // åä½ DepotId = dto.depot_id, // ä»åº Erpid = dto.erpid // ERP 主表id BillNo = dto.bill_no, // åæ®ç¼ç Erpid = dto.erpid , // ERP 主表 ID DjLx = dto.dj_lx, KcZz = dto.kc_zz, SwLx = dto.sw_lx, // Time = string.IsNullOrEmpty(dto.time) ? (DateTime?)null : DateTime.Parse(dto.time), Time = dto.time, Bm = dto.bm, Cgy = dto.cgy, Kcz = dto.kcz, DjZt = dto.dj_zt, Memo = dto.memo, Cphzlx = dto.cphzlx, Cphz = dto.cphz, Zjhzlx = dto.zjhzlx, Zjhz = dto.zjhz, }; var single = Db.Queryable<Zzcxa>() var single = Db.Queryable<ZZCX>() .Where(it => it.Erpid == entity.Erpid) .First(); if (single != null) @@ -71,41 +70,78 @@ return entity; } private List<Zzcxb> MapErpDbckbToDbckb(List<ERPZZCXB> list) private List<ZZCXA> MapErpChildren(List<ERPZZCXA> list, string mainErpId) { var result = new List<Zzcxb>(); var result = new List<ZZCXA>(); foreach (var dto in list) { var item = new Zzcxb var item = new ZZCXA { Erpid = dto.erpid, // ERP 主表id Eid = dto.eid, // ERP 忮头id ItemId = string.IsNullOrEmpty(dto.item_id) ? null : Convert.ToDecimal(dto.item_id), // ç©æç¼ç id Qty = string.IsNullOrEmpty(dto.qty) ? null : Convert.ToDecimal(dto.qty), // æ°é Unit = dto.unit, // åä½ DepotId = dto.depot_id, // ä»åº LotNo = dto.lot_no, // æ¹å· Memo = dto.memo // 夿³¨ Erpid = dto.erpid, /* BillNo = dto.bill_no, DjLx = dto.dj_lx, KcZz = dto.kc_zz, SwLx = dto.sw_lx, // Time = string.IsNullOrEmpty(dto.time) ? (DateTime?)null : DateTime.Parse(dto.time), Time = dto.time, Bm = dto.bm, Cgy = dto.cgy, Kcz = dto.kcz, DjZt = dto.dj_zt, Memo = dto.memo, Cphzlx = dto.cphzlx, Cphz = dto.cphz, Zjhzlx = dto.zjhzlx, Zjhz = dto.zjhz,*/ ItemId = dto.item_id, Qty = string.IsNullOrEmpty(dto.qty) ? (decimal?)null : Convert.ToDecimal(dto.qty), Unit = dto.unit, DepotId = dto.depot_id, YdId = mainErpId }; var existing = Db.Queryable<Zzcxb>().Where(s => s.Erpid == item.Erpid).Single(); var existing = Db.Queryable<ZZCXA>().Where(s => s.Erpid == item.Erpid).Single(); if (existing != null) item.Id = existing.Id; result.Add(item); // å表å¤ç if (dto.SubItems != null && dto.SubItems.Count > 0) { foreach (var subDto in dto.SubItems) { var subEntity = new ZZCXB { Eid = subDto.eid, ItemId = subDto.item_id, Qty = string.IsNullOrEmpty(subDto.qty) ? (decimal?)null : Convert.ToDecimal(subDto.qty), Unit = subDto.unit, DepotId = subDto.depot_id, LotNo = subDto.lot_no, Memo = subDto.memo, Erpid = mainErpId }; var existingSub = Db.Queryable<ZZCXB>().Where(s => s.Eid == subEntity.Eid).Single(); if (existingSub != null) subEntity.Id = existingSub.Id; item.SubItems ??= new List<ZZCXB>(); item.SubItems.Add(subEntity); } } } return result; } private bool SaveOrUpdateData(SqlSugarScope db, Zzcxa head, List<Zzcxb> details) private bool SaveOrUpdateData(SqlSugarScope db, ZZCX head, List<ZZCXA> children) { if (head.Id != null) base.DeleteById(head.Id); db.Deleteable<Zzcxb>() .Where(d => d.Eid == head.Erpid) .ExecuteCommand(); db.Deleteable<ZZCXA>().Where(d => d.YdId == head.Erpid).ExecuteCommand(); db.Deleteable<ZZCXB>().Where(d => d.Erpid == head.Erpid).ExecuteCommand(); var insertedHead = db.Insertable(head) .IgnoreColumns(true) @@ -113,23 +149,59 @@ if (insertedHead <= 0) throw new Exception("主表æå ¥å¤±è´¥ï¼æªè¿åID"); var success = db.Insertable(details) .PageSize(10) .IgnoreColumnsNull() .ExecuteCommand() > 0; foreach (var child in children) { child.Pid = insertedHead; var childId = db.Insertable(child).IgnoreColumns(true).ExecuteReturnIdentity(); if (insertedHead >= 0 && success) return true; throw new NotImplementedException("æå ¥ææ´æ°å¤±è´¥"); if (child.SubItems != null && child.SubItems.Count > 0) { foreach (var sub in child.SubItems) { sub.Pid = childId; db.Insertable(sub).IgnoreColumns(true).ExecuteCommand(); } } } return true; } private bool UpdateData(SqlSugarScope db, Zzcxa head, List<Zzcxb> details) /* private bool UpdateData(SqlSugarScope db, ZZCX head, List<ZZCXA> children) { // å é¤ä¸»è¡¨ & åå表 var deletedHead = base.DeleteById(head.Id); var deletedChildren = db.Deleteable<ZZCXA>().Where(d => d.YdId == head.Erpid).ExecuteCommand(); var deletedGrand = db.Deleteable<ZZCXB>().Where(d => d.Erpid == head.Erpid).ExecuteCommand(); if (deletedHead && deletedChildren >= 0 && deletedGrand >= 0) return true; throw new NotImplementedException("å é¤å¤±è´¥"); }*/ private bool UpdateData(SqlSugarScope db, ZZCX head, List<ZZCXA> children) { var ids = details.Select(d => d.Id).ToArray(); var deletedHead = base.DeleteById(head.Id); var deletedDetails = db.Deleteable<Zzcxb>().In(ids).ExecuteCommand() > 0; // å é¤ä¸»è¡¨ var deletedHead = db.Deleteable<ZZCX>() .Where(d => d.Erpid == head.Erpid) .ExecuteCommand(); if (deletedHead && deletedDetails) return true; throw new NotImplementedException("æ´æ°å¤±è´¥"); // å é¤å表 var deletedChildren = db.Deleteable<ZZCXA>() .Where(d => d.YdId == head.Erpid) .ExecuteCommand(); // å é¤å表 var deletedGrand = db.Deleteable<ZZCXB>() .Where(d => d.Erpid == head.Erpid) .ExecuteCommand(); // å¦æä¸»è¡¨æ²¡å å°è®°å½ï¼ä¹è®¤ä¸ºå 许ï¼å¯è½ä¹åå°±ä¸åå¨ï¼ if (deletedHead >= 0 && deletedChildren >= 0 && deletedGrand >= 0) return true; throw new NotImplementedException("å é¤å¤±è´¥"); } } } StandardInterface/MESApplication/Controllers/ZZCXDController.cs
@@ -2,28 +2,27 @@ using System; using System.Collections.Generic; using System.Dynamic; using MES.Service.service; using MES.Service.Dto.webApi; using MES.Service.util; using Newtonsoft.Json; using MES.Service.Modes; using MES.Service.service; namespace MESApplication.Controllers { [ApiController] [Route("api/[controller]")] public class ZZCXDController : ControllerBase public class ZzcxController : ControllerBase { private readonly ZzcxdManager _manager = new(); // è¿éå¯¹åºæ°ç Service private readonly ZzcxManager _manager = new(); private readonly MessageCenterManager _messageManager = new(); private const string METHOD = "POST"; private const string TableName = "ZZCXD"; private const string URL = "http://localhost:10054/api/ERPZZCXD/"; private const string TableName = "ZZCX"; private const string URL = "http://localhost:10054/api/Zzcx/"; /// <summary> /// ä¿ååæ¡è°æ¨å /// </summary> [HttpPost("Save")] public ResponseResult Save([FromBody] ERPZZCXD data) { @@ -35,7 +34,7 @@ Data = JsonConvert.SerializeObject(data), Status = 1, CreateBy = "PL017", Route = data.ERPZZCXA.bill_no // 注æå billno Route = data.Main.bill_no }; try @@ -61,9 +60,6 @@ } } /// <summary> /// æ¹éä¿åè°æ¨å /// </summary> [HttpPost("SaveList")] public ResponseResult SaveList([FromBody] List<ERPZZCXD> dataList) {