New file |
| | |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using Kingdee.BOS.Util; |
| | | using Kingdee.BOS.Core.Metadata.EntityElement; |
| | | using Kingdee.BOS.Core.DynamicForm.PlugIn; |
| | | using Kingdee.BOS.Core.DynamicForm.PlugIn.Args; |
| | | using Kingdee.BOS.Orm.DataEntity; |
| | | using System.ComponentModel; |
| | | using Kingdee.BOS.ServiceHelper; |
| | | using System.Data; |
| | | using Newtonsoft.Json.Linq; |
| | | using ZD.Cloud.WebApi; |
| | | using Newtonsoft.Json; |
| | | using Kingdee.BOS.Core.DynamicForm; |
| | | using System.Linq; |
| | | using RestSharp; |
| | | using zymes_Project.Utility; |
| | | |
| | | namespace zymes_Project.OperationService |
| | | { |
| | | [Description("[生产订单变更单-审核]服务插件]")] |
| | | [HotUpdate] |
| | | public class zymes_MOCHANGE : AbstractOperationServicePlugIn |
| | | { |
| | | Dictionary<string, string> dictionary = new Dictionary<string, string>(); |
| | | public override void OnPrepareOperationServiceOption(OnPrepareOperationServiceEventArgs e) |
| | | { |
| | | base.OnPrepareOperationServiceOption(e); |
| | | |
| | | //为了在BeginOperationTransaction里检查数据抛出异常时 |
| | | //只回滚当前单据的事务,这里设置为不支持批量事务,这样BOS会 |
| | | //循环为每一张单据创建事务调用操作 |
| | | e.SupportTransaction = true; |
| | | //e.SurportBatchTransaction = false; |
| | | } |
| | | public override void OnPreparePropertys(PreparePropertysEventArgs e) |
| | | { |
| | | base.OnPreparePropertys(e); |
| | | e.FieldKeys.Add("FEntity"); |
| | | e.FieldKeys.Add("FEntity_FEntryID"); |
| | | } |
| | | public override void AfterExecuteOperationTransaction(AfterExecuteOperationTransaction e) |
| | | { |
| | | base.AfterExecuteOperationTransaction(e); |
| | | Entity entity = this.BusinessInfo.GetEntity("FEntity");//获取明细信息 |
| | | foreach (var billObj in e.DataEntitys) |
| | | { |
| | | var forgName = Context.CurrentOrganizationInfo.Name; |
| | | if (!forgName.Contains("杭州斯莫尔磁性材料有限公司")) |
| | | continue; |
| | | var id = billObj["Id"].ToString(); |
| | | |
| | | var sqls= string.Empty; |
| | | sqls = $@"select FMONO,FSRCBILLID from T_PRD_MOCHANGE a |
| | | inner join T_PRD_MOCHANGEENTRY b on a.FID = b.FID |
| | | where a.FID ={id} group by FMONO, FSRCBILLID"; |
| | | |
| | | LogService.Write("1:" + sqls); |
| | | DataSet dataSet = DBServiceHelper.ExecuteDataSet(Context, sqls); |
| | | |
| | | for (int i = 0; i < dataSet.Tables[0].Rows.Count; i++) |
| | | { |
| | | var ids = dataSet.Tables[0].Rows[i]["FSRCBILLID"].ToString(); |
| | | string sql = string.Empty; |
| | | |
| | | sql = $@" |
| | | /*dialect*/ |
| | | select a.FID AS HInterID,a.FENTRYID as HENTRYID,a.FSEQ as HSEQ,a.FQTY as HQty,a.FQTY as HQTYMUST,aa.FSTOCKINQUASELAUXQTY as HRelationQty,0 as HRelationMoney,a.FPLANSTARTDATE as HPlanBeginDate,a.FPLANFINISHDATE as HPlanEndDate |
| | | ,a.FPLANSTARTDATE as HBeginDate,a.FPLANFINISHDATE as HEndDate,a.FMATERIALID as HMaterID,a.FUNITID as HUnitID,a.FSTOCKID as HWHID,isnull(a.FSTOCKLOCID,0) as HSPID,0 as HPROCID,isnull(a.FWORKSHOPID,0) as HDEPTID,a.FBOMID as HBomID,a.FLOT_TEXT as HBatchNo,'CLOUD导入' as HRemark |
| | | ,a.FSRCBILLID as HSourceInterID,a.FSRCBILLENTRYID as HSourceEntryID,a.FSRCBILLNO as HSourceBillNo,a.FSRCBILLTYPE as HSourceBillType,a.FSALEORDERID as HSeOrderInterID,a.FSALEORDERENTRYID as HSeOrderEntryID,a.FSALEORDERNO as HSeOrderBillNo |
| | | ,FSTOCKINORGID as HSTOCKINORGID,FINSTOCKOWNERID as HINSTOCKOWNERID,FINSTOCKOWNERTYPEID as HINSTOCKOWNERTYPEID,FREQUESTORGID as HREQUESTORGID |
| | | ,0 as HPlanMode,a.FMTONO as HMTONo,a.FID as HERPInterID,a.FENTRYID as HERPEntryID,aa.FSTATUS as HSTATUS |
| | | ,isnull(orm.FCUSTID,0) as HEntryCusID,aa.FREPQUASELAUXQTY as HICMOReportRelationQty,a.FAUXPROPID as HAuxPropID |
| | | ,'' as HProdMaterCode,'' as HCusShortName,'' as HCusNeedMaterial,'' as HPlanSendGoodsDate |
| | | ,'' as HProdMaterName,'' as HWorkRemark,'' as HImportNote,'' as HCusName |
| | | ,0 as HInstockQty_Max,0 as HInstockQty_Min,FCOSTRATE as HCOSTRATE,FISBACKFLUSH as HISBACKFLUSH,FCHECKPRODUCT as HCHECKPRODUCT |
| | | --,a.FMX_CPCODE,a.FMX_KHNOTE,a.FMX_KHCLCF,a.FMX_CHDATE--江丰戎创金蝶自定义字段 |
| | | --,a.FMX_CPNAME,a.FMX_SCNOTE,a.FMX_ZYNOTE,a.FMX_KHNAME--江丰戎创金蝶自定义字段 |
| | | ,'' as HPickLabel,a.FSTOCKINLIMITH as HPickLabelNumber,a.FSTOCKINLIMITL as HCusNumber |
| | | from T_PRD_MOENTRY a with(nolock) |
| | | inner join T_PRD_MOENTRY_A aa with(nolock) on a.FENTRYID=aa.FENTRYID |
| | | left join T_SAL_ORDERENTRY ore with(nolock) on a.FSALEORDERID=ore.FID and a.FSALEORDERENTRYID=ore.FEntryID |
| | | left join T_SAL_ORDER orm with(nolock) on ore.FID=orm.FID |
| | | Where a.FID={ids} |
| | | select a.FID HInterID ,2000 HYear,1 HPeriod,'3710' HBillType,a.FDATE HDate,a.FbillNo HBillNo,'2' HBillStatus,0 HEMPID,0 HRoutingInterID |
| | | ,1 HPlanQty,0 HRelationQty,a.FDATE HPlanBeginDate ,getdate() HPlanEndDate ,a.FDATE HBeginDate,getdate() HEndDate,0 HMaterID,0 HUnitID,0 HBomID,'' HBatchNo |
| | | ,0 HSourceInterID,0 HSourceEntryID,'' HSourceBillNo,'' HSourceBillType,0 HSeOrderInterID,0 HSeOrderEntryID,'' HSeOrderBillNo |
| | | ,FPRDORGID HPRDORGID,FENTRUSTORGID HENTRUSTORGID,FOWNERID HOWNERID,FOWNERTYPEID HOWNERTYPEID |
| | | ,0 HCusID,isnull(a.FWORKSHOPID,0) HDeptID,'CLOUD导入' HRemark,a.FCREATORID HMaker,getdate() HMakeDate,a.FAPPROVERID HChecker,a.FAPPROVEDATE HCheckDate,'' HMTONo,a.FID HERPInterID,a.FBILLTYPE HERPBillType |
| | | ,case when a.FISREWORK=1 then '返工' else '普通' end HBillSubType |
| | | from T_PRD_MO a with(nolock) |
| | | Where a.FID={ids} |
| | | select a.FID AS HInterID,a.FEntryID HEntryID,isnull(a.FMATERIALID,0) HMaterID,a.FUnitID HUnitID,a.FNEEDQTY HQty,a.FNEEDQTY HQtyMust,isnull(C.FStockID,0) HWHID,'CLOUD导入' HRemark |
| | | ,isnull(a.FMOID,0) HSourceInterID,isnull(a.FMOENTRYID,0) HSourceEntryID,isnull(a.FMOBILLNO,'') HSourceBillNo,'3710' HSourceBillType,isnull(a.FMOID,0) HICMOInterID,isnull(a.FMOENTRYID,0) HICMOEntryID,isnull(a.FMOBILLNO,'') HICMOBillNo |
| | | ,isnull(c.FCHILDSUPPLYORGID,0) HCHILDSUPPLYORGID,isnull(c.FSUPPLYORG,0) HSUPPLYORGID,isnull(c.FENTRUSTPICKORGID,0) HENTRUSTPICKORGID,isnull(c.FSRCTRANSORGID,0) HSRCTRANSORGID,isnull(c.FGROUPBYOWNERID,0) HGROUPBYOWNERID,isnull(c.FOWNERID,0) HOWNERID,isnull(c.FOWNERTYPEID,'') HOWNERTYPEID |
| | | ,(q.FSELPICKEDQTY - q.FSELPRCDRETURNQTY) HRelationQty,q.FSELTRANSLATEQTY HMoveStockQty,isnull(a.FAUXPROPID,0) HAuxPropID,isnull(c.FLOT_TEXT,'') HBatchNO,isnull(a.FMTONo,'') HMTONo,a.FBASENUMERATOR/a.FBASEDENOMINATOR HQtyScrap,isnull(a.FID,0) HERPInterID,a.FEntryID HERPEntryID |
| | | ,q.FWIPQTY HBackRelationQty,a.FNumerator HNumerator,a.FDenominator HDenominator |
| | | ,isnull(a.FBASEUNITID,0) HBASEUNITID,isnull(a.FProcessID,0) HProcessID,isnull(a.FMOENTRYSEQ,0) HICMOENTRYSEQ,isnull(a.FPROJECTNO,'') HPROJECTNO,isnull(a.FOPERID,0) HOPERID,isnull(a.FSEQ,0) HSEQ,isnull(c.FSTOCKSTATUSID,0) HSTOCKSTATUSID |
| | | ,isnull(c.FLOT,0) HLOT,c.FOPTQUEUE HOPTQUEUE,isnull(c.FRESERVETYPE,0) HRESERVETYPE,q.FSelPickedQty HSelPickedQty,q.FSELPRCDRETURNQTY HSELPRCDRETURNQTY,isnull(tp.FNAME,0) as HProcName |
| | | from T_PRD_PPBOMEntry a with(nolock) |
| | | left join T_PRD_PPBOMENTRY_LK l with(nolock) on a.FENTRYID=l.FENTRYID |
| | | inner join T_PRD_PPBOMENTRY_C c with(nolock) on A.FENTRYID=c.FENTRYID |
| | | inner join T_PRD_PPBOMENTRY_Q q with(nolock) on A.FENTRYID=q.FENTRYID |
| | | left join T_ENG_PROCESS_L tp with(nolock) on A.FProcessID=tp.FID |
| | | left join T_ENG_PROCESS_L tl on tp.FID =tl.fid and tl.FLOCALEID=2052 |
| | | Where a.FMOID={ids} |
| | | select a.FID HInterID,YEAR(a.FCREATEDate) AS HYear,MONTH(a.FCREATEDate) AS HPeriod,'3720' HBillType,'3720' HBillSubType,a.FCREATEDate HDate |
| | | ,isnull(a.FbillNo,'') HBillNo,case when isnull(a.FAPPROVERID,0)=0 then 1 else 2 end HBillStatus,isnull(a.FMOID,0) HICMOInterID,isnull(a.FMOENTRYID,0) HICMOEntryID |
| | | ,a.FMATERIALID HMaterID,a.FUNITID HUnitID,a.FQTY HQty,isnull(a.FWORKSHOPID,0) HDeptID,isnull(a.FCREATORID,0) HMaker,getdate() HMakeDate,isnull(a.FAPPROVERID,0) HChecker,a.FAPPROVEDATE HCheckDate |
| | | ,isnull(a.FSALEORDERNO,'') HSeOrderBillNo,isnull(a.FSALEORDERID,0) HSeOrderInterID,isnull(a.FSALEORDERENTRYID,0) HSeOrderEntryID |
| | | ,isnull(a.FPRDORGID,0) HPRDORGID,isnull(a.FENTRUSTORGID,0) HENTRUSTORGID,isnull(a.FPARENTOWNERID,0) HPARENTOWNERID,isnull(a.FPARENTOWNERTYPEID,'') HPARENTOWNERTYPEID,isnull(a.FREQSRC,'') HREQSRC |
| | | ,a.FID HERPInterID,'PPBOM' HERPBillType,isnull(a.FSALEORDERENTRYSEQ,0) HSeOrderEntrySEQ,isnull(a.FMOEntrySEQ,0) HICMOEntrySEQ |
| | | from T_PRD_PPBOM a with(nolock) |
| | | Where a.FMOID={ids} |
| | | "; |
| | | |
| | | LogService.Write("2.1:" + sql); |
| | | |
| | | DataSet ds = DBServiceHelper.ExecuteDataSet(Context, sql); |
| | | DataTable subdt = ds.Tables[0]; |
| | | DataTable maindt = ds.Tables[1]; |
| | | DataTable ppbomsubdt = ds.Tables[2]; |
| | | DataTable ppbommaindt = ds.Tables[3]; |
| | | if (maindt.Rows.Count == 0 || subdt.Rows.Count == 0) |
| | | { |
| | | LogService.Write("生产订单变更单同步异常:" + sql); |
| | | continue; |
| | | } |
| | | JObject model = new JObject();//主表 |
| | | DataRow maindr = maindt.Rows[0]; |
| | | foreach (DataColumn column in maindt.Columns) |
| | | { |
| | | model.Add(column.ColumnName, maindr[column.ColumnName].ToString()); |
| | | } |
| | | JArray array = new JArray();//明细表 |
| | | foreach (DataRow dr in subdt.Rows) |
| | | { |
| | | JObject fentrymodel = new JObject(); |
| | | foreach (DataColumn column in subdt.Columns) |
| | | { |
| | | fentrymodel.Add(column.ColumnName, dr[column.ColumnName].ToString()); |
| | | } |
| | | array.Add(fentrymodel); |
| | | } |
| | | model.Add("HENTRY", array); |
| | | |
| | | array = new JArray();//ppbom明细表 |
| | | foreach (DataRow dr in ppbommaindt.Rows) |
| | | { |
| | | JObject fentrymodel = new JObject(); |
| | | foreach (DataColumn column in ppbommaindt.Columns) |
| | | { |
| | | fentrymodel.Add(column.ColumnName, dr[column.ColumnName].ToString()); |
| | | } |
| | | array.Add(fentrymodel); |
| | | } |
| | | model.Add("HPPBOMMAINENTRY", array); |
| | | array = new JArray();//ppbom明细表 |
| | | foreach (DataRow dr in ppbomsubdt.Rows) |
| | | { |
| | | JObject fentrymodel = new JObject(); |
| | | foreach (DataColumn column in ppbomsubdt.Columns) |
| | | { |
| | | fentrymodel.Add(column.ColumnName, dr[column.ColumnName].ToString()); |
| | | } |
| | | array.Add(fentrymodel); |
| | | } |
| | | model.Add("HPPBOMSUBENTRY", array); |
| | | |
| | | JObject jsonRoot = new JObject() |
| | | { |
| | | ["model"] = model |
| | | }; |
| | | |
| | | string clientUrl = Util.GetConfigKey(AppDomain.CurrentDomain.BaseDirectory + "/Config/kdapi.config", "ClientUrl");//K/3 Cloud 业务站点地址 |
| | | var client = new RestSharp.RestClient(clientUrl); |
| | | //var client = new RestSharp.RestClient(" http://10.11.18.195:8080/simoerapi/"); |
| | | //新增 |
| | | var requestPost = new RestRequest("Sc_ICMOBill/ICMOBillSaveApi", Method.POST); |
| | | requestPost.AddParameter("application/json", JsonConvert.SerializeObject(jsonRoot), ParameterType.RequestBody); |
| | | IRestResponse responsePost = client.Execute(requestPost); |
| | | var contentPost = responsePost.Content; |
| | | if (!contentPost.Contains("成功")) |
| | | { |
| | | LogService.Write("生产订单变更单同步异常,POST方式获取结果," + billObj["Id"] + "," + responsePost.ErrorMessage); |
| | | LogService.Write("生产订单变更单同步异常,POST," + "Sc_ICMOBill/ICMOBillSaveApi"); |
| | | LogService.Write("生产订单变更单同步异常,JsonConvert.SerializeObject(jsonRoot)," + JsonConvert.SerializeObject(jsonRoot)); |
| | | } |
| | | } |
| | | }; |
| | | foreach (var item in dictionary) |
| | | { |
| | | ResultMessage.dataError(this.OperationResult.OperateResult, item.Key, item.Value); |
| | | } |
| | | } |
| | | public static class ResultMessage |
| | | {/// <summary> |
| | | /// 修改提示信息 |
| | | /// </summary> |
| | | /// <param name="operateResult"></param> |
| | | /// <param name="billno"></param> |
| | | public static void dataError(OperateResultCollection operateResult, string billno, string message) |
| | | { |
| | | OperateResult operate = operateResult.Where(n => n.Number == billno).First(); |
| | | operate.Message = message; |
| | | operate.SuccessStatus = false; |
| | | operate.MessageType = MessageType.FatalError; |
| | | } |
| | | } |
| | | |
| | | } |
| | | } |
| | |
| | | Where a.FID={id} |
| | | select a.FID as HInterID,year(a.FDATE) as HYear,month(a.FDATE) as HPeriod,'1102' as HBillType,'1102' as HBillSubType,a.FDate as HDate |
| | | ,a.FBillNo as HBillNo,case when a.FAPPROVERID=0 then 1 else 2 end HBillStatus,'' as HAddress,0 as HSSID,a.FDATE as HSSDate,0 as HPSStyleID |
| | | ,a.FSUPPLIERID as HSupID,0 as HCurID,0 as HExRate,a.FPURCHASERID as HEmpID,0 as HManagerID,a.FPURCHASEDEPTID as HDeptID |
| | | ,a.FSUPPLIERID as HSupID,a.F_RCZU_JXS HSupDealerID,0 as HCurID,0 as HExRate,a.FPURCHASERID as HEmpID,0 as HManagerID,a.FPURCHASEDEPTID as HDeptID |
| | | ,'CLOUD导入' as HExplanation,'CLOUD导入' as HRemark,a.FBillNo as HInnerBillNo |
| | | ,a.FAPPROVERID as HChecker,a.FAPPROVEDATE as HCheckDate,a.FCREATORID as HMaker,a.FCREATEDATE as HMakeDate |
| | | ,a.FID as HERPInterID,a.FBILLTYPEID as HERPBillType,a.FPURCHASEORGID as HPURCHASEORGID,a.FPURCHASERGROUPID as HPURCHASERGROUPID,a.FPROVIDERID as HPROVIDERID,a.FSETTLEID as HSETTLEID |
| | |
| | | where a.FID={id} |
| | | |
| | | select a.FID as HInterID,year(isnull(a.FDATE,GETDATE())) as HYear,month(isnull(a.FDATE,GETDATE())) as HPeriod,'1103' as HBillType,case when a.FBUSINESSTYPE='WW' then '12511' else '12510' end as HBillSubType,isnull(a.FDATE,GETDATE()) as HDate |
| | | ,a.FBillNo as HBillNo,case when a.FAPPROVERID=0 then 1 else 2 end HBillStatus,a.FSUPPLIERID as HSupID,a.FPURCHASERID as HManagerID,a.FRECEIVERID as HEmpID,a.FRECEIVEDEPTID as HDeptID,a.FNOTE as HRemark |
| | | ,a.FBillNo as HBillNo,case when a.FAPPROVERID=0 then 1 else 2 end HBillStatus,a.FSUPPLIERID as HSupID,a.F_RCZU_JXS HSupDealerID,a.FPURCHASERID as HManagerID,a.FRECEIVERID as HEmpID,a.FRECEIVEDEPTID as HDeptID,a.FNOTE as HRemark |
| | | ,a.FCREATORID as HMaker,a.FCREATEDATE as HMakeDate,a.FAPPROVERID as HChecker ,a.FAPPROVEDATE as HCheckDate,a.FOWNERTYPEID as HOWNERTYPEID,a.FOWNERID as HOWNERID |
| | | ,a.FID as HERPInterID,a.FBillTypeID as HERPBillType,a.FPURORGID as HPURCHASEORGID,a.FSTOCKORGID as HSTOCKORGID,a.FDEMANDORGID as HREQUIREORGID |
| | | ,a.FSTOCKGROUPID as HSTOCKGROUPID,isnull(a.FSENDBILLNO,'') as HSENDBILLNO,isnull(a.FLADBILLNO,'') as HLADBILLNO,a.FPURDEPTID as HPURDEPTID,a.FPURGROUPID as HPURGROUPID,a.FSUPPLYID as HSUPPLYID |
| | |
| | | Entity entity = this.BusinessInfo.GetEntity("FEntity");//获取明细信息 |
| | | foreach (var billObj in e.DataEntitys) |
| | | { |
| | | //var forgName = Context.CurrentOrganizationInfo.Name; |
| | | //if (!forgName.Contains("杭州斯莫尔磁性材料有限公司")) |
| | | // continue; |
| | | var forgName = Context.CurrentOrganizationInfo.Name; |
| | | if (!forgName.Contains("杭州斯莫尔磁性材料有限公司")) |
| | | continue; |
| | | var id = billObj["Id"].ToString(); |
| | | string sql = string.Empty; |
| | | sql = $@" |
| | |
| | | foreach (var billObj in e.DataEntitys) |
| | | { |
| | | var forgName = Context.CurrentOrganizationInfo.Name; |
| | | //if (!forgName.Contains("杭州斯莫尔磁性材料有限公司")) |
| | | // continue; |
| | | if (!forgName.Contains("杭州斯莫尔磁性材料有限公司")) |
| | | continue; |
| | | var id = billObj["Id"].ToString(); |
| | | string sql = string.Empty; |
| | | sql = $@" |
| | |
| | | <Compile Include="HttpClient.cs" /> |
| | | <Compile Include="InvokeHelper.cs" /> |
| | | <Compile Include="LogService.cs" /> |
| | | <Compile Include="OperationService\zymes_MOCHANGE.cs" /> |
| | | <Compile Include="OperationService\zymes_RealessCurrency.cs" /> |
| | | <Compile Include="OperationService\zymes_RealessOperator.cs" /> |
| | | <Compile Include="OperationService\zymes_RealessRateType.cs" /> |