| StandardInterface/MES.Service/Dto/webApi/ERPZZCXD.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| StandardInterface/MES.Service/Modes/MessageCenter.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/MESApplication/appsettings.json | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
StandardInterface/MES.Service/Dto/webApi/ERPZZCXD.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,55 @@ using System.Collections.Generic; namespace MES.Service.Dto.webApi { /// <summary> /// ERP ä¼ è¾çå¶é æå¸åï¼ä¸»è¡¨ + æç»éåï¼ /// </summary> public class ERPZZCXD { public ERPZZCXA ERPZZCXA { get; set; } = new ERPZZCXA(); public List<ERPZZCXB> ERPZZCXB { get; set; } = new List<ERPZZCXB>(); } /// <summary> /// ERP å¶é æå¸å 主表 DTO /// </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; } } /// <summary> /// ERP å¶é æå¸å æç» DTO /// </summary> public class ERPZZCXB { public string? erpid { get; set; } // ERP 主表id public string? eid { get; set; } // ERP 忮头id 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? lot_no { get; set; } // æ¹å· public string? memo { get; set; } // 夿³¨ } } StandardInterface/MES.Service/Modes/MessageCenter.cs
@@ -10,7 +10,7 @@ /// <summary> /// 对åºåºåSEQ_MSG /// </summary> [SugarColumn(IsPrimaryKey = true, OracleSequenceName = "SEQ_MSG", [SugarColumn(IsPrimaryKey = true, OracleSequenceName = "SEQ_MSG2", ColumnName = "ID")] public decimal? Id { get; set; } StandardInterface/MES.Service/Modes/Zzcxa.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,132 @@ using System; using SqlSugar; namespace MES.Service.Modes { /// <summary> /// ZZCXA 主表 /// </summary> [SugarTable("ZZCXA")] public class Zzcxa { /// <summary> /// 主é®ID /// </summary> [SugarColumn(ColumnName = "ID", IsPrimaryKey = true, OracleSequenceName = "SEQ_ZZCXA")] public decimal? Id { get; set; } /// <summary> /// åæ®ç¼ç /// </summary> [SugarColumn(ColumnName = "BILL_NO")] public string BillNo { 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; } /// <summary> /// ç©æç¼ç id /// </summary> [SugarColumn(ColumnName = "ITEM_ID")] public decimal? ItemId { get; set; } /// <summary> /// æ°é /// </summary> [SugarColumn(ColumnName = "QTY")] public decimal? Qty { get; set; } /// <summary> /// åä½ /// </summary> [SugarColumn(ColumnName = "UNIT")] public string Unit { get; set; } /// <summary> /// ä»åº /// </summary> [SugarColumn(ColumnName = "DEPOT_ID")] public string DepotId { get; set; } /// <summary> /// ERP 主表id /// </summary> [SugarColumn(ColumnName = "ERPID")] public string Erpid { get; set; } } } StandardInterface/MES.Service/Modes/Zzcxb.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,72 @@ using System; using SqlSugar; namespace MES.Service.Modes { /// <summary> /// ZZCXB æç»è¡¨ /// </summary> [SugarTable("ZZCXB")] public class Zzcxb { /// <summary> /// 主é®ID /// </summary> [SugarColumn(ColumnName = "ID", IsPrimaryKey = true, OracleSequenceName = "SEQ_ZZCXB")] public decimal? Id { get; set; } /// <summary> /// 主表ID /// </summary> [SugarColumn(ColumnName = "PID")] public decimal? Pid { get; set; } /// <summary> /// ERP 主表id /// </summary> [SugarColumn(ColumnName = "ERPID")] public string Erpid { get; set; } /// <summary> /// ERP 忮头id /// </summary> [SugarColumn(ColumnName = "EID")] public string Eid { get; set; } /// <summary> /// ç©æç¼ç id /// </summary> [SugarColumn(ColumnName = "ITEM_ID")] public decimal? ItemId { get; set; } /// <summary> /// æ°é /// </summary> [SugarColumn(ColumnName = "QTY")] public decimal? Qty { get; set; } /// <summary> /// åä½ /// </summary> [SugarColumn(ColumnName = "UNIT")] public string Unit { get; set; } /// <summary> /// ä»åº /// </summary> [SugarColumn(ColumnName = "DEPOT_ID")] public string DepotId { get; set; } /// <summary> /// æ¹å· /// </summary> [SugarColumn(ColumnName = "LOT_NO")] public string LotNo { get; set; } /// <summary> /// 夿³¨ /// </summary> [SugarColumn(ColumnName = "MEMO")] public string Memo { get; set; } } } StandardInterface/MES.Service/service/ZZCXDManager.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,135 @@ using SqlSugar; using System; using System.Collections.Generic; using System.Linq; using MES.Service.DB; using MES.Service.Dto.webApi; using MES.Service.Modes; namespace MES.Service.service { public class ZzcxdManager : Repository<Zzcxa> { public bool SaveList(List<ERPZZCXD> list) { var result = list.Select(Save).ToList(); return result.All(b => b); } public bool Save(ERPZZCXD data) { var head = MapErpToMesHead(data.ERPZZCXA); var details = MapErpDbckbToDbckb(data.ERPZZCXB); return UseTransaction(db => { switch (data.ERPZZCXA.type) { case "3": return UpdateData(db, head, details) ? 1 : 0; case "2": case "4": case "5": return SaveOrUpdateData(db, head, details) ? 1 : 0; default: throw new NotImplementedException($"type没æ {data.ERPZZCXA.type} è¿ä¸ªç±»å"); } }) > 0; } private Zzcxa MapErpToMesHead(ERPZZCXA dto) { var entity = new Zzcxa { 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 }; var single = Db.Queryable<Zzcxa>() .Where(it => it.Erpid == entity.Erpid) .First(); if (single != null) entity.Id = single.Id; return entity; } private List<Zzcxb> MapErpDbckbToDbckb(List<ERPZZCXB> list) { var result = new List<Zzcxb>(); foreach (var dto in list) { var item = new Zzcxb { 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 // 夿³¨ }; var existing = Db.Queryable<Zzcxb>().Where(s => s.Erpid == item.Erpid).Single(); if (existing != null) item.Id = existing.Id; result.Add(item); } return result; } private bool SaveOrUpdateData(SqlSugarScope db, Zzcxa head, List<Zzcxb> details) { if (head.Id != null) base.DeleteById(head.Id); db.Deleteable<Zzcxb>() .Where(d => d.Eid == head.Erpid) .ExecuteCommand(); var insertedHead = db.Insertable(head) .IgnoreColumns(true) .ExecuteReturnIdentity(); if (insertedHead <= 0) throw new Exception("主表æå ¥å¤±è´¥ï¼æªè¿åID"); var success = db.Insertable(details) .PageSize(10) .IgnoreColumnsNull() .ExecuteCommand() > 0; if (insertedHead >= 0 && success) return true; throw new NotImplementedException("æå ¥ææ´æ°å¤±è´¥"); } private bool UpdateData(SqlSugarScope db, Zzcxa head, List<Zzcxb> details) { var ids = details.Select(d => d.Id).ToArray(); var deletedHead = base.DeleteById(head.Id); var deletedDetails = db.Deleteable<Zzcxb>().In(ids).ExecuteCommand() > 0; if (deletedHead && deletedDetails) return true; throw new NotImplementedException("æ´æ°å¤±è´¥"); } } } StandardInterface/MESApplication/Controllers/ZZCXDController.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,103 @@ using Microsoft.AspNetCore.Mvc; 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; namespace MESApplication.Controllers { [ApiController] [Route("api/[controller]")] public class ZZCXDController : ControllerBase { private readonly ZzcxdManager _manager = new(); // è¿éå¯¹åºæ°ç Service private readonly MessageCenterManager _messageManager = new(); private const string METHOD = "POST"; private const string TableName = "ZZCXD"; private const string URL = "http://localhost:10054/api/ERPZZCXD/"; /// <summary> /// ä¿ååæ¡è°æ¨å /// </summary> [HttpPost("Save")] public ResponseResult Save([FromBody] ERPZZCXD data) { var msg = new MessageCenter { TableName = TableName, Url = URL + "Save", Method = METHOD, Data = JsonConvert.SerializeObject(data), Status = 1, CreateBy = "PL017", Route = data.ERPZZCXA.bill_no // 注æå billno }; try { dynamic resultInfos = new ExpandoObject(); var success = _manager.Save(data); resultInfos.tbBillList = success; msg.Result = success ? (short?)1 : (short?)0; msg.DealWith = 1; _messageManager.save(msg); return new ResponseResult { status = 0, message = "OK", data = resultInfos }; } catch (Exception ex) { msg.Result = 0; msg.DealWith = 0; msg.ResultData = ex.Message; _messageManager.save(msg); return ResponseResult.ResponseError(ex); } } /// <summary> /// æ¹éä¿åè°æ¨å /// </summary> [HttpPost("SaveList")] public ResponseResult SaveList([FromBody] List<ERPZZCXD> dataList) { var msg = new MessageCenter { TableName = TableName, Url = URL + "SaveList", Method = METHOD, Data = JsonConvert.SerializeObject(dataList), Status = 1, CreateBy = "PL017" }; try { dynamic resultInfos = new ExpandoObject(); var success = _manager.SaveList(dataList); resultInfos.tbBillList = success; msg.Result = success ? (short?)1 : (short?)0; msg.DealWith = 1; _messageManager.save(msg); return new ResponseResult { status = 0, message = "OK", data = resultInfos }; } catch (Exception ex) { msg.Result = 0; msg.DealWith = 0; msg.ResultData = ex.Message; _messageManager.save(msg); return ResponseResult.ResponseError(ex); } } } } StandardInterface/MESApplication/appsettings.json
@@ -10,6 +10,6 @@ "AppSettings": { "TestErpUrl": "http://192.168.11.120:8098/WebService1.asmx/mesToErpinfo", "ProductionErpUrl": "http://192.168.11.120:8098/WebService1.asmx/mesToErpinfoFormal", "DataBaseConn": "Data Source = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.22)(PORT = 1521))(CONNECT_DATA = (SERVICE_NAME = ORCL))); Persist Security Info=True;User ID = hm_prd; Password=hmprd" "DataBaseConn": "Data Source = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.22)(PORT = 1521))(CONNECT_DATA = (SERVICE_NAME = ORCL))); Persist Security Info=True;User ID = test_dev; Password=hmprd" } }