From d1a7940a54083e9d1a15bbe14de040556d7cbab5 Mon Sep 17 00:00:00 2001
From: hao <1836460075@qq.com>
Date: 星期四, 09 十月 2025 10:45:55 +0800
Subject: [PATCH] 模具号测试
---
StandardInterface/MESApplication/Controllers/BasicData/MesMouldController.cs | 149 ++++++++++++++++++
StandardInterface/MES.Service/Modes/MesMould.cs | 120 +++++++++++++++
StandardInterface/MES.Service/Dto/webApi/ErpMould.cs | 24 +++
StandardInterface/MES.Service/service/MesMouldManager.cs | 157 +++++++++++++++++++
StandardInterface/MESApplication/appsettings.json | 2
5 files changed, 451 insertions(+), 1 deletions(-)
diff --git a/StandardInterface/MES.Service/Dto/webApi/ErpMould.cs b/StandardInterface/MES.Service/Dto/webApi/ErpMould.cs
new file mode 100644
index 0000000..eaff85e
--- /dev/null
+++ b/StandardInterface/MES.Service/Dto/webApi/ErpMould.cs
@@ -0,0 +1,24 @@
+锘縩amespace MES.Service.Dto.webApi;
+
+/// <summary>
+/// ERP浼犺緭鐢ㄦā鍏峰彿DTO
+/// </summary>
+public class ErpMould
+{
+ public string? Code { get; set; } // 缂栫爜
+ public string? Name { get; set; } // 鍚嶇О
+ public string? DataStatus { get; set; } // 鏁版嵁鐘舵��
+ public string? OldMouldNo { get; set; } // 鏃фā鍏峰彿
+ public string? Cavity { get; set; } // 绌存暟
+ public string? Cycle { get; set; } // 鍛ㄦ湡
+ public string? Capacity { get; set; } // 浜ц兘
+ public string? MachineType { get; set; } // 鏈哄瀷
+ public string? FForbidStatus { get; set; } // 绂佺敤鐘舵��
+ public string? ProductWeight { get; set; } // 浜у搧鍗曢噸
+ public string? MaterialHead { get; set; } // 鏂欏ご
+ public string? StandardLabor { get; set; } // 鏍囧噯浜哄姏
+ public string? LaborHoursPerThousand { get; set; } // 鍗冪墖浜哄姏宸ユ椂
+ public string? Remark { get; set; } // 澶囨敞
+ public string? ErpId { get; set; }
+ public string? Type { get; set; } // 鎿嶄綔绫诲瀷锛�0鍚敤,1绂佺敤,2瀹℃牳,3鍙嶅鏍革級
+}
diff --git a/StandardInterface/MES.Service/Modes/MesMould.cs b/StandardInterface/MES.Service/Modes/MesMould.cs
new file mode 100644
index 0000000..1f0a188
--- /dev/null
+++ b/StandardInterface/MES.Service/Modes/MesMould.cs
@@ -0,0 +1,120 @@
+锘縰sing SqlSugar;
+
+namespace MES.Service.Modes;
+
+/// <summary>
+/// 妯″叿鍙蜂俊鎭疄浣撶被
+/// </summary>
+[SugarTable("MES_MOULD")]
+public class MesMould
+{
+
+ /// <summary>
+ /// 涓婚敭ID
+ /// </summary>
+ [SugarColumn(ColumnName = "ID", IsPrimaryKey = true, OracleSequenceName = "SEQ_MES_MOULD")]
+ public decimal? Id { get; set; }
+
+ /// <summary>
+ /// 缂栫爜锛堝 LT101921锛�
+ /// </summary>
+ [SugarColumn(ColumnName = "CODE")]
+ public string? Code { get; set; }
+
+ /// <summary>
+ /// 鍚嶇О锛堝 LT101921锛�
+ /// </summary>
+ [SugarColumn(ColumnName = "NAME")]
+ public string? Name { get; set; }
+
+ /// <summary>
+ /// 鏁版嵁鐘舵��
+ /// </summary>
+ [SugarColumn(ColumnName = "DATA_STATUS")]
+ public string? DataStatus { get; set; }
+
+ /// <summary>
+ /// 鏃фā鍏峰彿
+ /// </summary>
+ [SugarColumn(ColumnName = "OLD_MOULD_NO")]
+ public string? OldMouldNo { get; set; }
+
+ /// <summary>
+ /// 绌存暟
+ /// </summary>
+ [SugarColumn(ColumnName = "CAVITY")]
+ public string? Cavity { get; set; }
+
+ /// <summary>
+ /// 鍛ㄦ湡锛堝崟浣嶏細绉掞級
+ /// </summary>
+ [SugarColumn(ColumnName = "CYCLE")]
+ public string? Cycle { get; set; }
+
+ /// <summary>
+ /// 浜ц兘
+ /// </summary>
+ [SugarColumn(ColumnName = "CAPACITY")]
+ public string? Capacity { get; set; }
+
+ /// <summary>
+ /// 鏈哄瀷
+ /// </summary>
+ [SugarColumn(ColumnName = "MACHINE_TYPE")]
+ public string? MachineType { get; set; }
+
+ /// <summary>
+ /// 绂佺敤鐘舵�侊紙A鍚敤 / B绂佺敤锛�
+ /// </summary>
+ [SugarColumn(ColumnName = "FFORBIDSTATUS")]
+ public string? FForbidStatus { get; set; }
+
+ /// <summary>
+ /// 浜у搧鍗曢噸锛坓锛�
+ /// </summary>
+ [SugarColumn(ColumnName = "PRODUCT_WEIGHT")]
+ public string? ProductWeight { get; set; }
+
+ /// <summary>
+ /// 鏂欏ご锛坓锛�
+ /// </summary>
+ [SugarColumn(ColumnName = "MATERIAL_HEAD")]
+ public string? MaterialHead { get; set; }
+
+ /// <summary>
+ /// 鏍囧噯浜哄姏
+ /// </summary>
+ [SugarColumn(ColumnName = "STANDARD_LABOR")]
+ public string? StandardLabor { get; set; }
+
+ /// <summary>
+ /// 鍗冪墖浜哄姏宸ユ椂
+ /// </summary>
+ [SugarColumn(ColumnName = "LABOR_HOURS_THOUSAND")]
+ public string? LaborHoursPerThousand { get; set; }
+
+
+ /// <summary>
+ /// 澶囨敞
+ /// </summary>
+ [SugarColumn(ColumnName = "REMARK")]
+ public string? Remark { get; set; }
+
+ /// <summary>
+ /// 鍒涘缓鏃堕棿
+ /// </summary>
+ [SugarColumn(ColumnName = "CREATE_TIME")]
+ public DateTime? CreateTime { get; set; }
+
+ /// <summary>
+ /// ERPID
+ /// </summary>
+ [SugarColumn(ColumnName = "ERP_ID")]
+ public string? ErpId { get; set; }
+ /// <summary>
+ /// ERPID
+ /// </summary>
+ [SugarColumn(ColumnName = "TYPE")]
+ public string? Type { get; set; }
+
+}
diff --git a/StandardInterface/MES.Service/service/MesMouldManager.cs b/StandardInterface/MES.Service/service/MesMouldManager.cs
new file mode 100644
index 0000000..1a3d23d
--- /dev/null
+++ b/StandardInterface/MES.Service/service/MesMouldManager.cs
@@ -0,0 +1,157 @@
+锘縰sing MES.Service.DB;
+using MES.Service.Dto.webApi;
+using MES.Service.Modes;
+using SqlSugar;
+
+namespace MES.Service.service.BasicData.Material;
+
+/// <summary>
+/// 妯″叿鍙烽�昏緫澶勭悊绫�
+/// </summary>
+public class MesMouldManager : Repository<MesMould>
+{
+ /// <summary>
+ /// 鍗曚釜淇濆瓨锛圱ype: 0鍚敤,1绂佺敤,2瀹℃牳/鏂板鎴栨洿鏂�,3鍙嶅鏍�/鍒犻櫎锛�
+ /// </summary>
+ public bool Save(ErpMould mould)
+ {
+ var entity = ConvertToEntity(mould);
+
+ return UseTransaction(db =>
+ {
+ switch (mould.Type)
+ {
+ case "0":
+ if (UpdateStatus(db, entity.Code, "A")) return 1;
+ break;
+ case "1":
+ if (UpdateStatus(db, entity.Code, "B")) return 1;
+ break;
+ case "3":
+ if (DeleteMould(db, entity.Code)) return 1;
+ break;
+ case "2":
+ if (InsertOrUpdate(db, entity)) return 1;
+ break;
+ default:
+ throw new ArgumentNullException($"Type鍙傛暟閿欒锛歿mould.Type}");
+ }
+ throw new NotImplementedException("鎿嶄綔澶辫触");
+ }) > 0;
+ }
+
+ /// <summary>
+ /// 鎵归噺淇濆瓨锛堝甫Type鍒ゆ柇锛�
+ /// </summary>
+ public bool SaveList(List<ErpMould> moulds)
+ {
+ var list = moulds.Select(ConvertToEntity).ToList();
+ var groupByType = list.GroupBy(s => s.Type).ToDictionary(g => g.Key, g => g.ToList());
+
+ return UseTransaction(db =>
+ {
+ foreach (var group in groupByType)
+ {
+ switch (group.Key)
+ {
+ case "0":
+ if (!UpdateStatusBatch(db, group.Value, "A"))
+ throw new NotImplementedException("鍚敤澶辫触");
+ break;
+ case "1":
+ if (!UpdateStatusBatch(db, group.Value, "B"))
+ throw new NotImplementedException("绂佺敤澶辫触");
+ break;
+ case "3":
+ if (!DeleteMouldBatch(db, group.Value))
+ throw new NotImplementedException("鍒犻櫎澶辫触");
+ break;
+ case "2":
+ if (!InsertOrUpdateBatch(db, group.Value))
+ throw new NotImplementedException("鍚屾澶辫触");
+ break;
+ default:
+ throw new ArgumentNullException($"Type鍙傛暟閿欒锛歿group.Key}");
+ }
+ }
+ return 1;
+ }) > 0;
+ }
+
+ private bool UpdateStatus(SqlSugarScope db, string code, string status)
+ {
+ var result = db.Updateable<MesMould>()
+ .SetColumns(s => s.FForbidStatus == status)
+ .Where(s => s.Code == code)
+ .ExecuteCommand();
+ if (result > 0) return true;
+ throw new NotImplementedException(status == "A" ? "鍚敤澶辫触" : "绂佺敤澶辫触");
+ }
+
+ private bool UpdateStatusBatch(SqlSugarScope db, List<MesMould> moulds, string status)
+ {
+ var codes = moulds.Select(s => s.Code).ToArray();
+ var result = db.Updateable<MesMould>()
+ .SetColumns(s => s.FForbidStatus == status)
+ .Where(s => codes.Contains(s.Code))
+ .ExecuteCommand();
+ return result > 0;
+ }
+
+ /// <summary>
+ /// 鍒犻櫎鍗曟潯璁板綍锛堟寜 ErpId锛�
+ /// </summary>
+ private bool DeleteMould(SqlSugarScope db, string erpId)
+ {
+ var result = db.Deleteable<MesMould>().Where(s => s.ErpId == erpId).ExecuteCommand();
+ return result > 0;
+ }
+
+ /// <summary>
+ /// 鎵归噺鍒犻櫎锛堟寜 ErpId锛�
+ /// </summary>
+ private bool DeleteMouldBatch(SqlSugarScope db, List<MesMould> moulds)
+ {
+ var erpIds = moulds.Select(s => s.ErpId).ToArray();
+ var result = db.Deleteable<MesMould>().Where(s => erpIds.Contains(s.ErpId)).ExecuteCommand();
+ return result > 0;
+ }
+
+
+ private bool InsertOrUpdate(SqlSugarScope db, MesMould entity)
+ {
+ //db.Deleteable<MesMould>().Where(s => s.Code == entity.Code).ExecuteCommand();
+ db.Deleteable<MesMould>().Where(s => s.ErpId == entity.ErpId).ExecuteCommand();
+ var insert = db.Insertable(entity).ExecuteCommand();
+ return insert > 0;
+ }
+
+ private bool InsertOrUpdateBatch(SqlSugarScope db, List<MesMould> moulds)
+ {
+ foreach (var entity in moulds)
+ if (!InsertOrUpdate(db, entity))
+ return false;
+ return true;
+ }
+
+ private MesMould ConvertToEntity(ErpMould m) => new MesMould
+ {
+ Code = m.Code, // 缂栫爜
+ Name = m.Name, // 鍚嶇О
+ DataStatus = m.DataStatus, // 鏁版嵁鐘舵��
+ OldMouldNo = m.OldMouldNo, // 鏃фā鍏峰彿
+ Cavity = m.Cavity, // 绌存暟
+ Cycle = m.Cycle, // 鍛ㄦ湡
+ Capacity = m.Capacity, // 浜ц兘
+ MachineType = m.MachineType, // 鏈哄瀷
+ FForbidStatus = m.FForbidStatus, // 绂佺敤鐘舵��
+ ProductWeight = m.ProductWeight, // 浜у搧鍗曢噸
+ MaterialHead = m.MaterialHead, // 鏂欏ご
+ StandardLabor = m.StandardLabor, // 鏍囧噯浜哄姏
+ LaborHoursPerThousand = m.LaborHoursPerThousand, // 鍗冪墖浜哄姏宸ユ椂
+ Remark = m.Remark, // 澶囨敞
+ CreateTime = DateTime.Now, // 鏃堕棿
+ ErpId = m.ErpId, // ERP缂栧彿
+ Type = m.Type // 鎿嶄綔绫诲瀷
+ };
+}
diff --git a/StandardInterface/MESApplication/Controllers/BasicData/MesMouldController.cs b/StandardInterface/MESApplication/Controllers/BasicData/MesMouldController.cs
new file mode 100644
index 0000000..5d46e0f
--- /dev/null
+++ b/StandardInterface/MESApplication/Controllers/BasicData/MesMouldController.cs
@@ -0,0 +1,149 @@
+锘縰sing System.Dynamic;
+using MES.Service.Dto.webApi;
+using MES.Service.Modes;
+using MES.Service.service;
+using MES.Service.service.BasicData.Material;
+using MES.Service.util;
+using Microsoft.AspNetCore.Mvc;
+using Newtonsoft.Json;
+
+namespace MESApplication.Controllers.BasicData;
+
+/// <summary>
+/// 妯″叿鍙锋帴鍙f帶鍒跺櫒
+/// </summary>
+[ApiController]
+[Route("api/[controller]")]
+public class MesMouldController : ControllerBase
+{
+ private readonly MessageCenterManager _manager = new();
+ private readonly MesMouldManager m = new();
+
+ private readonly string METHOD = "POST";
+ private readonly string TableName = "MES_MOULD";
+ private readonly string URL = "http://localhost:10054/api/MesMould/";
+
+ /// <summary>
+ /// 淇濆瓨鍗曚釜妯″叿鏁版嵁锛堝甫Type閫昏緫锛�
+ /// </summary>
+ [HttpPost("Save")]
+ public ResponseResult Save(ErpMould unit)
+ {
+ var entity = new MessageCenter
+ {
+ TableName = TableName,
+ Url = URL + "Save",
+ Method = METHOD,
+ Data = JsonConvert.SerializeObject(unit),
+ Status = 1,
+ Route = unit.Code,
+ CreateBy = "PL017"
+ };
+ try
+ {
+ dynamic resultInfos = new ExpandoObject();
+ var save = m.Save(unit);
+ resultInfos.tbBillList = save;
+
+ entity.Result = 0;
+ if (save) entity.Result = 1;
+
+ entity.DealWith = 1;
+ _manager.save(entity);
+
+ return new ResponseResult { status = 0, message = "OK", data = resultInfos };
+ }
+ catch (Exception ex)
+ {
+ entity.Result = 0;
+ entity.DealWith = 0;
+ entity.ResultData = ex.Message;
+ _manager.save(entity);
+ return ResponseResult.ResponseError(ex);
+ }
+ }
+
+ /// <summary>
+ /// 鎵归噺淇濆瓨妯″叿鏁版嵁锛堝甫Type閫昏緫锛�
+ /// </summary>
+ [HttpPost("SaveList")]
+ public ResponseResult SaveList(List<ErpMould> units)
+ {
+ var entity = new MessageCenter
+ {
+ TableName = TableName,
+ Url = URL + "SaveList",
+ Method = METHOD,
+ Data = JsonConvert.SerializeObject(units),
+ Status = 1,
+ CreateBy = "PL017"
+ };
+ try
+ {
+ dynamic resultInfos = new ExpandoObject();
+ var save = m.SaveList(units);
+ resultInfos.tbBillList = save;
+
+ entity.Result = 0;
+ if (save) entity.Result = 1;
+
+ entity.DealWith = 1;
+ _manager.save(entity);
+
+ return new ResponseResult { status = 0, message = "OK", data = resultInfos };
+ }
+ catch (Exception ex)
+ {
+ entity.Result = 0;
+ entity.DealWith = 0;
+ entity.ResultData = ex.Message;
+ _manager.save(entity);
+ return ResponseResult.ResponseError(ex);
+ }
+ }
+
+ [HttpPost("GetList")]
+ public ResponseResult GetList()
+ {
+ try
+ {
+ dynamic resultInfos = new ExpandoObject();
+ resultInfos.tbBillList = m.GetList();
+ return new ResponseResult { status = 0, message = "OK", data = resultInfos };
+ }
+ catch (Exception ex)
+ {
+ return ResponseResult.ResponseError(ex);
+ }
+ }
+
+ [HttpPost("GetById")]
+ public ResponseResult GetById(int id)
+ {
+ try
+ {
+ dynamic resultInfos = new ExpandoObject();
+ resultInfos.tbBillList = m.GetById(id);
+ return new ResponseResult { status = 0, message = "OK", data = resultInfos };
+ }
+ catch (Exception ex)
+ {
+ return ResponseResult.ResponseError(ex);
+ }
+ }
+
+ [HttpPost("DeleteByIds")]
+ public ResponseResult DeleteByIds([FromBody] object[] ids)
+ {
+ try
+ {
+ dynamic resultInfos = new ExpandoObject();
+ resultInfos.tbBillList = m.DeleteByIds(ids);
+ return new ResponseResult { status = 0, message = "OK", data = resultInfos };
+ }
+ catch (Exception ex)
+ {
+ return ResponseResult.ResponseError(ex);
+ }
+ }
+}
diff --git a/StandardInterface/MESApplication/appsettings.json b/StandardInterface/MESApplication/appsettings.json
index 28cfc2a..59a3601 100644
--- a/StandardInterface/MESApplication/appsettings.json
+++ b/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"
}
}
--
Gitblit v1.9.3