parent
							
								
									3cf4d0bbb1
								
							
						
					
					
						commit
						2b6d7ec933
					
				|  | @ -2,9 +2,11 @@ package shjh.jhzj7.fi.fi.plugin.form; | ||||||
| 
 | 
 | ||||||
| import com.alibaba.fastjson.JSONArray; | import com.alibaba.fastjson.JSONArray; | ||||||
| import com.alibaba.fastjson.JSONObject; | import com.alibaba.fastjson.JSONObject; | ||||||
|  | import kd.bos.dataentity.OperateOption; | ||||||
| import kd.bos.dataentity.entity.DynamicObject; | import kd.bos.dataentity.entity.DynamicObject; | ||||||
| import kd.bos.entity.datamodel.ListSelectedRow; | import kd.bos.entity.datamodel.ListSelectedRow; | ||||||
| import kd.bos.entity.datamodel.ListSelectedRowCollection; | import kd.bos.entity.datamodel.ListSelectedRowCollection; | ||||||
|  | import kd.bos.entity.operate.OperateOptionConst; | ||||||
| import kd.bos.entity.operate.result.OperationResult; | import kd.bos.entity.operate.result.OperationResult; | ||||||
| import kd.bos.form.events.AfterDoOperationEventArgs; | import kd.bos.form.events.AfterDoOperationEventArgs; | ||||||
| import kd.bos.list.IListView; | import kd.bos.list.IListView; | ||||||
|  | @ -14,10 +16,14 @@ import kd.bos.logging.LogFactory; | ||||||
| import kd.bos.orm.query.QCP; | import kd.bos.orm.query.QCP; | ||||||
| import kd.bos.orm.query.QFilter; | import kd.bos.orm.query.QFilter; | ||||||
| import kd.bos.servicehelper.BusinessDataServiceHelper; | import kd.bos.servicehelper.BusinessDataServiceHelper; | ||||||
|  | import kd.bos.servicehelper.operation.OperationServiceHelper; | ||||||
| import kd.bos.servicehelper.operation.SaveServiceHelper; | import kd.bos.servicehelper.operation.SaveServiceHelper; | ||||||
|  | import kd.bos.util.StringUtils; | ||||||
| 
 | 
 | ||||||
| import java.text.SimpleDateFormat; | import java.text.SimpleDateFormat; | ||||||
|  | import java.util.ArrayList; | ||||||
| import java.util.Date; | import java.util.Date; | ||||||
|  | import java.util.Map; | ||||||
| 
 | 
 | ||||||
