using Newtonsoft.Json.Linq; using Pub_Class; using System; using System.Collections; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; using System.Web.Http; using WebAPI.Models; namespace WebAPI.Controllers { //工序进站接收单Controller public class Cj_StationInBillController : ApiController { public DBUtility.ClsPub.Enum_BillStatus BillStatus; private json objJsonResult = new json(); SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); DataSet ds; DataSet ds1; /// /// 新增单据-保存按钮 ///参数:string sql。 ///返回值:object。 /// [Route("Cj_StationInBill/AddBill")] [HttpPost] public object AddBill([FromBody] JObject oMain) { var _value = oMain["oMain"].ToString(); string msg1 = _value.ToString(); try { //委外工序发出反序列化 msg1 = "[" + msg1.ToString() + "]"; List list = Newtonsoft.Json.JsonConvert.DeserializeObject>(msg1); long HProcExchInterID = list[0].lngBillKey;//流转卡主内码 if (HProcExchInterID <= 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "错误的流转卡内码!"; objJsonResult.data = null; return objJsonResult; } long HProcExchEntryID = list[0].lngBillSubKey;//流转卡子内码 if (HProcExchEntryID <= 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "流水号没有选择!请输入流水号后回车!"; objJsonResult.data = null; return objJsonResult; } long HProcNo = list[0].HProcNo;//流水号 if (HProcNo <= 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "流水号没有选择!"; objJsonResult.data = null; return objJsonResult; } string HProcExchBillNo = list[0].HProcExchBillNo;//流转卡 if (HProcExchBillNo == "") { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "流转卡号没有选择!"; objJsonResult.data = null; return objJsonResult; } string eventType = list[0].eventType; string BillType = "3790"; long HInterID = list[0].HInterID;//递入type得到的单据ID string HBillNo = list[0].HBillNo;//递入type得到的单据号 int HBillStatus = 0; string HMaker = list[0].HMaker;//制单人 int HYear = 2021; double HPeriod = 1; string HRemark = list[0].HRemark;//备注 long HICMOInterID = list[0].HICMOInterID;//任务单ID string HICMOBillNo = list[0].HICMOBillNo;//任务单 long HProcPlanInterID = 0; long HProcPlanEntryID = 0; string HProcPlanBillNo = ""; long HMaterID = list[0].HMaterID;//产品ID long HProcID = list[0].HProcID;//当前工序 double HICMOQty = list[0].HICMOQty;//任务单数量 double HPlanQty = list[0].HPlanQty;//流转卡数量 long HSourceID = list[0].HSourceID;//生产资源ID long HGroupID = list[0].HGroupID;//班组ID long HDeptID = 0; long HEmpID = list[0].HEmpID;//接收人ID string HBarCode = list[0].HBarCode;//条形码 string HAddr = ""; string HBarCodeMaker = ""; long HSupID = 0; double HQty = list[0].HQty;//接收数量 double HPrice = 0; double HMoney = 0; double HPieceQty = list[0].HPieceQty;//接收件数 string HSourceName = list[0].HSourceName;//生产资源名称 long HCenterID = list[0].HCenterID;//工作中心ID string HOrderProcNO = list[0].HOrderProcNO;//订单跟踪号 //单据完整性判断 if (HMaterID <= 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "产品没有选择!"; objJsonResult.data = null; return objJsonResult; } if (HCenterID <= 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "工作中心没有选择!"; objJsonResult.data = null; return objJsonResult; } if (HProcID <= 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "当前工序没有选择!"; objJsonResult.data = null; return objJsonResult; } if (HQty <= 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "接收个数不能为0!"; objJsonResult.data = null; return objJsonResult; } ds = oCN.RunProcReturn("select HInterID from Sc_ProcessExchangeBillSub Where hinterid=" + HProcExchInterID + " and hprocno<" + HProcNo + " order by hprocno", "Sc_ProcessExchangeBillSub"); if (ds == null) { oCN.RollBack(); objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "判断首道工序失败,不允许保存!"; objJsonResult.data = null; return objJsonResult; } //若MAINDI重复则重新获取 oCN.BeginTran(); if ("Add".Equals(eventType)) { if (!AllowbillNo(HBillNo)) { oCN.RollBack(); objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "单据号重复!"; objJsonResult.data = null; return objJsonResult; } //插入主表 oCN.RunProc("Insert Into Sc_StationInBillMain " + "(HBillType,HBillSubType,HInterID,HBillNo,HBillStatus,HDate,HMaker,HMakeDate" + ",HYear,HPeriod,HRemark" + ",HICMOInterID,HICMOBillNo,HProcPlanInterID,HProcPlanEntryID,HProcPlanBillNo,HProcExchInterID,HProcExchEntryID" + ",HProcExchBillNo,HMaterID,HProcID,HICMOQty,HPlanQty,HStationInTime,HSourceID" + ",HGroupID,HDeptID,HEmpID,HBarCode,HAddr,HBarCodeMaker,HBarCodeMakeDate" + ",HSupID,HQty,HPrice,HMoney,HPieceQty,HSourceName,HCenterID" + ",HProcNo,HOrderProcNO" + ") " + " values('" + BillType + "','" + BillType + "'," + HInterID + ",'" + HBillNo + "'," + HBillStatus + ",getdate(),'" + HMaker + "',getdate()" + "," + HYear + "," + HPeriod + ",'" + HRemark + "'" + "," + HICMOInterID + ",'" + HICMOBillNo + "'," + HProcPlanInterID + "," + HProcPlanEntryID + ",'" + HProcPlanBillNo + "'," + HProcExchInterID + "," + HProcExchEntryID + ",'" + HProcExchBillNo + "'," + HMaterID + "," + HProcID + "," + HICMOQty + "," + HPlanQty + ",getdate()," + HSourceID + "," + HGroupID + "," + HDeptID + "," + HEmpID + ",'" + HBarCode + "','" + HAddr + "','" + HBarCodeMaker + "',getdate()" + "," + HSupID + "," + HQty + "," + HPrice + "," + HMoney + "," + HPieceQty + ",'" + HSourceName + "'," + HCenterID + ",'" + HProcNo + "','" + HOrderProcNO + "'" + ") "); } else if ("Modify".Equals(eventType)) { oCN.RunProc("exec h_p_Mes_ProcessExchangeRelationQty_In " + HProcExchInterID + ",-1"); //更新主表 oCN.RunProc("UpDate Sc_StationInBillMain set " + " HBillNo='" + HBillNo + "'" + ",HYear='" + HYear + "'" + ",HPeriod='" + HPeriod + "'" + ",HBillStatus='" + HBillStatus + "'" + ",HRemark='" + HRemark + "'" + ",HUpDater='" + HMaker + "'" + ",HUpDateDate=getdate()" + ",HSupID=" + HSupID + ",HQty=" + HQty + ",HPieceQty=" + HPieceQty + ",HSourceName='" + HSourceName + "'" + ",HICMOInterID=" + HICMOInterID + ",HICMOBillNo='" + HICMOBillNo + "'" + ",HProcPlanInterID=" + HProcPlanInterID + ",HProcPlanEntryID=" + HProcPlanEntryID + ",HProcPlanBillNo='" + HProcPlanBillNo + "'" + ",HProcExchInterID=" + HProcExchInterID + ",HProcExchEntryID=" + HProcExchEntryID + ",HProcExchBillNo='" + HProcExchBillNo + "'" + ",HMaterID=" + HMaterID + ",HProcID=" + HProcID + ",HICMOQty=" + HICMOQty + ",HPlanQty=" + HPlanQty + ",HStationInTime=getdate()" + ",HSourceID=" + HSourceID + ",HGroupID=" + HGroupID + ",HDeptID=" + HDeptID + ",HEmpID=" + HEmpID + ",HBarCode='" + HBarCode + "'" + ",HSaveBillFlag=0 " + ",HAddr='" + HAddr + "'" + ",HBarCodeMaker='" + HBarCodeMaker + "'" + ",HProcNo='" + HProcNo + "'" + ",HOrderProcNO='" + HOrderProcNO + "'" + " where HInterID=" + HInterID); } else { oCN.RollBack(); objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "操作类型无效!"; objJsonResult.data = null; return objJsonResult; } ds = oCN.RunProcReturn("exec h_p_MES_StationInBill_QtyCtrl " + HInterID + "", "h_p_MES_StationInBill_QtyCtrl"); if (ds == null) { oCN.RollBack(); objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "判断数量失败!"; objJsonResult.data = null; return objJsonResult; } if (ds.Tables[0].Rows.Count == 0) { oCN.RollBack(); objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "判断数量失败!"; objJsonResult.data = null; return objJsonResult; } if (ClsPub.isStrNull(ds.Tables[0].Rows[0]["HBack"]) == "2") { oCN.RollBack(); objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HBackRemark"]); objJsonResult.data = null; return objJsonResult; } oCN.RunProc("exec h_p_Mes_ProcessExchangeRelationQty_In " + HInterID + ",1"); //判断是否是 首道工序 ds1 = oCN.RunProcReturn(" select HLastProc,HFstProc from Sc_ProcessExchangeBillMain a " + " inner join Sc_ProcessExchangeBillSub b on a.HInterID=b.HInterID " + " Where a.HInterID=" + HProcExchInterID + " and b.HEntryID=" + HProcExchEntryID + " ", "Sc_ProcessExchangeBillMain"); if (ds1 == null || ds1.Tables[0].Rows.Count == 0) { } else if (ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HFstProc"]) == "是") { } oCN.Commit(); objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "新增单据成功!"; objJsonResult.data = ds.Tables[0]; return objJsonResult; } catch (Exception e) { oCN.RollBack(); objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "Exception!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } private bool AllowbillNo(string HBillNo) { ds = oCN.RunProcReturn("select HBillNo from Sc_StationInBillMain where HBillNo = '" + HBillNo + "'", "Sc_StationInBillMain"); if (ds == null || ds.Tables[0].Rows.Count == 0) { return true; } return false; } /// /// 工序进站接收单流水号回车获取工序信息 ///参数:string sql。 ///返回值:object。 /// [Route("Cj_StationInBill/txtHProcNo_KeyDown")] [HttpGet] public object txtHProcNo_KeyDown(string sBillNo,string sProcNo) { try { if (sBillNo.Equals("") || sProcNo.Equals("")) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "条形码不能为空!"; objJsonResult.data = null; return objJsonResult; } //得到信息(委外标记为0时,流转标记为1时) ds = oCN.RunProcReturn("select top 1 * from h_v_Sc_ProcessExchangeBillList where 单据号= '" + sBillNo + "' and 下道流转工序<>'转' and 委外标记=0 and 流转标记=1 and 工序号='" + sProcNo + "'", "h_v_Sc_ProcessExchangeBillList"); //Ds = oCn.RunProcReturn("select top 1 * from h_v_Sc_ProcessExchangeBillList where 单据号= '" + sBillNo + "' and 工序号='" + sProcNo + "' and 委外标记=0 and 流转标记=1 ", "h_v_Sc_ProcessExchangeBillList"); //写入信息 if (ds == null || ds.Tables[0].Rows.Count == 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "工序号错误或者当前工序号不允许进站,请重新输入!"; objJsonResult.data = null; return objJsonResult; } objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "Sucess!"; objJsonResult.data = ds.Tables[0]; return objJsonResult; } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "Exception!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } /// /// 返回委外工序接收单列表 ///参数:string sql。 ///返回值:object。 /// [Route("Cj_StationInBill/get_Display")] [HttpGet] public object get_Display(string sWhere) { try { if (sWhere == null || sWhere.Equals("")) { ds = oCN.RunProcReturn("select * from h_v_MES_StationInBillList " + sWhere, "h_v_MES_StationInBillList"); } else { string sql1 = "select * from h_v_MES_StationInBillList where 1 = 1 "; string sql = sql1 + sWhere; ds = oCN.RunProcReturn(sql, "h_v_MES_StationInBillList"); } if (ds == null || ds.Tables[0].Rows.Count == 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "查询数据异常,请与管理员联系!"; objJsonResult.data = null; return objJsonResult; } else { objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "返回记录成功!"; objJsonResult.data = ds.Tables[0]; return objJsonResult; } } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "查询数据异常,请与管理员联系!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } /// /// 编辑页面根据id获取工序进站接收单信息 ///参数:string sql。 ///返回值:object。 /// [Route("Cj_StationInBill/GetStationInBill")] [HttpGet] public object GetStationOutBill(int HInterID) { try { ds = oCN.RunProcReturn("select * from h_v_GetStationInBill where HInterID = " + HInterID, "h_v_GetStationInBill"); if (ds == null || ds.Tables[0].Rows.Count == 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "工序进站接收单信息获取失败!"; objJsonResult.data = null; return objJsonResult; } else { objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "Sucess!"; objJsonResult.data = ds.Tables[0]; return objJsonResult; } } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "Exception!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } #region [审核] [Route("Cj_StationInBill/set_CheckBill")] [HttpGet] public object set_CheckBill(int HInterID,string CurUserName) { try { string ModRightNameCheck = "MES_StationInBill_Check"; //审核权限 if (!DBUtility.ClsPub.Security_Log(ModRightNameCheck, 1, true,CurUserName)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "审核失败!无权限!"; objJsonResult.data = null; return objJsonResult; } Int64 lngBillKey = 0; lngBillKey = HInterID; if (lngBillKey == 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "HInterID为0!"; objJsonResult.data = null; return objJsonResult; } DAL.ClsSc_StationInBill oBill = new DAL.ClsSc_StationInBill(); //查看是否已审核,关闭,作废 if (oBill.ShowBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo)) { if (oBill.omodel.HChecker.Trim() != "") { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "单据已审核!不能再次审核"; objJsonResult.data = null; return objJsonResult; } } else { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "单据不存在!原因:" + DBUtility.ClsPub.sExeReturnInfo; objJsonResult.data = null; return objJsonResult; } //审核 if (oBill.CheckBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo) == true) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "审核成功!"; objJsonResult.data = null; return objJsonResult; } else { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "审核失败!原因:" + DBUtility.ClsPub.sExeReturnInfo; objJsonResult.data = null; return objJsonResult; } } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "审核失败!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } #endregion // } }