zzr99
2022-01-05 090e358965800ecf7707fbfc69cef0e018836ae1
WebAPI/Controllers/Sc_ProcessMangementController.cs
@@ -722,7 +722,7 @@
            ListModels oListModels = new ListModels();
            try
            {
                WebAPI.DLL.ClsSc_ProcessReport ReportModel = new WebAPI.DLL.ClsSc_ProcessReport();
                DAL.ClsSc_ProcessReport ReportModel = new DAL.ClsSc_ProcessReport();
                List<WebAPI.Models.Sc_ProcessReportViewModel> ls = new List<WebAPI.Models.Sc_ProcessReportViewModel>();
                ls = oListModels.getObjectByJson_Report(msg1);
                int i = 0;
@@ -924,7 +924,7 @@
            ListModels oListModels = new ListModels();
            try
            {
                WebAPI.DLL.ClsSc_ProcessReport ReportModel = new WebAPI.DLL.ClsSc_ProcessReport();
                DAL.ClsSc_ProcessReport ReportModel = new DAL.ClsSc_ProcessReport();
                List<Model.ClsSc_ProcessReportMain> lsmain = new List<Model.ClsSc_ProcessReportMain>();
                msg2 = msg2.Replace("\\", "");
                msg2 = msg2.Replace("\n", "");  //\n
@@ -2177,6 +2177,168 @@
        }
        /// <summary>
        /// 保存委外工单信息
        /// </summary>
        /// <param name="msg"></param>
        /// <returns></returns>
        [Route("SaveWWWorkOrder")]
        [HttpPost]
        public object SaveWWWorkOrder([FromBody] JObject msg)
        {
            var _value = msg["msg"].ToString();
            string msg1 = _value.ToString();
            string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
            string msg2 = sArray[0].ToString();
            string msg3 = sArray[1].ToString();
            string UserName = "";
            ListModels oListModels = new ListModels();
            try
            {
                WebAPI.DLL.ClsWW_EntrustWorkOrderBill WorkOrder = new WebAPI.DLL.ClsWW_EntrustWorkOrderBill();
                List<Models.ClsWW_EntrustWorkOrderBillMain> lsmain = new List<Models.ClsWW_EntrustWorkOrderBillMain>();
                msg2 = msg2.Replace("\\", "");
                msg2 = msg2.Replace("\n", "");
                lsmain = oListModels.getObjectByJson_WorkOrderMain(msg2);
                foreach (Models.ClsWW_EntrustWorkOrderBillMain oItem in lsmain)
                {
                    UserName = oItem.HMaker;
                    oItem.HMakeDate = DBUtility.ClsPub.isStrNull(DateTime.Now.ToString("yyyy-MM-dd"));
                    oItem.HYear = DBUtility.ClsPub.isLong(DateTime.Now.Year);
                    oItem.HDate = DateTime.Now;
                    oItem.HMainSourceInterID = oItem.HInterID;
                    oItem.HInterID = 0;
                    WorkOrder.omodel = oItem;
                }
                //表体数据
                //按 },{来拆分数组 //去掉【和】
                msg3 = msg3.Substring(1, msg3.Length - 2);
                msg3 = msg3.Replace("\\", "");
                msg3 = msg3.Replace("\n", "");  //\n
                List<WebAPI.Models.Sc_ProcessPlanViewModel> ls = new List<WebAPI.Models.Sc_ProcessPlanViewModel>();
                ls = oListModels.getObjectByJson_SendWorkSub(msg3);
                int i = 0;
                List<Models.ClsWW_EntrustWorkOrderBillSub> lss = new List<Models.ClsWW_EntrustWorkOrderBillSub>();
                foreach (WebAPI.Models.Sc_ProcessPlanViewModel oItemSub in ls)
                {
                    i++;
                    Models.ClsWW_EntrustWorkOrderBillSub WorkOrdersub = new Models.ClsWW_EntrustWorkOrderBillSub();
                    WorkOrdersub.HProcID = oItemSub.hprocid.Value;//--工序ID
                    WorkOrdersub.HSourceInterID = oItemSub.hmainid.Value; //--源单id
                    WorkOrdersub.HSourceEntryID = oItemSub.hsubid.Value; //--源单子ID
                    WorkOrdersub.HSourceBillNo = oItemSub.单据号; //--源单单号
                    WorkOrdersub.HSourceBillType= oItemSub.HBillType; //--源单类型
                    WorkOrdersub.HRelationQty = 0;  //--关联数量
                    WorkOrdersub.HRelationMoney = 0; //--关联金额
                    WorkOrdersub.HOrderBillNo = ""; //--销售订单号
                    WorkOrdersub.HMaterLenModel = ""; //--材质
                    WorkOrdersub.HMaterQty = 0; //--材质数量
                    WorkOrdersub.HMaterID = oItemSub.HMaterID.Value; //--物料
                    WorkOrdersub.HQty = (double)oItemSub.计划数量; //--订单数量
                    WorkOrdersub.HEntrustType = "3739"; //--委外类型
                    WorkOrdersub.HNextProcName = ""; //--下道工序
                    WorkOrdersub.HPrice =0; //加工费
                    WorkOrdersub.HOutQty = 0;  //--关联发出数量
                    WorkOrdersub.HInQty =0; //--关联接收数量
                    WorkOrdersub.HBackSupDate = DateTime.Now; //--实际交货日期
                    WorkOrdersub.HInDate = DateTime.Now; //--交货日期
                    WorkOrdersub.HWorkProcFlow = ""; //--工艺流
                    WorkOrdersub.HLeftMater = ""; //--余料情况
                    if (oItemSub.计划数量 <= 0)
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "保存失败!第" + i.ToString() + "行数量不大于0无法保存!";
                        objJsonResult.data = 1;
                        return objJsonResult;
                    }
                    if (Convert.ToInt32(WorkOrdersub.HQty) > Convert.ToInt32(oItemSub.计划数量))
                    {
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "保存失败!第" + i.ToString() + "行派工数量不能大于计划单数量!";
                        objJsonResult.data = 1;
                        return objJsonResult;
                    }
                    WorkOrdersub.HEntryID = i;
                    WorkOrdersub.HEntryCloseDate = DBUtility.ClsPub.isDate(DateTime.Now);
                    WorkOrdersub.HRemark = "";
                    WorkOrdersub.HCloseMan = "";
                    WorkOrdersub.HCloseType = false;
                    WorkOrdersub.HSourceBillType = oItemSub.HBillType;
                    lss.Add(WorkOrdersub);//先把数据存放到委外工单子表集合里
                }
                if (lss.Count > 0)
                {
                    //然后再循环保存到委外工单子表的集合里
                    foreach (Models.ClsWW_EntrustWorkOrderBillSub Itemsendwork in lss)
                    {
                        WorkOrder.DetailColl.Add(Itemsendwork);
                    }
                }
                else
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "保存失败!lss集合小于0";
                    objJsonResult.data = 1;
                    return objJsonResult;
                }
                //保存
                //保存完毕后处理
                bool bResult;
                if (WorkOrder.omodel.HInterID == 0)
                {
                    // bResult = oBill.AddBill(ref DBUtility.ClsPub.sExeReturnInfo);
                    bResult = WorkOrder.AddBill(ref DBUtility.ClsPub.sExeReturnInfo);
                }
                else
                {
                    bResult = WorkOrder.ModifyBill(WorkOrder.omodel.HInterID, ref DBUtility.ClsPub.sExeReturnInfo);
                }
                if (bResult)
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 1;
                    objJsonResult.Message = "保存成功!";
                    //WebAPIController.Add_Log("送货单下推", UserName, "生成送货单");
                    objJsonResult.data = 1;
                    return objJsonResult;
                }
                else
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "保存失败!" + DBUtility.ClsPub.sExeReturnInfo;
                    objJsonResult.data = 1;
                    return objJsonResult;
                }
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "保存失败!" + e.ToString();
                objJsonResult.data = 1;
                return objJsonResult;
            }
        }
    }
}