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 //数据库主表Sc_ICMOBillMain //数据库子表Sc_ICMOBillSub public class Sc_ICMOBillController : ApiController { public DBUtility.ClsPub.Enum_BillStatus BillStatus; private json objJsonResult = new json(); SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); DataSet ds; #region 生产任务单删除功能 [Route("Sc_ICMOBill/DeltetSc_ICMOReportBill")] [HttpGet] public object DeltetSc_ICMOReportBill(string HInterID,string user) { try { //判断是否有删除权限 if (!DBUtility.ClsPub.Security_Log("Sc_ICMOBill_Drop", 1, false, user)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "无权限删除!"; objJsonResult.data = null; return objJsonResult; } if (string.IsNullOrWhiteSpace(HInterID)) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "HInterID为空!"; objJsonResult.data = null; return objJsonResult; } oCN.BeginTran();//开始事务 ds = oCN.RunProcReturn("select * from Sc_ICMOBillMain where HInterID=" + HInterID, "Sc_ICMOBillMain"); if (ds == null || ds.Tables[0].Rows.Count == 0) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "没有数据,无法删除!"; objJsonResult.data = null; return objJsonResult; ; } oCN.RunProc("delete from Sc_ICMOBillMain where HInterID=" + HInterID); oCN.Commit();//提交事务 objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "* 数据删除成功!"; objJsonResult.data = null; return objJsonResult; ; } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "删除失败!" + e.ToString(); objJsonResult.data = null; return objJsonResult; } } #endregion #region 墙咔装箱单回车事件 [Route("Sc_ICMOBill/QK_PackingBillByXSBill")] [HttpGet] public object QK_PackingBillByXSBill(string HBillNo) { try { string sql = string.Format(@"select a.HInterID,a.HBillNo,a.HMaterID,m.HName HMaterName, a.HUnitID,u.HName HUnitName,b.HQty HPlanQty,a.HCusID, c.HName HCusName,a.HEmpID,e.HName HEmpName,a.HDeptID,d.HName HDeptName,a.HPlanEndDate,0 HMinQty,0 HTotalQty,0 HSpsQty from Sc_ICMOBillMain a left join Sc_ICMOBillSub b on a.HInterID=b.HInterID left join Gy_Material m on b.HMaterID=m.HItemID left join Gy_Unit u on b.HUnitID=u.HItemID left join Gy_Customer c on a.HCusID=c.HItemID left join Gy_Employee e on a.HEmpID=e.HItemID left join Gy_Department d on a.HDeptID=d.HItemID where b.HSeOrderInterID=(select HSeOrderInterID from Sc_PPBomBillMain where HBillNo='" + HBillNo + "')"); ds = oCN.RunProcReturn(sql, "Sc_ICMOBillMain"); if (ds.Tables[0].Rows.Count != 0 || ds != null) { objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "获取成功!"; objJsonResult.data = ds.Tables[0]; return objJsonResult; } objJsonResult.code = "0"; objJsonResult.count = 0; 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; } } #endregion #region 墙咔装箱单整箱生成 [Route("Sc_ICMOBill/QK_PackingBillSavePack")] [HttpPost] public object QK_PackingBillSavePack([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 msg4 = sArray[2].ToString(); string msg5 = sArray[3].ToString(); ListModels oListModels = new ListModels(); DataSet ds = new DataSet(); ds = oCN.RunProcReturn("select * from Xt_ORGANIZATIONS where HItemID=" + msg5, "Xt_ORGANIZATIONS"); string OrgNum = ds.Tables[0].Rows[0]["HNumber"].ToString();//组织代码 DataSet Ds1 = new DataSet(); try { //表体数据 //按 },{来拆分数组 //去掉【和】 msg2 = msg2.Replace("\\", ""); msg2 = msg2.Replace("\n", ""); //\n //msg2 = msg2.Replace("'", "’"); List ls = new List(); ls = oListModels.getObjectByJson_QK_PackingBill(msg2); //获取年月日并拼接成字符串 string year = DateTime.Now.Year.ToString(); string month = DateTime.Now.Month.ToString(); string day = DateTime.Now.Day.ToString(); string nowDate = year + month + day; string materid = ""; long sum = 0; if (msg4=="ZZ") { oCN.BeginTran(); foreach (Models.ClsQK_PackingBill oItemSub in ls) { //根据生成条数生成相应数量条码 foreach (var item in oItemSub.HTotalQty.ToString()) { //生成唯一条码 条码前缀 = 组织代码 + 物料代码 + 年 + 月 + 日 string sTMNumber = OrgNum + oItemSub.HMaterNumber + nowDate; Ds1 = oCN.RunProcReturn("exec h_p_WMS_GetMaxNo '" + sTMNumber + "'", "h_p_WMS_GetMaxNo"); //获取最大流水号 int LSH = ClsPub.isInt(Ds1.Tables[0].Rows[0][0]);//唯一码 //获取内码 long HInterID = DBUtility.ClsPub.CreateBillID_Prod("85", ref DBUtility.ClsPub.sExeReturnInfo); oCN.RunProc("insert into Gy_BarCodeBill (HBarCode,HBarCodeType,HMaterID,HUnitID,HQty" + ",HBatchNo,HSupID,HGroupID,HMaker,HMakeDate,HPrintQty,HinitQty" + ",HSourceInterID,HSourceEntryID,HSourceBillNo,HSourceBillType,HEndQty " + ",HBarcodeQtys,HBarcodeNo,HDeptID,HWhID,HSPID,HRemark " + ",HCusID,HCusType,HEndDate,HWorkLineName,HBarCodeDate " + ",HSTOCKORGID,HOWNERID,HSeOrderBillNo,HInterID " + ",HGiveAwayFlag " + ",HMaterName,HMaterModel,HPinfan,HAuxPropID,HMTONo,HInnerBillNo " + ") values (" + "'" + LSH + "','唯一条码'," + oItemSub.HMaterID.ToString() + "," + oItemSub.HUnitID.ToString() + "," + oItemSub.HMinQty.ToString() + ",'',0,0,'" + msg3 + "',getdate(),0," + oItemSub.HMinQty.ToString() + ", " + oItemSub.HInterID.ToString() + "," + oItemSub.HInterID.ToString() + ",'" + oItemSub.HBillNo + "','3710',''" + ",1,1," + oItemSub.HDeptID.ToString() + ",0,0,''" + ", " + oItemSub.HCusID.ToString() + ",'',getdate(),'',getdate()" + ", " + msg5.ToString() + "," + OrgNum.ToString() + ",''," + HInterID.ToString() + ",0" + ",'" + oItemSub.HMaterName + "','','',0,'','')"); string sql1 = string.Format(@"update Sc_ICMOBillSub set HQty=" + oItemSub.HSpsQty + " where HInterID=" + oItemSub.HInterID); oCN.RunProc(sql1); } } oCN.Commit(); objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "整装生成成功!"; objJsonResult.data = 1; return objJsonResult; } else { var HInterID = DBUtility.ClsPub.CreateBillID("3783", ref DBUtility.ClsPub.sExeReturnInfo); var HBillNo = DBUtility.ClsPub.CreateBillCode("3783", ref DBUtility.ClsPub.sExeReturnInfo, true); oCN.BeginTran(); foreach (Models.ClsQK_PackingBill oItemSub in ls) { sum += oItemSub.HMinQty; materid = oItemSub.HMaterNumber; //获取内码 long HInterID2 = DBUtility.ClsPub.CreateBillID_Prod("85", ref DBUtility.ClsPub.sExeReturnInfo); //生成唯一条码 条码前缀 = 组织代码 + 物料代码 + 年 + 月 + 日 string sTMNumber = OrgNum + oItemSub.HMaterNumber + nowDate; Ds1 = oCN.RunProcReturn("exec h_p_WMS_GetMaxNo '" + sTMNumber + "'", "h_p_WMS_GetMaxNo"); //获取最大流水号 int LSH = ClsPub.isInt(Ds1.Tables[0].Rows[0][0]);//唯一码 //插入条码档案 oCN.RunProc("insert into Gy_BarCodeBill (HBarCode,HBarCodeType,HMaterID,HUnitID,HQty" + ",HBatchNo,HSupID,HGroupID,HMaker,HMakeDate,HPrintQty,HinitQty" + ",HSourceInterID,HSourceEntryID,HSourceBillNo,HSourceBillType,HEndQty " + ",HBarcodeQtys,HBarcodeNo,HDeptID,HWhID,HSPID,HRemark " + ",HCusID,HCusType,HEndDate,HWorkLineName,HBarCodeDate " + ",HSTOCKORGID,HOWNERID,HSeOrderBillNo,HInterID " + ",HGiveAwayFlag " + ",HMaterName,HMaterModel,HPinfan,HAuxPropID,HMTONo,HInnerBillNo " + ") values (" + "'" + LSH + "','唯一条码'," + oItemSub.HMaterID.ToString() + "," + oItemSub.HUnitID.ToString() + "," + oItemSub.HMinQty.ToString() + ",'',0,0,'" + msg3 + "',getdate(),0," + oItemSub.HMinQty.ToString() + ", " + oItemSub.HInterID.ToString() + "," + oItemSub.HInterID.ToString() + ",'" + oItemSub.HBillNo + "','3710',''" + ",1,1," + oItemSub.HDeptID.ToString() + ",0,0,''" + ", " + oItemSub.HCusID.ToString() + ",'',getdate(),'',getdate()" + ", " + msg5.ToString() + "," + OrgNum.ToString() + ",''," + HInterID2.ToString() + ",0" + ",'" + oItemSub.HMaterName + "','','',0,'','')"); //插入组托单子表 string sql = string.Format(@"insert into Sc_PackUnionBillSub(HInterID,HEntryID,HCloseMan,HCloseType,HRemark, HSourceInterID,HSourceEntryID,HSourceBillNo,HSourceBillType, HRelationQty,HRelationMoney,HMaterID,HUnitID,HQty,HSourceID,HEquipID,HGroupID,HWorkerID, HScanDate,HBarCode,HBarCode_Pack) values("+HInterID+",'','',0,'自动绑定',"+oItemSub.HInterID+",'','"+oItemSub.HBillNo+"','3710',"+ "0,0,"+ oItemSub.HMaterID+","+ oItemSub.HUnitID+","+ oItemSub.HPlanQty+", 0,0,0,0,"+ "getdate(),'"+ LSH + "','" +HBillNo+"')"); //更改生产订单的数量 string sql1 = string.Format(@"update Sc_ICMOBillSub set HQty=" + oItemSub.HSpsQty + " where HInterID=" + oItemSub.HInterID); oCN.RunProc(sql); oCN.RunProc(sql1); } //生成组托单主表 string sql2 = string.Format(@"Insert Sc_PackUnionBillMain(HYear,HPeriod,HBillType,HInterID,HDate,HBillNo,HBillStatus,HCheckItemNowID,HCheckItemNextID, HRemark,HBacker,HChecker,HMaker,HMakeDate,HUpDater,HCloseMan,HCloseType,HDeleteMan,HICMOInterID,HICMOBillNo, HBarCode_Pack,HMaterID,HUnitID,HWeight,HMWeight,HPWeight, HProdOrgID,HDeptID,HEmpID,HSNum,HPackNum,HBarCode_Cus,HBatchNo,HBillSubType) values('2022',1,'3783'," + HInterID + ",getdate(),'" + HBillNo + "',1,0,0," + "'自动绑定','','', '" + msg3 + "',getdate(),'','',0,'',0,0,'" + HBillNo + "',0,0,0,0,0," + "0,0,0,0,0,'','','')"); oCN.RunProc(sql2); //再次生成唯一码 //获取内码 long HInterID3 = DBUtility.ClsPub.CreateBillID_Prod("85", ref DBUtility.ClsPub.sExeReturnInfo); //生成唯一条码 条码前缀 = 组织代码 + 物料代码 + 年 + 月 + 日 string sTMNumber1 = OrgNum + materid+nowDate; Ds1 = oCN.RunProcReturn("exec h_p_WMS_GetMaxNo '" + sTMNumber1 + "'", "h_p_WMS_GetMaxNo"); //获取最大流水号 int LSH1 = ClsPub.isInt(Ds1.Tables[0].Rows[0][0]);//唯一码 string sql3 = string.Format(@"insert into Gy_BarCodeBill (HBarCode,HBarCodeType,HMaterID,HUnitID,HQty" + ",HBatchNo,HSupID,HGroupID,HMaker,HMakeDate,HPrintQty,HinitQty" + ",HSourceInterID,HSourceEntryID,HSourceBillNo,HSourceBillType,HEndQty " + ",HBarcodeQtys,HBarcodeNo,HDeptID,HWhID,HSPID,HRemark " + ",HCusID,HCusType,HEndDate,HWorkLineName,HBarCodeDate " + ",HSTOCKORGID,HOWNERID,HSeOrderBillNo,HInterID " + ",HGiveAwayFlag " + ",HMaterName,HMaterModel,HPinfan,HAuxPropID,HMTONo,HInnerBillNo " + ") values (" + "'" + LSH1 + "','唯一条码','" + materid.ToString() + "',0," + sum.ToString() + ",'',0,0,'" + msg3 + "',getdate(),0," + sum.ToString() + ", 0,0,'" + HBillNo + "','3710',''," + sum.ToString() + "," + HInterID.ToString() + ",0,0,0,''" + ",0,'',getdate(),'',getdate()" + ", " + msg5.ToString() + "," + OrgNum.ToString() + ",''," + HInterID3.ToString() + ",0" + ",'','','',0,'','')"); oCN.RunProc(sql3); 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 # region[墙咔装箱点击主表带出从表] [Route("Sc_ICMOBillController/QK_GetPackingBillListByMainID")] [HttpGet] public object QK_GetPackingBillListByMainID(string HInterID) { DataSet ds; try { SQLHelper.ClsCN oCN = new SQLHelper.ClsCN(); //获取保养项目编辑数据 string sql = string.Format(@"select a.HInterID hmainid,a.HBarCode,a.HBillType,a.HBarCodeType, a.HMaterID,m.HName HMaterName,a.HUnitID,u.HName HUnitName, a.HEmpID,e.HName HEmpName,a.HDeptID,d.HItemID HDeptName,P.HBarCode_Pack, a.HMakeDate 制单日期,a.HMaker 制单人 from Gy_BarCodeBill a left join Gy_Material m on a.HMaterID=m.HItemID left join Gy_Unit u on a.HUnitID=u.HItemID left join Gy_Employee e on a.HEmpID=e.HItemID left join Gy_Department d on a.HDeptID=d.HItemID left join Sc_PackUnionBillMain p on a.HSourceInterID=p.HInterID where a.HBarCode=(select HBarCode from Sc_PackUnionBillSub where HInterID= (select HBarcodeNo from Gy_BarCodeBill where HBarCode='" + HInterID + "'))"); ds = oCN.RunProcReturn(sql, "Sc_PackUnionBillSub"); objJsonResult.code = "0"; objJsonResult.count = 1; objJsonResult.Message = "获取信息成功!"; objJsonResult.data = ds.Tables[0]; } catch (Exception e) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "没有返回任何记录!" + e.ToString(); objJsonResult.data = null; } return objJsonResult; } #endregion #region[墙咔装箱列表] /// /// 墙咔装箱列表 /// /// [Route("Sc_ICMOBillController/QK_GetPackingBillList")] [HttpGet] public object QK_GetPackingBillList(string sWhere) { try { ds = QK_GetPackingBillList_s(sWhere); //if (ds.Tables[0].Rows.Count != 0 || ds != null) //{ objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "Sucess!"; objJsonResult.data = ds.Tables[0]; return objJsonResult; //} //else //{ //objJsonResult.code = "0"; //objJsonResult.count = 0; //objJsonResult.Message = "无数据"; //objJsonResult.data = null; //return objJsonResult; //} } catch (Exception ex) { objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "没有返回任何记录!" + ex.ToString(); objJsonResult.data = null; return objJsonResult; } } #region sql语句 public static DataSet QK_GetPackingBillList_s(string sWhere) { if (sWhere == null || sWhere.Equals("")) { return new SQLHelper.ClsCN().RunProcReturn("select * from h_v_QK_PackedBillList order by hmainid desc", "h_v_QK_PackedBillList"); } else { string sql1 = "select * from h_v_QK_PackedBillList where 1 = 1 "; string sql = sql1 + sWhere + "order by hmainid desc"; return new SQLHelper.ClsCN().RunProcReturn(sql, "h_v_QK_PackedBillList"); } //return new SQLHelper.ClsCN().RunProcReturn("select * from h_v_Sc_MouldMaintainBillList ", "h_v_Sc_MouldMaintainBillList"); } #endregion #endregion #region[墙咔装箱列表-删除] /// /// 墙咔装箱列表-删除 /// /// [Route("Sc_ICMOBillController/DeleteQK_GetPackingBillList")] [HttpGet] public object DeleteQK_GetPackingBillList(string HInterID,string Flag) { try { oCN.BeginTran(); if (Flag=="0") { DataSet ds = new DataSet(); ds = oCN.RunProcReturn("select * from Gy_BarCodeBill where HItemID=" + HInterID, "Gy_BarCodeBill"); DataRow dr = ds.Tables[0].Rows[0]; string sql = string.Format(@"delete from Gy_BarCodeBill where HItemID=" + HInterID); string sql1 = string.Format(@"update Sc_ICMOBillSub set HQty=HPlanQty+" + dr["HQty"] +" where HInterID=(select HSourceInterID from Gy_BarCodeBill where HItemID="+ HInterID + ")"); oCN.RunProc(sql); oCN.RunProc(sql1); } else { //通过条码id找到托条码,通过托条码找到组托单子表中的唯一码 string sql2 = "select HBarCode from Sc_PackUnionBillSub where HInterID=(select HBarcodeNo from Gy_BarCodeBill where HItemID=" + HInterID; //string sql2 = "select HBarCode from Sc_PackUnionBillSub where HInterID=(select HBarcodeNo from Gy_BarCodeBill where HItemID=3250)"; DataSet ds1 = oCN.RunProcReturn(sql2, "Sc_PackUnionBillSub"); DataTable dt = ds1.Tables[0]; //遍历找到的唯一码删除条码档案里的相关数据,同时通过唯一码的源单找到生产订单更改生产订单的数量 if (dt.Rows.Count > 0) { foreach (DataRow dr in dt.Rows) { DataSet ds = new DataSet(); ds = oCN.RunProcReturn("select * from Gy_BarCodeBill where HBarCode='" + dr["HBarCode"].ToString()+"'", "Gy_BarCodeBill"); DataRow dr1 = ds.Tables[0].Rows[0]; string sql = string.Format(@"delete from Gy_BarCodeBill where HBarCode='" + dr["HBarCode"].ToString()+"'"); string sql1 = string.Format(@"update Sc_ICMOBillSub set HQty=HPlanQty+" + dr1["HQty"] + " where HInterID=(select HSourceInterID from Gy_BarCodeBill where HBarCode='" + dr["HBarCode"].ToString() + "')"); oCN.RunProc(sql); oCN.RunProc(sql1); } } //遍历完后删除通过条码id找到托条码,通过托条码找到组托单子表的数据,以及主表数据 string sql3 = string.Format(@"delect from Sc_PackUnionBillSub where HInterID=(select HBarcodeNo from Gy_BarCodeBill where HItemID="+ HInterID); string sql4 = string.Format(@"delect from Sc_PackUnionBillMain where HInterID=(select HBarcodeNo from Gy_BarCodeBill where HItemID=" + HInterID); //删除最大的合成的唯一码 string sql5 = string.Format(@"delete from Gy_BarCodeBill where HItemID=" + HInterID); oCN.RunProc(sql3); oCN.RunProc(sql4); oCN.RunProc(sql5); } oCN.Commit(); objJsonResult.code = "1"; objJsonResult.count = 1; objJsonResult.Message = "删除成功"; objJsonResult.data = null; return objJsonResult; } catch (Exception ex) { oCN.RollBack(); objJsonResult.code = "0"; objJsonResult.count = 0; objJsonResult.Message = "删除失败" + ex.ToString(); objJsonResult.data = null; return objJsonResult; } } #endregion } }