1
duhe
3 天以前 78549fbacdf433bb0026a2c2f41351e9638cb3d4
WebAPI/Controllers/SCGL/Sc_MESBeginWorkBillController.cs
@@ -767,11 +767,11 @@
            try
            {
                DLL.ClsSc_MESBeginWorkBill oBill = new DLL.ClsSc_MESBeginWorkBill();
                List<Models.ClsSc_MESBeginWorkBillMain> lsmain = new List<Models.ClsSc_MESBeginWorkBillMain>();
                List<ClsSc_MESBeginWorkBillMain> lsmain = new List<ClsSc_MESBeginWorkBillMain>();
                msg2 = msg2.Replace("\\", "");
                msg2 = msg2.Replace("\n", "");  //\n
                lsmain = oListModels.getObjectByJson_Gy_MESBeginWorkFrom(msg2);
                foreach (Models.ClsSc_MESBeginWorkBillMain oItem in lsmain)
                foreach (ClsSc_MESBeginWorkBillMain oItem in lsmain)
                {
                    if (refSav == "Add")
                    {
@@ -856,10 +856,10 @@
                msg3 = msg3.Substring(1, msg3.Length - 2);
                msg3 = msg3.Replace("\\", "");
                msg3 = msg3.Replace("\n", "");  //\n
                List<Models.ClsSc_MESBeginWorkBillSub_RelationBill> ls = new List<Models.ClsSc_MESBeginWorkBillSub_RelationBill>();
                List<ClsSc_MESBeginWorkBillSub_RelationBill> ls = new List<ClsSc_MESBeginWorkBillSub_RelationBill>();
                ls = oListModels.getObjectByJson_Sc_MESBeginWorkBillSub_RelationBill(msg3);
                int i = 0;
                foreach (Models.ClsSc_MESBeginWorkBillSub_RelationBill oItemSub in ls)
                foreach (ClsSc_MESBeginWorkBillSub_RelationBill oItemSub in ls)
                {
                    i++;
                    oItemSub.HEntryID = i;
@@ -1038,14 +1038,14 @@
                {
                    objJsonResult.code = "1";
                    objJsonResult.count = 1;
                    objJsonResult.Message = "工单暂未处理,可以操作!";
                    objJsonResult.Message = "工单已处理,不允许操作!";
                    objJsonResult.data = null;
                }
                else
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "工单已处理,不允许操作!";
                    objJsonResult.Message = "工单未处理,允许操作!";
                    objJsonResult.data = null;
                }
@@ -1614,8 +1614,198 @@
            return objJsonResult;
        }
        #endregion
        #region 报工平台快捷开工
        [Route("Sc_MESBeginWorkBill/FastBeginWorkBill")]
        [HttpGet]
        public object FastBeginWorkBill(string HBillType, int HSourceInterID, int HSourceEntryID, string HSourceBillNo, string HSourceBillType,string user)
        {
            //保存权限
            if (!DBUtility.ClsPub.Security_Log_second("MES_MESBeginWorkBill_Edit", 1, false, user))
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = "无保存权限!";
                objJsonResult.data = null;
                return objJsonResult;
            }
            //判断会计期是否合理
            string s = "";
            int sYear = 0;
            int sPeriod = 0;
            if (DBUtility.Xt_BaseBillFun.Fun_AllowYearPeriod(DateTime.Now, ref sYear, ref sPeriod, ref s) == false)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = s;
                objJsonResult.data = null;
                return objJsonResult;
            }
            ListModels oListModels = new ListModels();
            try
            {
                ds = oCN.RunProcReturn("exec h_p_JIT_GetInfoByICMOStatusInterID @HSourceInterID=" + HSourceInterID + ",@HSourceEntryID=" + HSourceEntryID + ",@HSourceBillNo='" + HSourceBillNo + "',@HSourceBillType='" + HBillType + "'", "h_p_JIT_GetInfoByICMOStatusInterID");
                Models.ClsSc_MESBeginWorkBillMain ClsSc_MESBeginWorkBillMain = new Models.ClsSc_MESBeginWorkBillMain();
                ClsSc_MESBeginWorkBillMain.HProcID = int.Parse(ds.Tables[0].Rows[0]["HProcID"].ToString());
                ClsSc_MESBeginWorkBillMain.HMaterID = int.Parse(ds.Tables[0].Rows[0]["HMaterID"].ToString());
                ClsSc_MESBeginWorkBillMain.HSourceID = int.Parse(ds.Tables[0].Rows[0]["HSourceID"].ToString());
                ClsSc_MESBeginWorkBillMain.HMainSourceBillNo = ds.Tables[0].Rows[0]["HSourceBillNo"].ToString();
                ClsSc_MESBeginWorkBillMain.HMainSourceInterID = int.Parse(ds.Tables[0].Rows[0]["HSourceInterID"].ToString());
                ClsSc_MESBeginWorkBillMain.HMainSourceEntryID = ds.Tables[0].Rows[0]["HSourceEntryID"].ToString();
                ClsSc_MESBeginWorkBillMain.HMainSourceBillType = HSourceBillType == null ? "" : HSourceBillType;
                ClsSc_MESBeginWorkBillMain.HDeptID = int.Parse(ds.Tables[0].Rows[0]["HDeptID"].ToString());
                ClsSc_MESBeginWorkBillMain.HICMOInterID = int.Parse(ds.Tables[0].Rows[0]["HICMOInterID"].ToString());
                ClsSc_MESBeginWorkBillMain.HICMOEntryID = int.Parse(ds.Tables[0].Rows[0]["HICMOEntryID"].ToString());
                ClsSc_MESBeginWorkBillMain.HICMOBillNo = ds.Tables[0].Rows[0]["HICMOBillNo"].ToString();
                ClsSc_MESBeginWorkBillMain.HProcExchInterID = int.Parse(ds.Tables[0].Rows[0]["HProcExchInterID"].ToString());
                ClsSc_MESBeginWorkBillMain.HProcExchEntryID = int.Parse(ds.Tables[0].Rows[0]["HProcExchEntryID"].ToString());
                ClsSc_MESBeginWorkBillMain.HProcExchBillNo = ds.Tables[0].Rows[0]["HProcExchBillNo"].ToString();
                ClsSc_MESBeginWorkBillMain.HPeopleSum = 1;
                //获取班次
                DataSet set = oCN.RunProcReturn("exec h_p_Gy_GetWorkShiftInfo " + int.Parse(ds.Tables[0].Rows[0]["HDeptID"].ToString()) + "," + int.Parse(ds.Tables[0].Rows[0]["HCenterID"].ToString()), "h_p_Gy_GetWorkShiftInfo");
                if (set.Tables[0].Rows.Count > 0)
                {
                    ClsSc_MESBeginWorkBillMain.HWorkShiftID = int.Parse(set.Tables[0].Rows[0]["HInterID"].ToString());
                }
                ds = oCN.RunProcReturn("select * from h_v_Cj_GetDefValByUser where 用户名称='" + user + "'", "h_v_xt_UserAssociationSelect");
                //if (ds.Tables[0].Rows[0]["HGroupID"].ToString() == "0")
                //{
                //    objJsonResult.code = "0";
                //    objJsonResult.count = 0;
                //    objJsonResult.Message = "保存失败!用户没有绑定班组!";
                //    objJsonResult.data = 1;
                //    return objJsonResult;
                //}
                if (ds.Tables[0].Rows[0]["HEmpID"].ToString() == "0")
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "保存失败!用户没有绑定职员!";
                    objJsonResult.data = 1;
                    return objJsonResult;
                }
                ClsSc_MESBeginWorkBillMain.HGroupID = int.Parse(ds.Tables[0].Rows[0]["HGroupID"].ToString());
                ClsSc_MESBeginWorkBillMain.HEmpID = int.Parse(ds.Tables[0].Rows[0]["HEmpID"].ToString());
                DLL.ClsSc_MESBeginWorkBill oBill = new DLL.ClsSc_MESBeginWorkBill();
                List<Models.ClsSc_MESBeginWorkBillMain> lsmain = new List<Models.ClsSc_MESBeginWorkBillMain>();
                lsmain.Add(ClsSc_MESBeginWorkBillMain);
                ClsXt_SystemParameter oClsXt_SystemParameter = new ClsXt_SystemParameter();
                DBUtility.ClsPub.CurUserName = user;
                foreach (Models.ClsSc_MESBeginWorkBillMain oItem in lsmain)
                {
                    oItem.HBillNo = DBUtility.ClsPub.CreateBillCode("3787", ref DBUtility.ClsPub.sExeReturnInfo, true);
                    oItem.HBillType = "3787";
                    oItem.HBillSubType = "3787";
                    oItem.HBillStatus = 1;   //单据状态(1未审,2审核通过,3关闭,4作废,5审核退回,6审核中,7已阅,8已回复,9结案,10验证,11下达,12开工,13申请审批,15申请检验,16 判定合格,17判定不合格)
                    oItem.HYear = DBUtility.ClsPub.isLong(DateTime.Now.Year);
                    oItem.HPeriod = DBUtility.ClsPub.isLong(DateTime.Now.Month);
                    oItem.HMaker = user;
                    oItem.HMakeDate = DBUtility.ClsPub.isStrNull(DateTime.Now.ToString("yyyy-MM-dd"));
                    oItem.HBarCodeMakeDate = Convert.ToDateTime(DBUtility.ClsPub.isStrNull(DateTime.Now.ToString("yyyy-MM-dd"))); //扫描日期(年-月-日-时-分-秒)
                    oItem.HRemark = "快捷开工";
                    oBill.omodel = oItem;
                }
                oCN.BeginTran();
                DataSet ds2 = null;
                //保存
                //保存完毕后处理
                bool bResult = false;
                if (oBill.omodel.HInterID == 0)
                {
                    bResult = oBill.AddBill(ref DBUtility.ClsPub.sExeReturnInfo);
                }
                ds = oCN.RunProcReturn("select * from Sc_MESBeginWorkBillMain where HBillNo='" + oBill.omodel.HBillNo + "'", "Sc_MESBeginWorkBillMain");
                if (ds.Tables[0].Rows.Count == 0)
                {
                    oCN.RollBack();
                    objJsonResult.code = "0";
                    objJsonResult.count = 0;
                    objJsonResult.Message = "查无单据!";
                    objJsonResult.data = 1;
                    return objJsonResult;
                }
                string sAutoCheck = oClsXt_SystemParameter.GetSingleSystemParameter("Sc_MESBeginWorkBill_AutoCheck", ref DBUtility.ClsPub.sExeReturnInfo);
                if (sAutoCheck == "Y")
                {
                    if (!oBill.CheckBill(long.Parse(ds.Tables[0].Rows[0]["HInterID"].ToString()), ref DBUtility.ClsPub.sExeReturnInfo))
                    {
                        oCN.RollBack();
                        objJsonResult.code = "0";
                        objJsonResult.count = 0;
                        objJsonResult.Message = "审核失败!";
                        objJsonResult.data = 1;
                        return objJsonResult;
                    }
                }
                string sReturn = "";
                if (oSystemParameter.ShowBill(ref sReturn) == true)
                {
                    if (oSystemParameter.omodel.WMS_CampanyName == "华舟")
                    {
                        LogService.Write("自动生成工作联系单...");
                        //自动生成工作联系单
                        ds2 = oCN.RunProcReturn("exec h_p_OA_WorkLinkBill_Create " + ds.Tables[0].Rows[0]["HInterID"].ToString() + "," + 3772, "h_p_OA_WorkLinkBill_Create");
                    }
                }
                oCN.Commit();
                if (ds2 != null && ds2.Tables[0].Rows.Count > 0)
                {
                    int HInterID = int.Parse(ds2.Tables[0].Rows[0]["NewHInterID"].ToString());
                    LogService.Write("执行消息推送..." + HInterID);
                    // 触发消息推送
                    Service.GeTuiService.PubishSingle(HInterID);
                }
                if (bResult)
                {
                    objJsonResult.code = "0";
                    objJsonResult.count = 1;
                    objJsonResult.Message = "保存成功!";
                    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.Message;
                objJsonResult.data = 1;
                return objJsonResult;
            }
        }
        #endregion
    }
}