using Newtonsoft.Json;
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.IO;
using System.Web.Http;
using WebAPI.DLL;
using WebAPI.Models;
using WebAPI.Service;
using Kingdee.BOS.WebApi.Client;
namespace WebAPI.Controllers
{
public class Sc_ProcessMangementController : ApiController
{
public DBUtility.ClsPub.Enum_BillStatus BillStatus;
private json objJsonResult = new json();
SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
DataSet ds;
///
///封装状态码及返回信息的公用方法。
///参数:DataSet。
///返回值:json。
///
public object GetObjectJson(DataSet ds)
{
try
{
//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 e)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "没有返回任何记录!" + e.ToString();
objJsonResult.data = null;
return objJsonResult;
}
}
///
///统一正确信息方法。
///参数:string。
///返回值:object。
///
public object CustomCorrect(DataSet ds)
{
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 = "0";
objJsonResult.count = 1;
objJsonResult.Message = "获取信息成功!";
objJsonResult.data = ds.Tables[0];
return objJsonResult;
}
}
///
///自定义错误信息方法。
///参数:string。
///返回值:object。
///
public object CustomError(string msg)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = msg;
objJsonResult.data = null;
return objJsonResult;
}
#region 工序汇报入库
///
/// 获取工序汇报入库单列表
///
///
///
///
[Route("Sc_ProcessMangement/Get_ProcessReportOverList")]
[HttpGet]
public object Get_ProcessReportOverList(string sWhere, string user)
{
try
{
//判断是否有查询权限
if (!DBUtility.ClsPub.Security_Log("Cj_StationOutBill_Query", 1, false, user))
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "无查询权限!";
objJsonResult.data = null;
return objJsonResult;
}
if (sWhere == null || sWhere.Equals(""))
{
ds = oCN.RunProcReturn("select * from h_v_MES_StationOutBillList_LastProc order by hmainid desc", "h_v_MES_StationOutBillList_LastProc");
}
else
{
string sql1 = "select * from h_v_MES_StationOutBillList_LastProc where 1 = 1 ";
string sql = sql1 + sWhere + " order by hmainid desc";
ds = oCN.RunProcReturn(sql, "h_v_MES_StationOutBillList_LastProc");
}
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;
}
}
///
/// 入库——生产汇报单
///
/// 工序汇报单主ID
///
[Route("Sc_ProcessMangement/SaveICMOReportBill")]
[HttpGet]
public object SaveICMOReportBill(string InterID, string user, string BillNo, string OrganizationID)
{
try
{
//获取生产汇报单最大InterID和单据号
Int64 HInterID = DBUtility.ClsPub.CreateBillID("3711", ref DBUtility.ClsPub.sExeReturnInfo);
string HBillNo = DBUtility.ClsPub.CreateBillCode("3711", ref DBUtility.ClsPub.sExeReturnInfo, true);
//获取组织代码
string OrganizationNUM = oCN.RunProcReturn("select HNumber from Xt_ORGANIZATIONS where HItemID=" + OrganizationID, "Xt_ORGANIZATIONS").Tables[0].Rows[0]["HNumber"].ToString();
//根据工序汇报单主ID获取工序汇报入库单的数据
DataSet ds = oCN.RunProcReturn("select * from h_v_MES_StationOutBillList_LastProc where HInterID=" + InterID, "h_v_MES_StationOutBillList_LastProc");
DataRow dr = ds.Tables[0].Rows[0];
//保存
oCN.BeginTran();
DataSet DsTable = oCN.RunProcReturn($"select * from Sc_ICMOReportBillMain where HBillNo='{HBillNo}'" , "Sc_ICMOReportBillMain");
if (DsTable.Tables[0].Rows.Count > 0)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "已入库,请不要重复入库";
objJsonResult.data = null;
return objJsonResult;
}
//生产汇报单主表
oCN.RunProc("Insert Into Sc_ICMOReportBillMain " +
"(HBillType,HBillSubType,HInterID,HBillNo,HDate,HMaker,HMakeDate,HBillStatus,HChecker,HCheckDate" +
",HYear,HPeriod,HRemark,HEmpID,HEmpNumber" +
",HGroupID,HDeptID,HDeptNumber" +
",HMainSourceBillNo,HMainSourceInterID,HMainSourceEntryID,HMainSourceBillType" +
") " +
" values('3711','3711'," + HInterID.ToString() + ",'" + BillNo + "',getdate(),'" + user + "',getdate(),2,'" + user + "',getdate()" +
",DATENAME(YEAR,GETDATE()),0,'','" + dr["HEmpID"].ToString() + "','" + dr["操作员代码"].ToString() +
"','" + dr["HGroupID"].ToString() + "',0,''" +
",'" + BillNo.ToString() + "'," + InterID.ToString() + ", 0,'3791'" +
") ");
//生产汇报单子表
oCN.RunProc("Insert into Sc_ICMOReportBillSub " +
" (HInterID,HEntryID,HMaterID,HMaterNumber" +
",HQty,HUnitID,HUnitNumber,HTimes,HSourceID" +
",HQtyMust,HWorkerID,HWorkerNumber,HBadCount,HWasterQty," +
"HCloseMan,HCloseType,HRemark," +
"HSourceInterID,HSourceEntryID,HSourceBillNo,HSourceBillType,HRelationQty,HRelationMoney" +
",HSeOrderInterID,HSeOrderEntryID,HSeOrderBillNo" +
",HICMOInterID,HICMOBillNo,HBarCode" +
") values("
+ HInterID.ToString() + ",1," + dr["HMaterID"].ToString() + ",'" + dr["产品代码"].ToString() + "'" +
"," + dr["合格数量"].ToString() + ",0,'',0,0" +
"," + dr["接收数量"].ToString() + "," + dr["HEmpID"].ToString() + ",'" + dr["操作员代码"].ToString() + "'," + dr["不良数量"].ToString() + "," + dr["报废数量"].ToString() +
",'',0,''" +
"," + InterID.ToString() + ",0,'" + BillNo.ToString() + "','3791',0,0" +
",0,0,''" +
"," + dr["HICMOInterID"].ToString() + ",'" + dr["任务单"].ToString() + "',''" +
") ");
//同步金蝶
//访问金蝶
var loginRet = InvokeHelper.Login();
var isSuccess = JObject.Parse(loginRet)["LoginResultType"].Value();
if (isSuccess == 0)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "操作失败,金蝶账号登录异常。" + loginRet;
objJsonResult.data = null;
return objJsonResult;
}
//根据任务单查找到金蝶的生产订单
DataSet ds1 = oCN.RunProcReturn("select * from h_v_TOERP_StationOutBillList_LastProc where HICMOEntryID=" + dr["HICMOEntryID"].ToString(), "h_v_TOERP_StationOutBillList_LastProc");
DataRow dr1 = ds1.Tables[0].Rows[0];
JObject model = new JObject();
model.Add("FBillType", new JObject() { ["Fnumber"] = "SCHBD01_SYS" }); //单据类型生产汇报“SCHBD02_SYS” 入库汇报SCHBD01_SYS
model.Add("FPrdOrgId", new JObject() { ["Fnumber"] = dr1["FPrdOrgNUMBER"].ToString() }); //生产组织1
model.Add("FDate", DateTime.Now.ToString("yyyy-MM-dd")); //单据日期1
model.Add("FHZYMESFLAG", "是");// 是否为MES同步
model.Add("FBillNo", BillNo);
JArray Fentity = new JArray();
foreach (DataRow item in ds.Tables[0].Rows)
{
JObject FentityModel = new JObject();
FentityModel.Add("FIsNew", false);// 源单类型
FentityModel.Add("FReportType", new JObject() { ["Fnumber"] = dr1["FREPORTTYPENUMBER"].ToString() });//生产汇报类型
FentityModel.Add("FSrcBillType", "PRD_MO");// 源单类型
FentityModel.Add("FProductType", "1");// 产品类型
FentityModel.Add("FSrcBillNo", item["任务单"].ToString());// 源单编号
FentityModel.Add("FSrcInterId", dr1["FMOID"].ToString());// 源单内码
FentityModel.Add("FSrcEntryId", dr1["FMOENTRYID"].ToString());// 源单分录内码、
FentityModel.Add("FSRCENTRYSEQ", dr1["FMOENTRYSEQ"].ToString());// 源单分录行号
FentityModel.Add("FUNITID", new JObject() { ["Fnumber"] = dr1["FUNITNUMBER"].ToString() });//单位
FentityModel.Add("FTimeUnitId", "1");//时间单位
FentityModel.Add("FWorkshipId", new JObject() { ["Fnumber"] = dr1["FWorkShopNUM"].ToString() }); // 生产车间
FentityModel.Add("FStandHourUnitId", "3600"); // 单位标准工时单位
FentityModel.Add("FMaterialId", new JObject() { ["Fnumber"] = dr1["FMaterialNUM"].ToString() }); // 物料编码
FentityModel.Add("FMoEntrySeq", dr1["FMOENTRYSEQ"].ToString());//生产订单行号
FentityModel.Add("FMoId", dr1["HICMOInterID"].ToString());//生产订单内码
FentityModel.Add("FFinishQty", item["接收数量"].ToString());//完成数量1
FentityModel.Add("FQuaQty", item["合格数量"].ToString());//合格数量1FFailQty
FentityModel.Add("FFailQty", item["不良数量"].ToString());//不合格数量
FentityModel.Add("FStockInOrgId ", new JObject() { ["Fnumber"] = OrganizationNUM });// 入库组织
FentityModel.Add("FStockId", new JObject() { ["Fnumber"] = dr1["FStockNUM"].ToString() }); // 仓库
FentityModel.Add("FMOID", dr1["FMOID"].ToString());//
FentityModel.Add("FMOBILLNO", dr1["FMOBILLNO"].ToString());//
FentityModel.Add("FMOENTRYID", dr1["FMOENTRYID"].ToString());//
FentityModel.Add("FMOENTRYSEQ", dr1["FMOENTRYSEQ"].ToString());//
FentityModel.Add("FOwnerTypeId", dr1["FOWNERTYPEID"].ToString()); //货主类型:FOwnerTypeId(必填项)
FentityModel.Add("FOwnerId", new JObject() { ["Fnumber"] = dr1["FOwnerNumber"].ToString() }); //货主:FOwnerId(必填项)
FentityModel.Add("FBomId", new JObject() { ["Fnumber"] = dr1["FBOMNUM"].ToString() }); //BOM版本:FBomId(必填项)
FentityModel.Add("FCostRate", dr1["FCostRate"].ToString());// 成本权重
FentityModel.Add("FISBACKFLUSH", dr1["FISBACKFLUSH"].ToString() == "1" ? true : false);// 倒冲领料
FentityModel.Add("FMOMAINENTRYID", dr1["FMOENTRYID"].ToString());//
FentityModel.Add("F_bsv_Base1", new JObject() { ["Fnumber"] = dr1["FPREBDONENUMBER"].ToString() }); //包装标识
FentityModel.Add("FLot", new JObject() { ["FNumber"] = dr1["FBATCHNO"].ToString() }); //批号
FentityModel.Add("F_bsv_Text", dr1["工序流转卡号"].ToString()); //流转卡号
JArray Fentity2 = new JArray();
JObject FentityModel2 = new JObject();
FentityModel2.Add("FEntity_Link_FFlowId", "f6e6eec3-5267-4f02-8593-b633da508a72");
FentityModel2.Add("FEntity_Link_FFlowLineId", "PRD_MO2MORPT");
FentityModel2.Add("FEntity_Link_FRuleId", "3");
FentityModel2.Add("FEntity_Link_FSTableId", "0");
FentityModel2.Add("FEntity_Link_FSTableName", "T_PRD_MOENTRY");
FentityModel2.Add("FEntity_Link_FSBillId", dr1["FMOID"].ToString());
FentityModel2.Add("FEntity_Link_FSId", dr1["FMOENTRYID"].ToString());
FentityModel2.Add("FEntity_Link_FBaseQuaQtyOld", item["合格数量"].ToString());
FentityModel2.Add("FEntity_Link_FBaseQuaQty", item["合格数量"].ToString());
Fentity2.Add(FentityModel2);
FentityModel.Add("FEntity_Link", Fentity2);
FentityModel.Add("FBFLowId", new JObject() { ["FID"] = "f6e6eec3-5267-4f02-8593-b633da508a72" }); //
Fentity.Add(FentityModel);
}
model.Add("FEntity", Fentity); //明细信息
JObject jsonRoot = new JObject()
{
["Creator"] = "",
["NeedUpDateFields"] = new JArray(),
["NeedReturnFields"] = new JArray(),
["IsDeleteEntry"] = "false",
["SubSystemId"] = "",
["IsVerifyBaseDataField"] = "false",
//["IsAutoSubmitAndAudit"] = true,//自动调用提交和审核功能
["Model"] = model
};
string result = InvokeHelper.Save("PRD_MORPT", JsonConvert.SerializeObject(jsonRoot));//保存
//判断保存是否成功
if (JObject.Parse(result)["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper() != "TRUE")
{
LogService.Write("工序汇报单入库错误jsonRoot:" + jsonRoot);
oCN.RollBack();
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = $"工序汇报入库单同步金蝶云失败!单号:{dr["单据号"].ToString()}" + result;
objJsonResult.data = null;
return objJsonResult;
}
//提交审核
string result1 = string.Empty;
string result2 = string.Empty;
var fID = JObject.Parse(result)["Result"]["Id"].ToString();
var fBillNo = JObject.Parse(result)["Result"]["Number"].ToString();
var json = new
{
Ids = fID,
};
result1 = InvokeHelper.Submit("PRD_MORPT", JsonConvert.SerializeObject(json));//提交
result2 = InvokeHelper.Audit("PRD_MORPT", JsonConvert.SerializeObject(json));//提交
if (JObject.Parse(result1)["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper() != "TRUE")
{
oCN.RollBack();
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = $"生产汇报单单号:{fBillNo},提交失败" + result;
objJsonResult.data = null;
return objJsonResult;
}
oCN.Commit();
objJsonResult.code = "0";
objJsonResult.count = 1;
objJsonResult.Message = "保存成功!";
objJsonResult.data = 1;
return objJsonResult;
}
catch (Exception e)
{
oCN.RollBack();
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "Exception!" + e.ToString();
objJsonResult.data = null;
return objJsonResult;
}
}
///
/// 入库——产品入库单
///
/// 工序汇报单主ID
///
[Route("Sc_ProcessMangement/SaveProcdutInBill")]
[HttpGet]
public object SaveProcdutInBill(string BillNo)
{
try
{
//获取生产汇报单最大InterID和单据号
Int64 HInterID = DBUtility.ClsPub.CreateBillID("1202", ref DBUtility.ClsPub.sExeReturnInfo);
string HBillNo = DBUtility.ClsPub.CreateBillCode("1202", ref DBUtility.ClsPub.sExeReturnInfo, true);
////获取组织代码
//string OrganizationNUM = oCN.RunProcReturn("select HNumber from Xt_ORGANIZATIONS where HItemID=" + OrganizationID, "Xt_ORGANIZATIONS").Tables[0].Rows[0]["HNumber"].ToString();
////根据工序汇报单主ID获取工序汇报入库单的数据
//DataSet ds = oCN.RunProcReturn("select * from h_v_MES_StationOutBillList_LastProc where HInterID=" + InterID, "h_v_MES_StationOutBillList_LastProc");
//DataRow dr = ds.Tables[0].Rows[0];
//保存
oCN.BeginTran();
//生产汇报单主表
//oCN.RunProc("Insert Into Sc_ICMOReportBillMain " +
//"(HBillType,HBillSubType,HInterID,HBillNo,HDate,HMaker,HMakeDate,HBillStatus,HChecker,HCheckDate" +
//",HYear,HPeriod,HRemark,HEmpID,HEmpNumber" +
//",HGroupID,HDeptID,HDeptNumber" +
//",HMainSourceBillNo,HMainSourceInterID,HMainSourceEntryID,HMainSourceBillType" +
//") " +
//" values('3711','3711'," + HInterID.ToString() + ",'" + HBillNo + "',getdate(),'" + user + "',getdate(),2,'" + user + "',getdate()" +
//",DATENAME(YEAR,GETDATE()),0,'','" + dr["HEmpID"].ToString() + "','" + dr["操作员代码"].ToString() +
//"','" + dr["HGroupID"].ToString() + "',0,''" +
//",'" + BillNo.ToString() + "'," + InterID.ToString() + ", 0,'3791'" +
//") ");
////生产汇报单子表
//oCN.RunProc("Insert into Sc_ICMOReportBillSub " +
// " (HInterID,HEntryID,HMaterID,HMaterNumber" +
// ",HQty,HUnitID,HUnitNumber,HTimes,HSourceID" +
// ",HQtyMust,HWorkerID,HWorkerNumber,HBadCount,HWasterQty," +
// "HCloseMan,HCloseType,HRemark," +
// "HSourceInterID,HSourceEntryID,HSourceBillNo,HSourceBillType,HRelationQty,HRelationMoney" +
// ",HSeOrderInterID,HSeOrderEntryID,HSeOrderBillNo" +
// ",HICMOInterID,HICMOBillNo,HBarCode" +
// ") values("
// + HInterID.ToString() + ",1," + dr["HMaterID"].ToString() + ",'" + dr["产品代码"].ToString() + "'" +
// "," + dr["合格数量"].ToString() + ",0,'',0,0" +
// "," + dr["接收数量"].ToString() + "," + dr["HEmpID"].ToString() + ",'" + dr["操作员代码"].ToString() + "'," + dr["不良数量"].ToString() + "," + dr["报废数量"].ToString() +
// ",'',0,''" +
// "," + InterID.ToString() + ",0,'" + BillNo.ToString() + "','3791',0,0" +
// ",0,0,''" +
// "," + dr["HICMOInterID"].ToString() + ",'" + dr["任务单"].ToString() + "',''" +
// ") ");
//同步金蝶
//访问金蝶
var loginRet = InvokeHelper.Login();
var isSuccess = JObject.Parse(loginRet)["LoginResultType"].Value();
if (isSuccess == 0)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "操作失败,金蝶账号登录异常。" + loginRet;
objJsonResult.data = null;
return objJsonResult;
}
//
//DataSet ds1 = oCN.RunProcReturn("select * from h_v_TOERPProcduct_LastProc where HLastProc = '是' and hbillno='" + BillNo.ToString() + "'", "h_v_TOERPProcduct_LastProc");
DataSet ds1 = oCN.RunProcReturn("exec h_p_TOERPProcduct_LastProc '" + BillNo + "'", "h_p_TOERPProcduct_LastProc");
DataRow dr1 = ds1.Tables[0].Rows[0];
if (ds1.Tables[0].Rows.Count <= 0)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "未找到对应的生产汇报单记录;1.未查询到对应的生产汇报单;2.请确保当前工序是末道工序3.汇报单对应的入库数量已满 请在金蝶云查看入库记录!";
objJsonResult.data = null;
return objJsonResult;
}
JObject model = new JObject();
model.Add("FBillType", new JObject() { ["FNumber"] = "SCRKD01_SYS" }); //单据类型
model.Add("FDate", DateTime.Now.ToString("yyyy-MM-dd")); //单据日期
model.Add("FStockOrgId", new JObject() { ["FNumber"] = dr1["HPrdOrgNumber"].ToString() }); //库存组织代码
model.Add("FPrdOrgId", new JObject() { ["FNumber"] = dr1["HPrdOrgNumber"].ToString() }); //生产组织代码
model.Add("FOwnerTypeId0", "BD_OwnerOrg");
model.Add("FOwnerId0", new JObject() { ["FNumber"] = dr1["HPrdOrgNumber"].ToString() }); //
model.Add("FIsEntrust", "false");//
model.Add("FCurrId", new JObject() { ["FNumber"] = "PRE001" }); //
model.Add("FBillNo", BillNo);
JArray Fentity = new JArray();
foreach (DataRow item in ds1.Tables[0].Rows)
{
JObject FentityModel = new JObject();
FentityModel.Add("FSrcEntryId", item["HSourceEntryID"].ToString());// 源单分录内码、
FentityModel.Add("FIsNew", "false");// 源单类型
FentityModel.Add("FMaterialId", new JObject() { ["FNumber"] = item["HMaterNumber"].ToString() }); // 物料编码
FentityModel.Add("FCheckProduct", "false");//
FentityModel.Add("FInStockType", "1");//
FentityModel.Add("FProductType", "1");//
FentityModel.Add("FUNITID", new JObject() { ["FNumber"] = item["HUnitNumber"].ToString() });//单位
FentityModel.Add("FMustQty", item["数量"].ToString());//
FentityModel.Add("FRealQty", item["数量"].ToString());//
FentityModel.Add("FCostRate", "100");//
FentityModel.Add("FBaseUnitId", new JObject() { ["FNumber"] = item["HUnitNumber"].ToString() });//单位
FentityModel.Add("FBaseMustQty", item["数量"].ToString());//
FentityModel.Add("FBaseRealQty", item["数量"].ToString());//
FentityModel.Add("FOwnerTypeId", "BD_OwnerOrg");//
FentityModel.Add("FOwnerId", new JObject() { ["FNumber"] = item["HPrdOrgNumber"].ToString() });//
FentityModel.Add("FStockId", new JObject() { ["FNumber"] = item["HStockNumber"].ToString() }); // 仓库
FentityModel.Add("FLot", new JObject() { ["FNumber"] = item["HBatchNo"].ToString() }); //批号
FentityModel.Add("FISBACKFLUSH", "true");//
FentityModel.Add("FWorkShopId1", new JObject() { ["FNumber"] = item["HWorkShopNumber"].ToString() }); // 生产车间
FentityModel.Add("FMOBILLNO", item["HMOBillNo"].ToString());//
FentityModel.Add("FMoId", item["HICMOInterID"].ToString());//生产订单内码
FentityModel.Add("FMoEntryId", item["HMOEntryID"].ToString());//
FentityModel.Add("FMoEntrySeq", item["HMOEntrySEQ"].ToString());//生产订单行号
FentityModel.Add("FStockUnitId", new JObject() { ["FNumber"] = item["HUnitNumber"].ToString() });//库存单位
FentityModel.Add("FStockRealQty", item["数量"].ToString());//
FentityModel.Add("FSrcBillType", "PRD_MORPT");//
FentityModel.Add("FSrcBillNo", item["HSourceBillNo"].ToString());//
FentityModel.Add("FSrcInterId", item["HSourceInterID"].ToString());//
FentityModel.Add("FBasePrdRealQty", item["数量"].ToString());//
FentityModel.Add("FIsFinished", "false");//
FentityModel.Add("FStockStatusId", new JObject() { ["FNumber"] = "KCZT01_SYS" }); //
FentityModel.Add("FSrcEntrySeq", item["HSourceSeQ"].ToString());// 源单分录行号
FentityModel.Add("FMOMAINENTRYID", item["HMOEntryID"].ToString());//
FentityModel.Add("FKeeperTypeId", "BD_KeeperOrg");
FentityModel.Add("FKeeperId", new JObject() { ["FNumber"] = item["HPrdOrgNumber"].ToString() });//
FentityModel.Add("FIsOverLegalOrg", "false");//
FentityModel.Add("F_bsv_Base1", new JObject() { ["FNumber"] = item["HBZBS"].ToString() });//
FentityModel.Add("F_BSV_TEXT", item["HLZKH"].ToString());//
FentityModel.Add("F_BSV_TEXT1", item["HWYID"].ToString());//
//批号
//FFLOWID FFLOWLINEID FRULEID FSTABLENAME
//f6e6eec3 - 5267 - 4f02 - 8593 - b633da508a72 3 PRD_MO2MORPT T_PRD_MOENTRY
//业务流程图:FEntity_Link_FFlowId
//推进路线:FEntity_Link_FFlowLineId
//转换规则:FEntity_Link_FRuleId
//源单表内码:FEntity_Link_FSTableId
//源单表:FEntity_Link_FSTableName
//源单内码:FEntity_Link_FSBillId
//源单分录内码:FEntity_Link_FSId
//原始携带量:FEntity_Link_FBaseQuaQtyOld
//修改携带量:FEntity_Link_FBaseQuaQty
JArray Fentity2 = new JArray();
JObject FentityModel2 = new JObject();
FentityModel2.Add("FEntity_Link_FFlowId", "f6e6eec3-5267-4f02-8593-b633da508a72");
FentityModel2.Add("FEntity_Link_FFlowLineId", "5");
FentityModel2.Add("FEntity_Link_FRuleId", "PRD_MORPT2INSTOCK");
FentityModel2.Add("FEntity_Link_FSTableName", "T_PRD_MORPTENTRY");
FentityModel2.Add("FEntity_Link_FSTableId", "0");
FentityModel2.Add("FEntity_Link_FSBillId", item["HSourceInterID"].ToString());
FentityModel2.Add("FEntity_Link_FSId", item["HSourceEntryID"].ToString());
FentityModel2.Add("FEntity_Link_FBasePrdRealQtyOld", item["关联数量"].ToString());
FentityModel2.Add("FEntity_Link_FBasePrdRealQty", item["数量"].ToString());
Fentity2.Add(FentityModel2);
FentityModel.Add("FEntity_Link", Fentity2);
FentityModel.Add("FBFLowId", new JObject() { ["FID"] = "f6e6eec3-5267-4f02-8593-b633da508a72" }); //
Fentity.Add(FentityModel);
//Fentity.Add(FentityModel);
}
model.Add("FEntity", Fentity); //明细信息
JObject jsonRoot = new JObject()
{
["Creator"] = "",
["NeedUpDateFields"] = new JArray(),
["NeedReturnFields"] = new JArray(),
//["IsDeleteEntry"] = "true",
//["SubSystemId"] = "",
//["IsVerifyBaseDataField"] = "false",
["IsDeleteEntry"] = "true",
["SubSystemId"] = "",
["IsVerifyBaseDataField"] = "true",
["IsEntryBatchFill"] = "false",
["ValidateFlag"] = "true",
["NumberSearch"] = "true",
["IsAutoAdjustField"] = "false",
["InterationFlags"] = "",
["IgnoreInterationFlag"] = "",
//["IsAutoSubmitAndAudit"] = true,//自动调用提交和审核功能
["Model"] = model
};
string result = InvokeHelper.Save("PRD_INSTOCK", JsonConvert.SerializeObject(jsonRoot));//保存
//判断保存是否成功
if (JObject.Parse(result)["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper() != "TRUE")
{
LogService.Write("生产入库错误jsonRoot:" + jsonRoot);
oCN.RollBack();
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = $"生产入库单同步金蝶云失败!单号:{HBillNo.ToString()}" + result + jsonRoot;
objJsonResult.data = null;
return objJsonResult;
}
//提交审核
string result1 = string.Empty;
string result2 = string.Empty;
var fID = JObject.Parse(result)["Result"]["Id"].ToString();
var fBillNo = JObject.Parse(result)["Result"]["Number"].ToString();
var json = new
{
Ids = fID,
};
result1 = InvokeHelper.Submit("PRD_INSTOCK", JsonConvert.SerializeObject(json));//提交
//result2 = InvokeHelper.Audit("PRD_INSTOCK", JsonConvert.SerializeObject(json));//提交
if (JObject.Parse(result1)["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper() != "TRUE")
{
oCN.RollBack();
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = $"生产入库单单号:{fBillNo},提交失败" + result;
objJsonResult.data = null;
return objJsonResult;
}
oCN.Commit();
objJsonResult.code = "0";
objJsonResult.count = 1;
objJsonResult.Message = "保存成功!";
objJsonResult.data = 1;
return objJsonResult;
}
catch (Exception e)
{
oCN.RollBack();
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "Exception!" + e.ToString();
objJsonResult.data = null;
return objJsonResult;
}
}
///
/// 入库——产品入库单
///
/// 工序汇报单主ID
///
[Route("Sc_ProcessMangement/SaveBFBill")]
[HttpGet]
public object SaveBFBill(string BillNo)
{
try
{
//获取生产汇报单最大InterID和单据号
Int64 HInterID = DBUtility.ClsPub.CreateBillID("1202", ref DBUtility.ClsPub.sExeReturnInfo);
string HBillNo = DBUtility.ClsPub.CreateBillCode("1202", ref DBUtility.ClsPub.sExeReturnInfo, true);
////获取组织代码
//string OrganizationNUM = oCN.RunProcReturn("select HNumber from Xt_ORGANIZATIONS where HItemID=" + OrganizationID, "Xt_ORGANIZATIONS").Tables[0].Rows[0]["HNumber"].ToString();
////根据工序汇报单主ID获取工序汇报入库单的数据
//DataSet ds = oCN.RunProcReturn("select * from h_v_MES_StationOutBillList_LastProc where HInterID=" + InterID, "h_v_MES_StationOutBillList_LastProc");
//DataRow dr = ds.Tables[0].Rows[0];
//保存
oCN.BeginTran();
//生产汇报单主表
//oCN.RunProc("Insert Into Sc_ICMOReportBillMain " +
//"(HBillType,HBillSubType,HInterID,HBillNo,HDate,HMaker,HMakeDate,HBillStatus,HChecker,HCheckDate" +
//",HYear,HPeriod,HRemark,HEmpID,HEmpNumber" +
//",HGroupID,HDeptID,HDeptNumber" +
//",HMainSourceBillNo,HMainSourceInterID,HMainSourceEntryID,HMainSourceBillType" +
//") " +
//" values('3711','3711'," + HInterID.ToString() + ",'" + HBillNo + "',getdate(),'" + user + "',getdate(),2,'" + user + "',getdate()" +
//",DATENAME(YEAR,GETDATE()),0,'','" + dr["HEmpID"].ToString() + "','" + dr["操作员代码"].ToString() +
//"','" + dr["HGroupID"].ToString() + "',0,''" +
//",'" + BillNo.ToString() + "'," + InterID.ToString() + ", 0,'3791'" +
//") ");
////生产汇报单子表
//oCN.RunProc("Insert into Sc_ICMOReportBillSub " +
// " (HInterID,HEntryID,HMaterID,HMaterNumber" +
// ",HQty,HUnitID,HUnitNumber,HTimes,HSourceID" +
// ",HQtyMust,HWorkerID,HWorkerNumber,HBadCount,HWasterQty," +
// "HCloseMan,HCloseType,HRemark," +
// "HSourceInterID,HSourceEntryID,HSourceBillNo,HSourceBillType,HRelationQty,HRelationMoney" +
// ",HSeOrderInterID,HSeOrderEntryID,HSeOrderBillNo" +
// ",HICMOInterID,HICMOBillNo,HBarCode" +
// ") values("
// + HInterID.ToString() + ",1," + dr["HMaterID"].ToString() + ",'" + dr["产品代码"].ToString() + "'" +
// "," + dr["合格数量"].ToString() + ",0,'',0,0" +
// "," + dr["接收数量"].ToString() + "," + dr["HEmpID"].ToString() + ",'" + dr["操作员代码"].ToString() + "'," + dr["不良数量"].ToString() + "," + dr["报废数量"].ToString() +
// ",'',0,''" +
// "," + InterID.ToString() + ",0,'" + BillNo.ToString() + "','3791',0,0" +
// ",0,0,''" +
// "," + dr["HICMOInterID"].ToString() + ",'" + dr["任务单"].ToString() + "',''" +
// ") ");
//同步金蝶
//访问金蝶
var loginRet = InvokeHelper.Login();
var isSuccess = JObject.Parse(loginRet)["LoginResultType"].Value();
if (isSuccess == 0)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "操作失败,金蝶账号登录异常。" + loginRet;
objJsonResult.data = null;
return objJsonResult;
}
//
//DataSet ds1 = oCN.RunProcReturn("select * from h_v_TOERPProcduct_LastProc where HLastProc = '是' and hbillno='" + BillNo.ToString() + "'", "h_v_TOERPProcduct_LastProc");
DataSet ds1 = oCN.RunProcReturn("exec h_p_TOERPProcduct_LastProc_BF '" + BillNo + "'", "h_p_TOERPProcduct_LastProc_BF");
DataRow dr1 = ds1.Tables[0].Rows[0];
JObject model = new JObject();
model.Add("FBillType", new JObject() { ["FNumber"] = "SCRKD01_SYS" }); //单据类型
model.Add("FDate", DateTime.Now.ToString("yyyy-MM-dd")); //单据日期
model.Add("FStockOrgId", new JObject() { ["FNumber"] = dr1["HPrdOrgNumber"].ToString() }); //库存组织代码
model.Add("FPrdOrgId", new JObject() { ["FNumber"] = dr1["HPrdOrgNumber"].ToString() }); //生产组织代码
model.Add("FOwnerTypeId0", "BD_OwnerOrg");
model.Add("FOwnerId0", new JObject() { ["FNumber"] = dr1["HPrdOrgNumber"].ToString() }); //
model.Add("FIsEntrust", "false");//
model.Add("FCurrId", new JObject() { ["FNumber"] = "PRE001" }); //
model.Add("FBillNo", HBillNo);
JArray Fentity = new JArray();
foreach (DataRow item in ds1.Tables[0].Rows)
{
JObject FentityModel = new JObject();
FentityModel.Add("FSrcEntryId", item["HSourceEntryID"].ToString());// 源单分录内码、
FentityModel.Add("FIsNew", "false");// 源单类型
FentityModel.Add("FMaterialId", new JObject() { ["FNumber"] = item["HMaterNumber"].ToString() }); // 物料编码
FentityModel.Add("FCheckProduct", "false");//
FentityModel.Add("FInStockType", "1");//
FentityModel.Add("FProductType", "1");//
FentityModel.Add("FUNITID", new JObject() { ["FNumber"] = item["HUnitNumber"].ToString() });//单位
FentityModel.Add("FMustQty", item["数量"].ToString());//
FentityModel.Add("FRealQty", item["数量"].ToString());//
FentityModel.Add("FCostRate", "100");//
FentityModel.Add("FBaseUnitId", new JObject() { ["FNumber"] = item["HUnitNumber"].ToString() });//单位
FentityModel.Add("FBaseMustQty", item["数量"].ToString());//
FentityModel.Add("FBaseRealQty", item["数量"].ToString());//
FentityModel.Add("FOwnerTypeId", "BD_OwnerOrg");//
FentityModel.Add("FOwnerId", new JObject() { ["FNumber"] = item["HPrdOrgNumber"].ToString() });//
FentityModel.Add("FStockId", new JObject() { ["FNumber"] = item["HStockNumber"].ToString() }); // 仓库
FentityModel.Add("FLot", new JObject() { ["FNumber"] = item["HBatchNo"].ToString() }); //批号
FentityModel.Add("FISBACKFLUSH", "true");//
FentityModel.Add("FWorkShopId1", new JObject() { ["FNumber"] = item["HWorkShopNumber"].ToString() }); // 生产车间
FentityModel.Add("FMOBILLNO", item["HMOBillNo"].ToString());//
FentityModel.Add("FMoId", item["HICMOInterID"].ToString());//生产订单内码
FentityModel.Add("FMoEntryId", item["HMOEntryID"].ToString());//
FentityModel.Add("FMoEntrySeq", item["HMOEntrySEQ"].ToString());//生产订单行号
FentityModel.Add("FStockUnitId", new JObject() { ["FNumber"] = item["HUnitNumber"].ToString() });//库存单位
FentityModel.Add("FStockRealQty", item["数量"].ToString());//
FentityModel.Add("FSrcBillType", "PRD_MORPT");//
FentityModel.Add("FSrcBillNo", item["HSourceBillNo"].ToString());//
FentityModel.Add("FSrcInterId", item["HSourceInterID"].ToString());//
FentityModel.Add("FBasePrdRealQty", item["数量"].ToString());//
FentityModel.Add("FIsFinished", "false");//
FentityModel.Add("FStockStatusId", new JObject() { ["FNumber"] = "KCZT01_SYS" }); //
FentityModel.Add("FSrcEntrySeq", item["HSourceSeQ"].ToString());// 源单分录行号
FentityModel.Add("FMOMAINENTRYID", item["HMOEntryID"].ToString());//
FentityModel.Add("FKeeperTypeId", "BD_KeeperOrg");
FentityModel.Add("FKeeperId", new JObject() { ["FNumber"] = item["HPrdOrgNumber"].ToString() });//
FentityModel.Add("FIsOverLegalOrg", "false");//
FentityModel.Add("F_bsv_Base1", new JObject() { ["FNumber"] = item["HBZBS"].ToString() });//
FentityModel.Add("F_BSV_TEXT", item["HLZKH"].ToString());//
FentityModel.Add("F_BSV_TEXT1", item["HWYID"].ToString());//
//批号
//FFLOWID FFLOWLINEID FRULEID FSTABLENAME
//f6e6eec3 - 5267 - 4f02 - 8593 - b633da508a72 3 PRD_MO2MORPT T_PRD_MOENTRY
//业务流程图:FEntity_Link_FFlowId
//推进路线:FEntity_Link_FFlowLineId
//转换规则:FEntity_Link_FRuleId
//源单表内码:FEntity_Link_FSTableId
//源单表:FEntity_Link_FSTableName
//源单内码:FEntity_Link_FSBillId
//源单分录内码:FEntity_Link_FSId
//原始携带量:FEntity_Link_FBaseQuaQtyOld
//修改携带量:FEntity_Link_FBaseQuaQty
JArray Fentity2 = new JArray();
JObject FentityModel2 = new JObject();
FentityModel2.Add("FEntity_Link_FFlowId", "f6e6eec3-5267-4f02-8593-b633da508a72");
FentityModel2.Add("FEntity_Link_FFlowLineId", "5");
FentityModel2.Add("FEntity_Link_FRuleId", "PRD_MORPT2INSTOCK");
FentityModel2.Add("FEntity_Link_FSTableName", "T_PRD_MORPTENTRY");
FentityModel2.Add("FEntity_Link_FSTableId", "0");
FentityModel2.Add("FEntity_Link_FSBillId", item["HSourceInterID"].ToString());
FentityModel2.Add("FEntity_Link_FSId", item["HSourceEntryID"].ToString());
FentityModel2.Add("FEntity_Link_FBasePrdRealQtyOld", item["关联数量"].ToString());
FentityModel2.Add("FEntity_Link_FBasePrdRealQty", item["数量"].ToString());
Fentity2.Add(FentityModel2);
FentityModel.Add("FEntity_Link", Fentity2);
FentityModel.Add("FBFLowId", new JObject() { ["FID"] = "f6e6eec3-5267-4f02-8593-b633da508a72" }); //
Fentity.Add(FentityModel);
//Fentity.Add(FentityModel);
}
model.Add("FEntity", Fentity); //明细信息
JObject jsonRoot = new JObject()
{
["Creator"] = "",
["NeedUpDateFields"] = new JArray(),
["NeedReturnFields"] = new JArray(),
//["IsDeleteEntry"] = "true",
//["SubSystemId"] = "",
//["IsVerifyBaseDataField"] = "false",
["IsDeleteEntry"] = "true",
["SubSystemId"] = "",
["IsVerifyBaseDataField"] = "true",
["IsEntryBatchFill"] = "false",
["ValidateFlag"] = "true",
["NumberSearch"] = "true",
["IsAutoAdjustField"] = "false",
["InterationFlags"] = "",
["IgnoreInterationFlag"] = "",
//["IsAutoSubmitAndAudit"] = true,//自动调用提交和审核功能
["Model"] = model
};
string result = InvokeHelper.Save("PRD_INSTOCK", JsonConvert.SerializeObject(jsonRoot));//保存
//判断保存是否成功
if (JObject.Parse(result)["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper() != "TRUE")
{
LogService.Write("生产入库错误jsonRoot:" + jsonRoot);
oCN.RollBack();
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = $"生产入库单同步金蝶云失败!单号:{HBillNo.ToString()}" + result + jsonRoot;
objJsonResult.data = null;
return objJsonResult;
}
//提交审核
string result1 = string.Empty;
string result2 = string.Empty;
var fID = JObject.Parse(result)["Result"]["Id"].ToString();
var fBillNo = JObject.Parse(result)["Result"]["Number"].ToString();
var json = new
{
Ids = fID,
};
result1 = InvokeHelper.Submit("PRD_INSTOCK", JsonConvert.SerializeObject(json));//提交
//result2 = InvokeHelper.Audit("PRD_INSTOCK", JsonConvert.SerializeObject(json));//提交
if (JObject.Parse(result1)["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper() != "TRUE")
{
oCN.RollBack();
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = $"生产入库单单号:{fBillNo},提交失败" + result;
objJsonResult.data = null;
return objJsonResult;
}
oCN.Commit();
oCN.RunProc("update sc_stationoutbillmain set HBFFlag =1 where HProcExchBillNo = '" + BillNo + "'");
objJsonResult.code = "0";
objJsonResult.count = 1;
objJsonResult.Message = "保存成功!";
objJsonResult.data = 1;
return objJsonResult;
}
catch (Exception e)
{
oCN.RollBack();
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "Exception!" + e.ToString();
objJsonResult.data = null;
return objJsonResult;
}
}
///
/// 生成金蝶云来料检验单
///
/// 工序汇报单主ID
///
[Route("QCStockInCheckBill/set_SaveQCStockInCheckBill_Json")]
[HttpGet]
public object set_SaveQCStockInCheckBill_Json(string HZJOrgNumber, string HMaterNumber, string HUnitNumber,
double HCheckQty, double HRightQty, double HBadQty,
string HCheckResult, string HSupNumber, string HWHNumber,
string HUseResult, Int64 HSeQ, Int64 HSourceInterID,
Int64 HSourceEntryID, string HSourceBillNo, string user,
Int64 HWHID, Int64 HSPID, Int64 HSupID, Int64 HKeeperID,
Int64 HMaterID, string HSourceBillType, Int64 HSLInterID,
Int64 HSLEntryID, string HSLBillNo, Int64 HSLSeQ, string HBillNo, Int64 HInterID)
{
try
{
//获取生产汇报单最大InterID和单据号
//Int64 HInterID = DBUtility.ClsPub.CreateBillID("7503", ref DBUtility.ClsPub.sExeReturnInfo);
//string HBillNo = DBUtility.ClsPub.CreateBillCode("7503", ref DBUtility.ClsPub.sExeReturnInfo, true);
DataSet ds1 = oCN.RunProcReturn("select * from MES_AccessoriesList where HSourceBillNo = '" + HBillNo + "'", "MES_AccessoriesList");
string HFileName = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HFileName"]);
string HFilePath = DBUtility.ClsPub.isStrNull(ds1.Tables[0].Rows[0]["HFilePath"]);
string path = HFilePath;
FileInfo fi = new FileInfo(path);
long len = fi.Length;
byte[] buffer = new byte[len];
FileStream fs = new FileStream(path, FileMode.Open);
fs.Read(buffer, 0, (int)len);
//文件IO流
string a = Convert.ToBase64String(buffer);
//保存
oCN.BeginTran();
//生产汇报单主表
oCN.RunProc("Insert Into QC_POStockInCheckBillMain " +
"(HBillType,HBillSubType,HInterID,HBillNo,HDate,HMaker,HMakeDate,HBillStatus,HChecker,HCheckDate" +
",HYear,HPeriod,HRemark,HSupID,HMaterID" +
",HInstockQty,HCheckQty,HRightQty,HBadQty,HFirstCheckEmp" +
",HCheckerResult,HSteelStoveNo,HSteelCompReport,HAspect,HSize" +
") " +
" values('7503','7503'," + HInterID.ToString() + ",'" + HBillNo + "',getdate(),'" + user + "',getdate(),2,'" + user + "',getdate()" +
",DATENAME(YEAR,GETDATE()),0,''," + HSupID.ToString() + "," + HMaterID.ToString() +
",'" + HCheckQty.ToString() + "','" + HCheckQty.ToString() + "','" + HRightQty.ToString() + "','" + HBadQty.ToString() + "','" + HKeeperID.ToString() + "'" +
",'" + HCheckResult.ToString() + "','', '','',''" +
") ");
//生产汇报单子表
oCN.RunProc("Insert into QC_POStockInCheckBillSub " +
" (HInterID,HEntryID,HCloseMan,HCloseType" +
",HRemark,HSourceInterID,HSourceEntryID,HSourceBillNo,HSourceBillType" +
",HRelationQty,HRelationMoney,HQCCheckClassID,HQCCheckItemID,HQCStd," +
"HResult,HQCRelValue,HProcCheckEmp,HProcCheckTime" +
") values("
+ HInterID.ToString() + ",1,'',''" +
",''," + HSourceInterID.ToString() + "," + HSourceEntryID.ToString() + ",'" + HSourceBillNo.ToString() + "','" + HSourceBillType.ToString() + "'" +
",0,0,0,0,''" +
",'" + HCheckResult.ToString() + "','" + HCheckResult.ToString() + "','" + HKeeperID.ToString() + "',getdate()" +
") ");
//同步金蝶
//访问金蝶
var loginRet = InvokeHelper.Login();
var isSuccess = JObject.Parse(loginRet)["LoginResultType"].Value();
if (isSuccess == 0)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "操作失败,金蝶账号登录异常。" + loginRet;
objJsonResult.data = null;
return objJsonResult;
}
JObject model = new JObject();
model.Add("FBillTypeID", new JObject() { ["Fnumber"] = "JYD001_SYS" }); //单据类型 来料检验单JYD001_SYS
model.Add("FBusinessType", "1"); //业务类型
model.Add("FDate", DateTime.Now.ToString("yyyy-MM-dd")); //单据日期
model.Add("FSourceOrgId", new JObject() { ["Fnumber"] = HZJOrgNumber.ToString() }); //来源组织
model.Add("FInspectOrgId", new JObject() { ["Fnumber"] = HZJOrgNumber.ToString() }); //质检组织
model.Add("FISSYNCED", "false");// 是否已同步
model.Add("F_PGKJ_Date", DateTime.Now.ToString("yyyy-MM-dd"));// 报检日期
model.Add("FBillNo", HBillNo);
JArray Fentity = new JArray();
JObject FentityModel = new JObject();
FentityModel.Add("FMaterialId", new JObject() { ["Fnumber"] = HMaterNumber.ToString() });// 物料内码
FentityModel.Add("FUnitID", new JObject() { ["Fnumber"] = HUnitNumber.ToString() });//计量单位内码
FentityModel.Add("FInspectQty", HCheckQty.ToString());// 检验数量
FentityModel.Add("FQualifiedQty", HRightQty.ToString());// 合格数量
FentityModel.Add("FUnqualifiedQty", HBadQty.ToString());// 不合格数量
FentityModel.Add("FInspectResult", HCheckResult.ToString());// 检验结果
FentityModel.Add("FQCStatus", "1");// 质检状态
FentityModel.Add("FIsRelated", false);// 不良品关联标志
FentityModel.Add("FSrcBillType0", "PUR_ReceiveBill");// 源单类型
FentityModel.Add("FBaseUnitId", new JObject() { ["Fnumber"] = HUnitNumber.ToString() });//基本单位
FentityModel.Add("FBaseInspectQty", HCheckQty.ToString());//基本单位检验数量
FentityModel.Add("FSupplierId", new JObject() { ["Fnumber"] = HSupNumber.ToString() }); // 供应商
//FentityModel.Add("FStockId", new JObject() { ["Fnumber"] = HWHNumber.ToString() }); // 仓库
FentityModel.Add("FInspectTimes","1"); // 检验次数
FentityModel.Add("FTimeUnit","24");//时间单位
FentityModel.Add("FSAMPLEDAMAGEBEARER","2");//样本破坏承担方
FentityModel.Add("FISFIRSTINSPECT", false);//首检
FentityModel.Add("FBaseQualifiedQty", HRightQty.ToString());//基本单位合格数
FentityModel.Add("FBaseAcceptQty", HRightQty.ToString());//基本单位接收数
FentityModel.Add("FCurrency", new JObject() { ["Fnumber"] = "PRE001" });//币别
FentityModel.Add("FIsSplitRow ", false);// 是否拆分行
JArray Fentity2 = new JArray();
JObject FentityModel2 = new JObject();
FentityModel2.Add("FPolicyMaterialId", new JObject() { ["Fnumber"] = HMaterNumber.ToString() });// 物料内码
FentityModel2.Add("FPolicyStatus", "1"); //状态
FentityModel2.Add("FPolicyQty", HRightQty.ToString()); //数量
FentityModel2.Add("FBasePolicyQty", HRightQty.ToString()); //基本单位数量
FentityModel2.Add("FUsePolicy", HUseResult.ToString()); //使用决策
FentityModel2.Add("FIsCheck", false); //是否抽检
FentityModel2.Add("FIsDefectProcess", false); //不良处理
FentityModel2.Add("FCanSale", false); //可销售
FentityModel2.Add("FIsMRBReview", false); //MRP评审
FentityModel2.Add("FIsReturn", true); //判退
FentityModel2.Add("FIsRelatedDefect", false); //不良品关联标志
Fentity2.Add(FentityModel2);
FentityModel.Add("FPolicyDetail", Fentity2);
JArray Fentity3 = new JArray();
JObject FentityModel3 = new JObject();
FentityModel3.Add("FDetailID", "0");//
FentityModel3.Add("FSrcBillType", "PUR_ReceiveBill"); //源单类型
FentityModel3.Add("FSrcBillNo", HSLBillNo.ToString()); //收料通知单单号
FentityModel3.Add("FSrcInterId", HSLInterID.ToString()); //收料通知单主ID
FentityModel3.Add("FSrcEntryId",HSLEntryID.ToString()); //收料通知单子ID
FentityModel3.Add("FSrcEntrySeq", HSLSeQ.ToString()); //源单行号
FentityModel3.Add("FOrderType", new JObject() { ["FID"] = "PUR_PurchaseOrder" }); // 订单类型
FentityModel3.Add("FOrderBillNo", HSourceBillNo.ToString()); //订单单号
FentityModel3.Add("FOrderId", HSourceInterID.ToString()); //订单主ID
FentityModel3.Add("FOrderEntryId", HSourceEntryID.ToString()); //订单子ID
FentityModel3.Add("FOrderEntrySeq", HSeQ.ToString()); //订单行号
Fentity3.Add(FentityModel3);
FentityModel.Add("FReferDetail", Fentity3);
JArray Fentity4 = new JArray();
JObject FentityModel4 = new JObject();
FentityModel4.Add("FEntity_Link_FRuleId", "QM_PURReceive2Inspect"); //单据转换规则
FentityModel4.Add("FEntity_Link_FSTableName", "T_PUR_RECEIVEENTRY"); //收料通知单子表
FentityModel4.Add("FEntity_Link_FSBillId", HSLInterID.ToString()); //收料通知单主内码
FentityModel4.Add("FEntity_Link_FSId", HSLEntryID.ToString()); //收料通知单子内码
FentityModel4.Add("FEntity_Link_FBaseAcceptQty", HRightQty.ToString()); //
FentityModel4.Add("FEntity_Link_FBaseAcceptQtyOld", HRightQty.ToString()); //
FentityModel4.Add("FEntity_Link_FBaseInspectQtyOld", HRightQty.ToString()); //
FentityModel4.Add("FEntity_Link_FInspectQtyOld", HRightQty.ToString()); //
Fentity4.Add(FentityModel4);
FentityModel.Add("FEntity_Link", Fentity4);
Fentity.Add(FentityModel);
model.Add("FEntity", Fentity); //明细信息
JObject jsonRoot = new JObject()
{
["Creator"] = "",
["NeedUpDateFields"] = new JArray(),
["NeedReturnFields"] = new JArray(),
["IsDeleteEntry"] = "false",
["SubSystemId"] = "",
["IsVerifyBaseDataField"] = "false",
//["IsAutoSubmitAndAudit"] = true,//自动调用提交和审核功能
["Model"] = model
};
string result = InvokeHelper.Save("QM_InspectBill", JsonConvert.SerializeObject(jsonRoot));//保存
//判断保存是否成功
if (JObject.Parse(result)["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper() != "TRUE")
{
LogService.Write("来料检验单保存错误jsonRoot:" + jsonRoot);
oCN.RollBack();
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = $"来料检验单同步金蝶云失败!单号:{HBillNo.ToString()}" + jsonRoot;
objJsonResult.data = null;
return objJsonResult;
}
//提交审核
string result1 = string.Empty;
string result2 = string.Empty;
var fID = JObject.Parse(result)["Result"]["Id"].ToString();
var fBillNo = JObject.Parse(result)["Result"]["Number"].ToString();
var json = new
{
Ids = fID,
};
K3CloudApiClient client = new K3CloudApiClient("http://192.168.80.90/k3cloud/");
result1 = InvokeHelper.Submit("QM_InspectBill", JsonConvert.SerializeObject(json));//提交
result2 = InvokeHelper.Audit("QM_InspectBill", JsonConvert.SerializeObject(json));//提交
if (JObject.Parse(result1)["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper() != "TRUE")
{
string jsonStr = "{" +
" \"FileName\":\"" + HFileName + "\"," +
" \"FormId\":\"QM_InspectBill\"," +
" \"IsLast\":\"true\"," +
" \"InterId\":\"" + HInterID + "\"," +
" \"BillNO\":\"" + HBillNo + "\"," +
" \"AliasFileName\":\"test\"," +
" \"SendByte\":\"" + a + "\"," +
"}";
var ret = client.AttachmentUpload(jsonStr);
oCN.RollBack();
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = $"来料检验单号:{fBillNo},提交失败" + result;
objJsonResult.data = null;
return objJsonResult;
}
oCN.Commit();
objJsonResult.code = "0";
objJsonResult.count = 1;
objJsonResult.Message = "保存成功!";
objJsonResult.data = 1;
return objJsonResult;
}
catch (Exception e)
{
oCN.RollBack();
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "Exception!" + e.ToString();
objJsonResult.data = null;
return objJsonResult;
}
}
#endregion
///
/// 生成金蝶云产品检验单
///
/// 工序汇报单主ID
///
[Route("SCStockInCheckBill/set_SaveSCStockInCheckBill_Json")]
[HttpGet]
public object set_SaveSCStockInCheckBill_Json(string HZJOrgNumber, string HMaterNumber, string HUnitNumber,
double HCheckQty, double HRightQty, double HBadQty,
string HCheckResult, string HSupNumber, string HWHNumber,
string HUseResult, Int64 HSeQ, Int64 HSourceInterID,
Int64 HSourceEntryID, string HSourceBillNo, string user,
Int64 HWHID, Int64 HSPID, Int64 HSupID, Int64 HKeeperID,
Int64 HMaterID, string HSourceBillType, Int64 HSLInterID,
Int64 HSLEntryID, string HSLBillNo, Int64 HSLSeQ)
{
try
{
//获取生产汇报单最大InterID和单据号
Int64 HInterID = DBUtility.ClsPub.CreateBillID("7501", ref DBUtility.ClsPub.sExeReturnInfo);
string HBillNo = DBUtility.ClsPub.CreateBillCode("7501", ref DBUtility.ClsPub.sExeReturnInfo, true);
//保存
//oCN.BeginTran();
//生成产品检验单
//oCN.RunProc("Insert Into QC_POStockInCheckBillMain " +
//"(HBillType,HBillSubType,HInterID,HBillNo,HDate,HMaker,HMakeDate,HBillStatus,HChecker,HCheckDate" +
//",HYear,HPeriod,HRemark,HSupID,HMaterID" +
//",HInstockQty,HCheckQty,HRightQty,HBadQty,HFirstCheckEmp" +
//",HCheckerResult,HSteelStoveNo,HSteelCompReport,HAspect,HSize" +
//") " +
//" values('7503','7503'," + HInterID.ToString() + ",'" + HBillNo + "',getdate(),'" + user + "',getdate(),2,'" + user + "',getdate()" +
//",DATENAME(YEAR,GETDATE()),0,''," + HSupID.ToString() + "," + HMaterID.ToString() +
//",'" + HCheckQty.ToString() + "','" + HCheckQty.ToString() + "','" + HRightQty.ToString() + "','" + HBadQty.ToString() + "','" + HKeeperID.ToString() + "'" +
//",'" + HCheckResult.ToString() + "','', '','',''" +
//") ");
////生产汇报单子表
//oCN.RunProc("Insert into QC_POStockInCheckBillSub " +
// " (HInterID,HEntryID,HCloseMan,HCloseType" +
// ",HRemark,HSourceInterID,HSourceEntryID,HSourceBillNo,HSourceBillType" +
// ",HRelationQty,HRelationMoney,HQCCheckClassID,HQCCheckItemID,HQCStd," +
// "HResult,HQCRelValue,HProcCheckEmp,HProcCheckTime" +
// ") values("
// + HInterID.ToString() + ",1,'',''" +
// ",''," + HSourceInterID.ToString() + "," + HSourceEntryID.ToString() + ",'" + HSourceBillNo.ToString() + "','" + HSourceBillType.ToString() + "'" +
// ",0,0,0,0,''" +
// ",'" + HCheckResult.ToString() + "','" + HCheckResult.ToString() + "','" + HKeeperID.ToString() + "',getdate()" +
// ") ");
//同步金蝶
//访问金蝶
var loginRet = InvokeHelper.Login();
var isSuccess = JObject.Parse(loginRet)["LoginResultType"].Value();
if (isSuccess == 0)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "操作失败,金蝶账号登录异常。" + loginRet;
objJsonResult.data = null;
return objJsonResult;
}
JObject model = new JObject();
model.Add("FBillTypeID", new JObject() { ["Fnumber"] = "JYD002_SYS" }); //单据类型 产品检验单JYD002_SYS
model.Add("FBusinessType", "3"); //业务类型
model.Add("FDate", DateTime.Now.ToString("yyyy-MM-dd")); //单据日期
model.Add("FSourceOrgId", new JObject() { ["Fnumber"] = HZJOrgNumber.ToString() }); //来源组织
model.Add("FInspectOrgId", new JObject() { ["Fnumber"] = HZJOrgNumber.ToString() }); //质检组织
model.Add("FISSYNCED", "false");// 是否已同步
model.Add("FBillNo", HBillNo);
JArray Fentity = new JArray();
JObject FentityModel = new JObject();
FentityModel.Add("FMaterialId", new JObject() { ["Fnumber"] = HMaterNumber.ToString() });// 物料内码
FentityModel.Add("FUnitID", new JObject() { ["Fnumber"] = HUnitNumber.ToString() });//计量单位内码
FentityModel.Add("FInspectQty", HCheckQty.ToString());// 检验数量
FentityModel.Add("FQualifiedQty", HRightQty.ToString());// 合格数量
FentityModel.Add("FUnqualifiedQty", HBadQty.ToString());// 不合格数量
FentityModel.Add("FInspectResult", HCheckResult.ToString());// 检验结果
FentityModel.Add("FQCStatus", "1");// 质检状态
FentityModel.Add("FIsRelated", false);// 不良品关联标志
FentityModel.Add("FSrcBillType0", "SFC_OperationReport");// 源单类型
FentityModel.Add("FBaseUnitId", new JObject() { ["Fnumber"] = HUnitNumber.ToString() });//基本单位
FentityModel.Add("FBaseInspectQty", HCheckQty.ToString());//基本单位检验数量
//FentityModel.Add("FSupplierId", new JObject() { ["Fnumber"] = HSupNumber.ToString() }); // 供应商
//FentityModel.Add("FStockId", new JObject() { ["Fnumber"] = HWHNumber.ToString() }); // 仓库
FentityModel.Add("FInspectTimes", "1"); // 检验次数
FentityModel.Add("FTimeUnit", "24");//时间单位
FentityModel.Add("FSAMPLEDAMAGEBEARER", "2");//样本破坏承担方
FentityModel.Add("FISFIRSTINSPECT", false);//首检
FentityModel.Add("FBaseQualifiedQty", HRightQty.ToString());//基本单位合格数
FentityModel.Add("FCurrency", new JObject() { ["Fnumber"] = "PRE001" });//币别
FentityModel.Add("FIsSplitRow ", false);// 是否拆分行
JArray Fentity2 = new JArray();
JObject FentityModel2 = new JObject();
FentityModel2.Add("FPolicyMaterialId", new JObject() { ["Fnumber"] = HMaterNumber.ToString() });// 物料内码
FentityModel2.Add("FPolicyStatus", "1"); //状态
FentityModel2.Add("FPolicyQty", HRightQty.ToString()); //数量
FentityModel2.Add("FBasePolicyQty", HRightQty.ToString()); //基本单位数量
FentityModel2.Add("FUsePolicy", HUseResult.ToString()); //使用决策
FentityModel2.Add("FIsCheck", false); //是否抽检
FentityModel2.Add("FIsDefectProcess", false); //不良处理
FentityModel2.Add("FCanSale", false); //可销售
FentityModel2.Add("FIsMRBReview", false); //MRP评审
FentityModel2.Add("FIsReturn", true); //判退
FentityModel2.Add("FIsRelatedDefect", false); //不良品关联标志
Fentity2.Add(FentityModel2);
FentityModel.Add("FPolicyDetail", Fentity2);
JArray Fentity3 = new JArray();
JObject FentityModel3 = new JObject();
FentityModel3.Add("FDetailID", "0");//
FentityModel3.Add("FSrcBillType", "SFC_OperationReport"); //源单类型
FentityModel3.Add("FSrcBillNo", HSLBillNo.ToString()); //工序汇报单单号
FentityModel3.Add("FSrcInterId", HSLInterID.ToString()); //工序汇报单主ID
FentityModel3.Add("FSrcEntryId", HSLEntryID.ToString()); //工序汇报单子ID
FentityModel3.Add("FSrcEntrySeq", HSLSeQ.ToString()); //工序汇报单行号
FentityModel3.Add("FOrderType", new JObject() { ["FID"] = "PRD_MO" }); // 生产订单类型
FentityModel3.Add("FOrderBillNo", HSourceBillNo.ToString()); //生产订单单号
FentityModel3.Add("FOrderId", HSourceInterID.ToString()); //生产订单主ID
FentityModel3.Add("FOrderEntryId", HSourceEntryID.ToString()); //生产订单子ID
FentityModel3.Add("FOrderEntrySeq", HSeQ.ToString()); //生产订单行号
Fentity3.Add(FentityModel3);
FentityModel.Add("FReferDetail", Fentity3);
JArray Fentity4 = new JArray();
JObject FentityModel4 = new JObject();
FentityModel4.Add("FEntity_Link_FRuleId", "QM_OperRpt2Inspect"); //单据转换规则
FentityModel4.Add("FEntity_Link_FSTableName", "T_SFC_OPTRPTENTRY"); //工序汇报单子表
FentityModel4.Add("FEntity_Link_FSBillId", HSLInterID.ToString()); //工序汇报单主ID
FentityModel4.Add("FEntity_Link_FSId", HSLEntryID.ToString()); //工序汇报单子ID
FentityModel4.Add("FEntity_Link_FBaseAcceptQty", HRightQty.ToString()); //
FentityModel4.Add("FEntity_Link_FBaseAcceptQtyOld", HRightQty.ToString()); //
FentityModel4.Add("FEntity_Link_FBaseInspectQtyOld", HRightQty.ToString()); //
FentityModel4.Add("FEntity_Link_FInspectQtyOld", HRightQty.ToString()); //
Fentity4.Add(FentityModel4);
FentityModel.Add("FEntity_Link", Fentity4);
//JArray Fentity3 = new JArray();
//JObject FentityModel3 = new JObject();
//FentityModel3.Add("FSrcBillType", "SFC_OperationReport"); //源单类型
//FentityModel3.Add("FSrcBillNo", HSLBillNo.ToString()); //工序汇报单单号
//FentityModel3.Add("FSrcInterId", HSLInterID.ToString()); //工序汇报单主ID
//FentityModel3.Add("FSrcEntryId", HSLEntryID.ToString()); //工序汇报单子ID
//FentityModel3.Add("FSrcEntrySeq", HSLSeQ.ToString()); //工序汇报单行号
//FentityModel3.Add("FOrderType", new JObject() { ["FID"] = "PUR_PurchaseOrder" }); // 工序计划类型
//FentityModel3.Add("FOrderBillNo", HSourceBillNo.ToString()); //工序计划单号
//FentityModel3.Add("FOrderId", HSourceInterID.ToString()); //工序计划主ID
//FentityModel3.Add("FOrderEntryId", HSourceEntryID.ToString()); //工序计划子ID
//FentityModel3.Add("FOrderEntrySeq", HSeQ.ToString()); //工序计划行号
//Fentity3.Add(FentityModel3);
//FentityModel.Add("FReferDetail", Fentity3);
Fentity.Add(FentityModel);
model.Add("FEntity", Fentity); //明细信息
SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
DataSet ds = oCN.RunProcReturn("select HCheckdate from Sc_ProcessReportMain where hbillno = '" + HSourceBillNo + "'", "Sc_ProcessReportMain");
DateTime HCheckDate = DBUtility.ClsPub.isDate(ds.Tables[0].Rows[0]["HCheckdate"]);
JObject jsonRoot = new JObject()
{
["Creator"] = "",
["NeedUpDateFields"] = new JArray(),
["NeedReturnFields"] = new JArray(),
["IsDeleteEntry"] = "false",
["SubSystemId"] = "",
["IsVerifyBaseDataField"] = "false",
["F_PGKJ_Date"] = HCheckDate.ToString(),
//["IsAutoSubmitAndAudit"] = true,//自动调用提交和审核功能
["Model"] = model
};
string result = InvokeHelper.Save("QM_InspectBill", JsonConvert.SerializeObject(jsonRoot));//保存
//判断保存是否成功
if (JObject.Parse(result)["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper() != "TRUE")
{
LogService.Write("来料检验单保存错误jsonRoot:" + jsonRoot);
oCN.RollBack();
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = $"来料检验单同步金蝶云失败!单号:{HBillNo.ToString()}" + result;
objJsonResult.data = null;
return objJsonResult;
}
//提交审核
string result1 = string.Empty;
string result2 = string.Empty;
var fID = JObject.Parse(result)["Result"]["Id"].ToString();
var fBillNo = JObject.Parse(result)["Result"]["Number"].ToString();
var json = new
{
Ids = fID,
};
result1 = InvokeHelper.Submit("QM_InspectBill", JsonConvert.SerializeObject(json));//提交
result2 = InvokeHelper.Audit("QM_InspectBill", JsonConvert.SerializeObject(json));//提交
if (JObject.Parse(result1)["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper() != "TRUE")
{
oCN.RollBack();
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = $"来料检验单号:{fBillNo},提交失败" + result;
objJsonResult.data = null;
return objJsonResult;
}
oCN.Commit();
objJsonResult.code = "0";
objJsonResult.count = 1;
objJsonResult.Message = "保存成功!";
objJsonResult.data = 1;
return objJsonResult;
}
catch (Exception e)
{
oCN.RollBack();
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "Exception!" + e.ToString();
objJsonResult.data = null;
return objJsonResult;
}
}
///
/// 返回生产汇报单列表
///参数:string sql。
///返回值:object。
///
[Route("Sc_ProcessMangement/MES_Sc_ProcessReportList_Json")]
[HttpGet]
public object MES_Sc_ProcessReportList_Json(string sWhere, string user)
{
DataSet ds;
try
{
//判断是否有查询权限
if (!DBUtility.ClsPub.Security_Log("Sc_ICMOReportBillQuery", 1, false, user))
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "无权限查询!";
objJsonResult.data = null;
return objJsonResult;
}
SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
if (sWhere == null || sWhere.Equals(""))
{
ds = oCN.RunProcReturn("select top 500 * from h_v_Sc_ProcessReportList order by hmainid desc", "h_v_Sc_ProcessReportList");
}
else
{
string sql1 = "select * from h_v_Sc_ProcessReportList where 1 = 1 ";
string sql = sql1 + sWhere + " order by hmainid desc";
ds = oCN.RunProcReturn(sql, "h_v_Sc_ProcessReportList");
}
}
catch (Exception e)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "没有返回任何记录!" + e.ToString();
objJsonResult.data = null;
return objJsonResult;
}
return GetObjectJson(ds);
}
///
/// 返回生产汇报单主表详情信息
///参数:string sql。
///返回值:object。
///
[Route("Sc_ProcessMangement/MES_DetailSc_ProcessReportList_Json")]
[HttpGet]
public object MES_DetailSc_ProcessReportList_Json(int HInterID)
{
DataSet ds;
try
{
SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
if (HInterID <= 0)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "HInterID小于0!";
objJsonResult.data = null;
return objJsonResult;
}
else
{
string sql1 = @"select s1.HInterID,s1.HBillNo,s1.HDeptID,s2.HName,s1.HDate,s1.HPlanQty,s1.HICMOBillNo,s1.HRemark,s2.HNumber
,s1.HMaker,s1.HMakeDate,s1.HChecker,s1.HCheckDate,s1.HUpDater,s1.HUpDateDate,s1.HCloseMan,s1.HCloseDate
from Sc_ProcessReportMain s1
inner join Gy_Department s2 on s1.HDeptID=s2.HItemID and s1.HInterID=" + HInterID;
ds = oCN.RunProcReturn(sql1, "Sc_ProcessReportMain");
}
}
catch (Exception e)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "没有返回任何记录!" + e.ToString();
objJsonResult.data = null;
return objJsonResult;
}
return GetObjectJson(ds);
}
///
/// 返回生产派工单关联详情信息
///参数:string sql。
///返回值:object。
///
[Route("Sc_ProcessMangement/MES_h_v_Sc_ProcessSendWorkList_Json")]
[HttpGet]
public object MES_h_v_Sc_ProcessSendWorkList_Json(int HInterID)
{
DataSet ds;
try
{
SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
if (HInterID <= 0)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "HInterID小于0!";
objJsonResult.data = null;
return objJsonResult;
}
else
{
string sql1 = @"select [hmainid], [日期], [单据号], [HDeptID], [部门代码], [部门], [HMaterID], [物料代码], [物料名称], [规格型号], [HUnitID], [计量单位代码], [计量单位], [HprocID],
[工序代码], [工序], [HGroupID], [班组代码], [班组名称], [HSourceID], [资源代码], [生产资源], [HWorkerID], [职员代码], [职员], [hsubid], [数量], [计划开工日期],
[计划完工日期], [计划工时], [表体备注], [HICMOInterID], [生产任务单号], [HSeOrderInterID], [销售订单号], [表头备注], [制单人], [制单日期], [审核人], [审核日期], [修改人],
[修改日期], [关闭人], [关闭日期], [作废人], [作废日期], [源单主内码], [源单子内码], [源单单号], [源单类型], [行关闭人], [HBillType], [HQtyDecimal], [HPriceDecimal]
from h_v_Sc_ProcessSendWorkList
where hmainid=(select HSourceID from Sc_ProcessReportSub where HInterID=" + HInterID + ")";
ds = oCN.RunProcReturn(sql1, "h_v_Sc_ProcessSendWorkList");
}
}
catch (Exception e)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "没有返回任何记录!" + e.ToString();
objJsonResult.data = null;
return objJsonResult;
}
return GetObjectJson(ds);
}
#region 工序计划单
List DetailColl = new List();
ClsSc_ProcessPlanMain omodel = new ClsSc_ProcessPlanMain();
ClsSc_ProcessPlan oBill = new ClsSc_ProcessPlan();
#region 工序计划单列表
///
/// 返回生产工序计划单列表
///参数:string sql。
///返回值:object。
///
[Route("Sc_ProcessMangement/MES_Sc_ProcessPlanMain_Json")]
[HttpGet]
public object MES_Sc_ProcessPlanMain_Json(string sWhere, string user)
{
DataSet ds;
try
{
if (!DBUtility.ClsPub.Security_Log("Sc_ProcessPlan_Query", 1, false, user))
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "无权限查询!";
objJsonResult.data = null;
return objJsonResult;
}
SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
if (sWhere == null || sWhere.Equals(""))
{
ds = oCN.RunProcReturn("select top 500 * from h_v_Sc_ProcessPlanList order by hmainid desc ", "h_v_Sc_ProcessPlanList");
}
else
{
string sql1 = "select * from h_v_Sc_ProcessPlanList where 1 = 1 ";
string sql = sql1 + sWhere + " order by hmainid desc ";
ds = oCN.RunProcReturn(sql, "h_v_Sc_ProcessPlanList");
}
}
catch (Exception e)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "没有返回任何记录!" + e.ToString();
objJsonResult.data = null;
return objJsonResult;
}
return GetObjectJson(ds);
}
#endregion
#region 工序计划单 保存/编辑
//工序计划单 保存/编辑
[Route("Sc_ProcessMangement/AddBill")]
[HttpPost]
public object AddBill([FromBody] JObject sMainSub)
{
var _value = sMainSub["sMainSub"].ToString();
string msg1 = _value.ToString();
oCN.BeginTran();
//保存主表
objJsonResult = AddBillMain(msg1);
if (objJsonResult.code == "0")
{
oCN.RollBack();
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = objJsonResult.Message;
objJsonResult.data = null;
return objJsonResult;
}
oCN.Commit();
objJsonResult.code = "1";
objJsonResult.count = 1;
objJsonResult.Message = "新增单据成功!";
objJsonResult.data = null;
return objJsonResult;
}
public json AddBillMain(string msg1)
{
string[] sArray = msg1.Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
string msg2 = sArray[0].ToString();
string msg3 = sArray[1].ToString();
int hentryid = int.Parse(sArray[2].ToString());//子表的顺序id
int OperationType = int.Parse(sArray[3].ToString());//数据类型 1添加 3修改
string user = sArray[4].ToString();//用户名
try
{
//判断是否有编辑权限
if (!DBUtility.ClsPub.Security_Log("Sc_ProcessPlan_Edit", 1, false, user))
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "无权限编辑!";
objJsonResult.data = null;
return objJsonResult;
}
omodel = Newtonsoft.Json.JsonConvert.DeserializeObject(msg2);
string BillType = "3715";
if (OperationType == 1)//新增
{
//主表
oCN.RunProc("Insert Into Sc_ProcessPlanMain " +
"(HYear,HPeriod,HBillType,HBillSubType,HInterID" +
",HDate,HBillNo,HBillStatus,HCheckItemNowID,HCheckItemNextID" +
",HICMOInterID,HICMOBillNo,HMaterID,HMaterNumber,HUnitID" +
",HUnitNumber,HPlanQty,HPlanBeginDate,HPlanEndDate,HExplanation" +
",HRemark,HInnerBillNo,HMaker,HMakeDate" +
") " +
" values(" + omodel.HYear.ToString() + "," + omodel.HPeriod.ToString() + ",'" + BillType + "','" + BillType + "'," + omodel.HInterID.ToString() +
",'" + omodel.HDate.ToShortDateString() + "','" + omodel.HBillNo + "'," + (omodel.HBillStatus = 1) + "," + omodel.HCheckItemNowID.ToString() + "," + omodel.HCheckItemNextID.ToString() +
"," + omodel.HICMOInterID.ToString() + ",'" + omodel.HICMOBillNo + "'," + omodel.HMaterID.ToString() + ",'" + omodel.HMaterNumber + "'," + omodel.HUnitID.ToString() +
",'" + omodel.HUnitNumber + "'," + omodel.HPlanQty.ToString() + ",'" + omodel.HPlanBeginDate.ToShortDateString() + "','" + omodel.HPlanEndDate.ToShortDateString() + "','" + omodel.HExplanation + "'" +
",'" + omodel.HRemark + "','" + omodel.HInnerBillNo + "','" + omodel.HMaker + "',getdate()" +
") ");
}
else if (OperationType == 3)
{
//修改
oCN.RunProc("UpDate Sc_ProcessPlanMain set " +
" HYear=" + omodel.HYear.ToString() +
",HPeriod=" + omodel.HPeriod.ToString() +
//",HInterID=" + omodel.HInterID.ToString() +
",HDate='" + omodel.HDate.ToShortDateString() + "'" +
//",HBillNo='" + omodel.HBillNo + "'" +
",HBillStatus=" + omodel.HBillStatus.ToString() +
",HCheckItemNowID=" + omodel.HCheckItemNowID.ToString() +
",HCheckItemNextID=" + omodel.HCheckItemNextID.ToString() +
",HICMOInterID=" + omodel.HICMOInterID.ToString() +
",HICMOBillNo='" + omodel.HICMOBillNo + "'" +
",HMaterID=" + omodel.HMaterID.ToString() +
",HMaterNumber='" + omodel.HMaterNumber + "'" +
",HUnitID=" + omodel.HUnitID.ToString() +
",HUnitNumber='" + omodel.HUnitNumber + "'" +
",HPlanQty=" + omodel.HPlanQty.ToString() +
",HPlanBeginDate='" + omodel.HPlanBeginDate.ToShortDateString() + "'" +
",HPlanEndDate='" + omodel.HPlanEndDate.ToShortDateString() + "'" +
",HExplanation='" + omodel.HExplanation + "'" +
",HRemark='" + omodel.HRemark + "'" +
",HInnerBillNo='" + omodel.HInnerBillNo + "'" +
",HUpDater='" + omodel.HUpDater + "'" +
",HUpDateDate=getdate()" +
" where HInterID=" + omodel.HInterID.ToString());
//删除子表
oCN.RunProc("Delete From Sc_ProcessPlanSub where HInterID = " + omodel.HInterID.ToString() + " and hentryid=" + hentryid);
}
//保存子表
objJsonResult = AddBillSub(msg3, hentryid);
if (objJsonResult.code == "0")
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = objJsonResult.Message;
objJsonResult.data = null;
return objJsonResult;
}
objJsonResult.code = "1";
objJsonResult.count = 1;
objJsonResult.Message = null;
objJsonResult.data = null;
return objJsonResult;
}
catch (Exception e)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "Exception!" + e.ToString();
objJsonResult.data = null;
return objJsonResult;
}
}
public json AddBillSub(string msg3, int hentryid)
{
DetailColl = Newtonsoft.Json.JsonConvert.DeserializeObject>(msg3);
int i = 1;
//插入子表
foreach (Models.ClsSc_ProcessPlanSub oSub in DetailColl)
{
oCN.RunProc("Insert into Sc_ProcessPlanSub " +
" (HInterID,HEntryID,HBillNo,HProcNo,HProcID,HWorkingQty" +
",HProcNumber,HWorkRemark,HCenterID,HDeptID,HDeptNumber" +
",HGroupID,HGroupNumber,HWorkerID,HWorkerNumber,HSourceID" +
",HQty,HTimeUnit,HPlanWorkTimes,HPlanBeginDate,HPlanEndDate" +
",HICMOInterID,HICMOBillNo,HSeOrderInterID,HSeOrderEntryID,HSeOrderBillNo" +
",HCloseMan,HCloseType,HRemark,HSourceInterID,HSourceEntryID" +
",HSourceBillNo,HSourceBillType,HRelationQty,HRelationMoney" +
",HBeginDayQty,HBeginFixQty,HFixWorkDays,HTrunWorkDays,HReadyTimes" +
",HReadyTime,HQueueTime,HMoveTime,HBatchNo" +
") values("
+ omodel.HInterID.ToString() + "," + (hentryid == -1 ? i : hentryid) + ",'" + oSub.HBillNo + "'," + oSub.HProcNo.ToString() + "," + oSub.HProcID.ToString() + "," + oSub.HWorkingQty.ToString() +
",'" + oSub.HProcNumber + "','" + oSub.HWorkRemark + "'," + oSub.HCenterID.ToString() + "," + oSub.HDeptID.ToString() + ",'" + oSub.HDeptNumber + "'" +
"," + oSub.HGroupID.ToString() + ",'" + oSub.HGroupNumber + "'," + oSub.HWorkerID.ToString() + ",'" + oSub.HWorkerNumber + "'," + oSub.HSourceID.ToString() +
"," + oSub.HQty.ToString() + ",'" + oSub.HTimeUnit + "'," + oSub.HPlanWorkTimes.ToString() + ",'" + oSub.HPlanBeginDate.ToString() + "','" + oSub.HPlanEndDate.ToString() + "'" +
"," + oSub.HICMOInterID.ToString() + ",'" + oSub.HICMOBillNo + "'," + oSub.HSeOrderInterID.ToString() + "," + oSub.HSeOrderEntryID.ToString() + ",'" + oSub.HSeOrderBillNo + "'" +
",'" + oSub.HCloseMan + "'," + Convert.ToString(oSub.HCloseType ? 1 : 0) + ",'" + oSub.HRemark + "'," + oSub.HSourceInterID.ToString() + "," + oSub.HSourceEntryID.ToString() +
",'" + oSub.HSourceBillNo + "','" + oSub.HSourceBillType + "'," + oSub.HRelationQty.ToString() + "," + oSub.HRelationMoney.ToString() +
"," + oSub.HBeginDayQty.ToString() + "," + oSub.HBeginFixQty.ToString() + "," + oSub.HFixWorkDays.ToString() + "," + oSub.HTrunWorkDays.ToString() + "," + oSub.HReadyTimes.ToString() +
"," + oSub.HReadyTime.ToString() + "," + oSub.HQueueTime.ToString() + "," + oSub.HMoveTime.ToString() + ",'" + oSub.HBatchNo + "'" +
") ");
i++;
}
objJsonResult.code = "1";
objJsonResult.count = 1;
objJsonResult.Message = null;
objJsonResult.data = null;
return objJsonResult;
}
#endregion
#region 工序计划单 审核/反审核
[Route("Sc_ProcessMangement/CheckDeOAuditBill")]
[HttpGet]
public object CheckDeOAuditBill(int HInterID, int IsAudit, string CurUserName)
{
string ModRightNameCheck = "Sc_ProcessPlan_Check"; //该模块的审核功能
DBUtility.ClsPub.CurUserName = CurUserName;//存储用户名
try
{
//判断是否有审核权限
if (!DBUtility.ClsPub.Security_Log(ModRightNameCheck, 1, false, CurUserName))
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "审核失败!无权限!";
objJsonResult.data = null;
return objJsonResult;
}
//判断id是否大于0
if (HInterID <= 0)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "ID小于0";
objJsonResult.data = null;
return objJsonResult;
}
//转换id
Int64 lngBillKey = 0;
lngBillKey = DBUtility.ClsPub.isLong(HInterID);
//查询审核的这条数据
ds = oCN.RunProcReturn("select * from Sc_ProcessPlanMain where HInterID='" + HInterID + "'", "Sc_ProcessPlanMain");
if (ds.Tables[0].Rows.Count > 0)
{
string HCloseMan = ds.Tables[0].Rows[0]["HCloseMan"].ToString().Trim();//关闭人
string HDeleteMan = ds.Tables[0].Rows[0]["HDeleteMan"].ToString().Trim();//作废人
string HChecker = ds.Tables[0].Rows[0]["HChecker"].ToString().Trim();//审核人
if (HCloseMan != "")
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "当前单据已关闭,不能审核";
objJsonResult.data = null;
return objJsonResult;
}
if (HDeleteMan != "")
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "当前单据已作废,不能审核";
objJsonResult.data = null;
return objJsonResult;
}
//IsAudit==0 审核
if (IsAudit == 0)
{
if (HChecker != "")
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "当前数据已审核";
objJsonResult.data = null;
return objJsonResult;
}
}
//IsAudit==1 反审核
if (IsAudit == 1)
{
if (HChecker == "")
{
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 (IsAudit == 0)
{
if (CheckBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo))
{
objJsonResult.code = "1";
objJsonResult.count = 1;
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 (IsAudit == 1)
{
if (AbandonCheck(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo))
{
objJsonResult.code = "1";
objJsonResult.count = 1;
objJsonResult.Message = "反审核成功";
objJsonResult.data = null;
return objJsonResult;
}
else
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "反审核失败,原因:" + DBUtility.ClsPub.sExeReturnInfo;
objJsonResult.data = null;
return objJsonResult;
}
}
return objJsonResult;
}
catch (Exception e)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "审核失败或反审核失败" + e.ToString();
objJsonResult.data = null;
return objJsonResult;
}
}
//审核
public bool CheckBill(Int64 lngBillKey, ref string sReturn)
{
try
{
string HChecker = DBUtility.ClsPub.CurUserName;//用户名
oCN.BeginTran();//打开事务
oCN.RunProc("update Sc_ProcessPlanMain set HChecker='" + HChecker + "',HCheckDate='" + DateTime.Now + "',HBillStatus=2 where HInterID='" + lngBillKey + "'");
oCN.Commit();//关闭事务
sReturn = "审核单据成功!";
return true;
}
catch (Exception e)
{
sReturn = e.Message;
throw (e);
}
}
//反审核
public bool AbandonCheck(Int64 lngBillKey, ref string sReturn)
{
try
{
string HChecker = DBUtility.ClsPub.CurUserName;//用户名
oCN.BeginTran();//打开事务
oCN.RunProc("update Sc_ProcessPlanMain set HChecker='',HCheckDate=null,HBillStatus=1 where HInterID='" + lngBillKey + "'");
oCN.Commit();//关闭事务
sReturn = "反审核单据成功!";
return true;
}
catch (Exception e)
{
sReturn = e.Message;
throw (e);
}
}
#endregion
#region 工序计划单 删除
[Route("Sc_ProcessMangement/DeleteProcessBill")]
[HttpGet]
public object MouldDeleteBill(long HInterID, string User, string ModRightNameDelete)
{
try
{
//判断权限
if (!DBUtility.ClsPub.Security_Log(ModRightNameDelete, 1, false, User))
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "没有删除权限";
objJsonResult.data = null;
return objJsonResult;
}
oBill.ShowBill(HInterID, ref DBUtility.ClsPub.sExeReturnInfo);
if (oBill.omodel.HChecker != "")
{
objJsonResult.code = "0";
objJsonResult.count = 1;
objJsonResult.Message = "单据当前处于审核状态,不能删除!";
objJsonResult.data = null;
return objJsonResult;
}
if (oBill.DeleteBill(oBill.omodel.HInterID, ref DBUtility.ClsPub.sExeReturnInfo))
{
objJsonResult.code = "1";
objJsonResult.count = 1;
objJsonResult.Message = "删除成功";
objJsonResult.data = null;
return objJsonResult;
}
else
{
objJsonResult.code = "0";
objJsonResult.count = 1;
objJsonResult.Message = "删除失败";
objJsonResult.data = null;
return objJsonResult;
}
}
catch (Exception e)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "无权限删除";
objJsonResult.data = null;
return objJsonResult;
}
}
#endregion
#endregion
///
/// 返回生产工序派工单列表
///
///
///
[Route("Sc_ProcessMangement/MES_Sc_ProcessSendWorkMain_Json")]
[HttpGet]
public object MES_Sc_ProcessSendWorkMain_Json(string sWhere, string user)
{
DataSet ds;
try
{
//判断是否有查询权限
if (!DBUtility.ClsPub.Security_Log("Sc_ProcessSendWork_Query", 1, false, user))
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "无权限查询!";
objJsonResult.data = null;
return objJsonResult;
}
SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
if (sWhere == null || sWhere.Equals(""))
{
ds = oCN.RunProcReturn("select top 500 * from h_v_Sc_ProcessSendWorkList order by hmainid desc ", "h_v_Sc_ProcessSendWorkList");
}
else
{
string sql1 = "select * from h_v_Sc_ProcessSendWorkList where 1 = 1 ";
string sql = sql1 + sWhere + " order by hmainid desc ";
ds = oCN.RunProcReturn(sql, "h_v_Sc_ProcessSendWorkList");
}
}
catch (Exception e)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "没有返回任何记录!" + e.ToString();
objJsonResult.data = null;
return objJsonResult;
}
return GetObjectJson(ds);
}
///
/// 保存派工单信息
///
///
///
[Route("SaveProcessSendWork")]
[HttpPost]
public object SaveProcessSendWork([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 user = sArray[2].ToString();//用户名
string UserName = "";
ListModels oListModels = new ListModels();
try
{
//判断是否有编辑权限
if (!DBUtility.ClsPub.Security_Log("Sc_ProcessSendWork_Edit", 1, false, user))
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "无权限编辑!";
objJsonResult.data = null;
return objJsonResult;
}
DAL.ClsSc_ProcessSendWork Sendwork = new DAL.ClsSc_ProcessSendWork();
List lsmain = new List();
msg2 = msg2.Replace("\\", "");
msg2 = msg2.Replace("\n", "");
lsmain = oListModels.getObjectByJson_SendWorkMain(msg2);
foreach (Model.ClsSc_ProcessSendWorkMain 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;
if (DBUtility.ClsPub.isStrNull(oItem.HPlanBeginDate) == "")
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "保存失败!没有填写计划开工日期,无法保存!";
objJsonResult.data = 1;
return objJsonResult;
}
Sendwork.omodel = oItem;
}
//表体数据
//按 },{来拆分数组 //去掉【和】
msg3 = msg3.Substring(1, msg3.Length - 2);
msg3 = msg3.Replace("\\", "");
msg3 = msg3.Replace("\n", ""); //\n
List ls = new List();
ls = oListModels.getObjectByJson_SendWorkSub(msg3);
int i = 0;
List lss = new List();
foreach (WebAPI.Models.Sc_ProcessPlanViewModel oItemSub in ls)
{
i++;
Model.ClsSc_ProcessSendWorkSub sendworksub = new Model.ClsSc_ProcessSendWorkSub();
sendworksub.HProcID = oItemSub.hprocid.Value;//--工序ID
sendworksub.HProcPlanBillNo = oItemSub.工序计划单号; //--工序计划单号
sendworksub.HProcPlanEntryID = oItemSub.hsubid.Value; //--工序计划单子ID
sendworksub.HProcPlanInterID = oItemSub.hmainid.Value; //--工序计划单ID
sendworksub.HICMOInterID = oItemSub.hicmointerid.Value; //--任务单ID
sendworksub.HICMOBillNo = oItemSub.任务单号; //--任务单号
sendworksub.HSeOrderBillNo = oItemSub.销售订单号; //--销售订单号
sendworksub.HSeOrderEntryID = oItemSub.销售订单子ID.Value; //--销售子ID
sendworksub.HSeOrderInterID = oItemSub.销售订单主ID.Value; //--销售订单主ID
sendworksub.HPlanTimes = (float)oItemSub.计划加工时间; //--计划工时
sendworksub.HPlanEndDate = oItemSub.计划完工日期.Value; //--计划完工日期
sendworksub.HPlanBeginDate = oItemSub.计划开工日期.Value; //--计划开工日期
sendworksub.HQty = (double)oItemSub.计划数量; //--派工数量
sendworksub.HWorkerNumber = oItemSub.操作员代码; //--操作工代码
sendworksub.HWorkerID = oItemSub.HWorkerID.Value; //--操作工ID
sendworksub.HGroupNumber = oItemSub.班组代码; //班组代码
sendworksub.HGroupID = oItemSub.HGroupID.Value; //--班组ID
sendworksub.HSourceNumber = oItemSub.生产资源; //--生产资源代码
//--生产资源ID
sendworksub.HProcNumber = oItemSub.工序代码; //--工序代码
sendworksub.HRemark = oItemSub.表体备注; //--备注
if (oItemSub.计划数量 <= 0)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "保存失败!第" + i.ToString() + "行数量不大于0无法保存!";
objJsonResult.data = 1;
return objJsonResult;
}
if (Convert.ToInt32(sendworksub.HQty) > Convert.ToInt32(oItemSub.计划数量))
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "保存失败!第" + i.ToString() + "行派工数量不能大于计划单数量!";
objJsonResult.data = 1;
return objJsonResult;
}
//if (DBUtility.ClsPub.isStrNull(oItemSub.HBatChNo) == "")
//{
// objJsonResult.code = "0";
// objJsonResult.count = 0;
// objJsonResult.Message = "保存失败!第" + i.ToString() + "行未填写批号!";
// objJsonResult.data = 1;
// return objJsonResult;
//}
sendworksub.HEntryID = i;
sendworksub.HEntryCloseDate = DBUtility.ClsPub.isDate(DateTime.Now);
sendworksub.HRemark = "";
sendworksub.HCloseMan = "";
sendworksub.HCloseType = false;
sendworksub.HSourceBillType = oItemSub.HBillType;
lss.Add(sendworksub);//先把数据存放到派工单子表集合里
}
if (lss.Count > 0)
{
//然后再循环保存到派工单子表的集合里
foreach (Model.ClsSc_ProcessSendWorkSub Itemsendwork in lss)
{
Sendwork.DetailColl.Add(Itemsendwork);
}
}
else
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "保存失败!lss集合小于0";
objJsonResult.data = 1;
return objJsonResult;
}
//保存
//保存完毕后处理
bool bResult;
if (Sendwork.omodel.HInterID == 0)
{
// bResult = oBill.AddBill(ref DBUtility.ClsPub.sExeReturnInfo);
bResult = Sendwork.AddBill(ref DBUtility.ClsPub.sExeReturnInfo);
}
else
{
bResult = Sendwork.ModifyBill(Sendwork.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;
}
}
///
/// 保存委外派工单信息
///
///
///
[Route("SaveWWProcessSendWork")]
[HttpPost]
public object SaveWWProcessSendWork([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 user = sArray[2].ToString();
string UserName = "";
ListModels oListModels = new ListModels();
try
{
//判断是否有编辑权限
if (!DBUtility.ClsPub.Security_Log("WW_EntrustProcSendWorkBill_Edit", 1, false, user))
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "无权限编辑!";
objJsonResult.data = null;
return objJsonResult;
}
WebAPI.DLL.ClsSc_ProcessSendWork Sendwork = new WebAPI.DLL.ClsSc_ProcessSendWork();
List lsmain = new List();
msg2 = msg2.Replace("\\", "");
msg2 = msg2.Replace("\n", "");
lsmain = oListModels.getObjectByJson_WWSendWorkMain(msg2);
foreach (WebAPI.Models.ClsSc_ProcessSendWorkMain 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;
if (DBUtility.ClsPub.isStrNull(oItem.HPlanBeginDate) == "")
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "保存失败!没有填写计划开工日期,无法保存!";
objJsonResult.data = 1;
return objJsonResult;
}
Sendwork.omodel = oItem;
}
//表体数据
//按 },{来拆分数组 //去掉【和】
msg3 = msg3.Substring(1, msg3.Length - 2);
msg3 = msg3.Replace("\\", "");
msg3 = msg3.Replace("\n", ""); //\n
List ls = new List();
ls = oListModels.getObjectByJson_WWSendWorkSub(msg3);
int i = 0;
List lss = new List();
foreach (WebAPI.Models.WW_EntrustWorkOrderViewModel oItemSub in ls)
{
i++;
Model.ClsSc_ProcessSendWorkSub sendworksub = new Model.ClsSc_ProcessSendWorkSub();
sendworksub.HProcID = 0;//--工序ID
sendworksub.HSourceInterID = (long)oItemSub.hmainid;//源单id
sendworksub.HSourceEntryID = oItemSub.hsubid; //--源单子ID
sendworksub.HSourceBillNo = oItemSub.单据号; //--源单单号
sendworksub.HSourceBillType = oItemSub.HBillType; //--源单类型
sendworksub.HQty = oItemSub.数量; //--数量
sendworksub.HICMOBillNo = ""; //--任务单号
sendworksub.HSeOrderBillNo = ""; //--销售订单号
sendworksub.HSeOrderEntryID = 0; //--销售子ID
sendworksub.HSeOrderInterID = 0; //--销售订单主ID
sendworksub.HPlanTimes = 0; //--计划工时
sendworksub.HPlanEndDate = DateTime.Now; //--计划完工日期
sendworksub.HPlanBeginDate = DateTime.Now; //--计划开工日期
sendworksub.HQty = (double)oItemSub.数量; //--派工数量
sendworksub.HWorkerNumber = ""; //--操作工代码
sendworksub.HWorkerID = 0; //--操作工ID
sendworksub.HGroupNumber = ""; //班组代码
sendworksub.HGroupID = 0; //--班组ID
sendworksub.HSourceNumber = ""; //--生产资源代码
//--生产资源ID
sendworksub.HProcNumber = ""; //--工序代码
if (oItemSub.数量 <= 0)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "保存失败!第" + i.ToString() + "行数量不大于0无法保存!";
objJsonResult.data = 1;
return objJsonResult;
}
if (Convert.ToInt32(sendworksub.HQty) > Convert.ToInt32(oItemSub.数量))
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "保存失败!第" + i.ToString() + "行委外派工数量不能大于委外工单数量!";
objJsonResult.data = 1;
return objJsonResult;
}
//if (DBUtility.ClsPub.isStrNull(oItemSub.HBatChNo) == "")
//{
// objJsonResult.code = "0";
// objJsonResult.count = 0;
// objJsonResult.Message = "保存失败!第" + i.ToString() + "行未填写批号!";
// objJsonResult.data = 1;
// return objJsonResult;
//}
sendworksub.HEntryID = i;
sendworksub.HEntryCloseDate = DBUtility.ClsPub.isDate(DateTime.Now);
sendworksub.HRemark = "";
sendworksub.HCloseMan = "";
sendworksub.HCloseType = false;
lss.Add(sendworksub);//先把数据存放到派工单子表集合里
}
if (lss.Count > 0)
{
//然后再循环保存到派工单子表的集合里
foreach (Model.ClsSc_ProcessSendWorkSub Itemsendwork in lss)
{
Sendwork.DetailColl.Add(Itemsendwork);
}
}
else
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "保存失败!lss集合小于0";
objJsonResult.data = 1;
return objJsonResult;
}
//保存
//保存完毕后处理
bool bResult;
if (Sendwork.omodel.HInterID == 0)
{
// bResult = oBill.AddBill(ref DBUtility.ClsPub.sExeReturnInfo);
bResult = Sendwork.AddBill(ref DBUtility.ClsPub.sExeReturnInfo);
}
else
{
bResult = Sendwork.ModifyBill(Sendwork.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;
}
}
///
/// 返回委外工单列表
///
///
///
[Route("Sc_ProcessMangement/MES_WW_EntrustWorkOrderBillMain_Json")]
[HttpGet]
public object MES_WW_EntrustWorkOrderBillMain_Json(string sWhere)
{
DataSet ds;
try
{
SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
if (sWhere == null || sWhere.Equals(""))
{
ds = oCN.RunProcReturn("select top 500 * from h_v_WW_EntrustWorkOrderBillList ", "h_v_WW_EntrustWorkOrderBillList");
}
else
{
string sql1 = "select * from h_v_WW_EntrustWorkOrderBillList where 1 = 1 ";
string sql = sql1 + sWhere;
ds = oCN.RunProcReturn(sql, "h_v_WW_EntrustWorkOrderBillList");
}
}
catch (Exception e)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "没有返回任何记录!" + e.ToString();
objJsonResult.data = null;
return objJsonResult;
}
return GetObjectJson(ds);
}
///
/// 返回不合格评审列表
///
///
///
[Route("Sc_ProcessMangement/MES_QC_NoPassProdCheckBill_Json")]
[HttpGet]
public object MES_QC_NoPassProdCheckBill_Json(string sWhere, string user)
{
DataSet ds;
try
{
//查看权限
if (!DBUtility.ClsPub.Security_Log("QC_NoPassProdCheckBillQuery", 1, false, user))
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "无查看权限!";
objJsonResult.data = null;
return objJsonResult;
}
SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
if (sWhere == null || sWhere.Equals(""))
{
ds = oCN.RunProcReturn("select top 500 * from h_v_QC_NoPassProdCheckBillList order by hmainid desc ", "h_v_QC_NoPassProdCheckBillList");
}
else
{
string sql1 = "select * from h_v_QC_NoPassProdCheckBillList where 1 = 1 ";
string sql = sql1 + sWhere + " order by hmainid desc ";
ds = oCN.RunProcReturn(sql, "h_v_QC_NoPassProdCheckBillList");
}
}
catch (Exception e)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "没有返回任何记录!" + e.ToString();
objJsonResult.data = null;
return objJsonResult;
}
return GetObjectJson(ds);
}
///
/// 不合格评审 删除
///
///
///
///
[Route("Sc_ProcessMangement/ProcessMangementDeleteBill")]
[HttpGet]
public object ProcessMangementDeleteBill(string HInterID, string user)
{
try
{
if (!DBUtility.ClsPub.Security_Log("QC_NoPassProdCheckBill_Drop", 1, false, user))
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "无权限删除";
objJsonResult.data = null;
return objJsonResult;
}
ds = oCN.RunProcReturn("select * from h_v_QC_NoPassProdCheckBillList where hmainid =" + HInterID + " ", "h_v_QC_NoPassProdCheckBillList");
if (ds.Tables[0].Rows[0]["审核人"].ToString() != "")
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "单据已审核,不能删除!";
objJsonResult.data = null;
return objJsonResult;
}
oCN.BeginTran();
oCN.RunProc("Delete from QC_NoPassProdCheckBillMain where HInterID=" + HInterID);
oCN.RunProc("Delete from QC_NoPassProdCheckBillSub where HInterID=" + HInterID);
oCN.Commit();
objJsonResult.code = "1";
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;
}
}
#region 不合格评审 审核/反审核
[Route("Sc_ProcessMangement/AuditProcessMangement")]
[HttpGet]
public object AuditProcessMangement(int HInterID, int IsAudit, string CurUserName)
{
string ModRightNameCheck = "QC_NoPassProdCheckBill_Check"; //该模块的审核功能
DBUtility.ClsPub.CurUserName = CurUserName;//存储用户名
try
{
////判断是否有审核权限
if (!DBUtility.ClsPub.Security_Log(ModRightNameCheck, 1, false, CurUserName))
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "审核失败!无权限!";
objJsonResult.data = null;
return objJsonResult;
}
if (HInterID <= 0)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "ID小于0";
objJsonResult.data = null;
return objJsonResult;
}
Int64 lngBillKey = 0;
lngBillKey = DBUtility.ClsPub.isLong(HInterID);//数据转换
//查询审核的数据
ds = oCN.RunProcReturn("select * from QC_NoPassProdCheckBillMain where HInterID='" + HInterID + "'", "QC_NoPassProdCheckBillMain");
if (ds.Tables[0].Rows.Count > 0)
{
var hcloseman = ds.Tables[0].Rows[0]["HCloseMan"].ToString();//关闭人
var hdeleteman = ds.Tables[0].Rows[0]["HDeleteMan"].ToString();//作废人
var hchecker = ds.Tables[0].Rows[0]["HChecker"].ToString();//审核人
if (hcloseman != "")
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "当前单据已关闭,无法审核!";
objJsonResult.data = null;
return objJsonResult;
}
if (hdeleteman != "")
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "当前单据已作废,无法审核!";
objJsonResult.data = null;
return objJsonResult;
}
//IsAudit==0 审核
if (IsAudit == 1)
{
if (hchecker != "")
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "当前单据已审核,无法再次审核!";
objJsonResult.data = null;
return objJsonResult;
}
}
//IsAudit==1 反审核
if (IsAudit == 2)
{
if (hchecker == "")
{
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 (IsAudit == 1)
{
oCN.RunProc(" Update QC_NoPassProdCheckBillMain set HChecker='" + CurUserName + "',HCheckDate='" + DateTime.Now + "',HBillStatus=2 Where HBillType='7509' and HInterID=" + HInterID);
objJsonResult.code = "1";
objJsonResult.count = 1;
objJsonResult.Message = "审核成功!";
objJsonResult.data = null;
return objJsonResult;
}
//反审核提交
if (IsAudit == 2)
{
oCN.RunProc(" Update QC_NoPassProdCheckBillMain set HChecker='',HCheckDate=null,HBillStatus=0 Where HBillType='7509' and HInterID=" + HInterID);
objJsonResult.code = "1";
objJsonResult.count = 1;
objJsonResult.Message = "反审核成功!";
objJsonResult.data = null;
return objJsonResult;
}
return objJsonResult;
}
catch (Exception e)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "审核失败或反审核失败" + e.ToString();
objJsonResult.data = null;
return objJsonResult;
}
}
#endregion
///
/// PDA工序汇报单保存
///
///
///
[Route("SaveProcessReport")]
[HttpPost]
public object SaveProcessReport([FromBody] JObject msg)
{
var _value = msg["msg"].ToString();
string msg1 = _value.ToString();
ListModels oListModels = new ListModels();
try
{
DAL.ClsSc_ProcessReport ReportModel = new DAL.ClsSc_ProcessReport();
List ls = new List();
ls = oListModels.getObjectByJson_Report(msg1);
int i = 0;
foreach (Models.Sc_ProcessReportViewModel ItemView in ls)
{
i++;
Model.ClsSc_ProcessReportMain ReportMain = new Model.ClsSc_ProcessReportMain();
Model.ClsSc_ProcessReportSub ReportSub = new Model.ClsSc_ProcessReportSub();
//工序汇报单主表保存
ReportMain.HBillType = "3714";
ReportMain.HBillNo = ItemView.HBillNo;
ReportMain.HMakeDate = DBUtility.ClsPub.isStrNull(DateTime.Now.ToString("yyyy-MM-dd"));
ReportMain.HYear = DBUtility.ClsPub.isLong(DateTime.Now.Year);
ReportMain.HDate = DateTime.Now;
ReportMain.HMaker = ItemView.HEmp;
ReportMain.HCloseType = false;
ReportMain.HPlanQty = (double)ItemView.HQty;
ReportMain.HMainSourceInterID = ItemView.HInterID;
ReportMain.HInterID = 0;
ReportMain.HPeriod = 1;
ReportMain.HBillSubType = "3714";
ReportMain.HBillStatus = 0;
ReportMain.HCheckItemNowID = 0;
ReportMain.HCheckItemNextID = 0;
ReportMain.HICMOInterID = (long)ItemView.HICMOInterID;
ReportMain.HICMOBillNo = ItemView.HICMOBillNo;
ReportMain.HDeptID = (long)ItemView.HDeptID;
ReportMain.HDeptNumber = ItemView.HDeptNumber;
ReportMain.HGroupID = (long)ItemView.HGroupID;
ReportMain.HGroupNumber = ItemView.HGroupNumber;
ReportMain.HMaterID = (long)ItemView.HMaterID;
ReportMain.HMaterNumber = ItemView.HMaterNumber;
ReportMain.HUnitID = ItemView.HUnitID;
ReportMain.HUnitNumber = ItemView.HUnitNumber;
ReportMain.HInStockQty = 0;
ReportMain.HSumTimes = 0;
ReportMain.HExplanation = "";
ReportMain.HInnerBillNo = "";
ReportMain.HSupID = 0;
//保存到汇报单主表
ReportModel.omodel = ReportMain;
ReportSub.HEmpID = (long)ItemView.HEmpID;
ReportSub.HICMOBillNo = ItemView.HICMOBillNo;
ReportSub.HICMOInterID = (long)ItemView.HICMOInterID;
ReportSub.HEntryID = i;
ReportSub.HEntryCloseDate = DBUtility.ClsPub.isDate(DateTime.Now);
ReportSub.HRemark = "";
ReportSub.HCloseMan = "";
ReportSub.HCloseType = false;
ReportSub.HSourceBillType = "3712";
ReportSub.HQty = (double)ItemView.HQty;
ReportSub.HProcID = ItemView.HProcID;
ReportSub.HProcNumber = ItemView.HProcNumber;
ReportSub.HOutPrice = 0;
ReportSub.HOutMoney = 0;
ReportSub.HSourceID = (long)ItemView.HSourceID;
ReportSub.HEmpNumber = "";
ReportSub.HRelBeginDate = DateTime.Now;
ReportSub.HRelEndDate = DateTime.Now;
ReportSub.HTimes = 3;
ReportSub.HSeOrderInterID = 0;
ReportSub.HSeOrderEntryID = 0;
ReportSub.HSeOrderBillNo = "";
ReportSub.HProcPlanInterID = 0;
ReportSub.HProcPlanBillNo = "";
ReportSub.HSourceInterID = 0;
ReportSub.HSourceBillNo = "";
ReportSub.HRelationQty = 0;
ReportSub.HRelationMoney = 0;
ReportSub.HMaterID = (long)ItemView.HMaterID;
ReportSub.HMaterNumber = ItemView.HMaterNumber;
ReportSub.HCheckQty = 0;
ReportSub.HBadCount = 0;
ReportSub.HWasterQty = 0;
ReportSub.HWasterQty2 = 0;
ReportSub.HPrice = 0;
ReportSub.HMoney = 0;
ReportSub.HProcPlanInterID = 0;
ReportSub.HProcPlanEntryID = 0;
ReportSub.HProcPlanBillNo = "";
ReportSub.HSourceEntryID = 0;
ReportSub.HSourceBillType = "";
ReportSub.HRelationQty = 0;
ReportSub.HRelationMoney = 0;
ReportSub.HBadPrirce = 0;
ReportSub.HBadMoney = 0;
ReportSub.HWasterPrice = 0;
ReportSub.HWasterMoney = 0;
ReportSub.HQualityRate = 0;
ReportSub.HSecUnitQty1 = 0;
ReportSub.HSecUnitRate1 = 0;
ReportSub.HSecUnitQty2 = 0;
ReportSub.HSecUnitRate2 = 0;
ReportSub.HUsingQty = 0;
ReportSub.HSelfBadCount = 0;
ReportSub.HPreBadCount = 0;
ReportSub.HPayMentQty = 0;
ReportSub.HOtherDeduct = 0;
ReportSub.HRelPay = 0;
ReportSub.HOtherItem1 = "";
ReportSub.HOtherItem2 = "";
ReportSub.HOtherItem3 = "";
ReportSub.HOtherItem4 = "";
ReportSub.HOtherItem5 = "";
ReportSub.HPackType = "";
ReportSub.HCheckEmpID = 0;
ReportSub.HWeight = 0;
ReportSub.HBatchNo = "";
//保存到汇报单子表
ReportModel.DetailColl.Add(ReportSub);
}
//保存
//保存完毕后处理
bool bResult;
if (ReportModel.omodel.HInterID == 0)
{
// bResult = oBill.AddBill(ref DBUtility.ClsPub.sExeReturnInfo);
bResult = ReportModel.AddBill(ref DBUtility.ClsPub.sExeReturnInfo);
}
else
{
bResult = ReportModel.ModifyBill(ReportModel.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;
}
}
///
/// 派工单号获取信息
///
///
[Route("Sc_ProcessMangement/getHbarCodeDetail")]
[HttpGet]
public ApiResult GetHbarCodeDetail(string sBillBarCode)
{
var model = LuBaoSevice.GetHbarCodeDetail(sBillBarCode);
return model;
}
///
///工序号获得信息
///
///
[Route("Sc_ProcessMangement/getProcDetail")]
[HttpGet]
public ApiResult GetProcDetail(string sBillNo, string sProcNo)
{
var model = LuBaoSevice.GetProcDetail(sBillNo, sProcNo);
return model;
}
///
/// 保存工序汇报单信息
///
///
///
[Route("SaveProcessReportList")]
[HttpPost]
public object SaveProcessReportList([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 user = sArray[2].ToString();//用户名
string UserName;
ListModels oListModels = new ListModels();
try
{
//判断是否有编辑权限
if (!DBUtility.ClsPub.Security_Log("Sc_ICMOReportBill_Edit", 1, false, user))
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "无权限编辑!";
objJsonResult.data = null;
return objJsonResult;
}
DAL.ClsSc_ProcessReport ReportModel = new DAL.ClsSc_ProcessReport();
List lsmain = new List();
msg2 = msg2.Replace("\\", "");
msg2 = msg2.Replace("\n", ""); //\n
lsmain = oListModels.getObjectByJson_Reportlist(msg2);
foreach (Model.ClsSc_ProcessReportMain oItem in lsmain)
{
UserName = oItem.HMaker;
oItem.HMaker = UserName;
oItem.HMakeDate = DBUtility.ClsPub.isStrNull(DateTime.Now.ToString("yyyy-MM-dd"));
oItem.HYear = DBUtility.ClsPub.isLong(DateTime.Now.Year);
oItem.HDate = DBUtility.ClsPub.isDate(DateTime.Now.ToString("yyyy-MM-dd"));
oItem.HBillType = "3714";
//oItem.HExRate = 1;
oItem.HMainSourceInterID = oItem.HInterID;
oItem.HInterID = 0;
//oItem.HInterID = DBUtility.ClsPub.CreateBillID_SRMProd("1103", ref DBUtility.ClsPub.sExeReturnInfo);
if (DBUtility.ClsPub.isStrNull(oItem.HPlanQty) == "")
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "保存失败!没有填写派工数量,无法保存!";
objJsonResult.data = 1;
return objJsonResult;
}
ReportModel.omodel = oItem;
}
//表体数据
//按 },{来拆分数组 //去掉【和】
msg3 = msg3.Substring(1, msg3.Length - 2);
msg3 = msg3.Replace("\\", "");
msg3 = msg3.Replace("\n", ""); //\n
msg2 = msg2.Replace("'", "’");
List ls = new List();
ls = oListModels.getObjectByJson_ViewReportlist(msg3);
int i = 0;
//定义汇报单子表集合用于存放下推派工单的多行数据
List lsReportSub = new List();
foreach (WebAPI.Models.Sc_ProcessSendWorkViewModel ItemView in ls)
{
i++;
Model.ClsSc_ProcessReportSub reportSub = new Model.ClsSc_ProcessReportSub();
if (ItemView.数量 <= 0)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "保存失败!第" + i.ToString() + "行数量不大于0无法保存!";
objJsonResult.data = 1;
return objJsonResult;
}
if ((double)ItemView.数量 < ReportModel.omodel.HPlanQty)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "保存失败!工序汇报单累计汇报数量不能大于源单数量!";
objJsonResult.data = 1;
return objJsonResult;
}
reportSub.HEntryID = i;
reportSub.HEntryCloseDate = DBUtility.ClsPub.isDate(DateTime.Now);
reportSub.HRemark = "";
reportSub.HCloseMan = ReportModel.omodel.HCloseMan;
reportSub.HCloseType = false;
reportSub.HEmpID = 0;
reportSub.HICMOBillNo = "";
reportSub.HICMOInterID = (long)ItemView.HICMOInterID;
reportSub.HRemark = "";
reportSub.HSourceBillType = "3712";
reportSub.HQty = (double)ItemView.数量;
reportSub.HProcID = (long)ItemView.HprocID;
reportSub.HProcNumber = ItemView.工序代码;
reportSub.HOutPrice = 0;
reportSub.HOutMoney = 0;
reportSub.HSourceID = (long)ItemView.hmainid;
reportSub.HEmpNumber = "";
reportSub.HRelBeginDate = DateTime.Now;
reportSub.HRelEndDate = DateTime.Now;
reportSub.HTimes = 3;
reportSub.HSeOrderInterID = 0;
reportSub.HSeOrderEntryID = 0;
reportSub.HSeOrderBillNo = "";
reportSub.HProcPlanInterID = 0;
reportSub.HProcPlanBillNo = "";
reportSub.HSourceInterID = (long)ItemView.hmainid;
reportSub.HSourceBillNo = ItemView.单据号;
reportSub.HRelationQty = 0;
reportSub.HRelationMoney = 0;
reportSub.HMaterID = (long)ItemView.HMaterID;
reportSub.HMaterNumber = ItemView.物料代码;
reportSub.HCheckQty = 0;
reportSub.HBadCount = 0;
reportSub.HWasterQty = 0;
reportSub.HWasterQty2 = 0;
reportSub.HPrice = 0;
reportSub.HMoney = 0;
reportSub.HProcPlanInterID = 0;
reportSub.HProcPlanEntryID = 0;
reportSub.HProcPlanBillNo = "";
reportSub.HSourceEntryID = 0;
reportSub.HSourceBillType = "3712";
reportSub.HRelationQty = 0;
reportSub.HRelationMoney = 0;
reportSub.HBadPrirce = 0;
reportSub.HBadMoney = 0;
reportSub.HWasterPrice = 0;
reportSub.HWasterMoney = 0;
reportSub.HQualityRate = 0;
reportSub.HSecUnitQty1 = 0;
reportSub.HSecUnitRate1 = 0;
reportSub.HSecUnitQty2 = 0;
reportSub.HSecUnitRate2 = 0;
reportSub.HUsingQty = 0;
reportSub.HSelfBadCount = 0;
reportSub.HPreBadCount = 0;
reportSub.HPayMentQty = 0;
reportSub.HOtherDeduct = 0;
reportSub.HRelPay = 0;
reportSub.HOtherItem1 = "";
reportSub.HOtherItem2 = "";
reportSub.HOtherItem3 = "";
reportSub.HOtherItem4 = "";
reportSub.HOtherItem5 = "";
reportSub.HPackType = "";
reportSub.HCheckEmpID = 0;
reportSub.HWeight = 0;
reportSub.HBatchNo = "";
lsReportSub.Add(reportSub);
}
if (lsReportSub.Count > 0)
{
//然后在循环保存到汇报但子表
foreach (Model.ClsSc_ProcessReportSub item in lsReportSub)
{
ReportModel.DetailColl.Add(item);
}
}
else
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "保存失败!lsReportSub集合小于0";
objJsonResult.data = 1;
return objJsonResult;
}
////保存前判断(单据号重复,笔录项目)
////保存
////保存完毕后处理
bool bResult;
if (ReportModel.omodel.HInterID == 0)
{
// bResult = oBill.AddBill(ref DBUtility.ClsPub.sExeReturnInfo);
bResult = ReportModel.AddBill(ref DBUtility.ClsPub.sExeReturnInfo);
}
else
{
bResult = ReportModel.ModifyBill(ReportModel.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;
}
}
///
/// 保存不良评审单信息
///
///
///
[Route("SaveBadReasonList")]
[HttpPost]
public object SaveBadReasonList([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 user = sArray[2].ToString();
string UserName = "";
ListModels oListModels = new ListModels();
try
{
//判断权限
if (!DBUtility.ClsPub.Security_Log("QC_NoPassProdCheckBill_Edit", 1, false, user))
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "无保存权限";
objJsonResult.data = null;
return objJsonResult;
}
DLL.ClsQC_NoPassProdCheckBill oBill = new DLL.ClsQC_NoPassProdCheckBill();
List lsmain = new List();
msg2 = msg2.Replace("\\", "");
msg2 = msg2.Replace("\n", ""); //\n
lsmain = oListModels.getObjectByJson_NoPassProdCheckMain(msg2);
foreach (Model.ClsQC_NoPassProdCheckBillMain oItem in lsmain)
{
//oItem.HMaker = "";
UserName = oItem.HMaker;
oItem.HMakeDate = DBUtility.ClsPub.isStrNull(DateTime.Now.ToString("yyyy-MM-dd"));
oItem.HYear = DBUtility.ClsPub.isLong(DateTime.Now.Year);
oItem.HDate = DBUtility.ClsPub.isDate(DateTime.Now.ToString("yyyy-MM-dd"));
oItem.HBillType = "7509";
oItem.HBillSubType = "7509";
oItem.HBillStatus = 1;
oItem.HPeriod = 0;
oItem.HGroupName = "";
oItem.HSourceID = 0;
oItem.HICMOInterID = 0;
oItem.HICMOBillNo = "";
oItem.HInStockQty = 0;
oItem.HCheckQty = 0;
oItem.HRightQty = 0;
oItem.HBadPNL = 0;
oItem.HPlanPNL = 0;
oItem.HFirstCheckEmp = 0;
oItem.HCheckerResult = "";
oItem.HWorkCenterID = 0;
oItem.HProcExchInterID = 0;
oItem.HProcExchEntryID = 0;
oItem.HProcExchBillNo = "";
oItem.HOrderProcNo = "";
oItem.HProcExchQty = 0;
oItem.HMainSourceInterID = oItem.HInterID;
oItem.HInterID = 0;
//oItem.HInterID = DBUtility.ClsPub.CreateBillID_SRMProd("1103", ref DBUtility.ClsPub.sExeReturnInfo);
if (DBUtility.ClsPub.isStrNull(oItem.HDate) == "")
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "保存失败!没有单据日期,无法保存!";
objJsonResult.data = 1;
return objJsonResult;
}
oBill.omodel = oItem;
}
//表体数据
//按 },{来拆分数组 //去掉【和】
msg3 = msg3.Substring(1, msg3.Length - 2);
msg3 = msg3.Replace("\\", "");
msg3 = msg3.Replace("\n", ""); //\n
//msg2 = msg2.Replace("'", "’");
List ls = new List();
ls = oListModels.getObjectByJson_NoPassProdCheckSub(msg3);
int i = 0;
foreach (Model.ClsQC_NoPassProdCheckBillSub oItemSub in ls)
{
i++;
if (string.IsNullOrWhiteSpace(oItemSub.HWasterReasonName))
{
break;
}
//将前台临时存放的值传过来的值赋给对应的不良数量字段
oItemSub.HBadQty = Convert.ToDecimal(oItemSub.HMRBChecker);
if (oItemSub.HBadQty <= 0)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "保存失败!第" + i.ToString() + "行不良评审数量不大于0无法保存!";
objJsonResult.data = 1;
return objJsonResult;
}
if ((double)oItemSub.HBadQty > oBill.omodel.HPlanQty)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "保存失败!第" + i.ToString() + "行数量不能大于不良数量!";
objJsonResult.data = 1;
return objJsonResult;
}
if (DBUtility.ClsPub.isStrNull(oItemSub.HWasterReasonName) == "")
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "保存失败!第" + i.ToString() + "行未填写不良原因!";
objJsonResult.data = 1;
return objJsonResult;
}
oItemSub.HSourceEntryID = oBill.omodel.HMainSourceEntryID;
oItemSub.HSourceInterID = oBill.omodel.HMainSourceInterID;
oItemSub.HEntryID = i;
oItemSub.HEntryCloseDate = DBUtility.ClsPub.isDate(DateTime.Now);
oItemSub.HCloseType = false;
oItemSub.HBillNo_bak = oBill.omodel.HBillNo;
oItemSub.HMRBChecker = "";
oItemSub.HSourceBillNo = oBill.omodel.HMainSourceBillNo;
oItemSub.HSourceBillType = "3715";
oItemSub.HRelationQty = 0;
oItemSub.HRelationMoney = 0;
oItemSub.HMaterID = oBill.omodel.HMaterID;
oItemSub.HUnitID = 0;
oItemSub.HMustQty = 0;
oItemSub.HDisposeNote = "";
oItemSub.HPunishmentBillNo = "";
oItemSub.HBadPCSQty = 0;
oItemSub.HQCResultID = 0;
oBill.DetailColl.Add(oItemSub);
}
//保存前判断(单据号重复,笔录项目)
//保存
//保存完毕后处理
bool bResult;
if (oBill.omodel.HInterID == 0)
{
// bResult = oBill.AddBill(ref DBUtility.ClsPub.sExeReturnInfo);
bResult = oBill.AddBill(ref DBUtility.ClsPub.sExeReturnInfo);
}
else
{
bResult = oBill.ModifyBill(oBill.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;
}
}
///
/// 汇报单编辑关闭功能
///
///
///
///
///
[Route("CloseProcessReportList")]
[HttpGet]
public object CloseProcessReportList(int HInterID, int IsClose, string CurUserName)
{
DataSet ds;
string ModRightNameCheck = "Sc_ProcessReport_check";
try
{
//审核权限
if (!DBUtility.ClsPub.Security_Log(ModRightNameCheck, 1, false, CurUserName))
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "审核失败!无权限!";
objJsonResult.data = null;
return objJsonResult;
}
SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
if (HInterID <= 0)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "HInterID小于0!";
objJsonResult.data = null;
return objJsonResult;
}
ds = oCN.RunProcReturn("select * from Sc_ProcessReportMain where HInterID=" + HInterID, "Sc_ProcessReportMain");
if (ds == null || ds.Tables[0].Rows.Count == 0)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "没有这个单据,无法关闭!";
objJsonResult.data = null;
return objJsonResult; ;
}
var HChecker = ds.Tables[0].Rows[0]["HChecker"].ToString();
var HCloseMan = ds.Tables[0].Rows[0]["HCloseMan"].ToString();
if (IsClose == 0)
{
if (HCloseMan.Trim() != "" || HChecker.Trim() == "")
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "单据未审核、已关闭、已作废状态下不允许关闭!!!";
objJsonResult.data = null;
return objJsonResult;
}
oCN.RunProc("update Sc_ProcessReportMain set HCloseMan='" + CurUserName + "' ,HCloseDate=GETDATE() where HInterID=" + HInterID);
objJsonResult.code = "0";
objJsonResult.count = 1;
objJsonResult.Message = "* 单据关闭成功!";
objJsonResult.data = null;
return objJsonResult; ;
}
else if (IsClose == 1)
{
if (HCloseMan.Trim() == "" || HChecker.Trim() == "")
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "单据未审核、未关闭、已作废状态下不允许撤销关闭!!!";
objJsonResult.data = null;
return objJsonResult;
}
oCN.RunProc("update Sc_ProcessReportMain set HCloseMan='' ,HCloseDate=null where HInterID=" + HInterID);
objJsonResult.code = "0";
objJsonResult.count = 1;
objJsonResult.Message = "* 单据反关闭成功!";
objJsonResult.data = null;
return objJsonResult; ;
}
else
{
objJsonResult.code = "0";
objJsonResult.count = 0;
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;
}
}
///
/// 汇报单编辑审核反审核功能
///
///
///
///
///
[Route("AuditProcessReportList")]
[HttpGet]
public object AuditProcessReportList(int HInterID, int IsAudit, string CurUserName)
{
DataSet ds;
string ModRightNameCheck = "Sc_ProcessReport_check";
var a = DBUtility.ClsPub.CurUserName;
try
{
//审核权限
if (!DBUtility.ClsPub.Security_Log(ModRightNameCheck, 1, false, CurUserName))
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "审核失败!无权限!";
objJsonResult.data = null;
return objJsonResult;
}
SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
if (HInterID <= 0)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "HInterID小于0!";
objJsonResult.data = null;
return objJsonResult;
}
ds = oCN.RunProcReturn("select * from Sc_ProcessReportMain where HInterID=" + HInterID, "Sc_ProcessReportMain");
if (ds == null || ds.Tables[0].Rows.Count == 0)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "没有这个单据,无法审核!";
objJsonResult.data = null;
return objJsonResult;
}
var HChecker = ds.Tables[0].Rows[0]["HChecker"].ToString();//取审核人
var HMaker = ds.Tables[0].Rows[0]["HMaker"].ToString();//取制单人
var HCloseMan = ds.Tables[0].Rows[0]["HCloseMan"].ToString();//取关闭人
if (IsAudit == 0)
{
if (HChecker.Trim() != "" || HChecker.Trim() == HMaker || HCloseMan != "")
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "单据已审核、已关闭、已作废状态不允许审核!!!";
objJsonResult.data = null;
return objJsonResult;
}
oCN.RunProc("update Sc_ProcessReportMain set HChecker='" + CurUserName + "' ,HCheckDate=GETDATE() where HInterID=" + HInterID);
objJsonResult.code = "0";
objJsonResult.count = 1;
objJsonResult.Message = "* 单据审核成功!";
objJsonResult.data = null;
return objJsonResult;
}
else if (IsAudit == 1)
{
if (HChecker.Trim() == "" || HChecker.Trim() == CurUserName || HCloseMan != "")
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "单据未审核、已关闭、已作废状态下不允许反审核!!!";
objJsonResult.data = null;
return objJsonResult;
}
oCN.RunProc("update Sc_ProcessReportMain set HChecker='' ,HCheckDate=null where HInterID=" + HInterID);
objJsonResult.code = "0";
objJsonResult.count = 1;
objJsonResult.Message = "* 单据反审核成功!";
objJsonResult.data = null;
return objJsonResult;
}
else
{
objJsonResult.code = "0";
objJsonResult.count = 0;
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;
}
}
///
/// 返回委外工序派工单列表
///
///
///
[Route("Sc_ProcessMangement/MES_WW_EntrustProcSendWorkBill_Json")]
[HttpGet]
public object MES_WW_EntrustProcSendWorkBill_Json(string sqlWhere, string user)
{
DataSet ds;
try
{
//判断是否有查询权限
if (!DBUtility.ClsPub.Security_Log("WW_EntrustProcSendWorkBill_Query", 1, false, user))
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "无权限查询!";
objJsonResult.data = null;
return objJsonResult;
}
SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
if (sqlWhere == null || sqlWhere.Equals(""))
{
ds = oCN.RunProcReturn("select top 500 * from h_v_WW_EntrustProcSendWorkBillList order by hmainid desc ", "h_v_WW_EntrustProcSendWorkBillList");
}
else
{
string sql1 = "select * from h_v_WW_EntrustProcSendWorkBillList where 1 = 1 ";
string sql = sql1 + sqlWhere + " order by hmainid desc ";
ds = oCN.RunProcReturn(sql, "h_v_WW_EntrustProcSendWorkBillList");
}
}
catch (Exception e)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "没有返回任何记录!" + e.ToString();
objJsonResult.data = null;
return objJsonResult;
}
return GetObjectJson(ds);
}
///
/// 返回委外工序计划汇报单列表
///
///
///
[Route("Sc_ProcessMangement/MES_WW_EntrustProcessReportBill_Json")]
[HttpGet]
public object MES_WW_EntrustProcessReportBill_Json(string sqlWhere, string user)
{
DataSet ds;
try
{
//判断是否有查询权限
if (!DBUtility.ClsPub.Security_Log("WW_EntrustProcessReportBill_Query", 1, false, user))
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "无权限查询!";
objJsonResult.data = null;
return objJsonResult;
}
SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
if (sqlWhere == null || sqlWhere.Equals(""))
{
ds = oCN.RunProcReturn("select top 500 * from h_v_WW_EntrustProcessReportBillList ", "h_v_WW_EntrustProcessReportBillList");
}
else
{
string sql1 = "select * from h_v_WW_EntrustProcessReportBillList where 1 = 1 ";
string sql = sql1 + sqlWhere;
ds = oCN.RunProcReturn(sql, "h_v_WW_EntrustProcessReportBillList");
}
}
catch (Exception e)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "没有返回任何记录!" + e.ToString();
objJsonResult.data = null;
return objJsonResult;
}
return GetObjectJson(ds);
}
///
/// 返回委外工序计划转出单列表
///
///
///
[Route("Sc_ProcessMangement/MES_WW_EntrustProcessSendOutBillList_Json")]
[HttpGet]
public object MES_WW_EntrustProcessSendOutBillList_Json(string sqlWhere, string user)
{
DataSet ds;
try
{
//判断是否有查询权限
if (!DBUtility.ClsPub.Security_Log("WW_EntrustProcessSendOutBill_Query", 1, false, user))
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "无权限查询!";
objJsonResult.data = null;
return objJsonResult;
}
SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
if (sqlWhere == null || sqlWhere.Equals(""))
{
ds = oCN.RunProcReturn("select top 500 * from h_v_WW_EntrustProcessSendOutBillList order by hmainid desc ", "h_v_WW_EntrustProcessSendOutBillList");
}
else
{
string sql1 = "select * from h_v_WW_EntrustProcessSendOutBillList where 1 = 1 ";
string sql = sql1 + sqlWhere + " order by hmainid desc ";
ds = oCN.RunProcReturn(sql, "h_v_WW_EntrustProcessSendOutBillList");
}
}
catch (Exception e)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "没有返回任何记录!" + e.ToString();
objJsonResult.data = null;
return objJsonResult;
}
return GetObjectJson(ds);
}
///
/// 保存委外汇报单信息
///
///
///
[Route("SaveWW_EntrustProcessReportBill")]
[HttpPost]
public object SaveWW_EntrustProcessReportBill([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 user = sArray[2].ToString();//用户名
string UserName = "";
ListModels oListModels = new ListModels();
try
{
//判断是否有编辑权限
if (!DBUtility.ClsPub.Security_Log("WW_EntrustProcessReportBill_Edit", 1, false, user))
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "无权限编辑!";
objJsonResult.data = null;
return objJsonResult;
}
WebAPI.DLL.ClsWW_EntrustProcessReportBill Sendwork = new WebAPI.DLL.ClsWW_EntrustProcessReportBill();
List lsmain = new List();
msg2 = msg2.Replace("\\", "");
msg2 = msg2.Replace("\n", "");
lsmain = oListModels.getObjectByJson_WW_EntrustProcessReportBillMain(msg2);
foreach (WebAPI.Models.ClsWW_EntrustProcessReportBillMain 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;
Sendwork.omodel = oItem;
}
//表体数据
//按 },{来拆分数组 //去掉【和】
msg3 = msg3.Substring(1, msg3.Length - 2);
msg3 = msg3.Replace("\\", "");
msg3 = msg3.Replace("\n", ""); //\n
List ls = new List();
ls = oListModels.getObjectByJson_WW_EntrustProcSendWork(msg3);
int i = 0;
List lss = new List();
foreach (WebAPI.Models.WW_EntrustProcSendWorkViewModel oItemSub in ls)
{
i++;
Models.ClsWW_EntrustProcessReportBillSub sendworksub = new Models.ClsWW_EntrustProcessReportBillSub();
sendworksub.HProcID = 0;//--工序ID
sendworksub.HSourceInterID = (long)oItemSub.hmainid;//源单id
sendworksub.HSourceEntryID = (long)oItemSub.hsubid; //--源单子ID
sendworksub.HSourceBillNo = oItemSub.单据号; //--源单单号
sendworksub.HSourceBillType = oItemSub.HBillType; //--源单类型
sendworksub.HQty = (decimal)oItemSub.数量; //--数量
sendworksub.HICMOBillNo = ""; //--任务单号
sendworksub.HSeOrderBillNo = ""; //--销售订单号
sendworksub.HSeOrderEntryID = 0; //--销售子ID
sendworksub.HSeOrderInterID = 0; //--销售订单主ID
sendworksub.HTimes = 0; //--计划工时
if (oItemSub.数量 <= 0)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "保存失败!第" + i.ToString() + "行数量不大于0无法保存!";
objJsonResult.data = 1;
return objJsonResult;
}
if (Convert.ToInt32(sendworksub.HQty) > Convert.ToInt32(oItemSub.数量))
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "保存失败!第" + i.ToString() + "行委外汇报数量不能大于委外派工单数量!";
objJsonResult.data = 1;
return objJsonResult;
}
sendworksub.HEntryID = i;
sendworksub.HEntryCloseDate = DBUtility.ClsPub.isDate(DateTime.Now);
sendworksub.HRemark = "";
sendworksub.HCloseMan = "";
sendworksub.HCloseType = false;
lss.Add(sendworksub);//先把数据存放到派工单子表集合里
}
if (lss.Count > 0)
{
//然后再循环保存到派工单子表的集合里
foreach (Models.ClsWW_EntrustProcessReportBillSub Itemsendwork in lss)
{
Sendwork.DetailColl.Add(Itemsendwork);
}
}
else
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "保存失败!lss集合小于0";
objJsonResult.data = 1;
return objJsonResult;
}
//保存
//保存完毕后处理
bool bResult;
if (Sendwork.omodel.HInterID == 0)
{
// bResult = oBill.AddBill(ref DBUtility.ClsPub.sExeReturnInfo);
bResult = Sendwork.AddBill(ref DBUtility.ClsPub.sExeReturnInfo);
}
else
{
bResult = Sendwork.ModifyBill(Sendwork.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;
}
}
///
/// 委外派工单号获取信息
///
///
[Route("Sc_ProcessMangement/WWgetHbarCodeDetail")]
[HttpGet]
public ApiResult WWGetHbarCodeDetail(string sBillBarCode)
{
var model = LuBaoSevice.WWGetHbarCodeDetail(sBillBarCode);
return model;
}
///
///委外工序号获得信息
///
///
[Route("Sc_ProcessMangement/WWgetProcDetail")]
[HttpGet]
public ApiResult WWGetProcDetail(string sBillNo, string sProcNo)
{
var model = LuBaoSevice.WWGetProcDetail(sBillNo, sProcNo);
return model;
}
///
/// PDA委外工序汇报单保存
///
///
///
[Route("SaveWWReport")]
[HttpPost]
public object SaveWWReport([FromBody] JObject msg)
{
var _value = msg["msg"].ToString();
string msg1 = _value.ToString();
ListModels oListModels = new ListModels();
try
{
WebAPI.DLL.ClsWW_EntrustProcessReportBill ReportModel = new WebAPI.DLL.ClsWW_EntrustProcessReportBill();
List ls = new List();
ls = oListModels.getObjectByJson_WWReport(msg1);
int i = 0;
foreach (Models.WWReportViewModel ItemView in ls)
{
i++;
Models.ClsWW_EntrustProcessReportBillMain ReportMain = new Models.ClsWW_EntrustProcessReportBillMain();
Models.ClsWW_EntrustProcessReportBillSub ReportSub = new Models.ClsWW_EntrustProcessReportBillSub();
//工序汇报单主表保存
ReportMain.HBillType = "3742";
ReportMain.HBillNo = ItemView.HBillNo;
ReportMain.HMakeDate = DBUtility.ClsPub.isStrNull(DateTime.Now.ToString("yyyy-MM-dd"));
ReportMain.HYear = DBUtility.ClsPub.isLong(DateTime.Now.Year);
ReportMain.HDate = DateTime.Now;
ReportMain.HMaker = "";
ReportMain.HCloseType = false;
ReportMain.HPrintQty = 0;
ReportMain.HMainSourceBillType = "3740";
ReportMain.HMainSourceInterID = 0;
ReportMain.HMainSourceBillNo = ItemView.HWW_BillNo;
ReportMain.HInterID = 0;
ReportMain.HPeriod = 1;
ReportMain.HBillSubType = "3742";
ReportMain.HBillStatus = 0;
ReportMain.HCheckItemNowID = 0;
ReportMain.HCheckItemNextID = 0;
ReportMain.HDeptID = Convert.ToInt32(ItemView.HDeptID);
ReportMain.HExplanation = "";
ReportMain.HInnerBillNo = "";
ReportMain.HSupID = Convert.ToInt32(ItemView.HSupID);
//保存到汇报单主表
ReportModel.omodel = ReportMain;
ReportSub.HMaterID = Convert.ToInt32(ItemView.HMaterID);
ReportSub.HICMOBillNo = "";
ReportSub.HICMOInterID = 0;
ReportSub.HEntryID = i;
ReportSub.HEntryCloseDate = DBUtility.ClsPub.isDate(DateTime.Now);
ReportSub.HRemark = "";
ReportSub.HCloseMan = "";
ReportSub.HCloseType = false;
ReportSub.HSourceBillType = "3740";
ReportSub.HQty = Convert.ToDecimal(ItemView.HQty);
ReportSub.HProcID = Convert.ToInt32(ItemView.HProcID);
ReportSub.HTimes = 0;
ReportSub.HSeOrderInterID = 0;
ReportSub.HSeOrderEntryID = 0;
ReportSub.HSeOrderBillNo = "";
ReportSub.HProcPlanInterID = 0;
ReportSub.HProcPlanBillNo = "";
ReportSub.HSourceInterID = 0;
ReportSub.HSourceBillNo = "";
ReportSub.HRelationQty = 0;
ReportSub.HRelationMoney = 0;
ReportSub.HCheckQty = 0;
ReportSub.HBadCount = 0;
ReportSub.HWasterQty = 0;
ReportSub.HWasterQty2 = 0;
ReportSub.HPrice = 0;
ReportSub.HMoney = 0;
ReportSub.HProcPlanInterID = 0;
ReportSub.HProcPlanEntryID = 0;
ReportSub.HProcPlanBillNo = "";
ReportSub.HSourceEntryID = 0;
ReportSub.HSourceBillType = "";
ReportSub.HRelationQty = 0;
ReportSub.HRelationMoney = 0;
ReportSub.HBadPrirce = 0;
ReportSub.HBadMoney = 0;
ReportSub.HWasterPrice = 0;
ReportSub.HWasterMoney = 0;
ReportSub.HQualityRate = 0;
ReportSub.HUsingQty = 0;
ReportSub.HSelfBadCount = 0;
ReportSub.HPreBadCount = 0;
ReportSub.HPayMentQty = 0;
ReportSub.HPackType = "";
ReportSub.HCheckEmpID = 0;
ReportSub.HWeight = 0;
ReportSub.HBatchNo = "";
//保存到委外汇报单子表
ReportModel.DetailColl.Add(ReportSub);
}
//保存
//保存完毕后处理
bool bResult;
bResult = ReportModel.AddBill(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;
}
}
///
/// 保存委外转出单信息
///
///
///
[Route("SaveWW_EntrustProcessSendOutBill")]
[HttpPost]
public object SaveWW_EntrustProcessSendOutBill([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 user = sArray[1].ToString();//用户名
string UserName = "";
ListModels oListModels = new ListModels();
try
{
//判断是否有编辑权限
if (!DBUtility.ClsPub.Security_Log("WW_EntrustProcessSendOutBill_Edit", 1, false, user))
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "无权限编辑!";
objJsonResult.data = null;
return objJsonResult;
}
WebAPI.DLL.ClsWW_EntrustProcessSendOutBill Sendwork = new WebAPI.DLL.ClsWW_EntrustProcessSendOutBill();
List lsmain = new List();
msg2 = msg2.Replace("\\", "");
msg2 = msg2.Replace("\n", "");
lsmain = oListModels.getObjectByJson_WW_EntrustProcessSendOutBillMain(msg2);
foreach (WebAPI.Models.ClsWW_EntrustProcessSendOutBillMain 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;
Sendwork.omodel = oItem;
}
//表体数据
//按 },{来拆分数组 //去掉【和】
msg3 = msg3.Substring(1, msg3.Length - 2);
msg3 = msg3.Replace("\\", "");
msg3 = msg3.Replace("\n", ""); //\n
List ls = new List();
ls = oListModels.getObjectByJson_WW_EntrustProcSendWork(msg3);
int i = 0;
List lss = new List();
foreach (WebAPI.Models.WW_EntrustProcSendWorkViewModel oItemSub in ls)
{
i++;
Models.ClsWW_EntrustProcessSendOutBillSub sendworksub = new Models.ClsWW_EntrustProcessSendOutBillSub();
sendworksub.HProcID = 0;//--工序ID
sendworksub.HSourceInterID = (long)oItemSub.hmainid;//源单id
sendworksub.HSourceEntryID = (long)oItemSub.hsubid; //--源单子ID
sendworksub.HSourceBillNo = oItemSub.单据号; //--源单单号
sendworksub.HSourceBillType = oItemSub.HBillType; //--源单类型
sendworksub.HQty = (decimal)oItemSub.数量; //--数量
sendworksub.HICMOBillNo = ""; //--任务单号
sendworksub.HSeOrderBillNo = ""; //--销售订单号
sendworksub.HSeOrderEntryID = 0; //--销售子ID
sendworksub.HSeOrderInterID = 0; //--销售订单主ID
if (oItemSub.数量 <= 0)
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "保存失败!第" + i.ToString() + "行数量不大于0无法保存!";
objJsonResult.data = 1;
return objJsonResult;
}
if (Convert.ToInt32(sendworksub.HQty) > Convert.ToInt32(oItemSub.数量))
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "保存失败!第" + i.ToString() + "行委外汇报数量不能大于委外派工单数量!";
objJsonResult.data = 1;
return objJsonResult;
}
sendworksub.HEntryID = i;
sendworksub.HEntryCloseDate = DBUtility.ClsPub.isDate(DateTime.Now);
sendworksub.HRemark = "";
sendworksub.HCloseMan = "";
sendworksub.HCloseType = false;
lss.Add(sendworksub);//先把数据存放到派工单子表集合里
}
if (lss.Count > 0)
{
//然后再循环保存到派工单子表的集合里
foreach (Models.ClsWW_EntrustProcessSendOutBillSub Itemsendwork in lss)
{
Sendwork.DetailColl.Add(Itemsendwork);
}
}
else
{
objJsonResult.code = "0";
objJsonResult.count = 0;
objJsonResult.Message = "保存失败!lss集合小于0";
objJsonResult.data = 1;
return objJsonResult;
}
//保存
//保存完毕后处理
bool bResult;
if (Sendwork.omodel.HInterID == 0)
{
// bResult = oBill.AddBill(ref DBUtility.ClsPub.sExeReturnInfo);
bResult = Sendwork.AddBill(ref DBUtility.ClsPub.sExeReturnInfo);
}
else
{
bResult = Sendwork.ModifyBill(Sendwork.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;
}
}
///
/// PDA委外工序转出单保存
///
///
///
[Route("SaveWWSendOutBill")]
[HttpPost]
public object SaveWWSendOutBill([FromBody] JObject msg)
{
var _value = msg["msg"].ToString();
string msg1 = _value.ToString();
ListModels oListModels = new ListModels();
try
{
WebAPI.DLL.ClsWW_EntrustProcessSendOutBill ReportModel = new WebAPI.DLL.ClsWW_EntrustProcessSendOutBill();
List ls = new List();
ls = oListModels.getObjectByJson_WWSendOutBill(msg1);
int i = 0;
foreach (Models.WWSendOutBillViewModel ItemView in ls)
{
i++;
Models.ClsWW_EntrustProcessSendOutBillMain ReportMain = new Models.ClsWW_EntrustProcessSendOutBillMain();
Models.ClsWW_EntrustProcessSendOutBillSub ReportSub = new Models.ClsWW_EntrustProcessSendOutBillSub();
//工序转出单主表保存
ReportMain.HBillType = "3741";
ReportMain.HBillNo = ItemView.HBillNo;
ReportMain.HMakeDate = DBUtility.ClsPub.isStrNull(DateTime.Now.ToString("yyyy-MM-dd"));
ReportMain.HYear = DBUtility.ClsPub.isLong(DateTime.Now.Year);
ReportMain.HDate = DateTime.Now;
ReportMain.HMaker = "";
ReportMain.HCloseType = false;
ReportMain.HPrintQty = 0;
ReportMain.HMainSourceBillType = "3740";
ReportMain.HMainSourceInterID = 0;
ReportMain.HMainSourceBillNo = ItemView.HWW_BillNo;
ReportMain.HInterID = 0;
ReportMain.HPeriod = 1;
ReportMain.HBillSubType = "3741";
ReportMain.HBillStatus = 0;
ReportMain.HCheckItemNowID = 0;
ReportMain.HCheckItemNextID = 0;
ReportMain.HDeptID = Convert.ToInt32(ItemView.HDeptID);
ReportMain.HExplanation = "";
ReportMain.HInnerBillNo = "";
ReportMain.HSupID = Convert.ToInt32(ItemView.HSupID);
//保存到转出单主表
ReportModel.omodel = ReportMain;
ReportSub.HMaterID = Convert.ToInt32(ItemView.HMaterID);
ReportSub.HICMOBillNo = "";
ReportSub.HICMOInterID = 0;
ReportSub.HEntryID = i;
ReportSub.HEntryCloseDate = DBUtility.ClsPub.isDate(DateTime.Now);
ReportSub.HRemark = "";
ReportSub.HCloseMan = "";
ReportSub.HCloseType = false;
ReportSub.HSourceBillType = "3740";
ReportSub.HQty = Convert.ToDecimal(ItemView.HQty);
ReportSub.HProcID = Convert.ToInt32(ItemView.HProcID);
ReportSub.HSeOrderInterID = 0;
ReportSub.HSeOrderEntryID = 0;
ReportSub.HSeOrderBillNo = "";
ReportSub.HProcPlanInterID = 0;
ReportSub.HProcPlanBillNo = "";
ReportSub.HSourceInterID = 0;
ReportSub.HSourceBillNo = "";
ReportSub.HRelationQty = 0;
ReportSub.HRelationMoney = 0;
ReportSub.HPrice = 0;
ReportSub.HMoney = 0;
ReportSub.HProcPlanInterID = 0;
ReportSub.HProcPlanEntryID = 0;
ReportSub.HProcPlanBillNo = "";
ReportSub.HSourceEntryID = 0;
ReportSub.HSourceBillType = "";
ReportSub.HRelationQty = 0;
ReportSub.HRelationMoney = 0;
ReportSub.HPackType = "";
ReportSub.HBatchNo = "";
//保存到委外转出单子表
ReportModel.DetailColl.Add(ReportSub);
}
//保存
//保存完毕后处理
bool bResult;
bResult = ReportModel.AddBill(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;
}
}
///
/// 保存委外工单信息
///
///
///
[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 lsmain = new List();
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 ls = new List();
ls = oListModels.getObjectByJson_SendWorkSub(msg3);
int i = 0;
List lss = new List();
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;
}
}
}
}