| import static shjh.jhzj7.fi.fi.utils.SapUtils.backpayment_status; | import static shjh.jhzj7.fi.fi.utils.SapUtils.backpayment_status; | ||||||
| import static shjh.jhzj7.fi.fi.utils.SapUtils.unlocked_status; | import static shjh.jhzj7.fi.fi.utils.SapUtils.unlocked_status; | ||||||
|  | @ -66,36 +72,69 @@ public class ScheduleListPlugin extends AbstractListPlugin { | ||||||
|             DynamicObject bill = BusinessDataServiceHelper.loadSingle(pk, "psd_schedulebill"); |             DynamicObject bill = BusinessDataServiceHelper.loadSingle(pk, "psd_schedulebill"); | ||||||
|             String action = "04".equals(status)? "退单" : "作废"; |             String action = "04".equals(status)? "退单" : "作废"; | ||||||
|             if (bill != null) { |             if (bill != null) { | ||||||
|                 //来源SAP |                 QFilter qFilter = new QFilter("billno", QCP.equals, bill.getString("sourcebillnumber")); | ||||||
|                 String shjhSapuniquevalue = bill.getString("shjh_sapuniquevalue"); |                 //如果付款申请单不是来源调整单,再判断付款申请单来源类型,来源费控调用关闭;来源sap调用反审核 | ||||||
|                 if (shjhSapuniquevalue != null && !shjhSapuniquevalue.isEmpty()) { |                 DynamicObject payapply = BusinessDataServiceHelper.loadSingle("ap_payapply", | ||||||
|                     JSONArray IT_INPUT = createInputJSONArray(bill, status); |                         "id,billno,shjh_sourceadjustment", qFilter.toArray()); | ||||||
|                     JSONObject jsonObjects = unlocked_status(IT_INPUT, bill.getString("billno")); |                 if (null != payapply) { | ||||||
|                     String code = jsonObjects.getString("code"); |                     //如果付款申请单不是来源调整单 | ||||||
|                     if (!"0".equals(code)) { |                     if (!payapply.getBoolean("shjh_sourceadjustment")) { | ||||||
|                         log.info("付款排程单:" + bill.getString("billno") + "状态(SAP)" + action + "失败:" + jsonObjects.getString("msg")); |                         //来源SAP | ||||||
|                     } else { |                         String shjhSapuniquevalue = bill.getString("shjh_sapuniquevalue"); | ||||||
|                         log.info("付款排程单:" + bill.getString("billno") + "状态(SAP)" + action + "成功"); |                         if (StringUtils.isNotEmpty(shjhSapuniquevalue)) { | ||||||
|  |                             JSONArray IT_INPUT = createInputJSONArray(bill, status); | ||||||
|  |                             JSONObject jsonObjects = unlocked_status(IT_INPUT, bill.getString("billno")); | ||||||
|  |                             String code = jsonObjects.getString("code"); | ||||||
|  |                             if (!"0".equals(code)) { | ||||||
|  |                                 log.info("付款排程单:" + bill.getString("billno") + "状态(SAP)" + action + "失败:" + jsonObjects.getString("msg")); | ||||||
|  |                             } else { | ||||||
|  |                                 log.info("付款排程单:" + bill.getString("billno") + "状态(SAP)" + action + "成功"); | ||||||
|  |                                 //反审核 | ||||||
|  |                                 closeOrUnauditApply(payapply,"unaudit"); | ||||||
|  |                             } | ||||||
|  |                             return; | ||||||
|  |                         } | ||||||
|  |                         //若来源为费控,调用费控状态修改接口 | ||||||
|  |                         String fkbillid = bill.getString("shjh_fkbillid");//获取费控单据表头ID | ||||||
|  |                         if (StringUtils.isNotEmpty(fkbillid)) { | ||||||
|  |                             //先付后记(其他付款、劳务报销单、SAP会员退卡单)回写付款状态 | ||||||
|  |                             JSONObject jsonObjects = backpayment_status(createInputJSONArrays(bill),bill.getString("billno")); | ||||||
|  |                             String code = (String)jsonObjects.get("code"); | ||||||
|  |                             if (!"0".equals(code)) { | ||||||
|  |                                 log.info("付款排程单:" + bill.getString("billno") + "状态(FK)" + action + "失败:" + jsonObjects.getString("msg")); | ||||||
|  |                             } else { | ||||||
|  |                                 log.info("付款排程单:" + bill.getString("billno") + "状态(FK)" + action + "成功"); | ||||||
|  |                                 //关闭操作 | ||||||
|  |                                 closeOrUnauditApply(payapply,"closepay"); | ||||||
|  |                             } | ||||||
|  |                             return; | ||||||
|  |                         } | ||||||
|                     } |                     } | ||||||
|                     return; |  | ||||||
|                 } |  | ||||||
|                 //若来源为费控,调用费控状态修改接口 |  | ||||||
|                 String fkbillid = bill.getString("shjh_fkbillid");//获取费控单据表头ID |  | ||||||
|                 if (fkbillid != null && !fkbillid.isEmpty()) { |  | ||||||
|                     //先付后记(其他付款、劳务报销单、SAP会员退卡单)回写付款状态 |  | ||||||
|                     JSONObject jsonObjects = backpayment_status(createInputJSONArrays(bill),bill.getString("billno")); |  | ||||||
|                     String code = (String)jsonObjects.get("code"); |  | ||||||
|                     if (!"0".equals(code)) { |  | ||||||
|                         log.info("付款排程单:" + bill.getString("billno") + "状态(FK)" + action + "失败:" + jsonObjects.getString("msg")); |  | ||||||
|                     } else { |  | ||||||
|                         log.info("付款排程单:" + bill.getString("billno") + "状态(FK)" + action + "成功"); |  | ||||||
|                     } |  | ||||||
|                     return; |  | ||||||
|                 } |                 } | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |     private void closeOrUnauditApply(DynamicObject payapply,String status) { | ||||||
|  |         OperateOption operateOption = OperateOption.create(); | ||||||
|  |         // 不执行警告级别校验器 | ||||||
|  |         operateOption.setVariableValue(OperateOptionConst.IGNOREWARN, String.valueOf(true)); | ||||||
|  |         // 不显示交互提示,自动执行到底 | ||||||
|  |         operateOption.setVariableValue(OperateOptionConst.IGNOREINTERACTION, String.valueOf(true)); | ||||||
|  |         // 全部校验通过才保存 | ||||||
|  |         operateOption.setVariableValue(OperateOptionConst.STRICTVALIDATION, String.valueOf(true)); | ||||||
|  |         //同一个用户在多个界面操作同一张,也不允许操作 | ||||||
|  |         operateOption.setVariableValue(OperateOptionConst.MUTEX_ISSTRICT, String.valueOf(true)); | ||||||
|  |         DynamicObject[] billArray = new DynamicObject[]{payapply}; | ||||||
|  |         OperationResult operationResult = OperationServiceHelper.executeOperate(status, "ap_payapply", billArray, operateOption); | ||||||
|  |         // 可以根据需要处理 operationResult,例如检查是否成功、获取返回值等 | ||||||
|  |         if (operationResult.isSuccess()) { | ||||||
|  |             log.info("执行 "+status+" 成功,单据编号:" + payapply.getPkValue()); | ||||||
|  |         } else { | ||||||
|  |             log.error(operationResult.getMessage()); | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|     /** |     /** | ||||||
|      * SAP接口参数 |      * SAP接口参数 | ||||||
|      * @param bill |      * @param bill | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue