| | |
| | | using System.Data.SqlClient; |
| | | using System.Globalization; |
| | | using Newtonsoft.Json; |
| | | using Newtonsoft.Json.Linq; |
| | | |
| | | namespace CLOUDWEB |
| | | { |
| | |
| | | |
| | | #endregion |
| | | |
| | | #region 工序计划下推工序汇报单CLOUD |
| | | |
| | | [WebMethod] |
| | | public bool set_SaveStationOutBill_CLD(Int64 HInterID, string HBillNo, string HMaker, ref string sErrMsg) |
| | | { |
| | | string sRemark = ""; |
| | | SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); |
| | | //从配置文件获取 CLOUD网址、账套信息、登录用户、登录密码 |
| | | if (!Pub_Class.ClsPub.GetCLOUDLoginInfo(ref Pub_Class.ClsPub.sExeReturnInfo)) |
| | | { |
| | | sErrMsg = "单据号:" + HBillNo + ";" + Pub_Class.ClsPub.sExeReturnInfo; |
| | | return false; |
| | | } |
| | | |
| | | //获取CLOUD默认账号密码 |
| | | string sCLOUDUseName = Pub_Class.ClsPub.sCLOUDUseName; |
| | | string sCLOUDPsd = Pub_Class.ClsPub.sCLOUDPsd; |
| | | |
| | | //从用户表获取用户绑定金蝶账号 |
| | | DataSet ds11 = oCn.RunProcReturn("exec h_p_API_GetCloudUserByLoginUser '" + HMaker + "'", "h_p_API_GetCloudUserByLoginUser"); |
| | | if (ds11 == null || ds11.Tables[0].Rows.Count == 0) |
| | | { |
| | | } |
| | | else |
| | | { |
| | | sCLOUDUseName = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserName"]); |
| | | sCLOUDPsd = DBUtility.ClsPub.isStrNull(ds11.Tables[0].Rows[0]["HCloudUserPsd"]); |
| | | } |
| | | |
| | | string HReturn; |
| | | K3CloudApiClient client = new K3CloudApiClient(Pub_Class.ClsPub.sCLOUDUrl); |
| | | //ApiClient client = new ApiClient(Pub_Class.ClsPub.sCLOUDUrl); |
| | | string dbId = Pub_Class.ClsPub.sCLOUDAcc; //AotuTest117 |
| | | bool bLogin = client.Login(dbId, sCLOUDUseName, sCLOUDPsd, 2052); |
| | | |
| | | sRemark = sRemark + " ;获取验证CLOUD账号密码" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); |
| | | |
| | | try |
| | | { |
| | | //获取WEBAPI所需递入数据 |
| | | DataSet Ds = oCn.RunProcReturn("exec h_p_Sc_GetStationOutBill_CLD " + HInterID.ToString() + ",'" + HBillNo + "'", "h_p_Sc_GetStationOutBill_CLD"); |
| | | |
| | | if (Ds == null || Ds.Tables[0].Rows.Count == 0) |
| | | { |
| | | sErrMsg = "单据号:" + HBillNo + ";获取WEBAPI所需递入数据失败!"; |
| | | return false; |
| | | } |
| | | else |
| | | { |
| | | string sJson_Custom = ""; //自定义字段 |
| | | sJson_Custom = Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["Custom"]); |
| | | |
| | | string sJson = "{\"AutoAudit\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["AutoAudit"]) + "\"," + //自动审核 |
| | | " \"Datas\": [ { " + |
| | | " \"Id\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["Id"]) + "\"," + //工序计划头Id |
| | | " \"DetailIds\": [ { " + //工序计划子单据体 |
| | | " \"EntryId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["EntryId"]) + "\"," + //工序计划序列Id |
| | | " \"DetailId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["DetailId"]) + "\"," + //工序计划工序Id |
| | | " \"QuaQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["QuaQty"]) + "\"," + //合格数量 |
| | | " \"ProcessFailQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["ProcessFailQty"]) + "\"," + //工废数量 |
| | | " \"MaterialFailQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["MaterialFailQty"]) + "\"," + //料废数量 |
| | | " \"WastageQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["WastageQty"]) + "\"," + //损耗数量 |
| | | " \"FinishQty\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["FinishQty"]) + "\"," + //完工数量 |
| | | sJson_Custom + |
| | | " \"EpmIds\": [ { " + |
| | | " \"EpmId\":\"" + Pub_Class.ClsPub.isStrNull(Ds.Tables[0].Rows[0]["EpmId"]) + "\"," + //操作工 |
| | | " } ]," + |
| | | " } ]," + |
| | | " } ]}"; |
| | | |
| | | sRemark = sRemark + " ;获取CLOUD单据API递入值" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); |
| | | |
| | | //生成金蝶云单据 |
| | | if (bLogin) |
| | | { |
| | | var result = client.Execute<string>("Kingdee.K3.MFG.WebApi.ServicesStub.OptPlanOptRtpApiService.Push,Kingdee.K3.MFG.WebApi.ServicesStub", |
| | | new object[] { sJson }); |
| | | |
| | | sRemark = sRemark + " ;生成CLOUD单据" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); |
| | | |
| | | HReturn = result.ToString(); |
| | | |
| | | if (HReturn.Contains("\"IsSuccess\":false") == true) |
| | | { |
| | | //反序列化json数据 |
| | | var retModel = JsonConvert.DeserializeObject<KingdeeResponse>(HReturn); |
| | | //接收金蝶报错信息 |
| | | var strErrorMsg = string.Empty; |
| | | //遍历获取报错信息 |
| | | foreach (var item in retModel.Result.ResponseStatus.Errors) |
| | | { |
| | | strErrorMsg += item.Message + "\r\n"; |
| | | }; |
| | | sErrMsg = "单据号:" + HBillNo + ";生成工序汇报单失败!金蝶云提示:" + strErrorMsg; |
| | | LogService.Write("单据号:" + HBillNo + ";工序计划下推工序汇报失败!" + HReturn + sJson); //写入txt文本 |
| | | return false; |
| | | } |
| | | else |
| | | { |
| | | sRemark = sRemark + sJson; |
| | | LogService.Write("单据号:" + HBillNo + ";工序计划下推工序汇报成功!" + sRemark +"------"+ HReturn); //写入txt文本 |
| | | return true; |
| | | } |
| | | } |
| | | else |
| | | { |
| | | sErrMsg = "单据号:" + HBillNo + ";生成工序汇报单失败!金蝶云登录失败!"; |
| | | return false; |
| | | } |
| | | } |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | LogService.Write("单据号:" + HBillNo + ";生成回滚" + e.Message + sRemark); |
| | | sErrMsg = "单据号:" + HBillNo + ";生成工序汇报单失败!" + e.Message; |
| | | return false; |
| | | } |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region 不良评审单 * |
| | | |
| | | //生成不良评审单 |