啊鑫
2024-11-04 1c7dbaaa6da761231b4a6efe75d2ea83a286741c
生产订单接口
已添加5个文件
已修改3个文件
1224 ■■■■■ 文件已修改
MES.Service/Dto/webApi/ErpCAA.cs 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
MES.Service/Dto/webApi/ErpCAB.cs 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
MES.Service/Modes/Womcaa.cs 412 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
MES.Service/Modes/Womcab.cs 231 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
MES.Service/service/WomcaaManager.cs 206 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
MES.Service/service/WomcabManager.cs 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
MES.Service/util/StringUtil.cs 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
MESApplication/Controllers/WomcaaController.cs 260 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
MES.Service/Dto/webApi/ErpCAA.cs
@@ -14,7 +14,6 @@
    public string? FDate { get; set; }
    // public string? FBillType { get; set; }
    public string? FStatus { get; set; }
    public string? FMaterialId { get; set; }
    public string? FUnitId { get; set; }
@@ -29,7 +28,6 @@
    public string? FMTONO { get; set; }
    public string? FLot { get; set; }
    public string? FBomId { get; set; }
    public string? F_UNW_Text_xsddh { get; set; }
    public string? FCreateType { get; set; }
    public string? FSrcBillType { get; set; }
    public string? FSrcBillNo { get; set; }
@@ -43,13 +41,6 @@
    public string? PLAN_ID { get; set; }
    public string? PLAN_SEQ { get; set; }
    public string? PLAN_NUM { get; set; }
    public string? F_XIFG_Integer_tzk { get; set; }
    public string? erP_SCZZ { get; set; }
    public string? erP_WTZZ { get; set; }
    public string? F_XIFG_Base_w5c { get; set; }
    public string? F_XIFG_Qty_yrr { get; set; }
    public string? F_XIFG_Text_fg2 { get; set; }
    public string? F_XIFG_Text_yrr { get; set; }
    public string? F_XIFG_Text_qtr1 { get; set; }
    public string? F_XIFG_Base_83g1 { get; set; }
    public string? FPrdOrgId { get; set; }
    public string? FEnTrustOrgId { get; set; }
}
MES.Service/Dto/webApi/ErpCAB.cs
@@ -13,8 +13,7 @@
    public string? FMTONO { get; set; }
    public string? FLot { get; set; }
    public string? FStockID { get; set; }
    public string? FIssueType { get; set; }
    public string? F_UNW_Text_tpgy { get; set; }
    public string? FIssueType { get; set; }
    public string? FUnitID { get; set; }
    public string? FSupplyType { get; set; }
    public string? FStdQty { get; set; }
@@ -22,20 +21,14 @@
    public string? FNumerator { get; set; }
    public string? FDenominator { get; set; }
    public string? FENTRYID { get; set; }
    public string? FID { get; set; }
    public string? PID { get; set; }
    public string Id { get; set; }
    public string? FSeq { get; set; }
    public string? FFixScrapQty { get; set; }
    public string? FScrapRate { get; set; }
    public string? FSALEORDERNO { get; set; }
    //利特舜自定义字段
    public string? F_XIFG_Text_re5 { get; set; }
    public string? F_XIFG_Text_apv { get; set; }
    public string? F_XIFG_Base_re5 { get; set; }
    public decimal? F_XIFG_Qty_apv { get; set; }
    public string? F_XIFG_Base_apv { get; set; }
}
MES.Service/Modes/Womcaa.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,412 @@
using SqlSugar;
namespace MES.Service.Modes;
/// <summary>
///     å·¥å•表
/// </summary>
[SugarTable("WOMCAA")]
public class Womcaa
{
    /// <summary>
    ///     é»˜è®¤å€¼: (newid())
    /// </summary>
    [SugarColumn(ColumnName = "guid", IsPrimaryKey = true)]
    public Guid Guid { get; set; }
    /// <summary>
    ///     ERPID
    /// </summary>
    [SugarColumn(ColumnName = "ERPID")]
    public int? Erpid { get; set; }
    /// <summary>
    ///     å•据编号
    /// </summary>
    [SugarColumn(ColumnName = "CAA001")]
    public string? Caa001 { get; set; }
    /// <summary>
    ///     å•据类型(&quot;1、直接入库-普通生产 2、直接入库-返工生产 3、工序汇报-普通生产 4、工序汇报-返工生产&quot;)
    /// </summary>
    [SugarColumn(ColumnName = "CAA004")]
    public string? Caa004 { get; set; }
    /// <summary>
    ///     è®¡åˆ’下达日期
    /// </summary>
    [SugarColumn(ColumnName = "CAA005")]
    public string? Caa005 { get; set; }
    /// <summary>
    ///     äº§å“ç¼–码
    /// </summary>
    [SugarColumn(ColumnName = "CAA006")]
    public string? Caa006 { get; set; }
    /// <summary>
    ///     å•位
    /// </summary>
    [SugarColumn(ColumnName = "CAA009")]
    public string? Caa009 { get; set; }
    /// <summary>
    ///     é¢„计开工时间
    /// </summary>
    [SugarColumn(ColumnName = "CAA010")]
    public string? Caa010 { get; set; }
    /// <summary>
    ///     é¢„计完工时间
    /// </summary>
    [SugarColumn(ColumnName = "CAA011")]
    public string? Caa011 { get; set; }
    /// <summary>
    ///     å·¥å•数量
    /// </summary>
    [SugarColumn(ColumnName = "CAA012")]
    public int? Caa012 { get; set; }
    /// <summary>
    ///     BOM版次
    /// </summary>
    [SugarColumn(ColumnName = "CAA013")]
    public string? Caa013 { get; set; }
    // /// <summary>
    // ///     é”€å”®è®¢å•号
    // /// </summary>
    // [SugarColumn(ColumnName = "CAA015")]
    // public string? Caa015 { get; set; }
    /// <summary>
    ///     å¤‡æ³¨
    /// </summary>
    [SugarColumn(ColumnName = "CAA016")]
    public string? Caa016 { get; set; }
    /// <summary>
    ///     å·²æŽ’数量(弃用)
    /// </summary>
    [SugarColumn(ColumnName = "CAA017")]
    public int? Caa017 { get; set; }
    /// <summary>
    ///     ERP生产订单ID
    /// </summary>
    [SugarColumn(ColumnName = "CAA018")]
    public int? Caa018 { get; set; }
    /// <summary>
    ///     ERP生产订单序号
    /// </summary>
    [SugarColumn(ColumnName = "CAA019")]
    public int? Caa019 { get; set; }
    /// <summary>
    ///     ERP生产订单单号
    /// </summary>
    [SugarColumn(ColumnName = "CAA020")]
    public string? Caa020 { get; set; }
    /// <summary>
    ///     ç”Ÿäº§è½¦é—´
    /// </summary>
    [SugarColumn(ColumnName = "CAA021")]
    public string? Caa021 { get; set; }
    /// <summary>
    ///     å®¡æ ¸ç 
    /// </summary>
    [SugarColumn(ColumnName = "FSTATUS")]
    public int? Fstatus { get; set; }
    /// <summary>
    ///     å®¡æ ¸æ—¥æœŸ
    /// </summary>
    [SugarColumn(ColumnName = "CHECK_DATE")]
    public DateTime? CheckDate { get; set; }
    /// <summary>
    ///     å®¡æ ¸äºº
    /// </summary>
    [SugarColumn(ColumnName = "CHECK_USER")]
    public string? CheckUser { get; set; }
    /// <summary>
    ///     æœªæŽ’数量(弃用)
    /// </summary>
    [SugarColumn(ColumnName = "CAA022")]
    public int? Caa022 { get; set; }
    /// <summary>
    ///     ä¸šåŠ¡çŠ¶æ€(&quot;1,计划,2、计划确认 2、下达 4、开工 5、完工 6、结案,7、结算&quot;)
    /// </summary>
    [SugarColumn(ColumnName = "CAA023")]
    public string? Caa023 { get; set; }
    /// <summary>
    ///     å·²å…¥åº“数量
    /// </summary>
    [SugarColumn(ColumnName = "CAA024")]
    public int? Caa024 { get; set; }
    /// <summary>
    ///     å·¥è‰ºè·¯çº¿
    /// </summary>
    [SugarColumn(ColumnName = "ROUTING_ID")]
    public string? RoutingId { get; set; }
    /// <summary>
    ///     äº§çº¿
    /// </summary>
    [SugarColumn(ColumnName = "WORK_SHOP_ID")]
    public string? WorkShopId { get; set; }
    /// <summary>
    ///     ä»“库
    /// </summary>
    [SugarColumn(ColumnName = "DEPOT_CODE")]
    public string? DepotCode { get; set; }
    /// <summary>
    ///     å•据日期
    /// </summary>
    [SugarColumn(ColumnName = "CREATE_DATE")]
    public string? CreateDate { get; set; }
    /// <summary>
    ///     è®¡åˆ’组
    /// </summary>
    [SugarColumn(ColumnName = "WORK_GROUP_ID")]
    public string? WorkGroupId { get; set; }
    /// <summary>
    ///     è®¡åˆ’员
    /// </summary>
    [SugarColumn(ColumnName = "PLAN_ID")]
    public string? PlanId { get; set; }
    /// <summary>
    ///     å…¥åº“上限
    /// </summary>
    [SugarColumn(ColumnName = "STOCK_INLIMITH")]
    public string? StockInlimith { get; set; }
    /// <summary>
    ///     å…¥åº“下限
    /// </summary>
    [SugarColumn(ColumnName = "STOCK_INLIMITL")]
    public string? StockInlimitl { get; set; }
    /// <summary>
    ///     ä¸»è½¦é—´è°ƒåº¦å•
    /// </summary>
    [SugarColumn(ColumnName = "MTONO")]
    public string? Mtono { get; set; }
    /// <summary>
    ///     æ‰¹æ¬¡
    /// </summary>
    [SugarColumn(ColumnName = "LOT")]
    public string? Lot { get; set; }
    // /// <summary>
    // ///     å¼•用单号
    // /// </summary>
    // [SugarColumn(ColumnName = "CAA015_HEAD")]
    // public string? Caa015Head { get; set; }
    /// <summary>
    ///     åˆ¶å•类型
    /// </summary>
    [SugarColumn(ColumnName = "CREATE_TYPE")]
    public string? CreateType { get; set; }
    /// <summary>
    ///     æ¥æºå•据类型
    /// </summary>
    [SugarColumn(ColumnName = "SRC_BILL_TYPE")]
    public string? SrcBillType { get; set; }
    /// <summary>
    ///     æ¥æºå•号
    /// </summary>
    [SugarColumn(ColumnName = "SRC_BILL_NO")]
    public string? SrcBillNo { get; set; }
    /// <summary>
    ///     æ¥æºè¡Œå·
    /// </summary>
    [SugarColumn(ColumnName = "SRC_BILLENTRYSEQ")]
    public string? SrcBillentryseq { get; set; }
    /// <summary>
    ///     é”€å”®è®¢å•号
    /// </summary>
    [SugarColumn(ColumnName = "SALE_ORDER_NO")]
    public string? SaleOrderNo { get; set; }
    /// <summary>
    ///     é”€å”®è®¢å•行号
    /// </summary>
    [SugarColumn(ColumnName = "SALE_ORDER_ENTRYSEQ")]
    public string? SaleOrderEntryseq { get; set; }
    /// <summary>
    ///     å¼ºåˆ¶å…³é—­äºº
    /// </summary>
    [SugarColumn(ColumnName = "FORCE_CLOSERID")]
    public string? ForceCloserid { get; set; }
    /// <summary>
    ///     å…³é—­ç±»åž‹
    /// </summary>
    [SugarColumn(ColumnName = "CLOSE_TYPE")]
    public string? CloseType { get; set; }
    /// <summary>
    ///     åˆ†å•号
    /// </summary>
    [SugarColumn(ColumnName = "SRC_SPLIT_BILLNO")]
    public string? SrcSplitBillno { get; set; }
    /// <summary>
    ///     æ˜¯å¦ç®¡æŽ§
    /// </summary>
    [SugarColumn(ColumnName = "ERP_SCZZ")]
    public int? ErpSczz { get; set; }
    /// <summary>
    ///     æ˜¯å¦å§”托
    /// </summary>
    [SugarColumn(ColumnName = "ERP_WTZZ")]
    public int? ErpWtzz { get; set; }
    // /// <summary>
    // /// </summary>
    // [SugarColumn(ColumnName = "MAIN_PRODUCT_NO")]
    // public string? MainProductNo { get; set; }
    // /// <summary>
    // /// </summary>
    // [SugarColumn(ColumnName = "MAIN_PRODUCT_QTY")]
    // public int? MainProductQty { get; set; }
    // /// <summary>
    // /// </summary>
    // [SugarColumn(ColumnName = "CUSTOMER_ITEM_NUMBER")]
    // public string? CustomerItemNumber { get; set; }
    // /// <summary>
    // /// </summary>
    // [SugarColumn(ColumnName = "PACKING_LIST_NUMBER")]
    // public string? PackingListNumber { get; set; }
    // /// <summary>
    // /// </summary>
    // [SugarColumn(ColumnName = "CUSTOMER_NAME")]
    // public string? CustomerName { get; set; }
    // /// <summary>
    // /// </summary>
    // [SugarColumn(ColumnName = "CUSTOMER")]
    // public string? Customer { get; set; }
    /// <summary>
    /// </summary>
    [SugarColumn(ColumnName = "TYPE")]
    public string? Type { get; set; }
    /// <summary>
    /// </summary>
    [SugarColumn(ColumnName = "JA_BS")]
    public string? JaBs { get; set; }
    /// <summary>
    /// </summary>
    [SugarColumn(ColumnName = "JA_TIME")]
    public DateTime? JaTime { get; set; }
    /// <summary>
    /// </summary>
    [SugarColumn(ColumnName = "YP_NUM")]
    public int? YpNum { get; set; }
    /// <summary>
    ///     é¢„计完工时间备份
    /// </summary>
    [SugarColumn(ColumnName = "CAA011_1")]
    public string? Caa0111 { get; set; }
    /// <summary>
    /// </summary>
    [SugarColumn(ColumnName = "ERP_GYZZ")]
    public int? ErpGyzz { get; set; }
    /// <summary>
    /// </summary>
    [SugarColumn(ColumnName = "ERP_FLZZ")]
    public int? ErpFlzz { get; set; }
    /// <summary>
    ///     æ˜¯å¦å…¥åº“
    /// </summary>
    [SugarColumn(ColumnName = "ERP_SLZZ")]
    public int? ErpSlzz { get; set; }
    /// <summary>
    ///     æ˜¯å¦é€€åº“
    /// </summary>
    [SugarColumn(ColumnName = "ERP_RKZZ")]
    public int? ErpRkzz { get; set; }
    /// <summary>
    ///     æ˜¯å¦æ¢è´§
    /// </summary>
    [SugarColumn(ColumnName = "ERP_RKHZ")]
    public int? ErpRkhz { get; set; }
    /// <summary>
    ///     æ˜¯å¦å¯„å”®
    /// </summary>
    [SugarColumn(ColumnName = "ERP_JJDS")]
    public int? ErpJjds { get; set; }
    /// <summary>
    ///     æ˜¯å¦æŒ‰æ¬¾
    /// </summary>
    [SugarColumn(ColumnName = "ERP_BZDS")]
    public int? ErpBzds { get; set; }
    /// <summary>
    ///     æ˜¯å¦æ–°å»º
    /// </summary>
    [SugarColumn(ColumnName = "CAA025")]
    public int? Caa025 { get; set; }
    /// <summary>
    ///     é‡‡è´­è®¢å•号
    /// </summary>
    [SugarColumn(ColumnName = "FPURORDERNO")]
    public string? Fpurorderno { get; set; }
    /// <summary>
    ///     é‡‡è´­è®¢å•行号
    /// </summary>
    [SugarColumn(ColumnName = "FPURORDERENTRYSEQ")]
    public string? Fpurorderentryseq { get; set; }
    /// <summary>
    ///     ç”µæ°”产品型号
    /// </summary>
    [SugarColumn(ColumnName = "ELECTRICAL_PRODUCT_MODEL")]
    public string? ElectricalProductModel { get; set; }
    /// <summary>
    ///     ç”µæ°”产品名称
    /// </summary>
    [SugarColumn(ColumnName = "ELECTRICAL_PRODUCT_NAME")]
    public string? ElectricalProductName { get; set; }
}
MES.Service/Modes/Womcab.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,231 @@
using SqlSugar;
namespace MES.Service.Modes;
/// <summary>
///     ä»»åŠ¡å•ç‰©æ–™è¡¨
/// </summary>
[SugarTable("WOMCAB")]
public class Womcab
{
    /// <summary>
    ///     é»˜è®¤å€¼: (newid())
    /// </summary>
    [SugarColumn(ColumnName = "guid", IsPrimaryKey = true)]
    public Guid Guid { get; set; }
    /// <summary>
    ///     ERPID
    /// </summary>
    [SugarColumn(ColumnName = "ERPID")]
    public int? Erpid { get; set; }
    /// <summary>
    ///     å·¥å•单号
    /// </summary>
    [SugarColumn(ColumnName = "CAB001")]
    public string? Cab001 { get; set; }
    /// <summary>
    ///     åºå·
    /// </summary>
    [SugarColumn(ColumnName = "CAB002")]
    public string? Cab002 { get; set; }
    /// <summary>
    ///     ææ–™ç¼–码
    /// </summary>
    [SugarColumn(ColumnName = "CAB003")]
    public string? Cab003 { get; set; }
    /// <summary>
    ///     éœ€é¢†ç”¨é‡
    /// </summary>
    [SugarColumn(ColumnName = "CAB006")]
    public int? Cab006 { get; set; }
    /// <summary>
    ///     å·²é¢†ç”¨é‡
    /// </summary>
    [SugarColumn(ColumnName = "CAB007")]
    public int? Cab007 { get; set; }
    /// <summary>
    ///     å·¥è‰º
    /// </summary>
    [SugarColumn(ColumnName = "CAB008")]
    public string? Cab008 { get; set; }
    /// <summary>
    ///     å•位
    /// </summary>
    [SugarColumn(ColumnName = "CAB009")]
    public string? Cab009 { get; set; }
    /// <summary>
    ///     ç»„成用量
    /// </summary>
    [SugarColumn(ColumnName = "CAB012")]
    public int? Cab012 { get; set; }
    /// <summary>
    ///     æ˜¯å¦æ›¿æ–™
    /// </summary>
    [SugarColumn(ColumnName = "CAB014")]
    public string? Cab014 { get; set; }
    /// <summary>
    ///     PID
    /// </summary>
    [SugarColumn(ColumnName = "PID")]
    public int? Pid { get; set; }
    /// <summary>
    ///     ERP头ID
    /// </summary>
    [SugarColumn(ColumnName = "EID")]
    public int? Eid { get; set; }
    /// <summary>
    ///     ä½ç½®å·
    /// </summary>
    [SugarColumn(ColumnName = "POSITION_NO")]
    public string? PositionNo { get; set; }
    /// <summary>
    ///     å‘料组织
    /// </summary>
    [SugarColumn(ColumnName = "ISSUING_ORGANIZATION")]
    public string? IssuingOrganization { get; set; }
    /// <summary>
    ///     ä¾›åº”组织
    /// </summary>
    [SugarColumn(ColumnName = "SUPPLY_ORGANIZATION")]
    public string? SupplyOrganization { get; set; }
    /// <summary>
    ///     è´§ä¸»
    /// </summary>
    [SugarColumn(ColumnName = "OWNER_ID")]
    public string? OwnerId { get; set; }
    /// <summary>
    ///     è®¡åˆ’跟踪号
    /// </summary>
    [SugarColumn(ColumnName = "MTONO")]
    public string? Mtono { get; set; }
    /// <summary>
    ///     æ‰¹å·
    /// </summary>
    [SugarColumn(ColumnName = "LOT")]
    public string? Lot { get; set; }
    /// <summary>
    ///     ä»“库
    /// </summary>
    [SugarColumn(ColumnName = "DEPOT_CODE")]
    public string? DepotCode { get; set; }
    /// <summary>
    ///     å‘料方式
    /// </summary>
    [SugarColumn(ColumnName = "ISSUE_TYPE")]
    public string? IssueType { get; set; }
    /// <summary>
    ///     ä¾›åº”类型(C采购 Z自制 W委外)
    /// </summary>
    [SugarColumn(ColumnName = "SUPPLY_TYPE")]
    public string? SupplyType { get; set; }
    /// <summary>
    ///     åˆ†å­
    /// </summary>
    [SugarColumn(ColumnName = "NUMERATOR")]
    public string? Numerator { get; set; }
    /// <summary>
    ///     åˆ†æ¯
    /// </summary>
    [SugarColumn(ColumnName = "DENOMINATOR")]
    public string? Denominator { get; set; }
    /// <summary>
    ///     å›ºå®šæŸè€—
    /// </summary>
    [SugarColumn(ColumnName = "SCRAPQTY")]
    public string? Scrapqty { get; set; }
    /// <summary>
    ///     å˜åŠ¨æŸè€—çŽ‡
    /// </summary>
    [SugarColumn(ColumnName = "SCRAPRATE")]
    public string? Scraprate { get; set; }
    // /// <summary>
    // ///     å®¢æˆ·è´§å·
    // /// </summary>
    // [SugarColumn(ColumnName = "CUSTOMER_ITEM_NUMBER")]
    // public string? CustomerItemNumber { get; set; }
    // /// <summary>
    // ///     åŒ…装单号
    // /// </summary>
    // [SugarColumn(ColumnName = "PACKING_LIST_NUMBER")]
    // public string? PackingListNumber { get; set; }
    // /// <summary>
    // ///     ä¸»äº§å“
    // /// </summary>
    // [SugarColumn(ColumnName = "MAIN_PRODUCT")]
    // public string? MainProduct { get; set; }
    // /// <summary>
    // ///     ä¸»äº§å“æ•°é‡
    // /// </summary>
    // [SugarColumn(ColumnName = "MAIN_PRODUCT_QTY")]
    // public int? MainProductQty { get; set; }
    // /// <summary>
    // ///     çˆ¶é¡¹ç‰©æ–™åç§°
    // /// </summary>
    // [SugarColumn(ColumnName = "PARENT_ITEM_NAME")]
    // public string? ParentItemName { get; set; }
    // /// <summary>
    // ///     é”€å”®è®¢å•
    // /// </summary>
    // [SugarColumn(ColumnName = "FSALEORDERNO")]
    // public string? Fsaleorderno { get; set; }
    /// <summary>
    ///     è´§ä¸»ç±»åž‹
    /// </summary>
    [SugarColumn(ColumnName = "FOWNERTYPEID")]
    public string? Fownertypeid { get; set; }
    /// <summary>
    ///     é¡¹æ¬¡å·
    /// </summary>
    [SugarColumn(ColumnName = "FREPLACEGROUP")]
    public string? Freplacegroup { get; set; }
    /// <summary>
    ///     é”€å”®è®¢å•号
    /// </summary>
    [SugarColumn(ColumnName = "ERP_XSDDH")]
    public string? ErpXsddh { get; set; }
    /// <summary>
    ///     å­é¡¹ç±»åž‹
    /// </summary>
    [SugarColumn(ColumnName = "FMATERIALTYPE")]
    public string? Fmaterialtype { get; set; }
    /// <summary>
    /// </summary>
    [SugarColumn(ColumnName = "FUNITID")]
    public string? Funitid { get; set; }
}
MES.Service/service/WomcaaManager.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,206 @@
using MES.Service.DB;
using MES.Service.Dto.webApi;
using MES.Service.Modes;
using MES.Service.util;
using SqlSugar;
namespace MES.Service.service;
public class WomcaaManager : Repository<Womcaa>
{
    //当前类已经继承了 Repository å¢žã€åˆ ã€æŸ¥ã€æ”¹çš„æ–¹æ³•
    //这里面写的代码不会给覆盖,如果要重新生成请删除 WomcaaManager.cs
    private readonly WomcabManager _womcabManager = new();
    public bool SaveList(List<ErpWOM> rohIns)
    {
        var result = rohIns.Select(Save).ToList();
        return result.All(b => b);
    }
    public bool Save(ErpWOM wom)
    {
        var womErpCaa = wom.ErpCaa;
        var mesWomcaa = MapErpCAAtoWomcaa(womErpCaa);
        var mesWomcabs =
            MapErpCABtoWomcab(wom.ErpCabs);
        return UseTransaction(db =>
        {
            switch (womErpCaa.Type)
            {
                case "3":
                    return UpdateData(db, mesWomcaa, mesWomcabs) ? 1 : 0;
                case "2":
                case "4":
                //kyy 2024-09-13 å˜æ›´
                case "5":
                    return SaveOrUpdateData(db, mesWomcaa, mesWomcabs)
                        ? 1
                        : 0;
                default:
                    throw new NotImplementedException(
                        $"type没有{womErpCaa.Type}这个类型");
            }
        }) > 0;
    }
    private bool SaveOrUpdateData(SqlSugarScope db, Womcaa mesWomcaa,
        List<Womcab> mesWomcabs)
    {
        if (StringUtil.CheckGuid(mesWomcaa.Guid))
            base.DeleteById(mesWomcaa.Guid);
        if (mesWomcabs.Count > 0)
            db.Deleteable<Womcab>()
                .Where(s => s.Pid == mesWomcaa.Erpid).ExecuteCommand();
        var orUpdate = base.Insert(mesWomcaa);
        var baOrUpdate = _womcabManager.InsertRange(mesWomcabs);
        if (orUpdate && baOrUpdate) return true;
        throw new NotImplementedException("插入或更新失败");
    }
    private bool UpdateData(SqlSugarScope db, Womcaa mesWomcaa,
        List<Womcab> mesWomcabs)
    {
        var decimals = mesWomcabs.Select(s => s.Guid).ToArray();
        var update = base.DeleteById(mesWomcaa.Guid);
        var insertOrUpdate = db
            .Deleteable<Womcab>().In(decimals)
            .ExecuteCommand() > 0;
        if (update && insertOrUpdate) return true;
        throw new NotImplementedException("更新失败");
    }
    private Womcaa MapErpCAAtoWomcaa(ErpCAA dto)
    {
        var entity = new Womcaa
        {
            Erpid = Convert.ToInt32(dto.Id), ///     ERPID
            Caa001 = dto.FBillNo, ///     å•号
            Caa021 = dto.FWorkShopID, ///     å·¥ä½œè½¦é—´
            RoutingId = dto.FRoutingId, ///     å·¥è‰ºè·¯çº¿
            WorkShopId = dto.FREMWorkShopId, ///     äº§çº¿
            DepotCode = dto.FStockId, ///     ä»“库
            CreateDate = dto.FDate, ///     å•据日期
            Caa004 = dto.FBILLTYPE, ///     å•据类型
            Caa023 = dto.FStatus, ///     çŠ¶æ€ å®Œå·¥ï¼Œæœªå®Œå·¥
            Caa006 = dto.FMaterialId, ///     äº§å“ç¼–码
            Caa009 = dto.FUnitId, ///     å•位
            Caa012 = !string.IsNullOrEmpty(dto.FQty)
                ? Convert.ToInt32(dto.FQty)
                : null, ///     æ•°é‡
            WorkGroupId = dto.FWorkGroupId, ///     è®¡åˆ’组
            PlanId = dto.FPlannerID, ///     è®¡åˆ’员
            Caa010 = dto.FPlanStartDate, ///     é¢„计开工时间
            Caa011 = dto.FPlanFinishDate, ///     é¢„计完工时间
            Caa005 = dto.FConveyDate, ///     å¼€å•日期
            StockInlimith = dto.FStockInLimitH, ///     å…¥åº“上限
            StockInlimitl = dto.FStockInLimitL, ///     å…¥åº“下限
            Mtono = dto.FMTONO, ///     è®¡åˆ’跟踪号
            Lot = dto.FLot, ///     æ‰¹å·
            Caa013 = dto.FBomId, ///     BOM版次
            CreateType = dto.FCreateType, ///     ç”Ÿæˆæ–¹å¼
            SrcBillType = dto.FSrcBillType, ///     æºå•类型
            SrcBillNo = dto.FSrcBillNo, ///     æºå•编号
            SrcBillentryseq = dto.FSrcBillEntrySeq, ///     æºå•分录行号
            SaleOrderNo = dto.FSaleOrderNo, ///     éœ€æ±‚单据号
            SaleOrderEntryseq = dto.FSaleOrderEntrySeq, ///     éœ€æ±‚单据行号
            ForceCloserid = dto.FForceCloserId, ///     ç»“案人
            CloseType = dto.FCloseType, ///     ç»“案类型
            SrcSplitBillno = dto.FSrcSplitBillNo, ///     æºæ‹†åˆ†è®¢å•编号
            Caa016 = dto.FDESCRIPTION, ///     å¤‡æ³¨
            Caa018 = !string.IsNullOrEmpty(dto.PLAN_ID)
                ? Convert.ToInt32(dto.PLAN_ID)
                : null, ///     ERP源单ID
            Caa019 = !string.IsNullOrEmpty(dto.PLAN_SEQ)
                ? Convert.ToInt32(dto.PLAN_SEQ)
                : null, ///     ERP源单行号
            Caa020 = dto.PLAN_NUM, ///     ERP源单单号(任务单号)
            //Caa015 = dto.F_UNW_Text_xsddh, ///     é”€å”®è®¢å•号
            ErpSczz = Convert.ToInt32(dto.FPrdOrgId), ///     ç”Ÿäº§ç»„织ID
            ErpWtzz = Convert.ToInt32(dto.FEnTrustOrgId), ///     å§”托组织ID
            //Caa015Head = dto.F_XIFG_Integer_tzk, ///     é”€å”®è®¢å•行号
            //MainProductNo = dto.F_XIFG_Base_w5c, ///     ä¸»äº§å“ç¼–码
            // MainProductQty =
            //     Convert.ToInt32(dto.F_XIFG_Qty_yrr), ///     ä¸»äº§å“ç”Ÿäº§æ•°é‡
            // CustomerItemNumber = dto.F_XIFG_Text_fg2, ///     å®¢æˆ·è´§å·
            // PackingListNumber = dto.F_XIFG_Text_yrr, ///     åŒ…装单号
            // CustomerName = dto.F_XIFG_Text_qtr1, ///     å®¢æˆ·åç§°
            // Customer = dto.F_XIFG_Base_83g1, ///     å®¢æˆ·
            Caa0111 = dto.FPlanFinishDate ///     é¢„计完工时间备份
        };
        var single = base.GetSingle(it => it.Erpid == entity.Erpid);
        if (single != null) entity.Guid = single.Guid;
        return entity;
    }
    private List<Womcab> MapErpCABtoWomcab(List<ErpCAB> dtoList)
    {
        var womcabList = new List<Womcab>();
        foreach (var dto in dtoList)
        {
            var womcab = new Womcab
            {
                Erpid = Convert.ToInt32(dto.FENTRYID), /// ERPID
                Cab001 = dto.FBillNo, /// å·¥å•单号
                Cab002 = dto.FSeq, /// åºå·
                Cab003 = dto.FMaterialID, /// ææ–™ç¼–码
                Cab006 = !string.IsNullOrEmpty(dto.FNeedQty)
                    ? Convert.ToInt32(dto.FNeedQty)
                    : null, /// éœ€é¢†ç”¨é‡
                Cab007 = !string.IsNullOrEmpty(dto.FPickedQty)
                    ? Convert.ToInt32(dto.FPickedQty)
                    : null, /// å·²é¢†ç”¨é‡
                PositionNo = dto.FPositionNO, /// ä½ç½®å·
                SupplyOrganization = dto.FChildSupplyOrgId, /// ä¾›åº”组织
                IssuingOrganization = dto.FSUPPLYORG, /// å‘料组织
                OwnerId = dto.FOwnerID, /// è´§ä¸»
                Mtono = dto.FMTONO, /// è®¡åˆ’跟踪号
                Lot = dto.FLot, /// æ‰¹å·
                DepotCode = dto.FStockID, /// ä»“库
                IssueType = dto.FIssueType, /// å‘料方式
                // Cab008 = dto.F_UNW_Text_tpgy, /// å·¥è‰º
                Cab009 = dto.FUnitID, /// å•位
                SupplyType = dto.FSupplyType, /// ä¾›åº”类型(C采购 Z自制 W委外)
                Cab012 = !string.IsNullOrEmpty(dto.FStdQty)
                    ? Convert.ToInt32(dto.FStdQty)
                    : null, /// ç»„成用量
                Cab014 = dto.FIsKeyItem, /// æ˜¯å¦æ›¿æ–™
                Numerator = dto.FNumerator, /// åˆ†å­
                Denominator = dto.FDenominator, /// åˆ†æ¯
                Pid = Convert.ToInt32(dto.PID), /// ERP头ID
                Eid = Convert.ToInt32(dto.Id), /// ERP ID
                Scrapqty = dto.FFixScrapQty, /// å›ºå®šæŸè€—
                Scraprate = dto.FScrapRate, /// å˜åŠ¨æŸè€—çŽ‡
                // Fsaleorderno = dto.FSALEORDERNO, /// é”€å”®è®¢å•
                //
                // CustomerItemNumber = dto.F_XIFG_Text_re5, /// å®¢æˆ·è´§å·
                // PackingListNumber = dto.F_XIFG_Text_apv, /// åŒ…装单号
                // MainProduct = dto.F_XIFG_Base_re5, /// ä¸»äº§å“
                // MainProductQty =
                //     Convert.ToInt32(dto.F_XIFG_Qty_apv), /// ä¸»äº§å“æ•°é‡
                // ParentItemName = dto.F_XIFG_Base_apv /// çˆ¶é¡¹ç‰©æ–™åç§°
            };
            var entity = Db.Queryable<Womcab>()
                .Where(s => s.Erpid == womcab.Erpid).Single();
            if (entity != null) womcab.Guid = entity.Guid;
            womcabList.Add(womcab);
        }
        return womcabList;
    }
}
MES.Service/service/WomcabManager.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,78 @@
using SqlSugar;
using System;
using System.Collections.Generic;
using MES.Service.DB;
using MES.Service.Modes;
namespace MES.Service.service
{
public class WomcabManager : Repository<Womcab>
{
    //当前类已经继承了 Repository å¢žã€åˆ ã€æŸ¥ã€æ”¹çš„æ–¹æ³•
    //这里面写的代码不会给覆盖,如果要重新生成请删除 WomcabManager.cs
    #region æ•™å­¦æ–¹æ³•
    /// <summary>
    /// ä»“储方法满足不了复杂业务需求,业务代码请在这里面定义方法
    /// </summary>
    public void Study()
    {
       /*********查询*********/
        var data1 = base.GetById(1);//根据ID查询
        var data2 = base.GetList();//查询所有
        var data3 = base.GetList(it => 1 == 1);  //根据条件查询
        //var data4 = base.GetSingle(it => 1 == 1);//根据条件查询一条,如果超过一条会报错
        var p = new PageModel() { PageIndex = 1, PageSize = 2 };// åˆ†é¡µæŸ¥è¯¢
        var data5 = base.GetPageList(it => 1 == 1, p);
        Console.Write(p.TotalCount);//返回总数
        var data6 = base.GetPageList(it => 1 == 1, p, it => SqlFunc.GetRandom(), OrderByType.Asc);// åˆ†é¡µæŸ¥è¯¢åŠ æŽ’åº
        Console.Write(p.TotalCount);//返回总数
        List<IConditionalModel> conModels = new List<IConditionalModel>(); //组装条件查询作为条件实现 åˆ†é¡µæŸ¥è¯¢åŠ æŽ’åº
        conModels.Add(new ConditionalModel() { FieldName= typeof(Womcab).GetProperties()[0].Name, ConditionalType = ConditionalType.Equal, FieldValue = "1" });//id=1
        var data7 = base.GetPageList(conModels, p, it => SqlFunc.GetRandom(), OrderByType.Asc);
        base.AsQueryable().Where(x => 1 == 1).ToList();//支持了转换成queryable,我们可以用queryable实现复杂功能
        /*********插入*********/
        var insertData = new Womcab() { };//测试参数
        var insertArray = new Womcab[] { insertData };
        base.Insert(insertData);//插入
        base.InsertRange(insertArray);//批量插入
        var id = base.InsertReturnIdentity(insertData);//插入返回自增列
        base.AsInsertable(insertData).ExecuteCommand();//我们可以转成 Insertable实现复杂插入
        /*********更新*********/
        var updateData = new Womcab() {  };//测试参数
        var updateArray = new Womcab[] { updateData };//测试参数
        base.Update(updateData);//根据实体更新
        base.UpdateRange(updateArray);//批量更新
        //base.Update(it => new Womcab() { ClassName = "a", CreateTime = DateTime.Now }, it => it.id==1);// åªæ›´æ–°ClassName列和CreateTime列,其它列不更新,条件id=1
        base.AsUpdateable(updateData).ExecuteCommand();  //转成Updateable可以实现复杂的插入
        /*********删除*********/
        var deldata = new Womcab() {  };//测试参数
        base.Delete(deldata);//根据实体删除
        base.DeleteById(1);//根据主键删除
        base.DeleteById(new int[] { 1,2});//根据主键数组删除
        base.Delete(it=>1==2);//根据条件删除
        base.AsDeleteable().Where(it=>1==2).ExecuteCommand();//转成Deleteable实现复杂的操作
    }
    #endregion
 }
}
MES.Service/util/StringUtil.cs
@@ -19,4 +19,11 @@
    {
        return !string.IsNullOrEmpty(value);
    }
    public static bool CheckGuid(Guid? guid)
    {
        if (guid == Guid.Empty)
            return false;
        return guid != null;
    }
}
MESApplication/Controllers/WomcaaController.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,260 @@
using System.Dynamic;
using MES.Service.Dto.webApi;
using MES.Service.Modes;
using MES.Service.service;
using MES.Service.util;
using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json;
namespace MESApplication.Controllers;
[ApiController]
[Route("api/[controller]")]
public class WomcaaController : ControllerBase
{
    private readonly MessageCenterManager _manager = new();
    private readonly WomcaaManager m = new();
    private readonly string METHOD = "POST";
    private readonly string TableName = "WOMCAA";
    private readonly string URL = "http://localhost:10054/api/Womcaa/";
    //
    [HttpPost("Save")]
    public ResponseResult Save(ErpWOM rohIn)
    {
        var entity = new MessageCenter();
        entity.TableName = TableName;
        entity.Url = URL + "Save";
        entity.Method = METHOD;
        entity.Data = JsonConvert.SerializeObject(rohIn);
        entity.Status = 1;
        entity.CreateBy = "PL017";
        try
        {
            dynamic resultInfos = new ExpandoObject();
            var save = m.Save(rohIn);
            resultInfos.tbBillList = save;
            entity.Result = 0;
            entity.DealWith = 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("SaveList")]
    public ResponseResult SaveList(List<ErpWOM> units)
    {
        var entity = new MessageCenter();
        entity.TableName = TableName;
        entity.Url = URL + "SaveList";
        entity.Method = METHOD;
        entity.Data = JsonConvert.SerializeObject(units);
        entity.Status = 1;
        entity.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);
        }
    }
    /// <summary>
    ///     èŽ·å–æ‰€æœ‰
    /// </summary>
    /// <returns></returns>
    [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);
        }
    }
    /// <summary>
    ///     æ ¹æ®ä¸»é”®èŽ·å–
    /// </summary>
    /// <returns></returns>
    [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);
        }
    }
    /// <summary>
    ///     æ ¹æ®ä¸»é”®åˆ é™¤
    /// </summary>
    /// <returns></returns>
    [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);
        }
    }
    /// <summary>
    ///     æ·»åŠ 
    /// </summary>
    /// <returns></returns>
    [HttpPost("Insert")]
    public ResponseResult Add([FromBody] Womcaa data)
    {
        try
        {
            dynamic resultInfos = new ExpandoObject();
            resultInfos.tbBillList = m.Insert(data);
            return new ResponseResult
            {
                status = 0,
                message = "OK",
                data = resultInfos
            };
        }
        catch (Exception ex)
        {
            return ResponseResult.ResponseError(ex);
        }
    }
    /// <summary>
    ///     æ·»åŠ è¿”å›žè‡ªå¢ž
    /// </summary>
    /// <returns></returns>
    [HttpPost("InsertReturnIdentity")]
    public ResponseResult InsertReturnIdentity([FromBody] Womcaa data)
    {
        try
        {
            dynamic resultInfos = new ExpandoObject();
            resultInfos.tbBillList = m.InsertReturnIdentity(data);
            return new ResponseResult
            {
                status = 0,
                message = "OK",
                data = resultInfos
            };
        }
        catch (Exception ex)
        {
            return ResponseResult.ResponseError(ex);
        }
    }
    /// <summary>
    ///     ä¿®æ”¹
    /// </summary>
    /// <returns></returns>
    [HttpPost("Update")]
    public ResponseResult Update([FromBody] Womcaa data)
    {
        try
        {
            dynamic resultInfos = new ExpandoObject();
            resultInfos.tbBillList = m.Update(data);
            return new ResponseResult
            {
                status = 0,
                message = "OK",
                data = resultInfos
            };
        }
        catch (Exception ex)
        {
            return ResponseResult.ResponseError(ex);
        }
    }
}