chenhaozhe
2025-10-26 1948124877478db58b27841f9398aed97ef13053
WebAPI/Controllers/²Ö´æ¹ÜÀí/ίÍâÓÃÁÏ/WW_PPBomBillController.cs
@@ -89,9 +89,125 @@
                return new SQLHelper.ClsCN().RunProcReturn(sql, "h_v_WW_PPBomBillList");
            }
        }
        }
        #region å§”外用料清单订单 é‡‘蝶同步
        [Route("WW_PPBomBillController/SaveWW_PPBomBillApi")]
        [HttpPost]
        public object SaveWW_PPBomBillApi([FromBody] JObject sMainSub)
        {
            LogService.Write("开始同步");
            try
            {
                LogService.Write($"接收到的完整数据: {sMainSub.ToString()}");
                var model = sMainSub["model"].ToString();
                var entry = sMainSub["model"]["HENTRY"].ToString();
                model = "[" + model.ToString() + "]";
                LogService.Write($"主表模型JSON: {model}");
                LogService.Write($"子表模型JSON: {entry}");
                SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
                ListModels oListModels = new ListModels();
                List<ClsWW_PPBomBill> mainList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<ClsWW_PPBomBill>>(model);
                List<ClsWW_PPBomBillSubERP> subList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<ClsWW_PPBomBillSubERP>>(entry);
                // æ·»åŠ ç±»åž‹æ£€æŸ¥æ—¥å¿—
                LogService.Write($"主表HInterID类型: {mainList[0].HInterID.GetType()}");
                LogService.Write($"主表HInterID值: {mainList[0].HInterID}");
                string sql = string.Empty;
                LogService.Write($"主模型数据{mainList}");
                LogService.Write($"子模型数据{subList}");
                //保存
                oCN.BeginTran();
                int hInterID = mainList[0].HInterID;
                LogService.Write($"开始处理 HInterID: {hInterID}");
                string checkSql = $"SELECT COUNT(1) FROM WW_PPBomBillSub WHERE HInterID = {hInterID}";
                LogService.Write($"检查子表数据是否存在: {checkSql}");
                // 2. åˆ é™¤å­è¡¨æ•°æ®
                string deleteSubSql = $"DELETE FROM WW_PPBomBillSub WHERE HInterID = {hInterID}";
                LogService.Write($"删除子表SQL: {deleteSubSql}");
                oCN.RunProc(deleteSubSql, ref DBUtility.ClsPub.sExeReturnInfo);
                LogService.Write("子表数据删除完成");
                // 3. åˆ é™¤ä¸»è¡¨æ•°æ®
                string deleteMainSql = $"DELETE FROM WW_PPBomBillMain WHERE HInterID = {hInterID}";
                LogService.Write($"删除主表SQL: {deleteMainSql}");
                oCN.RunProc(deleteMainSql, ref DBUtility.ClsPub.sExeReturnInfo);
                LogService.Write("主表数据删除完成");
                oCN.RunProc($@"insert into WW_PPBomBillMain
               (HInterID,HYear,HPeriod,HBillType,HBillSubType,HDate
               ,HBillNo,HBillStatus,HICMOInterID,HICMOEntryID,HSUBBILLNO,HSUBREQENTRYSEQ
               ,HMaterID,HUnitID,HQty,HSupID,HDEPTID,HPOOrderBillNo,HPOOrderSeq
               ,HMaker,HMakeDate,HChecker,HCheckDate,HUpDater,HUpDateDate
               ,HSeOrderBillNo,HSeOrderInterID,HSeOrderEntryID,HSeOrderSEQ
               ,HPRDORGID,HENTRUSTORGID,HPARENTOWNERID,HPARENTOWNERTYPEID
               ,HERPInterID,HERPBillType,HSETTLEORGID,HREQSRC)
                  values({mainList[0].HInterID},'{mainList[0].HYear}','{mainList[0].HPeriod}','{mainList[0].HBillType}','{mainList[0].HBillSubType}','{mainList[0].HDate}','{mainList[0].HBillNo}'
           ,'{mainList[0].HBillStatus}','{mainList[0].HICMOInterID}','{mainList[0].HICMOEntryID}','{mainList[0].HSUBBILLNO}','{mainList[0].HSUBREQENTRYSEQ}','{mainList[0].HMaterID}',{mainList[0].HUnitID},'{mainList[0].HQty}','{mainList[0].HSupID}','{mainList[0].HDeptID}',
            '{mainList[0].HPOOrderBillNo}','{mainList[0].HPOOrderSeq}','{mainList[0].HMaker}','{mainList[0].HMakeDate}','{mainList[0].HChecker}','{mainList[0].HCheckDate}','{mainList[0].HUpDater}','{mainList[0].HUpDateDate}','{mainList[0].HSeOrderBillNo}','{mainList[0].HSeOrderInterID}','{mainList[0].HSeOrderEntryID}','{mainList[0].HSeOrderSEQ}'
            ,'{mainList[0].HPRDORGID}','{mainList[0].HENTRUSTORGID}','{mainList[0].HPARENTOWNERID}'
            ,'{mainList[0].HPARENTOWNERTYPEID}','{mainList[0].HERPInterID}','{mainList[0].HERPBillType}','{mainList[0].HSETTLEORGID}','{mainList[0].HREQSRC}'
)", ref DBUtility.ClsPub.sExeReturnInfo);
                LogService.Write("主表插入成功");
                foreach (var oSub in subList)
                {
                    var count = subList.Count();
                    LogService.Write($"子表数据条数为{count}");
                    //新增子表:
                    oCN.RunProc($@"   insert into WW_PPBomBillSub
                   (HInterID,HEntryID,HMaterID,HUnitID,HQty,HQtyMust,HWHID,HRemark
                   ,HSourceInterID,HSourceEntryID,HSourceBillNo,HSourceBillType
                   ,HICMOInterID,HICMOEntryID,HICMOBillNo
                   ,HCHILDSUPPLYORGID,HSUPPLYORGID,HENTRUSTPICKORGID,HSRCTRANSORGID,HGROUPBYOWNERID,HOWNERID,HOWNERTYPEID
                   ,HRelationQty,HMoveStockQty,HAuxPropID,HBatchNO,HMTONo,HQtyScrap,HERPInterID,HERPEntryID
                   ,HBackRelationQty
                   ,HPROCESSID,HBASEUNITID,HPROJECTNO,HOPERID,HSEQ
                   ,HSTOCKSTATUSID,HRESERVETYPE
                   )
                      values({oSub.HInterID},'{oSub.HEntryID}','{oSub.HMaterID}','{oSub.HUnitID}','{oSub.HQty}',{oSub.HQtyMust},'{oSub.HWHID}',
                        '{oSub.HRemark}','{oSub.HSourceInterID}','{oSub.HSourceEntryID}','{oSub.HSourceBillNo}','{oSub.HSourceBillType}',{oSub.HICMOInterID },'{oSub.HICMOEntryID}','{oSub.HICMOBillNo}','{oSub.HCHILDSUPPLYORGID}','{oSub.HSUPPLYORGID}'
                        ,'{oSub.HENTRUSTPICKORGID}','{oSub.HSRCTRANSORGID}','{oSub.HGROUPBYOWNERID}','{oSub.HOWNERID}','{oSub.HOWNERTYPEID}','{oSub.HRelationQty}','{oSub.HMoveStockQty}','{oSub.HAuxPropID}','{oSub.HBatChNo}','{oSub.HMTONo}','{oSub.HQtyScrap}',
                        {oSub.HERPInterID},'{oSub.HERPEntryID}','{oSub.HBackRelationQty}','{oSub.HPROCESSID}',{oSub.HBASEUNITID },'{oSub.HPROJECTNO}','{oSub.HOPERID}','{oSub.HSEQ}','{oSub.HSTOCKSTATUSID}','{oSub.HRESERVETYPE}'
                        )", ref DBUtility.ClsPub.sExeReturnInfo);
                }
                LogService.Write("子表插入成功");
                oCN.Commit();
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "保存成功!";
                objJsonResult.data = 1;
                return objJsonResult;
            }
            catch (Exception e)
            {
                LogService.Write("异常信息:" + e.ToString());
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "保存失败!" + e.ToString();
                objJsonResult.data = 1;
                return objJsonResult;
            }
        }
        #endregion
    }
    #endregion
}