parent
							
								
									2c0202d516
								
							
						
					
					
						commit
						d9ef0ae37e
					
				|  | @ -39,32 +39,40 @@ public class TextFieldDemo extends AbstractFormPlugin { | |||
|             } | ||||
|         } | ||||
| 
 | ||||
|         DynamicObject paymentidentify = (DynamicObject)this.getView().getModel().getValue("paymentidentify");//付款单标识 | ||||
|         if (null != paymentidentify) { | ||||
|             //FKBS01  主动付款  FKBS02	 被动付款 | ||||
|             String number = paymentidentify.getString("number");//付款单标识 | ||||
|             //再加个判断,如果是 “主动付款”不进行必填校验。 | ||||
|             if (!"FKBS01".equals(number)) { | ||||
|                 // 获取成本中心和利润中心的控件 | ||||
|                 BasedataEdit shjh_costcenter = this.getView().getControl("shjh_costcenter"); | ||||
|                 BasedataEdit shjh_profitcenter = this.getView().getControl("shjh_pc"); | ||||
|                 //根据业务小类设置 成本中心,利润中心是否必填 | ||||
|                 DynamicObject shjhBizsmall = (DynamicObject)this.getView().getModel().getValue("shjh_bizsmall"); | ||||
|                 BasedataProp tp = (BasedataProp) shjh_costcenter.getProperty(); | ||||
|                 BasedataProp td = (BasedataProp) shjh_profitcenter.getProperty(); | ||||
| 
 | ||||
| 
 | ||||
|         // 获取成本中心和利润中心的控件 | ||||
|         BasedataEdit shjh_costcenter = this.getView().getControl("shjh_costcenter"); | ||||
|         BasedataEdit shjh_profitcenter = this.getView().getControl("shjh_pc"); | ||||
|         //根据业务小类设置 成本中心,利润中心是否必填 | ||||
|         DynamicObject shjhBizsmall = (DynamicObject)this.getView().getModel().getValue("shjh_bizsmall"); | ||||
|         BasedataProp tp = (BasedataProp) shjh_costcenter.getProperty(); | ||||
|         BasedataProp td = (BasedataProp) shjh_profitcenter.getProperty(); | ||||
| 
 | ||||
|         if (null != shjhBizsmall) { | ||||
|             shjhBizsmall = BusinessDataServiceHelper.loadSingle(shjhBizsmall.getPkValue(),"shjh_bizsmalltype"); | ||||
|             // 获取成本中心的必填配置 | ||||
|             boolean shjhCc = shjhBizsmall.getBoolean("shjh_cc"); | ||||
|             shjh_costcenter.setMustInput(shjhCc); | ||||
|             tp.setMustInput(shjhCc); | ||||
|             // 获取利润中心的必填配置 | ||||
|             boolean shjhPc = shjhBizsmall.getBoolean("shjh_pc"); | ||||
|             shjh_profitcenter.setMustInput(shjhPc); | ||||
|             td.setMustInput(shjhPc); | ||||
|         }else { | ||||
|             shjh_costcenter.setMustInput(false); | ||||
|             tp.setMustInput(false); | ||||
|             shjh_profitcenter.setMustInput(false); | ||||
|             td.setMustInput(false); | ||||
|                 if (null != shjhBizsmall) { | ||||
|                     shjhBizsmall = BusinessDataServiceHelper.loadSingle(shjhBizsmall.getPkValue(),"shjh_bizsmalltype"); | ||||
|                     // 获取成本中心的必填配置 | ||||
|                     boolean shjhCc = shjhBizsmall.getBoolean("shjh_cc"); | ||||
|                     shjh_costcenter.setMustInput(shjhCc); | ||||
|                     tp.setMustInput(shjhCc); | ||||
|                     // 获取利润中心的必填配置 | ||||
|                     boolean shjhPc = shjhBizsmall.getBoolean("shjh_pc"); | ||||
|                     shjh_profitcenter.setMustInput(shjhPc); | ||||
|                     td.setMustInput(shjhPc); | ||||
|                 }else { | ||||
|                     shjh_costcenter.setMustInput(false); | ||||
|                     tp.setMustInput(false); | ||||
|                     shjh_profitcenter.setMustInput(false); | ||||
|                     td.setMustInput(false); | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
| 
 | ||||
| 
 | ||||
|         //赋值结算方式 | ||||
|         this.getView().getModel().setValue("shjh_jsfs",this.getView().getModel().getValue("settletype")); | ||||
|     } | ||||
|  | @ -72,32 +80,40 @@ public class TextFieldDemo extends AbstractFormPlugin { | |||
|     @Override | ||||
|     public void propertyChanged(PropertyChangedArgs e) { | ||||
|         super.propertyChanged(e); | ||||
|         DynamicObject paymentidentify = (DynamicObject)this.getView().getModel().getValue("paymentidentify");//付款单标识 | ||||
|         if (null != paymentidentify) { | ||||
|             //FKBS01  主动付款  FKBS02	 被动付款 | ||||
|             String number = paymentidentify.getString("number");//付款单标识 | ||||
|             //再加个判断,如果是 “主动付款”不进行必填校验。 | ||||
|             if (!"FKBS01".equals(number)) { | ||||
|                 // 获取成本中心和利润中心的控件 | ||||
|                 BasedataEdit shjh_costcenter = this.getView().getControl("shjh_costcenter"); | ||||
|                 BasedataEdit shjh_profitcenter = this.getView().getControl("shjh_pc"); | ||||
|                 //根据业务小类设置 成本中心,利润中心是否必填 | ||||
|                 DynamicObject shjhBizsmall = (DynamicObject)this.getView().getModel().getValue("shjh_bizsmall"); | ||||
|                 BasedataProp tp = (BasedataProp) shjh_costcenter.getProperty(); | ||||
|                 BasedataProp td = (BasedataProp) shjh_profitcenter.getProperty(); | ||||
| 
 | ||||
|         // 获取成本中心和利润中心的控件 | ||||
|         BasedataEdit shjh_costcenter = this.getView().getControl("shjh_costcenter"); | ||||
|         BasedataEdit shjh_profitcenter = this.getView().getControl("shjh_pc"); | ||||
|         //根据业务小类设置 成本中心,利润中心是否必填 | ||||
|         DynamicObject shjhBizsmall = (DynamicObject)this.getView().getModel().getValue("shjh_bizsmall"); | ||||
|         BasedataProp tp = (BasedataProp) shjh_costcenter.getProperty(); | ||||
|         BasedataProp td = (BasedataProp) shjh_profitcenter.getProperty(); | ||||
| 
 | ||||
|         if (null != shjhBizsmall) { | ||||
|             shjhBizsmall = BusinessDataServiceHelper.loadSingle(shjhBizsmall.getPkValue(),"shjh_bizsmalltype"); | ||||
|             // 获取成本中心的必填配置 | ||||
|             boolean shjhCc = shjhBizsmall.getBoolean("shjh_cc"); | ||||
|             shjh_costcenter.setMustInput(shjhCc); | ||||
|             tp.setMustInput(shjhCc); | ||||
|             // 获取利润中心的必填配置 | ||||
|             boolean shjhPc = shjhBizsmall.getBoolean("shjh_pc"); | ||||
|             shjh_profitcenter.setMustInput(shjhPc); | ||||
|             td.setMustInput(shjhPc); | ||||
|         }else { | ||||
|             shjh_costcenter.setMustInput(false); | ||||
|             tp.setMustInput(false); | ||||
|             shjh_profitcenter.setMustInput(false); | ||||
|             td.setMustInput(false); | ||||
|                 if (null != shjhBizsmall) { | ||||
|                     shjhBizsmall = BusinessDataServiceHelper.loadSingle(shjhBizsmall.getPkValue(),"shjh_bizsmalltype"); | ||||
|                     // 获取成本中心的必填配置 | ||||
|                     boolean shjhCc = shjhBizsmall.getBoolean("shjh_cc"); | ||||
|                     shjh_costcenter.setMustInput(shjhCc); | ||||
|                     tp.setMustInput(shjhCc); | ||||
|                     // 获取利润中心的必填配置 | ||||
|                     boolean shjhPc = shjhBizsmall.getBoolean("shjh_pc"); | ||||
|                     shjh_profitcenter.setMustInput(shjhPc); | ||||
|                     td.setMustInput(shjhPc); | ||||
|                 }else { | ||||
|                     shjh_costcenter.setMustInput(false); | ||||
|                     tp.setMustInput(false); | ||||
|                     shjh_profitcenter.setMustInput(false); | ||||
|                     td.setMustInput(false); | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
| 
 | ||||
| 
 | ||||
|         //赋值结算方式 | ||||
|         if ("shjh_jsfs".equals(e.getProperty().getName())) { | ||||
|             this.getView().getModel().setValue("settletype",this.getView().getModel().getValue("shjh_jsfs")); | ||||
|  |  | |||
|  | @ -1,5 +1,6 @@ | |||
| package shjh.jhzj7.fi.fi.plugin.operate; | ||||
| 
 | ||||
| import kd.bos.context.RequestContext; | ||||
| import kd.bos.dataentity.entity.DynamicObject; | ||||
| import kd.bos.dataentity.entity.DynamicObjectCollection; | ||||
| import kd.bos.entity.plugin.AbstractOperationServicePlugIn; | ||||
|  | @ -11,6 +12,7 @@ import kd.bos.orm.query.QFilter; | |||
| import kd.bos.servicehelper.BusinessDataServiceHelper; | ||||
| import kd.bos.servicehelper.operation.SaveServiceHelper; | ||||
| import kd.sdk.plugin.Plugin; | ||||
| import shjh.jhzj7.fi.fi.utils.EsbUtils; | ||||
| 
 | ||||
| /** | ||||
|  * 修复数据操作 | ||||
|  | @ -20,10 +22,15 @@ public class TestssOperation extends AbstractOperationServicePlugIn implements P | |||
|     @Override | ||||
|     public void afterExecuteOperationTransaction(AfterOperationArgs e) { | ||||
|         super.afterExecuteOperationTransaction(e); | ||||
| 
 | ||||
|         //付款申请单,只处理来源SAP,付款状态(未付款,部分付款) | ||||
|         QFilter q1 = new QFilter("shjh_sourcesystem", QCP.equals, "A"); | ||||
|         QFilter q2 = new QFilter("paystatus", QCP.equals, "Unpaid"); | ||||
|         QFilter q3 = new QFilter("paystatus", QCP.equals, "Inpayment"); | ||||
|         DynamicObject[] ap_payapplys = BusinessDataServiceHelper.load("ap_payapply", | ||||
|                 "id,applyorg,entry,entry.e_asstacttype,entry.e_asstact,entry.e_settlementtype,billno", new QFilter[]{new QFilter("billno", QCP.not_equals, "")}); | ||||
|                 "id,applyorg,entry,entry.e_asstacttype,entry.e_asstact,entry.e_settlementtype,billno", | ||||
|                 new QFilter[]{q1.and(q2.or(q3))}); | ||||
|         for (DynamicObject apPayapply : ap_payapplys) { | ||||
|             DynamicObject settlementtype = null; | ||||
|             DynamicObject org = apPayapply.getDynamicObject("applyorg"); | ||||
|             if (null == org) { | ||||
|                 continue; | ||||
|  | @ -33,14 +40,14 @@ public class TestssOperation extends AbstractOperationServicePlugIn implements P | |||
|                 String e_asstacttype = dynamicObject.getString("e_asstacttype"); | ||||
|                 if ("bd_supplier".equals(e_asstacttype)) { | ||||
|                     DynamicObject party = dynamicObject.getDynamicObject("e_asstact"); | ||||
|                     if (party!= null) { | ||||
|                     if (null != party) { | ||||
|                         party = BusinessDataServiceHelper.loadSingle(party.getPkValue(),"bd_supplier"); | ||||
|                         DynamicObjectCollection shjhEntrySap = party.getDynamicObjectCollection("shjh_entry_sap"); | ||||
|                         if (!shjhEntrySap.isEmpty()) { | ||||
|                             for (DynamicObject object : shjhEntrySap) { | ||||
|                                 if (org.getString("number").equals(object.getString("shjh_companynum"))) { | ||||
|                                     // 结算方式(付款方式) | ||||
|                                     DynamicObject settlementtype = BusinessDataServiceHelper.loadSingle("bd_settlementtype", | ||||
|                                     settlementtype = BusinessDataServiceHelper.loadSingle("bd_settlementtype", | ||||
|                                             new QFilter[]{new QFilter("number", QCP.equals, object.getString("shjh_settlementmethod"))}); | ||||
|                                     if (settlementtype != null) { | ||||
|                                         dynamicObject.set("e_settlementtype", settlementtype); | ||||
|  | @ -54,6 +61,86 @@ public class TestssOperation extends AbstractOperationServicePlugIn implements P | |||
|                 } | ||||
|             } | ||||
|             SaveServiceHelper.save(new DynamicObject[]{apPayapply}); | ||||
|             //查付款申请下游的付款单 另外如果是成网银(U),付款渠道需要是“柜台如果是“银企直联”支付渠道需要是“银企互联 | ||||
|             DynamicObject[] paybills = BusinessDataServiceHelper.load("cas_paybill", "id,settletype,shjh_jsfs,paymentchannel", | ||||
|                     new QFilter[]{new QFilter("sourcebillid", QCP.equals, apPayapply.getPkValue())}); | ||||
|             for (DynamicObject paybill : paybills) { | ||||
|                 if (null != settlementtype) { | ||||
|                     paybill.set("settletype", settlementtype); | ||||
|                     paybill.set("shjh_jsfs", settlementtype); | ||||
|                     String string = settlementtype.getString("number"); | ||||
|                     if ("U".equals(string)) { | ||||
|                         paybill.set("paymentchannel", "counter");//支付渠道 | ||||
|                     } | ||||
|                     if ("T".equals(string)) { | ||||
|                         paybill.set("paymentchannel", "bei"); | ||||
|                     } | ||||
|                     SaveServiceHelper.save(new DynamicObject[]{paybill}); | ||||
|                     //查付款单下游的排程单 另外如果是成网银(U),付款渠道需要是“柜台如果是“银企直联”支付渠道需要是“银企互联 | ||||
|                     DynamicObject[] schedulebills = BusinessDataServiceHelper.load("psd_schedulebill", "id,applysettletype,applypaychannel", | ||||
|                             new QFilter[]{new QFilter("sourcebillid", QCP.equals, apPayapply.getPkValue())}); | ||||
|                     for (DynamicObject schedulebill : schedulebills) { | ||||
|                         schedulebill.set("applysettletype", settlementtype);//申请结算方式 | ||||
| 
 | ||||
|                         if ("U".equals(string)) { | ||||
|                             schedulebill.set("applypaychannel", "counter");//申请支付渠道 | ||||
|                         } | ||||
|                         if ("T".equals(string)) { | ||||
|                             schedulebill.set("applypaychannel", "bei"); | ||||
|                         } | ||||
|                         SaveServiceHelper.save(new DynamicObject[]{schedulebill}); | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
| 
 | ||||
|         //更新会计科目 | ||||
|         QFilter q4 = new QFilter("billno", QCP.not_equals, ""); | ||||
|         DynamicObject[] ap_payapplyss = BusinessDataServiceHelper.load("ap_payapply", | ||||
|                 "id,applyorg,billno,shjh_sapkjkm", | ||||
|                 new QFilter[]{q4}); | ||||
|         for (DynamicObject apPayapplyss : ap_payapplyss) { | ||||
|             DynamicObject accountview = null; | ||||
|             DynamicObject org = apPayapplyss.getDynamicObject("applyorg"); | ||||
|             if (null == org) { | ||||
|                 continue; | ||||
|             } | ||||
|             DynamicObject accountingsubject = apPayapplyss.getDynamicObject("shjh_sapkjkm"); | ||||
|             if (null != accountingsubject) { | ||||
|                 QFilter Q8 = new QFilter("number", QCP.equals, accountingsubject.getString("number"));//会计科目编号 | ||||
|                 Q8.and("createorg.id", QCP.equals, org.getPkValue());//当前公司ID | ||||
|                 //如果当前数据中心是测试的则使用测试库科目表ID,否则用正式的 | ||||
|                 if("2162562979827025920".equals(RequestContext.get().getAccountId())){ | ||||
|                     Q8.and("accounttable.id", QCP.equals, 2125524820924832768L);//测试科目表 | ||||
|                 }else{ | ||||
|                     Q8.and("accounttable.id", QCP.equals, EsbUtils.ACCTABLE);//正式科目表 | ||||
|                 } | ||||
|                 accountview = BusinessDataServiceHelper.loadSingle("bd_accountview", Q8.toArray()); | ||||
|                 if(null != accountview ){ | ||||
|                     apPayapplyss.set("shjh_sapkjkm", accountview); | ||||
|                 } | ||||
|             } | ||||
|             SaveServiceHelper.save(new DynamicObject[]{apPayapplyss}); | ||||
|             //查付款申请下游的付款单 | ||||
|             DynamicObject[] paybills = BusinessDataServiceHelper.load("cas_paybill", | ||||
|                     "id,settletype,shjh_jsfs,paymentchannel,entry,entry.shjh_sapkjkm", | ||||
|                     new QFilter[]{new QFilter("sourcebillid", QCP.equals, apPayapplyss.getPkValue())}); | ||||
|             for (DynamicObject paybill : paybills) { | ||||
|                 if (null != accountview) { | ||||
|                     DynamicObjectCollection entry = paybill.getDynamicObjectCollection("entry"); | ||||
|                     for (DynamicObject dynamicObject : entry) { | ||||
|                         dynamicObject.set("shjh_sapkjkm",accountview); | ||||
|                     } | ||||
|                     SaveServiceHelper.save(new DynamicObject[]{paybill}); | ||||
|                     //查付款单下游的排程单 | ||||
|                     DynamicObject[] schedulebills = BusinessDataServiceHelper.load("psd_schedulebill", "id,shjh_sapkjkm", | ||||
|                             new QFilter[]{new QFilter("sourcebillid", QCP.equals, apPayapplyss.getPkValue())}); | ||||
|                     for (DynamicObject schedulebill : schedulebills) { | ||||
|                         schedulebill.set("shjh_sapkjkm", accountview); | ||||
|                         SaveServiceHelper.save(new DynamicObject[]{schedulebill}); | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  |  | |||
|  | @ -44,23 +44,39 @@ public class QuerySapCreatePayApplyTask extends AbstractTask { | |||
|     public void execute(RequestContext requestContext, Map<String, Object> map) throws KDException { | ||||
| 
 | ||||
|         // 获取临期天数并转换 | ||||
|         String lq = (String) map.get("临期"); | ||||
|         if (StringUtils.isEmpty(lq)) { | ||||
|         String lq = (String) map.get("临期_后"); | ||||
|         String lq1 = (String) map.get("临期_前"); | ||||
| 
 | ||||
|         // 检查是否有有效的临期数据 | ||||
|         if (StringUtils.isEmpty(lq) && StringUtils.isEmpty(lq1)) { | ||||
|             return; | ||||
|         } | ||||
|         int daysToAdd = Integer.parseInt(lq); // 将临期字符串转为整数天数 | ||||
| 
 | ||||
|         // 获取当前日期 | ||||
|         LocalDate currentDate = LocalDate.now(); | ||||
|         DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd"); | ||||
|         LocalDate endDate = currentDate.plusDays(daysToAdd); | ||||
|         // 格式化日期 | ||||
|         String formattedoldDate = currentDate.format(formatter); //开始日期  当前日期 | ||||
|         String formattedNewDate = endDate.format(formatter);     //结束日期(当前日期 + 临期天数) | ||||
| 
 | ||||
|         // 计算开始日期(临期_前表示今天之前的天数) | ||||
|         LocalDate startDate = currentDate; | ||||
|         if (StringUtils.isNotEmpty(lq1)) { | ||||
|             int daysBefore = Integer.parseInt(lq1); | ||||
|             startDate = currentDate.minusDays(daysBefore); | ||||
|         } | ||||
| 
 | ||||
|         // 计算结束日期(临期_后表示今天之后的天数) | ||||
|         LocalDate endDate = currentDate; | ||||
|         if (StringUtils.isNotEmpty(lq)) { | ||||
|             int daysAfter = Integer.parseInt(lq); | ||||
|             endDate = currentDate.plusDays(daysAfter); | ||||
|         } | ||||
| 
 | ||||
|         String formattedoldDate = startDate.format(formatter); // 开始日期 | ||||
|         String formattedNewDate = endDate.format(formatter);   // 结束日期 | ||||
| 
 | ||||
|         JSONArray IT_LIST = new JSONArray(); | ||||
|         // 添加SAP应付凭到期日过滤条件 | ||||
|         addFilterCondition(IT_LIST, "FAEDT", formattedoldDate, formattedNewDate); | ||||
|         JSONObject result = vouchers_payable(IT_LIST, "临期:"+lq); | ||||
|         JSONObject result = vouchers_payable(IT_LIST,lq+ "临期:"+lq1); | ||||
|         if (null != result && result.containsKey("data")) { | ||||
|             // 处理查询结果 | ||||
|             JSONObject data = (JSONObject) result.get("data"); | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue