| | |
| | | if ("Add".Equals(eventType)) |
| | | { |
| | | //判断客户为海诚 同步金蝶工序汇报单 |
| | | if (oSystemParameter.omodel.WMS_CampanyName == "海诚"|| oSystemParameter.omodel.WMS_CampanyName == "天擎") |
| | | if (oSystemParameter.omodel.WMS_CampanyName == "海诚") |
| | | { |
| | | object objResult = set_SaveStationOutBill_CLD_Json(HInterID, HBillNo, user); |
| | | } |
| | |
| | | decimal baseQtyPerPiece = Math.Floor(HQty / HPieceQty); |
| | | decimal remainderQty = HQty % HPieceQty; |
| | | |
| | | // 计算每张条码的基础重量(净重和毛重相同) |
| | | decimal baseWeightPerPiece = Math.Floor(totalWeight / HPieceQty * 10000) / 10000; // 保留4位小数 |
| | | decimal remainderWeight = totalWeight - (baseWeightPerPiece * HPieceQty); |
| | | /// 重量均分基础值与余数 |
| | | decimal baseWeightPerPiece = totalWeight / HPieceQty; |
| | | decimal remainderWeight = totalWeight % HPieceQty; |
| | | |
| | | // 查询原始单据信息 |
| | | ds = oCN.RunProcReturn("select * from Sc_StationOutBillMain where HInterID='" + HInterID + "'", "Sc_StationOutBillMain"); |
| | |
| | | // 循环生成条码 |
| | | for (int i = 0; i < barcodeCount; i++) |
| | | { |
| | | // 计算当前条码的数量 |
| | | decimal currentQty = baseQtyPerPiece; |
| | | if (i < remainderQty) // 如果有余数,前N张条码各加1 |
| | | // ====================== 修复数量计算 ====================== |
| | | decimal currentQty; |
| | | if (barcodeCount == 1) |
| | | { |
| | | currentQty += 1; |
| | | // 只有1件时,直接使用总数量,不做取整拆分 |
| | | currentQty = HQty; |
| | | } |
| | | else |
| | | { |
| | | currentQty = baseQtyPerPiece; |
| | | // 有余数则前N条各加1(只针对整数余数场景) |
| | | if (i < remainderQty) |
| | | { |
| | | currentQty += 1; |
| | | } |
| | | } |
| | | |
| | | // 计算当前条码的重量(净重和毛重相同) |
| | | decimal currentWeight = baseWeightPerPiece; |
| | | if (i < Math.Ceiling(remainderWeight / baseWeightPerPiece) && remainderWeight > 0) |
| | | // ====================== 修复重量计算 ====================== |
| | | decimal currentWeight; |
| | | if (barcodeCount == 1) |
| | | { |
| | | currentWeight += baseWeightPerPiece; // 重量余数也分摊到前几张条码 |
| | | currentWeight = totalWeight; |
| | | } |
| | | else |
| | | { |
| | | currentWeight = baseWeightPerPiece; |
| | | if (i < remainderWeight) |
| | | { |
| | | currentWeight += baseWeightPerPiece; |
| | | } |
| | | } |
| | | |
| | | // 生成条码号 |
| | |
| | | #region 工序汇报单获取对应所以序列 |
| | | [Route("Cj_StationOutBill/getAllHSEQ")] |
| | | [HttpGet] |
| | | public object getAllHSEQ(string HInterID) |
| | | public object getAllHSEQ(int HInterID) |
| | | { |
| | | try |
| | | { |
| | | //得到信息(委外标记为0时,流转标记为1时 |
| | | ds = oCN.RunProcReturn("select * from Sc_ProcessExchangeBillSEQ where HInterID= " + HInterID, "Sc_ProcessExchangeBillSEQ"); |
| | | DataSet DS = oCN.RunProcReturn("select * from Sc_ProcessExchangeBillSEQ where HInterID= " + HInterID, "Sc_ProcessExchangeBillSEQ"); |
| | | |
| | | //写入信息 |
| | | if (ds == null || ds.Tables[0].Rows.Count == 0) |
| | | if (DS == null || DS.Tables[0].Rows.Count == 0) |
| | | { |
| | | objJsonResult.code = "0"; |
| | | objJsonResult.count = 0; |
| | |
| | | objJsonResult.code = "1"; |
| | | objJsonResult.count = 1; |
| | | objJsonResult.Message = "[0000-1-037]Sucess!"; |
| | | objJsonResult.data = ds.Tables[0]; |
| | | objJsonResult.data = DS.Tables[0]; |
| | | return objJsonResult; |
| | | } |
| | | catch (Exception e) |
| | |
| | | |
| | | #endregion |
| | | |
| | | #region 工序汇报,审核前修改 |
| | | //审核,带编辑功能 |
| | | [Route("Cj_StationOutBill/setOtherProperty")] |
| | | [HttpPost] |
| | | public object setOtherProperty([FromBody] JObject oMain) |
| | | { |
| | | try |
| | | { |
| | | var _value = oMain["oMain"].ToString(); |
| | | string msg1 = _value.ToString(); |
| | | string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries); |
| | | string msg2 = "[" + sArray[0].ToString() + "]"; |
| | | string user = sArray[1].ToString(); |
| | | ////判断是否有编辑权限 |
| | | if (!DBUtility.ClsPub.Security_Log("Cj_StationOutBill_Edit", 1, false, user)) |
| | | { |
| | | objJsonResult.code = "0"; |
| | | objJsonResult.count = 0; |
| | | objJsonResult.Message = "无编辑权限!"; |
| | | objJsonResult.data = null; |
| | | return objJsonResult; |
| | | } |
| | | //审核权限 |
| | | if (!DBUtility.ClsPub.Security_Log("Cj_StationOutBill_Check", 1, false, user)) |
| | | { |
| | | objJsonResult.code = "0"; |
| | | objJsonResult.count = 0; |
| | | objJsonResult.Message = "审核失败!无权限!"; |
| | | objJsonResult.data = null; |
| | | return objJsonResult; |
| | | } |
| | | List<StationBill> list1 = Newtonsoft.Json.JsonConvert.DeserializeObject<List<StationBill>>(msg2); |
| | | long HInterID = list1[0].HInterID; |
| | | double HQty = list1[0].HQty; |
| | | double HBadCount = list1[0].HBadCount; |
| | | double HWasterQty = list1[0].HWasterQty; |
| | | long HSourceID = list1[0].HSourceID; |
| | | string HSourceName = list1[0].HSourceName; |
| | | long HCenterID = list1[0].HCenterID; |
| | | long HGroupID = list1[0].HGroupID; |
| | | long HEmpID = list1[0].HEmpID; |
| | | |
| | | oCN.BeginTran(); |
| | | |
| | | DataSet ds = oCN.RunProcReturn("select * from Sc_StationOutBillMain where HInterID=" + HInterID, "Sc_StationOutBillMain"); |
| | | |
| | | if (ds.Tables.Count > 0 && ds.Tables[0].Rows[0]["HChecker"].ToString() == "") |
| | | { |
| | | string HBillNo = ds.Tables[0].Rows[0]["HBillNo"].ToString(); |
| | | //审核前控制================================================================================ |
| | | string sql = "exec h_p_Sc_StationOutBill_BeforeCheckCtrl " + HInterID + ",'" + HBillNo + "','" + user + "'"; |
| | | ds = oCN.RunProcReturn(sql, "h_p_Sc_StationOutBill_BeforeCheckCtrl"); |
| | | if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0) |
| | | { |
| | | objJsonResult.code = "0"; |
| | | objJsonResult.count = 1; |
| | | objJsonResult.Message = "审核失败!原因:审核前判断失败,请与网络管理人员联系"; |
| | | objJsonResult.data = null; |
| | | return objJsonResult; |
| | | } |
| | | |
| | | if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0") |
| | | { |
| | | objJsonResult.code = "0"; |
| | | objJsonResult.count = 1; |
| | | objJsonResult.Message = "审核失败!原因:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ; |
| | | objJsonResult.data = null; |
| | | return objJsonResult; |
| | | } |
| | | //================================================================================ |
| | | |
| | | if (HQty > 0) |
| | | { |
| | | |
| | | oCN.RunProc($"update Sc_StationOutBillMain set HBillStatus = 2, HQty={HQty},HBadCount='{HBadCount}',HWasterQty='{HWasterQty}',HSourceID='{HSourceID}',HCenterID='{HCenterID}',HGroupID={HGroupID},HEmpID={HEmpID},HChecker='{user}',HCheckDate=getdate() where HInterID={HInterID} "); |
| | | |
| | | } |
| | | string sReturn = ""; |
| | | //获取系统参数 |
| | | oSystemParameter.ShowBill(ref sReturn); |
| | | //判断客户为天擎 同步金蝶工序汇报单 |
| | | if (oSystemParameter.omodel.WMS_CampanyName == "天擎") |
| | | { |
| | | //同步前控制========================================= |
| | | ds = oCN.RunProcReturn("Exec h_p_Sc_StationOutBill_BeforeSyncCtrl " + HInterID.ToString() + ", '" + HBillNo + "','" + user + "'", " h_p_Sc_StationOutBill_BeforeSyncCtrl "); |
| | | if (ds == null) |
| | | { |
| | | objJsonResult.code = "0"; |
| | | objJsonResult.count = 0; |
| | | objJsonResult.Message = "[0000-2-012]保存前判断失败!"; |
| | | objJsonResult.data = null; |
| | | return objJsonResult; |
| | | } |
| | | if (DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HBack"]) != "0") |
| | | { |
| | | objJsonResult.code = "0"; |
| | | objJsonResult.count = 0; |
| | | objJsonResult.Message = "[0000-1-051]同步失败!" + DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HRemark"]); |
| | | objJsonResult.data = null; |
| | | return objJsonResult; |
| | | } |
| | | //========================================================= |
| | | if (oWebs.set_SaveStationOutBill_CLD(HInterID, HBillNo, user, ref DBUtility.ClsPub.sErrInfo)) |
| | | { |
| | | oCN.Commit(); |
| | | objJsonResult.code = "1"; |
| | | objJsonResult.count = 1; |
| | | objJsonResult.Message = "成功"; |
| | | objJsonResult.data = null; |
| | | return objJsonResult; |
| | | } |
| | | else |
| | | { |
| | | oCN.RollBack(); |
| | | objJsonResult.code = "0"; |
| | | objJsonResult.count = 0; |
| | | objJsonResult.Message = DBUtility.ClsPub.sErrInfo; |
| | | objJsonResult.data = null; |
| | | return objJsonResult; |
| | | } |
| | | |
| | | } |
| | | oCN.Commit(); |
| | | objJsonResult.code = "1"; |
| | | objJsonResult.count = 1; |
| | | objJsonResult.Message = "审核修改成功!"; |
| | | objJsonResult.data = null; |
| | | return objJsonResult; |
| | | |
| | | |
| | | |
| | | } |
| | | else |
| | | { |
| | | oCN.Commit(); |
| | | objJsonResult.code = "0"; |
| | | objJsonResult.count = 0; |
| | | objJsonResult.Message = "单据不存在或已审核!"; |
| | | objJsonResult.data = null; |
| | | return objJsonResult; |
| | | } |
| | | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | oCN.RollBack(); |
| | | objJsonResult.code = "0"; |
| | | objJsonResult.count = 0; |
| | | objJsonResult.Message = "审核失败!" + e.ToString(); |
| | | objJsonResult.data = null; |
| | | return objJsonResult; |
| | | } |
| | | } |
| | | #endregion |
| | | |
| | | #region 工序汇报自动生成进站接收单 |
| | | //工序汇报开工按钮自动开工 |
| | | [Route("Cj_StationOutBill/startTranslating")] |
| | | [HttpGet] |
| | | public object startTranslating(int HProcExchInterID,int HProcExchEntryID,int HOrgID,int HProcNo,string user) |
| | | { |
| | | try |
| | | { |
| | | oCN.BeginTran(); |
| | | //判断是否有编辑权限 |
| | | if (!DBUtility.ClsPub.Security_Log("Cj_StationInBill_Edit", 1, false, user)) |
| | | { |
| | | objJsonResult.code = "0"; |
| | | objJsonResult.count = 0; |
| | | objJsonResult.Message = "[3790-2-003]开工单无编辑权限!"; |
| | | objJsonResult.data = null; |
| | | return objJsonResult; |
| | | } |
| | | string HBillType = "3790"; |
| | | string HBillNo = ""; |
| | | Int64 HInterID = 0;//显示的字段 |
| | | HInterID = DBUtility.ClsPub.CreateBillID(HBillType, ref DBUtility.ClsPub.sExeReturnInfo); |
| | | HBillNo = DBUtility.ClsPub.CreateBillCode(HBillType, ref DBUtility.ClsPub.sExeReturnInfo, true); |
| | | int HBillStatus = 0; |
| | | string HMaker = user; |
| | | int HYear = DateTime.Now.Year; |
| | | double HPeriod = DateTime.Now.Month; |
| | | string HRemark = "出战汇报单自动开工";//备注 |
| | | long HICMOInterID = 0;//任务单ID |
| | | string HICMOBillNo = "";//任务单 |
| | | long HProcPlanInterID = 0; |
| | | long HProcPlanEntryID = 0; |
| | | string HProcPlanBillNo = ""; |
| | | long HMaterID = 1;//产品ID |
| | | long HProcID = 1;//当前工序 |
| | | double HICMOQty = 0;//任务单数量 |
| | | double HPlanQty = 0;//流转卡数量 |
| | | long HSourceID = 0;//生产资源ID |
| | | long HGroupID = 0;//班组ID |
| | | long HDeptID = 0; |
| | | long HEmpID = 0;//接收人ID |
| | | string HBarCode = "";//条形码 |
| | | string HAddr = ""; |
| | | string HBarCodeMaker = ""; |
| | | long HSupID = 0; |
| | | double HQty = 0;//接收数量 |
| | | double HPrice = 0; |
| | | double HMoney = 0; |
| | | double HPieceQty = 0;//接收件数 |
| | | string HSourceName = "";//生产资源名称 |
| | | long HCenterID = 0;//工作中心ID |
| | | string HOrderProcNO = "";//订单跟踪号 |
| | | long HPRDOrgID = HOrgID;//组织ID |
| | | double HmaterOutqty = 0;//白坯发布 |
| | | string HProcExchBillNo = "";//上料防错单单据号 |
| | | int HMainInterID = 0;//白坯发布 |
| | | 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,HMainInterID,HPRDOrgID" + |
| | | ",HmaterOutqty" + |
| | | ") " + |
| | | " values('" + HBillType + "','" + (HBillType) + "'," + 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 + "','" + HMainInterID + "'," + HPRDOrgID + |
| | | "," + HmaterOutqty + ") "); |
| | | |
| | | |
| | | oCN.Commit(); |
| | | objJsonResult.code = "1"; |
| | | objJsonResult.count = 1; |
| | | objJsonResult.Message = "成功!"; |
| | | objJsonResult.data = null; |
| | | return objJsonResult; |
| | | |
| | | |
| | | |
| | | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | oCN.RollBack(); |
| | | objJsonResult.code = "0"; |
| | | objJsonResult.count = 0; |
| | | objJsonResult.Message = "开工失败!" + e.ToString(); |
| | | objJsonResult.data = null; |
| | | return objJsonResult; |
| | | } |
| | | } |
| | | #endregion |
| | | |
| | | } |
| | | } |