using Newtonsoft.Json;
|
using Newtonsoft.Json.Linq;
|
using NPOI.HSSF.UserModel;
|
using NPOI.SS.UserModel;
|
using Pub_Class;
|
using System;
|
using System.Collections.Generic;
|
using System.Data;
|
using System.IO;
|
using System.Linq;
|
using System.Net;
|
using System.Net.Http;
|
using System.Net.Http.Headers;
|
using System.Web.Http;
|
using WebAPI.Models;
|
|
namespace WebAPI.Controllers.生产管理.报工台工序
|
{
|
public class Sc_MESBeginStepWorkBillController : ApiController
|
{
|
|
public DBUtility.ClsPub.Enum_BillStatus BillStatus;//单据状态(新增,修改,浏览,更新单价,变更)
|
|
private json objJsonResult = new json();
|
public DataSet ds = new DataSet();
|
public WebServer webserver = new WebServer();
|
SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
|
private WebS.WebService1 oWebs = new WebS.WebService1();
|
//获取系统参数
|
Pub_Class.ClsXt_SystemParameter oSystemParameter = new Pub_Class.ClsXt_SystemParameter();
|
|
public DAL.ClsSc_MESBeginWorkBill BillNew = new DAL.ClsSc_MESBeginWorkBill(); //对应单据类
|
public DAL.ClsSc_MESBeginWorkBill BillOld = new DAL.ClsSc_MESBeginWorkBill(); //对应单据类
|
|
public DAL.ClsSc_ICMOBillWorkQtyStatus_Tmp BillNew1 = new DAL.ClsSc_ICMOBillWorkQtyStatus_Tmp(); //对应单据类
|
public DAL.ClsSc_ICMOBillWorkQtyStatus_Tmp BillOld1 = new DAL.ClsSc_ICMOBillWorkQtyStatus_Tmp(); //对应单据类
|
|
#region 开工单列表
|
|
#region 开工单列表
|
|
[Route("Sc_MESBeginStepWorkBill/GetMESBeginStepWorkBill")]
|
[HttpGet]
|
public object GetMESBeginStepWorkBill(string sWhere, string user)
|
{
|
try
|
{
|
List<object> a = new List<object>();
|
//判断是否有查询权限
|
if (!DBUtility.ClsPub.Security_Log("MES_MESBeginWorkBill_Query", 1, false, user))
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "无查询权限!";
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
ds = Sc_GetMESBeginStepWorkBill(sWhere);
|
foreach (DataColumn col in ds.Tables[0].Columns)//遍历ds中第一个表(Tables[0])的所有列(Columns)每次循环中,col变量会持有当前列的引用
|
{
|
Type dataType = col.DataType; //获取当前数据类型传入 自定义变量datadataType
|
string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}"; //字符串拼接 // 将列名和数据类型信息拼接成一个JSON格式的字符串
|
a.Add(JsonConvert.DeserializeObject(ColmString));//获取到DataColumn列对象的列名
|
}
|
|
objJsonResult.code = "1";
|
objJsonResult.count = 1;
|
objJsonResult.Message = "返回记录成功!";
|
objJsonResult.data = ds.Tables[0];
|
objJsonResult.list = a;
|
return objJsonResult;
|
}
|
catch (Exception ex)
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "没有返回任何记录!" + ex.ToString();
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
}
|
|
public static DataSet Sc_GetMESBeginStepWorkBill(string sWhere)
|
{
|
if (sWhere == null || sWhere.Equals(""))
|
{
|
return new SQLHelper.ClsCN().RunProcReturn("select * from h_v_Sc_MESBeginWorkBillList_NEW order by hmainid desc ", "h_v_Sc_MESBeginWorkBillList_NEW");
|
}
|
else
|
{
|
LogService.Write("执行了1");
|
string sql1 = "select * from h_v_Sc_MESBeginWorkBillList_NEW where 1 = 1 ";
|
string sql = sql1 + sWhere + " order by hmainid desc ";
|
return new SQLHelper.ClsCN().RunProcReturn(sql, "h_v_Sc_MESBeginWorkBillList_NEW");
|
}
|
|
}
|
|
#endregion
|
|
#region[开工单编辑时获取表头数据]
|
[Route("Sc_MESBeginStepWorkBill/Sc_MESBeginStepWorkBillListCheckDetai")]
|
[HttpGet]
|
public ApiResult<DataSet> Sc_MESBeginStepWorkBillListCheckDetai(string HID)
|
{
|
if (string.IsNullOrEmpty(HID))
|
return new ApiResult<DataSet> { code = -1, msg = "ID不能为空" };
|
SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
|
|
var dataSet = oCN.RunProcReturn("select * from h_v_Sc_MESBeginWorkBillList_Edit where hmainid= " + HID + " ", "h_v_Sc_MESBeginWorkBillList_Edit");
|
if (dataSet == null || dataSet.Tables[0].Rows.Count == 0)
|
return new ApiResult<DataSet> { code = -1, msg = "不存在开工单号" };
|
|
return new ApiResult<DataSet> { code = 1, msg = "查询成功", data = dataSet };
|
}
|
#endregion
|
|
#region [开工单删除功能]
|
/// <summary>
|
/// 开工单删除功能
|
/// </summary>
|
/// <returns></returns>
|
[Route("Sc_MESBeginStepWorkBill/DeltetMESBeginStepWorkBill")]
|
[HttpGet]
|
public object DeltetMESBeginStepWorkBill(string HInterID, string UserName)
|
{
|
DBUtility.ClsPub.CurUserName = UserName;
|
//编辑权限
|
if (!DBUtility.ClsPub.Security_Log_second("MES_MESBeginWorkBill_Drop", 1, false, DBUtility.ClsPub.CurUserName))
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "无删除权限!";
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
|
|
Int64 lngBillKey = 0;
|
lngBillKey = DBUtility.ClsPub.isLong(HInterID);
|
if (lngBillKey == 0)
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "单据ID为空!";
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
DLL.ClsSc_MESBeginWorkBill oBill = new DLL.ClsSc_MESBeginWorkBill();
|
if (oBill.ShowBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo))
|
{
|
if (oBill.omodel.HBillStatus > 1)
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "单据当前处于不能删除状态,不能删除!";
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
if (oBill.omodel.HChecker != "")
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "单据已经审核,不能删除!";
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
|
oCN.BeginTran();//开始事务
|
|
//删除前控制=========================================
|
DataSet Ds;
|
|
string sql1 = "exec h_p_Sc_MESBeginWorkBill_BeforeDelCtrl " + HInterID + ",'" + oBill.omodel.HBillNo + "','" + UserName + "'";
|
Ds = oCN.RunProcReturn(sql1, "h_p_Sc_MESBeginWorkBill_BeforeDelCtrl");
|
if (Ds == null || Ds.Tables.Count == 0 || Ds.Tables[0].Rows.Count == 0)
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "删除失败!原因:删除前判断失败,请与网络管理人员联系";
|
objJsonResult.data = null;
|
oCN.RollBack();
|
return objJsonResult;
|
}
|
|
if (Ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "删除失败!原因:" + Ds.Tables[0].Rows[0]["HRemark"].ToString();
|
objJsonResult.data = null;
|
oCN.RollBack();
|
return objJsonResult;
|
}
|
//==================================================================================
|
|
bool IsDete = oBill.DeleteBill(oBill.omodel.HInterID, oBill.omodel.HBillNo, "h_p_Sc_MESBeginWorkBill_AfterDelCtrl", UserName, ref DBUtility.ClsPub.sExeReturnInfo);
|
if (IsDete)
|
{
|
oCN.Commit();//提交事务
|
|
objJsonResult.code = "0";
|
objJsonResult.count = 1;
|
objJsonResult.Message = DBUtility.ClsPub.sExeReturnInfo;
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
else
|
{
|
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = DBUtility.ClsPub.sExeReturnInfo;
|
objJsonResult.data = null;
|
oCN.RollBack();
|
return objJsonResult;
|
}
|
}
|
else
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "单据未找到";
|
objJsonResult.data = null;
|
oCN.RollBack();
|
return objJsonResult;
|
}
|
}
|
#endregion
|
|
#region [开工单审核、反审核]
|
/// <summary>
|
///
|
/// </summary>
|
/// <param name="HInterID">单据ID</param>
|
/// <param name="IsAudit">审核(0),反审核(1)</param>
|
/// <param name="CurUserName">审核人</param>
|
/// <returns></returns>
|
[Route("Sc_MESBeginStepWorkBill/AuditStepProcessReportList")]
|
[HttpGet]
|
public object AuditStepProcessReportList(int HInterID, int IsAudit, string CurUserName)
|
{
|
string ModRightNameCheck = "MES_MESBeginWorkBill_Check";
|
DBUtility.ClsPub.CurUserName = CurUserName;
|
string sql = "";
|
try
|
{
|
//审核权限
|
if (!DBUtility.ClsPub.Security_Log_second(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 = "HInterID小于0!";
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
Int64 lngBillKey = 0;
|
lngBillKey = DBUtility.ClsPub.isLong(HInterID);
|
DLL.ClsSc_MESBeginWorkBill oBill = new DLL.ClsSc_MESBeginWorkBill();
|
//查看是否已审核,关闭,作废
|
if (oBill.ShowBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo))
|
{
|
if (oBill.omodel.HCloseMan.Trim() != "")
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "单据已关闭!不能再次审核!";
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
if (oBill.omodel.HDeleteMan.Trim() != "")
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "单据已作废!不能再次审核!";
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
if (IsAudit == 0) //审核判断
|
{
|
if (oBill.omodel.HChecker.Trim() != "")
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "单据已审核!不能再次审核!";
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
}
|
if (IsAudit == 1) //反审核判断
|
{
|
if (oBill.omodel.HChecker.Trim() == "")
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "单据未审核!不需要反审核!";
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
}
|
}
|
else
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "单据不存在!原因:" + DBUtility.ClsPub.sExeReturnInfo;
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
if (IsAudit == 0) //审核提交
|
{
|
//审核前控制===============================================Begin===================================================================
|
sql = "exec h_p_Sc_MESBeginWorkBill_BeforeCheckCtrl " + HInterID + ",'" + oBill.omodel.HBillNo + "','" + CurUserName + "'";
|
ds = oCN.RunProcReturn(sql, "h_p_Sc_MESBeginWorkBill_BeforeCheckCtrl");
|
if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "审核失败!原因:审核前判断失败,无返回信息,请与网络管理人员联系";
|
objJsonResult.data = null;
|
return objJsonResult;
|
|
}
|
if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "审核失败!原因:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ;
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
//审核前控制===============================================End===================================================================
|
|
//审核提交
|
if (oBill.CheckBill(lngBillKey, oBill.omodel.HBillNo, "h_p_Sc_MESBeginWorkBill_AfterCheckCtrl", CurUserName, ref DBUtility.ClsPub.sExeReturnInfo) == true)
|
{
|
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) //反审核提交
|
{
|
//反审核前控制===============================================Begin===================================================================
|
sql = "exec h_p_Sc_MESBeginWorkBill_BeforeUnCheckCtrl " + HInterID + ",'" + oBill.omodel.HBillNo + "','" + CurUserName + "'";
|
ds = oCN.RunProcReturn(sql, "h_p_Sc_MESBeginWorkBill_BeforeUnCheckCtrl");
|
if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "审核失败!原因:反审核前判断失败,无返回信息,请与网络管理人员联系";
|
objJsonResult.data = null;
|
return objJsonResult;
|
|
}
|
if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "审核失败!原因:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ;
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
//反审核前控制===============================================End===================================================================
|
|
//反审核提交AbandonCheck
|
if (oBill.AbandonCheck(lngBillKey, oBill.omodel.HBillNo, "h_p_Sc_MESBeginWorkBill_AfterUnCheckCtrl", CurUserName, ref DBUtility.ClsPub.sExeReturnInfo) == true)
|
{
|
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;
|
}
|
}
|
#endregion
|
|
#endregion
|
|
|
#region 报工平台开工单弹窗查找数据
|
[Route("Sc_MESBeginStepWorkBill/GetMESBeginStepWorkFrom")]
|
[HttpGet]
|
public object GetMESBeginStepWorkFrom(string HSourceInterID, string HSourceEntryID, string HSourceBillNo, string HSourceBillType)
|
{
|
try
|
{
|
//根据选择资源ID获取当前生产工单、责任人
|
ds = oCN.RunProcReturn("exec h_p_JIT_GetInfoByICMOStatusInterID @HSourceInterID=" + HSourceInterID + ",@HSourceEntryID=" + HSourceEntryID + ",@HSourceBillNo='" + HSourceBillNo + "',@HSourceBillType='" + HSourceBillType + "'", "h_p_JIT_GetInfoByICMOStatusInterID");
|
if (ds.Tables[0].Rows.Count > 0)
|
{
|
|
objJsonResult.code = "1";
|
objJsonResult.count = 1;
|
objJsonResult.Message = "获取资源绑定数据成功!";
|
objJsonResult.data = ds;
|
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.Message.ToString();
|
objJsonResult.data = null;
|
|
}
|
return objJsonResult;
|
}
|
#endregion
|
|
#region 报工平台开工单保存/编辑
|
/// <summary>
|
/// 开工单
|
/// </summary>
|
/// <param name="msg"></param>
|
/// <returns></returns>
|
[Route("Sc_MESBeginStepWorkBill/SaveGetMESBeginStepWorkFrom")]
|
[HttpPost]
|
public object SaveGetMESBeginStepWorkFrom([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 = sArray[2].ToString();
|
string refSav = sArray[3].ToString();
|
DBUtility.ClsPub.CurUserName = UserName;
|
//保存权限
|
if (!DBUtility.ClsPub.Security_Log_second("MES_MESBeginWorkBill_Edit", 1, false, DBUtility.ClsPub.CurUserName))
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "无保存权限!";
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
//判断会计期是否合理
|
string s = "";
|
int sYear = 0;
|
int sPeriod = 0;
|
if (DBUtility.Xt_BaseBillFun.Fun_AllowYearPeriod(DateTime.Now, ref sYear, ref sPeriod, ref s) == false)
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = s;
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
|
ListModels oListModels = new ListModels();
|
try
|
{
|
DLL.ClsSc_MESBeginWorkBill oBill = new DLL.ClsSc_MESBeginWorkBill();
|
List<Models.ClsSc_MESBeginWorkBillMain> lsmain = new List<Models.ClsSc_MESBeginWorkBillMain>();
|
msg2 = msg2.Replace("\\", "");
|
msg2 = msg2.Replace("\n", ""); //\n
|
lsmain = oListModels.getObjectByJson_Gy_MESBeginWorkFrom(msg2);
|
foreach (Models.ClsSc_MESBeginWorkBillMain oItem in lsmain)
|
{
|
if (refSav == "Add")
|
{
|
//单据号是否重复
|
if (BillNew.IsExistBillNo(ref ClsPub.sExeReturnInfo, oItem.HBillNo, BillStatus, BillOld.omodel.HInterID))
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "单据号重复!不允许保存!";
|
objJsonResult.data = 1;
|
return objJsonResult;
|
}
|
}
|
if (refSav == "Update")
|
{
|
if (BillOld.ShowBill(oItem.HInterID, ref s) == false)
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "此单据有误!";
|
objJsonResult.data = 1;
|
return objJsonResult;
|
}
|
//判断是否可编辑
|
if (BillOld.omodel.HChecker != "" && BillOld.omodel.HChecker != null)
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "此单据已经被审核,不允许修改!";
|
objJsonResult.data = 1;
|
return objJsonResult;
|
}
|
if (BillOld.omodel.HBillStatus > 1)
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "此单据处于不可编辑状态,不允许修改!";
|
objJsonResult.data = 1;
|
return objJsonResult;
|
}
|
if (!DBUtility.Xt_BaseBillFun.Fun_AllowEditBill(BillOld, ref s))
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = s + ",不允许修改";
|
objJsonResult.data = 1;
|
return objJsonResult;
|
}
|
}
|
|
DBUtility.ClsPub.CurUserName = oItem.HMaker;
|
oItem.HBillType = "3787";
|
oItem.HBillSubType = "3787";
|
oItem.HBillStatus = 1; //单据状态(1未审,2审核通过,3关闭,4作废,5审核退回,6审核中,7已阅,8已回复,9结案,10验证,11下达,12开工,13申请审批,15申请检验,16 判定合格,17判定不合格)
|
oItem.HYear = DBUtility.ClsPub.isLong(DateTime.Now.Year);
|
oItem.HMakeDate = DBUtility.ClsPub.isStrNull(DateTime.Now.ToString("yyyy-MM-dd"));
|
oItem.HBarCodeMakeDate = Convert.ToDateTime(DBUtility.ClsPub.isStrNull(DateTime.Now.ToString("yyyy-MM-dd"))); //扫描日期(年-月-日-时-分-秒)
|
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
|
List<Models.ClsSc_MESBeginWorkBillSub_RelationBill> ls = new List<Models.ClsSc_MESBeginWorkBillSub_RelationBill>();
|
ls = oListModels.getObjectByJson_Sc_MESBeginWorkBillSub_RelationBill(msg3);
|
int i = 0;
|
foreach (Models.ClsSc_MESBeginWorkBillSub_RelationBill oItemSub in ls)
|
{
|
i++;
|
oItemSub.HEntryID = i;
|
|
|
oItemSub.HEntryCloseDate = DBUtility.ClsPub.isDate(DateTime.Now);
|
oItemSub.HCloseType = false; //关闭类型
|
|
oBill.DetailCol2.Add(oItemSub);
|
|
}
|
|
//保存
|
//保存完毕后处理
|
bool bResult;
|
if (oBill.omodel.HInterID == 0)
|
{
|
|
bResult = oBill.AddBill(ref DBUtility.ClsPub.sExeReturnInfo);
|
if (bResult)
|
{
|
objJsonResult.HInterID = DBUtility.ClsPub.sExeReturnInfo; //返回主ID
|
//系统参数 自动审核
|
string sReturn = "";
|
if (oSystemParameter.ShowBill(ref sReturn) == true)
|
{
|
if (oSystemParameter.omodel.Sc_ICMOBillWorkQtyStatus_AutoCheck == "Y") //系统参数 自动审核
|
{
|
objJsonResult.Verify = "Y";
|
}
|
else
|
{
|
objJsonResult.Verify = "N";
|
}
|
}
|
}
|
|
}
|
else
|
{
|
bResult = oBill.ModifyBill(oBill.omodel.HInterID, ref DBUtility.ClsPub.sExeReturnInfo);
|
objJsonResult.Verify = "N";
|
}
|
if (bResult)
|
{
|
|
objJsonResult.code = "0";
|
objJsonResult.count = 1;
|
objJsonResult.Message = "保存成功!";
|
objJsonResult.data = 1;
|
return objJsonResult;
|
}
|
else
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "保存失败!" + DBUtility.ClsPub.sExeReturnInfo;
|
objJsonResult.data = 1;
|
return objJsonResult;
|
}
|
}
|
catch (Exception e)
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = e.Message;
|
objJsonResult.data = 1;
|
return objJsonResult;
|
}
|
}
|
#endregion
|
|
#region 报工平台验证单据状态
|
[Route("Sc_MESBeginStepWorkBill/GetMESBeginStepWorkBillStaus")]
|
[HttpGet]
|
public object GetMESBeginStepWorkBillStaus(string sWhere)
|
{
|
try
|
{
|
ds = new SQLHelper.ClsCN().RunProcReturn("select * from Sc_ICMOBillStatus_Tmp" + sWhere, "Sc_ICMOBillStatus_Tmp");
|
if (ds.Tables[0].Rows.Count > 0)
|
{
|
objJsonResult.code = "1";
|
objJsonResult.count = 1;
|
objJsonResult.Message = "工单暂未处理,可以操作!";
|
objJsonResult.data = null;
|
}
|
else
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "工单已处理,不允许操作!";
|
objJsonResult.data = null;
|
}
|
|
}
|
catch (Exception ex)
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = ex.Message;
|
objJsonResult.data = null;
|
}
|
return objJsonResult;
|
}
|
#endregion
|
|
|
|
#region 报工平台报检申请列表(产量汇报列表)
|
[Route("Sc_MESBeginStepWorkBill/GetMESProductReportBillList")]
|
[HttpGet]
|
public object GetMESProductReportBillList(string sWhere)
|
{
|
try
|
{
|
|
ds = Sc_GetMESProductReportBillList(sWhere);
|
objJsonResult.code = "1";
|
objJsonResult.count = 1;
|
objJsonResult.Message = "返回记录成功!";
|
objJsonResult.data = ds.Tables[0];
|
return objJsonResult;
|
}
|
catch (Exception ex)
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "没有返回任何记录!" + ex.ToString();
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
}
|
|
public static DataSet Sc_GetMESProductReportBillList(string sWhere)
|
{
|
//string sql = string.Format(@"select a.HInterID, a.HBillNo,a.HDate,a.HBillType,a.HBillStatus,a.HMaterID,m.HNumber HMaterCode,m.HName HMaterName,m.HModel HMaterSpec
|
// ,b.HSourceID,s.HNumber HSourceCode,s.HName HSourceName,a.HGroupID,g.HNumber HGroupCode,g.HName HGroupName
|
// ,b.HEmpID,b.HEmpNumber,e.HName HEmpName,a.HMaker,a.HMakeDate, '工序汇报' HReportType
|
// ,b.HQty,a.HICMOBillNo,a.HICMOInterID,pr.HProcNo,b.HProcID,p.HNumber HProcNumber,p.HName HProcName
|
// ,b.HSourceInterID,b.HSourceEntryID,b.HSourceBillNo,b.HSourceBillType
|
// from Sc_ProcessReportMain a
|
// inner join Sc_ProcessReportSub b on a.HInterID=B.HInterID
|
// inner join (select max(HProcNo) HProcNo,max(HProcID) HProcID
|
// from Sc_ProcessPlanSub group by HBillNo,HSourceBillNo)
|
// pr on b.HProcID=pr.HProcID
|
// left join Gy_Process p on b.HProcID=p.HItemID
|
// left join Gy_Material m on a.HMaterID=m.hitemid
|
// left join Gy_Source s on b.HSourceID=s.HItemID
|
// left join Gy_Group g on a.HGroupID=g.HItemID
|
// left join Gy_Employee e on b.HEmpID=e.HItemID " + sWhere+" and HRelationInterID='0'");
|
string sql = string.Format(@"select a.HInterID, a.HBillNo,a.HDate,a.HBillType,a.HBillStatus,a.HMaterID,m.HNumber HMaterCode,m.HName HMaterName,m.HModel HMaterSpec
|
,a.HSourceID,s.HNumber HSourceCode,s.HName HSourceName,a.HGroupID,g.HNumber HGroupCode,g.HName HGroupName
|
,a.HWorkManID,e.HName HWorkManName,a.HMaker,a.HMakeDate, a.HReportType
|
,a.HQty,a.HICMOBillNo,a.HICMOInterID,a.HICMOEntryID,pr.HProcNo,a.HProcID,p.HNumber HProcNumber,p.HName HProcName
|
,a.HSourceInterID,a.HSourceEntryID,a.HSourceBillNo, a.HSourceBillType
|
from Sc_ICMOBillWorkQtyStatus_Tmp a
|
inner join (select max(HProcNo) HProcNo,max(HProcID) HProcID
|
from Sc_ProcessPlanSub group by HBillNo,HSourceBillNo)
|
pr on a.HProcID=pr.HProcID
|
left join Gy_Process p on a.HProcID=p.HItemID
|
left join Gy_Material m on a.HMaterID=m.hitemid
|
left join Gy_Source s on a.HSourceID=s.HItemID
|
left join Gy_Group g on a.HGroupID=g.HItemID
|
left join Gy_Employee e on a.HWorkManID=e.HItemID " + sWhere + " and HRelationInterID='0'");
|
return new SQLHelper.ClsCN().RunProcReturn(sql, "Sc_ICMOBillWorkQtyStatus_Tmp");
|
}
|
#endregion
|
|
#region 报工平台产量汇验证汇报数量是否超出计划数量辑
|
/// <summary>
|
///
|
/// </summary>
|
/// <param name="msg"></param>
|
/// <returns></returns>
|
[Route("Sc_MESBeginStepWorkBill/GetMESOverStepQty")]
|
[HttpGet]
|
public object GetMESOverStepQty(string sWhere)
|
{
|
try
|
{
|
//ds = new SQLHelper.ClsCN().RunProcReturn("select isnull(sum(HQty),0) HQty,isnull(sum(HBadCount),0) HBadQty,isnull(sum(HWasterQty),0) HWasterQty from Sc_ProcessReportSub with (nolock)" + sWhere, "Sc_ProcessReportSub");
|
ds = new SQLHelper.ClsCN().RunProcReturn("select isnull(sum(HQty),0) HQty,isnull(sum(HBadQty),0) HBadQty,isnull(sum(HWasterQty),0) HWasterQty from Sc_ICMOBillWorkQtyStatus_Tmp with (nolock)" + sWhere, "Sc_ICMOBillWorkQtyStatus_Tmp");
|
if (ds.Tables[0].Rows.Count > 0)
|
{
|
objJsonResult.code = "1";
|
objJsonResult.count = 1;
|
objJsonResult.Message = "已有产量汇报数据返回!";
|
objJsonResult.data = ds;
|
}
|
else
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "无产量汇报数据!";
|
objJsonResult.data = null;
|
}
|
|
}
|
catch (Exception ex)
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = ex.Message;
|
objJsonResult.data = null;
|
}
|
return objJsonResult;
|
}
|
#endregion
|
|
#region 报工平台工序汇报保存/编辑
|
/// <summary>
|
/// 工序汇报提交
|
/// </summary>
|
/// <param name="msg"></param>
|
/// <returns></returns>
|
[Route("Sc_MESBeginStepWorkBill/SaveGetMESProductReportFromxxx")]
|
[HttpPost]
|
public object SaveGetMESProductReportFromxxx([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 refSav = sArray[1].ToString();
|
string s = "";
|
ListModels oListModels = new ListModels();
|
try
|
{
|
DLL.ClsSc_ProcessReport oBill = new DLL.ClsSc_ProcessReport();
|
List<Models.ClsSc_ProcessReportMain> lsmain = new List<Models.ClsSc_ProcessReportMain>();
|
msg2 = msg2.Replace("\\", "");
|
msg2 = msg2.Replace("\n", ""); //\n
|
lsmain = oListModels.getObjectByJson_ProcessReportMain(msg2);
|
foreach (Models.ClsSc_ProcessReportMain oItem in lsmain)
|
{
|
if (refSav == "Add")
|
{
|
//单据号是否重复
|
if (BillNew1.IsExistBillNo(ref ClsPub.sExeReturnInfo, oItem.HBillNo, BillStatus, BillOld1.omodel.HInterID))
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "单据号重复!不允许保存!";
|
objJsonResult.data = 1;
|
return objJsonResult;
|
}
|
}
|
if (refSav == "Update")
|
{
|
if (BillOld1.ShowBill(oItem.HInterID, ref s) == false)
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "此单据有误!";
|
objJsonResult.data = 1;
|
return objJsonResult;
|
}
|
//判断是否可编辑
|
if (BillOld1.omodel.HChecker != "" && BillOld1.omodel.HChecker != null)
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "此单据已经被审核,不允许修改!";
|
objJsonResult.data = 1;
|
return objJsonResult;
|
}
|
if (BillOld1.omodel.HBillStatus > 1)
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "此单据处于不可编辑状态,不允许修改!";
|
objJsonResult.data = 1;
|
return objJsonResult;
|
}
|
if (!DBUtility.Xt_BaseBillFun.Fun_AllowEditBill(BillOld1, ref s))
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = s + ",不允许修改";
|
objJsonResult.data = 1;
|
return objJsonResult;
|
}
|
}
|
|
oItem.HBillType = "3714";
|
oItem.HBillSubType = "3714";
|
oItem.HBillStatus = 1; //单据状态(1未审,2审核通过,3关闭,4作废,5审核退回,6审核中,7已阅,8已回复,9结案,10验证,11下达,12开工,13申请审批,15申请检验,16 判定合格,17判定不合格)
|
oItem.HYear = DBUtility.ClsPub.isLong(DateTime.Now.Year);
|
oItem.HMakeDate = DBUtility.ClsPub.isStrNull(DateTime.Now.ToString("yyyy-MM-dd"));
|
if (DBUtility.ClsPub.isStrNull(oItem.HDate) == "")
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "保存失败!没有单据日期,无法保存!";
|
objJsonResult.data = 1;
|
return objJsonResult;
|
}
|
oBill.omodel = oItem;
|
}
|
//表体数据
|
msg2 = msg2.Replace("\\", "");
|
msg2 = msg2.Replace("\n", ""); //\n
|
List<Models.ClsSc_ProcessReportSub> ls = new List<Models.ClsSc_ProcessReportSub>();
|
ls = oListModels.getObjectByJson_ProcessReportSub(msg2);
|
int i = 0;
|
foreach (Models.ClsSc_ProcessReportSub oItemSub in ls)
|
{
|
|
i++;
|
oItemSub.HEntryID = i;
|
//oItemSub.HCloseMan = ""; //行关闭
|
oItemSub.HEntryCloseDate = DBUtility.ClsPub.isDate(DateTime.Now);
|
oItemSub.HCloseType = false; //关闭类型
|
//oItemSub.HRemark = ""; //备注
|
oItemSub.HRelationQty = 0; //关联数量
|
oItemSub.HProcPlanBillNo = ""; //工序计划单
|
oItemSub.HSeOrderBillNo = "";
|
oItemSub.HRemark = "报工台工序汇报";
|
oItemSub.HOtherItem1 = "";
|
oItemSub.HOtherItem2 = "";
|
oItemSub.HOtherItem3 = "";
|
oItemSub.HOtherItem4 = "";
|
oItemSub.HOtherItem5 = "";
|
oItemSub.HPackType = "";
|
oItemSub.HBatchNo = "";
|
//oItemSub.HRelationMoney = 0; //关联金额
|
//oItemSub.HRepairID = 0; //维修项目
|
//oItemSub.HRepairExplanation =""; //维修要求
|
//oItemSub.HManagerID = 0; //负责人ID
|
//oItemSub.HMoney = 0; //维修费用
|
oBill.DetailColl.Add(oItemSub);
|
|
}
|
|
//保存
|
//保存完毕后处理
|
bool bResult;
|
if (oBill.omodel.HInterID == 0)
|
{
|
bResult = oBill.AddBill(ref DBUtility.ClsPub.sExeReturnInfo);
|
if (bResult)
|
{
|
objJsonResult.HInterID = DBUtility.ClsPub.sExeReturnInfo; //返回主ID
|
//系统参数 自动审核
|
string sReturn = "";
|
if (oSystemParameter.ShowBill(ref sReturn) == true)
|
{
|
if (oSystemParameter.omodel.Sc_MESProceReportWorkBill_AutoCheck == "Y") //系统参数 自动审核
|
{
|
objJsonResult.Verify = "Y";
|
}
|
else
|
{
|
objJsonResult.Verify = "N";
|
}
|
}
|
}
|
}
|
else
|
{
|
bResult = oBill.ModifyBill(oBill.omodel.HInterID, ref DBUtility.ClsPub.sExeReturnInfo);
|
objJsonResult.Verify = "N";
|
}
|
if (bResult)
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 1;
|
objJsonResult.Message = "保存成功!";
|
objJsonResult.data = 1;
|
return objJsonResult;
|
}
|
else
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "保存失败!";
|
objJsonResult.data = 1;
|
return objJsonResult;
|
}
|
}
|
catch (Exception e)
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = e.Message;
|
objJsonResult.data = 1;
|
return objJsonResult;
|
}
|
}
|
#endregion
|
|
#region 报工平台工序汇报审核、反审核
|
/// <summary>
|
///
|
/// </summary>
|
/// <param name="HInterID">单据ID</param>
|
/// <param name="IsAudit">审核(0),反审核(1)</param>
|
/// <param name="CurUserName">审核人</param>
|
/// <returns></returns>
|
[Route("Sc_MESBeginStepWorkBill/MESProductAuditProcessReportListxxxx")]
|
[HttpGet]
|
public object MESProductAuditProcessReportListxxxx(int HSourceID, int HSourceInterID, int HSourceEntryID, string HSourceBillNo, int HICMOInterID, int HICMOEntryID, int HInterID, int IsAudit, string CurUserName)
|
{
|
string ModRightNameCheck = "MES_ProductReport_Check";
|
DBUtility.ClsPub.CurUserName = CurUserName;
|
try
|
{
|
string StrMessage = "";
|
//审核权限
|
if (!WebClsPub.Security_Log(ModRightNameCheck, 1, false, CurUserName, ref StrMessage))
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = StrMessage;
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
if (HInterID <= 0)
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "HInterID小于0!";
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
Int64 lngBillKey = 0;
|
lngBillKey = DBUtility.ClsPub.isLong(HInterID);
|
DLL.ClsSc_ProcessReport oBill = new DLL.ClsSc_ProcessReport();
|
//查看是否已审核,关闭,作废
|
if (oBill.ShowBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo))
|
{
|
if (oBill.omodel.HCloseMan.Trim() != "")
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "单据已关闭!不能再次审核!";
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
if (oBill.omodel.HDeleteMan.Trim() != "")
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "单据已作废!不能再次审核!";
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
if (IsAudit == 0) //审核判断
|
{
|
if (oBill.omodel.HChecker.Trim() != "")
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "单据已审核!不能再次审核!";
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
}
|
if (IsAudit == 1) //反审核判断
|
{
|
if (oBill.omodel.HChecker.Trim() == "")
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "单据未审核!不需要反审核!";
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
}
|
}
|
else
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "单据不存在!原因:" + DBUtility.ClsPub.sExeReturnInfo;
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
if (IsAudit == 0) //审核提交
|
{
|
//审核提交
|
if (oBill.CheckBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo) == true)
|
{
|
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) //反审核提交
|
{
|
//反审核提交AbandonCheck
|
if (oBill.AbandonCheck(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo) == true)
|
{
|
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;
|
}
|
}
|
#endregion
|
|
#region 报工平台产量汇报删除
|
[Route("Sc_MESBeginStepWorkBill/DeltetMESProductReportBill")]
|
[HttpGet]
|
public object DeleteGetLineBindBillList(string HInterID, string HICMOInterID, string HICMOEntryID, string UserName)
|
{
|
try
|
{
|
//判断是否有删除权限
|
if (!DBUtility.ClsPub.Security_Log("MES_ProcExchReport_Drop", 1, false, UserName))
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "无权限删除!";
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
|
ds = oCN.RunProcReturn("select * from Sc_ICMOBillWorkQtyStatus_Tmp where HInterID=" + HInterID + " and HSourceInterID=" + HICMOInterID + " and HSourceEntryID=" + HICMOEntryID, "Sc_ICMOBillWorkQtyStatus_Tmp");
|
string HBillNo = "";
|
if (ds.Tables[0].Rows.Count == 0) {
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "查无数据!";
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
else
|
{
|
HBillNo = ds.Tables[0].Rows[0]["HBillNo"].ToString();
|
}
|
|
|
oCN.BeginTran();
|
|
//删除前控制=========================================
|
DataSet Ds;
|
|
string sql1 = "exec h_p_Sc_ICMOBillWorkQtyStatus_BeforeDelCtrl " + HInterID + ",'" + HBillNo + "','" + UserName + "'";
|
Ds = oCN.RunProcReturn(sql1, "h_p_Sc_ICMOBillWorkQtyStatus_BeforeDelCtrl");
|
if (Ds == null || Ds.Tables.Count == 0 || Ds.Tables[0].Rows.Count == 0)
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "删除失败!原因:删除前判断失败,请与网络管理人员联系";
|
objJsonResult.data = null;
|
oCN.RollBack();
|
return objJsonResult;
|
}
|
|
if (Ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "删除失败!原因:" + Ds.Tables[0].Rows[0]["HRemark"].ToString();
|
objJsonResult.data = null;
|
oCN.RollBack();
|
return objJsonResult;
|
}
|
//==================================================================================
|
|
//删除产量汇报表
|
string sql = string.Format(@"delete Sc_ICMOBillWorkQtyStatus_Tmp where HInterID='" + HInterID + "'");
|
oCN.RunProc(sql);
|
double sumqty = double.Parse(ds.Tables[0].Rows[0]["HQty"].ToString()) + double.Parse(ds.Tables[0].Rows[0]["HBadQty"].ToString()) + double.Parse(ds.Tables[0].Rows[0]["HWasterQty"].ToString()); //汇报数量+不良+报废
|
//回写生产状态临时表Sc_ICMOBillStatus_Tmp拆分汇报数量 HSplitRelationQty
|
oCN.RunProc("update Sc_ICMOBillStatus_Tmp set HSplitRelationQty=HSplitRelationQty-" + sumqty + " where HICMOBillNo='" + ds.Tables[0].Rows[0]["HICMOBillNo"].ToString() + "' and HSourceID='" + ds.Tables[0].Rows[0]["HSourceID"].ToString() + "' and HICMOInterID='" + ds.Tables[0].Rows[0]["HICMOInterID"].ToString() + "' and HICMOEntryID='" + ds.Tables[0].Rows[0]["HICMOEntryID"].ToString() + "' and HInterID=" + ds.Tables[0].Rows[0]["HSourceInterID"].ToString());
|
|
//删除后控制==================================================================================
|
string sql2 = "exec h_p_Sc_ICMOBillWorkQtyStatus_AfterDelCtrl " + HInterID + ",'" + HBillNo + "','" + UserName + "'";
|
Ds = oCN.RunProcReturn(sql2, "h_p_Sc_ICMOBillWorkQtyStatus_AfterDelCtrl");
|
if (Ds == null || Ds.Tables.Count == 0 || Ds.Tables[0].Rows.Count == 0)
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "删除失败!原因:" + Ds.Tables[0].Rows[0]["HRemark"].ToString();
|
objJsonResult.data = null;
|
oCN.RollBack();
|
return objJsonResult;
|
}
|
if (Ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "删除失败!原因:" + Ds.Tables[0].Rows[0]["HRemark"].ToString();
|
objJsonResult.data = null;
|
oCN.RollBack();
|
return objJsonResult;
|
}
|
//==============================================================================================
|
|
oCN.Commit();
|
objJsonResult.code = "1";
|
objJsonResult.count = 1;
|
objJsonResult.Message = "删除产量汇报单成功!";
|
objJsonResult.data = ds;
|
return objJsonResult;
|
}
|
catch (Exception e)
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = e.Message.ToString();
|
objJsonResult.data = null;
|
oCN.RollBack();
|
}
|
return objJsonResult;
|
}
|
#endregion
|
|
#region 报工平台报检申请保存
|
[Route("Sc_MESBeginStepWorkBill/SaveGetMESProductReportBillList")]
|
[HttpGet]
|
public object SaveGetMESProductReportBillList(string ScMaxWork, string HSourceBillType, string workcode, int HSourceID, int HICMOInterID, int HICMOEntryID, string HMaker, string Czybm, string HProcID)
|
{
|
ListModels oListModels = new ListModels();
|
try
|
{
|
//系统参数 生成生产汇报单前判断是否首检
|
//string sReturn = "";
|
//if (oSystemParameter.ShowBill(ref sReturn) == true)
|
//{
|
// if (oSystemParameter.omodel.Sc_ICMOReportBill_FirstCheckOut == "Y") //系统参数 必须首件检验通过才能保存单据
|
// {
|
// //系统参数审核,则根据生产订单号,关联首检检验单中源单号查找检验单数据,判断单据状态是否合格
|
// ds = oCN.RunProcReturn("select * from QC_FirstPieceCheckBillMain where HICMOInterID='" + HICMOInterID + "' and HICMOEntryID='" + HICMOEntryID + "'", "QC_FirstPieceCheckBillMain");
|
// if (ds.Tables[0].Rows.Count > 0) //有首检检验单
|
// {
|
// int rows = ds.Tables[0].AsEnumerable().Where(item => item["HLastResult"].ToString().Equals("True")).Count(); //判断当前数据(一条或多条)中最终判定是否有合格
|
// if (rows <= 0)
|
// {
|
// objJsonResult.code = "0";
|
// objJsonResult.count = 0;
|
// objJsonResult.Message = "当前工单首检检验判定不合格,无法生成汇报单!";
|
// objJsonResult.data = null;
|
// return objJsonResult;
|
// }
|
// }
|
// }
|
//}
|
|
string sHSourceType = HSourceBillType;
|
string BillType = "3714"; //单据类型 (工序汇报单)
|
//得到mainid
|
long HInterID = DBUtility.ClsPub.CreateBillID(BillType, ref DBUtility.ClsPub.sExeReturnInfo);
|
//oCN.BeginTran();
|
//根据单号、资源ID、订单主ID、订单子ID、制单人过滤产量汇报报检申请提交数据
|
//string sql = string.Format(@"update Sc_ICMOBillWorkQtyStatus_Tmp set
|
// HICMOReportInterID ='"+HInterID+"', HICMOReportBillNo='"+ ScMaxWork + "' from Sc_ICMOBillWorkQtyStatus_Tmp a where a.HICMOBillNo='" + workcode+ "' and a.HSourceID='" + HSourceID + "' and HICMOInterID='" + HICMOInterID+ "' and a.HICMOEntryID='"+ HICMOEntryID + "' and a.HMaker='"+HMaker+"' and HRelationInterID='0'");
|
//oCN.RunProc(sql);
|
//oCN.Commit();
|
//根据生产订单号查询生产订单表,拿到组织、车间
|
//DataSet ds0 = oCN.RunProcReturn("select HPRDORGID,HDeptID from Sc_ICMOBillMain where HBillNo='"+ workcode + "'", "Sc_ICMOBillMain");
|
|
//查询产量汇报临时表
|
//ds = oCN.RunProcReturn("select top 1 * from Sc_ICMOBillWorkQtyStatus_Tmp where HICMOReportInterID='" + HInterID + "' and HICMOReportBillNo='" + ScMaxWork + "'", "Sc_ICMOBillWorkQtyStatus_Tmp");
|
//if (ds.Tables[0].Rows.Count <= 0)
|
//{
|
//oCN.RollBack();
|
// objJsonResult.code = "0";
|
// objJsonResult.count = 0;
|
// objJsonResult.Message = "当前单据无产量汇报记录!";
|
// objJsonResult.data = null;
|
// return objJsonResult;
|
//}
|
|
|
WebS.ClsSc_ICMOReportBillMain model = new WebS.ClsSc_ICMOReportBillMain();
|
model.HInterID = HInterID;
|
model.HBillNo = ScMaxWork;
|
//model.HYear= DBUtility.ClsPub.isLong(DateTime.Now.Year);
|
//model.HPeriod = DBUtility.ClsPub.isLong(DateTime.Now.Month);
|
model.HDate = DateTime.Now;
|
model.HRemark = "";
|
model.HMaker = HMaker;
|
model.HEmpID = int.Parse(Czybm.ToString());
|
//model.HGroupID = DBUtility.ClsPub.isLong(ds.Tables[0].Rows[0]["HGroupID"]);
|
//model.HDeptID= DBUtility.ClsPub.isLong(ds0.Tables[0].Rows[0]["HDeptID"]);
|
//model.HPRDORGID = DBUtility.ClsPub.isLong(ds0.Tables[0].Rows[0]["HPRDORGID"]);
|
model.HMainSourceInterID = HICMOInterID;
|
model.HMainSourceEntryID = HICMOEntryID;
|
|
|
//oWebs.Timeout = 30000;
|
bool flag = oWebs.set_SaveICMOProductReportBill_LayuiYqn(model, workcode, HSourceID, sHSourceType, HProcID, ref DBUtility.ClsPub.sErrInfo);
|
if (flag)
|
{
|
//oCN.Commit();
|
objJsonResult.code = "1";
|
objJsonResult.count = 1;
|
objJsonResult.Message = "保存成功!";
|
objJsonResult.data = 1;
|
return objJsonResult;
|
}
|
else
|
{
|
//oCN.RollBack();
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "保存失败!" + flag + ";" + DBUtility.ClsPub.sErrInfo;
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
}
|
catch (Exception e)
|
{
|
//oCN.RollBack();
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "保存失败!" + e.ToString();
|
objJsonResult.data = 1;
|
return objJsonResult;
|
}
|
}
|
#endregion
|
|
|
#region 报工平台(工序)产量汇报保存/编辑--新
|
/// <summary>
|
/// 报工平台(工序)产量汇报
|
/// </summary>
|
/// <param name="msg"></param>
|
/// <returns></returns>
|
[Route("Sc_MESBeginStepWorkBill/SaveGetMESProductReportFrom")]
|
[HttpPost]
|
public object SaveGetMESProductReportFrom([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 refSav = sArray[1].ToString();
|
string user = sArray[2].ToString();//用户名
|
string s = "";
|
ListModels oListModels = new ListModels();
|
try
|
{
|
//判断是否有编辑权限
|
if (!DBUtility.ClsPub.Security_Log("MES_ProcExchReport_Edit", 1, false, user))
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "无权限编辑!";
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
|
DLL.ClsSc_ICMOStepBillWorkQtyStatus_Tmp oBill = new DLL.ClsSc_ICMOStepBillWorkQtyStatus_Tmp();
|
List<Models.ClsSc_ICMOBillWorkQtyStatus_Tmp> lsmain = new List<Models.ClsSc_ICMOBillWorkQtyStatus_Tmp>();
|
msg2 = msg2.Replace("\\", "");
|
msg2 = msg2.Replace("\n", ""); //\n
|
lsmain = oListModels.getObjectByJson_Gy_MESProductReportFrom(msg2);
|
foreach (Models.ClsSc_ICMOBillWorkQtyStatus_Tmp oItem in lsmain)
|
{
|
if (refSav == "Add")
|
{
|
//单据号是否重复
|
if (BillNew1.IsExistBillNo(ref ClsPub.sExeReturnInfo, oItem.HBillNo, BillStatus, BillOld1.omodel.HInterID))
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "单据号重复!不允许保存!";
|
objJsonResult.data = 1;
|
return objJsonResult;
|
}
|
}
|
if (refSav == "Update")
|
{
|
if (BillOld1.ShowBill(oItem.HInterID, ref s) == false)
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "此单据有误!";
|
objJsonResult.data = 1;
|
return objJsonResult;
|
}
|
//判断是否可编辑
|
if (BillOld1.omodel.HChecker != "" && BillOld1.omodel.HChecker != null)
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "此单据已经被审核,不允许修改!";
|
objJsonResult.data = 1;
|
return objJsonResult;
|
}
|
if (BillOld1.omodel.HBillStatus > 1)
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "此单据处于不可编辑状态,不允许修改!";
|
objJsonResult.data = 1;
|
return objJsonResult;
|
}
|
if (!DBUtility.Xt_BaseBillFun.Fun_AllowEditBill(BillOld1, ref s))
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = s + ",不允许修改";
|
objJsonResult.data = 1;
|
return objJsonResult;
|
}
|
}
|
|
oItem.HBillType = "3724";
|
oItem.HBillSubType = "3724";
|
oItem.HReportType = 3;//(1条码扫描,2机器汇报,3手工录入)
|
oItem.HBillStatus = 1; //单据状态(1未审,2审核通过,3关闭,4作废,5审核退回,6审核中,7已阅,8已回复,9结案,10验证,11下达,12开工,13申请审批,15申请检验,16 判定合格,17判定不合格)
|
if (DBUtility.ClsPub.isStrNull(oItem.HDate) == "")
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "保存失败!没有单据日期,无法保存!";
|
objJsonResult.data = 1;
|
return objJsonResult;
|
}
|
oBill.omodel = oItem;
|
}
|
|
//保存
|
//保存完毕后处理
|
bool bResult;
|
if (oBill.omodel.HInterID == 0)
|
{
|
bResult = oBill.AddBill(ref DBUtility.ClsPub.sExeReturnInfo);
|
if (bResult)
|
{
|
objJsonResult.HInterID = DBUtility.ClsPub.sExeReturnInfo; //返回主ID
|
//系统参数 自动审核
|
string sReturn = "";
|
if (oSystemParameter.ShowBill(ref sReturn) == true)
|
{
|
if (oSystemParameter.omodel.Sc_ICMOBillWorkQtyStatus_AutoCheck == "Y") //系统参数 自动审核
|
{
|
objJsonResult.Verify = "Y";
|
}
|
else
|
{
|
objJsonResult.Verify = "N";
|
}
|
}
|
}
|
}
|
else
|
{
|
bResult = oBill.ModifyBill(oBill.omodel.HInterID, ref DBUtility.ClsPub.sExeReturnInfo);
|
objJsonResult.Verify = "N";
|
}
|
if (bResult)
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 1;
|
objJsonResult.Message = "保存成功!";
|
objJsonResult.data = 1;
|
return objJsonResult;
|
}
|
else
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "保存失败!";
|
objJsonResult.data = 1;
|
return objJsonResult;
|
}
|
}
|
catch (Exception e)
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = e.Message;
|
objJsonResult.data = 1;
|
return objJsonResult;
|
}
|
}
|
#endregion
|
|
#region 报工平台产量汇报审核、反审核
|
/// <summary>
|
///
|
/// </summary>
|
/// <param name="HInterID">单据ID</param>
|
/// <param name="IsAudit">审核(0),反审核(1)</param>
|
/// <param name="CurUserName">审核人</param>
|
/// <returns></returns>
|
[Route("Sc_MESBeginStepWorkBill/MESProductAuditProcessReportList")]
|
[HttpGet]
|
public object MESProductAuditProcessReportList(int HSourceID, int HSourceInterID, int HSourceEntryID, string HSourceBillNo, int HICMOInterID, int HICMOEntryID, int HInterID, int IsAudit, string CurUserName)
|
{
|
string ModRightNameCheck = "MES_ProcExchReport_Check";
|
DBUtility.ClsPub.CurUserName = CurUserName;
|
string sql = "";
|
try
|
{
|
string StrMessage = "";
|
//审核权限
|
if (!WebClsPub.Security_Log(ModRightNameCheck, 1, false, CurUserName, ref StrMessage))
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = StrMessage;
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
if (HInterID <= 0)
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "HInterID小于0!";
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
Int64 lngBillKey = 0;
|
lngBillKey = DBUtility.ClsPub.isLong(HInterID);
|
DLL.ClsSc_ICMOStepBillWorkQtyStatus_Tmp oBill = new DLL.ClsSc_ICMOStepBillWorkQtyStatus_Tmp();
|
//查看是否已审核,关闭,作废
|
if (oBill.ShowBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo))
|
{
|
if (oBill.omodel.HCloseMan.Trim() != "")
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "单据已关闭!不能再次审核!";
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
if (oBill.omodel.HDeleteMan.Trim() != "")
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "单据已作废!不能再次审核!";
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
if (IsAudit == 0) //审核判断
|
{
|
if (oBill.omodel.HChecker.Trim() != "")
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "单据已审核!不能再次审核!";
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
}
|
if (IsAudit == 1) //反审核判断
|
{
|
if (oBill.omodel.HChecker.Trim() == "")
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "单据未审核!不需要反审核!";
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
}
|
}
|
else
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "单据不存在!原因:" + DBUtility.ClsPub.sExeReturnInfo;
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
if (IsAudit == 0) //审核提交
|
{
|
//审核前控制===============================================Begin===================================================================
|
sql = "exec h_p_Sc_ICMOBillWorkQtyStatus_BeforeCheckCtrl " + HInterID + ",'" + oBill.omodel.HBillNo + "','" + CurUserName + "'";
|
ds = oCN.RunProcReturn(sql, "h_p_Sc_ICMOBillWorkQtyStatus_BeforeCheckCtrl");
|
if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "审核失败!原因:审核前判断失败,无返回信息,请与网络管理人员联系";
|
objJsonResult.data = null;
|
return objJsonResult;
|
|
}
|
if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "审核失败!原因:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ;
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
//审核前控制===============================================End===================================================================
|
|
//审核提交
|
if (oBill.CheckBill(HSourceID, HSourceInterID, HSourceEntryID, HSourceBillNo, HICMOInterID, HICMOEntryID, lngBillKey, oBill.omodel.HBillNo, "h_p_Sc_ICMOBillWorkQtyStatus_AfterCheckCtrl", CurUserName, ref DBUtility.ClsPub.sExeReturnInfo) == true)
|
{
|
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) //反审核提交
|
{
|
//反审核前控制===============================================Begin===================================================================
|
sql = "exec h_p_Sc_ICMOBillWorkQtyStatus_BeforeUnCheckCtrl " + HInterID + ",'" + oBill.omodel.HBillNo + "','" + CurUserName + "'";
|
ds = oCN.RunProcReturn(sql, "h_p_Sc_ICMOBillWorkQtyStatus_BeforeUnCheckCtrl");
|
if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "审核失败!原因:反审核前判断失败,无返回信息,请与网络管理人员联系";
|
objJsonResult.data = null;
|
return objJsonResult;
|
|
}
|
if (ds.Tables[0].Rows[0]["HBack"].ToString() != "0")
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "审核失败!原因:" + ds.Tables[0].Rows[0]["HRemark"].ToString(); ;
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
//反审核前控制===============================================End===================================================================
|
|
//反审核提交AbandonCheck
|
if (oBill.AbandonCheck(HSourceID, HSourceInterID, HSourceEntryID, HSourceBillNo, HICMOInterID, HICMOEntryID, lngBillKey, oBill.omodel.HBillNo, "h_p_Sc_ICMOBillWorkQtyStatus_AfterUnCheckCtrl", CurUserName, ref DBUtility.ClsPub.sExeReturnInfo) == true)
|
{
|
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;
|
}
|
}
|
#endregion
|
|
#region 报工平台开工单扫二维码查询
|
[Route("Sc_MESBeginStepWorkBill/GetMESBeginStepWorkBillByEWM")]
|
[HttpGet]
|
public object GetMESBeginStepWorkBillByEWM(string sBillBarCode)
|
{
|
try
|
{
|
//根据选择资源ID获取当前生产工单、责任人
|
ds = oCN.RunProcReturn("select f1.F_YQN_XSDD 销售订单编号, f1.F_zzzz_Text4 销售物料名称,* from h_v_IF_ICMOBillList a left join AIS20200908101915zs..T_PRD_MOENTRY f1 on a.HERPEntryID=f1.FENTRYID where convert(varchar(50),a.hmainid)+'-'+convert(varchar(50),a.HEntryID)='" + sBillBarCode + "'", "h_v_IF_ICMOBillList");
|
if (ds.Tables[0].Rows.Count > 0)
|
{
|
objJsonResult.code = "1";
|
objJsonResult.count = 1;
|
objJsonResult.Message = "返回源单成功!";
|
objJsonResult.data = ds;
|
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.Message.ToString();
|
objJsonResult.data = null;
|
|
}
|
return objJsonResult;
|
}
|
#endregion
|
|
#region 报工平台开工单无源单保存
|
[Route("Sc_MESBeginStepWorkBill/SaveGetMESBeginStepWorkBillByEWM")]
|
[HttpPost]
|
public object SaveGetMESBeginStepWorkBillByEWM([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 = sArray[2].ToString();
|
string refSav = sArray[3].ToString();
|
DBUtility.ClsPub.CurUserName = UserName;
|
//保存权限
|
if (!DBUtility.ClsPub.Security_Log_second("MES_MESBeginWorkBill_Edit", 1, false, DBUtility.ClsPub.CurUserName))
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "无保存权限!";
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
//判断会计期是否合理
|
string s = "";
|
int sYear = 0;
|
int sPeriod = 0;
|
string BillNo = "";
|
long MainId = 0;
|
string EntyID = "";
|
|
if (DBUtility.Xt_BaseBillFun.Fun_AllowYearPeriod(DateTime.Now, ref sYear, ref sPeriod, ref s) == false)
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = s;
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
|
ListModels oListModels = new ListModels();
|
try
|
{
|
DLL.ClsSc_MESBeginWorkBill oBill = new DLL.ClsSc_MESBeginWorkBill();
|
List<Models.ClsSc_MESBeginWorkBillMain> lsmain = new List<Models.ClsSc_MESBeginWorkBillMain>();
|
msg2 = msg2.Replace("\\", "");
|
msg2 = msg2.Replace("\n", ""); //\n
|
lsmain = oListModels.getObjectByJson_Gy_MESBeginWorkFrom(msg2);
|
foreach (Models.ClsSc_MESBeginWorkBillMain oItem in lsmain)
|
{
|
if (refSav == "Add")
|
{
|
//单据号是否重复
|
if (BillNew.IsExistBillNo(ref ClsPub.sExeReturnInfo, oItem.HBillNo, BillStatus, BillOld.omodel.HInterID))
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "单据号重复!不允许保存!";
|
objJsonResult.data = 1;
|
return objJsonResult;
|
}
|
}
|
//生产订单编号、生产订单主ID、生产订单主ID+子ID
|
BillNo = oItem.HMainSourceBillNo;
|
MainId = oItem.HMainSourceInterID;
|
EntyID = oItem.HMainSourceEntryID;
|
DBUtility.ClsPub.CurUserName = oItem.HMaker;
|
oItem.HBillType = "3787";
|
oItem.HBillSubType = "3787";
|
oItem.HBillStatus = 1; //单据状态(1未审,2审核通过,3关闭,4作废,5审核退回,6审核中,7已阅,8已回复,9结案,10验证,11下达,12开工,13申请审批,15申请检验,16 判定合格,17判定不合格)
|
oItem.HYear = DBUtility.ClsPub.isLong(DateTime.Now.Year);
|
oItem.HMakeDate = DBUtility.ClsPub.isStrNull(DateTime.Now.ToString("yyyy-MM-dd"));
|
oItem.HBarCodeMakeDate = Convert.ToDateTime(DBUtility.ClsPub.isStrNull(DateTime.Now.ToString("yyyy-MM-dd"))); //扫描日期(年-月-日-时-分-秒)
|
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
|
List<Models.ClsSc_MESBeginWorkBillSub_RelationBill> ls = new List<Models.ClsSc_MESBeginWorkBillSub_RelationBill>();
|
ls = oListModels.getObjectByJson_Sc_MESBeginWorkBillSub_RelationBill(msg3);
|
int i = 0;
|
foreach (Models.ClsSc_MESBeginWorkBillSub_RelationBill oItemSub in ls)
|
{
|
i++;
|
oItemSub.HEntryID = i;
|
|
|
oItemSub.HEntryCloseDate = DBUtility.ClsPub.isDate(DateTime.Now);
|
oItemSub.HCloseType = false; //关闭类型
|
|
oBill.DetailCol2.Add(oItemSub);
|
|
}
|
|
bool bResult;
|
if (oBill.omodel.HInterID == 0)
|
{
|
oCN.BeginTran();
|
|
//根据生产订单子ID找对应的生产用料清单
|
DataSet Ds = oCN.RunProcReturn("select b.FID,b.FBILLNO,b.FDOCUMENTSTATUS from Sc_ICMOBillSub a left join AIS20200908101915zs..T_PRD_PPBOM b on a.HERPEntryID=b.FMOENTRYID where a.HEntryID=" + (EntyID).Split('-')[1], "Sc_ICMOBillSub");
|
//查找当前生产订单明细状态
|
DataSet Dss = oCN.RunProcReturn("select FSTATUS from AIS20200908101915zs..T_PRD_MOENTRY_A where FENTRYID=" + (EntyID).Split('-')[1], "AIS20200908101915zs..T_PRD_MOENTRY_A");
|
//判断金蝶生产单的状态不为4则执行开工
|
if (Dss.Tables[0].Rows[0][0].ToString() != "4")
|
{
|
oCN.RunProc("update AIS20200908101915zs..T_PRD_MOENTRY_A set FSTATUS=4,FCONVEYDATE=getdate() where FENTRYID=" + (EntyID).Split('-')[1]);
|
}
|
else
|
{
|
oCN.RollBack();
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "单据已开工!";
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
|
//访问金蝶
|
var loginRet = InvokeHelper.Login();
|
var isSuccess = JObject.Parse(loginRet)["LoginResultType"].Value<int>();
|
if (isSuccess == 0)
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "操作失败,金蝶账号登录异常。" + loginRet;
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
var json = new
|
{
|
//CreateOrgId = 0,
|
//Numbers = BillNo,
|
Ids = Ds.Tables[0].Rows[0][0].ToString(),
|
//PkEntryIds = (EntyID).Split('-')[1]
|
};
|
//LogService.Write("json=" + json);
|
string result1 = string.Empty;
|
string result2 = string.Empty;
|
|
//判断当前用生产料清单单状态——已创建则先提交再审核、以提交则只审核--A:创建,B:提交,C:审核,D:重新审核
|
if (Ds.Tables[0].Rows[0][2].ToString() == "A"|| Ds.Tables[0].Rows[0][2].ToString() == "D")
|
{
|
result1 = InvokeHelper.Submit("PRD_PPBOM", JsonConvert.SerializeObject(json));
|
result2 = InvokeHelper.Audit("PRD_PPBOM", JsonConvert.SerializeObject(json));
|
}
|
if (Ds.Tables[0].Rows[0][2].ToString() == "B")
|
{
|
result2 = InvokeHelper.Audit("PRD_PPBOM", JsonConvert.SerializeObject(json));
|
}
|
LogService.Write("result2=" + result2);
|
//判断审核是否成功
|
if (JObject.Parse(result2)["Result"]["ResponseStatus"]["IsSuccess"].ToString().ToUpper() != "TRUE")
|
{
|
oCN.RollBack();
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = $"对应生产用料清单,单号{Ds.Tables[0].Rows[0][1].ToString()},审核失败!" + result2;
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
|
//保存
|
////执行保存
|
bResult = oBill.AddBill(ref DBUtility.ClsPub.sExeReturnInfo);
|
if (bResult)
|
{
|
objJsonResult.HInterID = DBUtility.ClsPub.sExeReturnInfo; //返回主ID
|
//系统参数 自动审核
|
string sReturn = "";
|
if (oSystemParameter.ShowBill(ref sReturn) == true)
|
{
|
if (oSystemParameter.omodel.Sc_ICMOBillWorkQtyStatus_AutoCheck == "Y") //系统参数 自动审核
|
{
|
objJsonResult.Verify = "Y";
|
}
|
else
|
{
|
objJsonResult.Verify = "N";
|
}
|
}
|
}
|
}
|
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 = e.Message;
|
objJsonResult.data = 1;
|
return objJsonResult;
|
}
|
}
|
#endregion
|
|
#region PDA开工单 扫描流转卡 查出对应信息
|
[Route("Sc_MESBeginStepWorkBill/GetHProcExchInterID")]
|
[HttpGet]
|
public object GetHProcExchInterID(string HBarCode, string user)
|
{
|
try
|
{
|
List<object> columnNameList = new List<object>();
|
|
if (HBarCode == null || HBarCode.Equals(""))
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "条码信息为空!";
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
else
|
{
|
string sql = "select a.*,b.HName HMaterName,b.HNumber HMaterNumbers,b.HModel HModel,c.HName HDeptName from Sc_ICMOBillStatus_Tmp a " +
|
"left join Gy_Material b on a.HMaterID=b.HItemID left join Gy_Department c on a.HDeptID=c.HItemID where HSourceBillNo = '" + HBarCode + "'";
|
ds = oCN.RunProcReturn(sql, "Sc_ICMOBillStatus_Tmp");
|
}
|
|
if (ds.Tables[0].Rows.Count > 0)
|
{
|
//添加列名
|
foreach (DataColumn col in ds.Tables[0].Columns)
|
{
|
Type dataType = col.DataType;
|
string ColmString = "{\"ColmCols\":\"" + col.ColumnName + "\",\"ColmType\":\"" + dataType.Name + "\"}";
|
columnNameList.Add(JsonConvert.DeserializeObject(ColmString));//获取到DataColumn列对象的列名
|
}
|
|
objJsonResult.code = "1";
|
objJsonResult.count = 1;
|
objJsonResult.Message = "Sucess!";
|
objJsonResult.data = ds.Tables[0];
|
objJsonResult.list = columnNameList;
|
return objJsonResult;
|
}
|
else
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "工序流转卡:" + HBarCode + " ,没有进行派工操作";
|
objJsonResult.data = ds.Tables[0];
|
objJsonResult.list = columnNameList;
|
return objJsonResult;
|
}
|
|
}
|
catch (Exception e)
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "Exception!" + e.ToString();
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
}
|
#endregion
|
|
#region PDA开工单保存/编辑
|
/// <summary>
|
/// 开工单
|
/// </summary>
|
/// <param name="msg"></param>
|
/// <returns></returns>
|
[Route("Sc_MESBeginStepWorkBill/SaveSc_MESBeginWorkBill")]
|
[HttpPost]
|
public object SaveSc_MESBeginWorkBill([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 UserName = sArray[1].ToString();
|
string refSav = sArray[2].ToString();
|
|
//保存权限
|
if (!DBUtility.ClsPub.Security_Log_second("MES_MESBeginWorkBill_Edit", 1, false, UserName))
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "无保存权限!";
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
//判断会计期是否合理
|
string s = "";
|
int sYear = 0;
|
int sPeriod = 0;
|
if (DBUtility.Xt_BaseBillFun.Fun_AllowYearPeriod(DateTime.Now, ref sYear, ref sPeriod, ref s) == false)
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = s;
|
objJsonResult.data = null;
|
return objJsonResult;
|
}
|
|
LogService.Write("开工:1" + msg1);
|
|
ListModels oListModels = new ListModels();
|
try
|
{
|
DLL.ClsSc_MESBeginWorkBill oBill = new DLL.ClsSc_MESBeginWorkBill();
|
List<Models.ClsSc_MESBeginWorkBillMain> lsmain = new List<Models.ClsSc_MESBeginWorkBillMain>();
|
msg2 = msg2.Replace("\\", "");
|
msg2 = msg2.Replace("\n", ""); //\n
|
lsmain = oListModels.getObjectByJson_Gy_MESBeginWorkFrom(msg2);
|
foreach (Models.ClsSc_MESBeginWorkBillMain oItem in lsmain)
|
{
|
if (refSav == "Add")
|
{
|
//单据号是否重复
|
if (BillNew.IsExistBillNo(ref ClsPub.sExeReturnInfo, oItem.HBillNo, BillStatus, BillOld.omodel.HInterID))
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "单据号重复!不允许保存!";
|
objJsonResult.data = 1;
|
return objJsonResult;
|
}
|
}
|
if (refSav == "Update")
|
{
|
if (BillOld.ShowBill(oItem.HInterID, ref s) == false)
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "此单据有误!";
|
objJsonResult.data = 1;
|
return objJsonResult;
|
}
|
//判断是否可编辑
|
if (BillOld.omodel.HChecker != "" && BillOld.omodel.HChecker != null)
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "此单据已经被审核,不允许修改!";
|
objJsonResult.data = 1;
|
return objJsonResult;
|
}
|
if (BillOld.omodel.HBillStatus > 1)
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "此单据处于不可编辑状态,不允许修改!";
|
objJsonResult.data = 1;
|
return objJsonResult;
|
}
|
if (!DBUtility.Xt_BaseBillFun.Fun_AllowEditBill(BillOld, ref s))
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = s + ",不允许修改";
|
objJsonResult.data = 1;
|
return objJsonResult;
|
}
|
}
|
|
oItem.HMaker = UserName;
|
oItem.HBillType = "3787";
|
oItem.HBillSubType = "3787";
|
oItem.HBillStatus = 1; //单据状态(1未审,2审核通过,3关闭,4作废,5审核退回,6审核中,7已阅,8已回复,9结案,10验证,11下达,12开工,13申请审批,15申请检验,16 判定合格,17判定不合格)
|
oItem.HYear = DBUtility.ClsPub.isLong(DateTime.Now.Year);
|
oItem.HPeriod = DBUtility.ClsPub.isLong(DateTime.Now.Month);
|
oItem.HMakeDate = DBUtility.ClsPub.isStrNull(DateTime.Now.ToString("yyyy-MM-dd"));
|
oItem.HBarCodeMakeDate = Convert.ToDateTime(DBUtility.ClsPub.isStrNull(DateTime.Now.ToString("yyyy-MM-dd"))); //扫描日期(年-月-日-时-分-秒)
|
if (DBUtility.ClsPub.isStrNull(oItem.HDate) == "")
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "保存失败!没有单据日期,无法保存!";
|
objJsonResult.data = 1;
|
return objJsonResult;
|
}
|
oBill.omodel = oItem;
|
}
|
|
|
LogService.Write("开工:2" + msg1);
|
//保存
|
//保存完毕后处理
|
bool bResult;
|
if (oBill.omodel.HInterID == 0)
|
{
|
LogService.Write("开工:2.1" + msg1);
|
bResult = oBill.AddBill(ref DBUtility.ClsPub.sExeReturnInfo);
|
if (bResult)
|
{
|
objJsonResult.HInterID = DBUtility.ClsPub.sExeReturnInfo; //返回主ID
|
//系统参数 自动审核
|
string sReturn = "";
|
if (oSystemParameter.ShowBill(ref sReturn) == true)
|
{
|
LogService.Write("开工:2.8");
|
objJsonResult.Verify = "Y";
|
}
|
}
|
|
}
|
else
|
{
|
bResult = oBill.ModifyBill(oBill.omodel.HInterID, ref DBUtility.ClsPub.sExeReturnInfo);
|
objJsonResult.Verify = "N";
|
}
|
|
LogService.Write("开工:3" + msg1);
|
|
if (bResult)
|
{
|
|
objJsonResult.code = "0";
|
objJsonResult.count = 1;
|
objJsonResult.Message = "保存成功!";
|
objJsonResult.data = 1;
|
return objJsonResult;
|
}
|
else
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = "保存失败!" + DBUtility.ClsPub.sExeReturnInfo;
|
objJsonResult.data = 1;
|
return objJsonResult;
|
}
|
}
|
catch (Exception e)
|
{
|
objJsonResult.code = "0";
|
objJsonResult.count = 0;
|
objJsonResult.Message = e.Message;
|
objJsonResult.data = 1;
|
return objJsonResult;
|
}
|
}
|
#endregion
|
}
|
}
|