From 1788bbe19d568b5a31783b6c79116ad3589eeb7a Mon Sep 17 00:00:00 2001 From: xiang2lin <251481237@qq.com> Date: Fri, 16 May 2025 13:43:02 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8A=B3=E5=8A=A1=E8=B4=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../gzlwfml/service/IGzLwfExtService.java | 22 ++++ .../service/impl/GzLwfExtServiceImpl.java | 122 ++++++++++++++++++ 2 files changed, 144 insertions(+) create mode 100644 fw-grpU8/src/main/java/com/hzya/frame/grpU8/nxproof/gzlwfml/service/IGzLwfExtService.java create mode 100644 fw-grpU8/src/main/java/com/hzya/frame/grpU8/nxproof/gzlwfml/service/impl/GzLwfExtServiceImpl.java diff --git a/fw-grpU8/src/main/java/com/hzya/frame/grpU8/nxproof/gzlwfml/service/IGzLwfExtService.java b/fw-grpU8/src/main/java/com/hzya/frame/grpU8/nxproof/gzlwfml/service/IGzLwfExtService.java new file mode 100644 index 00000000..d1858356 --- /dev/null +++ b/fw-grpU8/src/main/java/com/hzya/frame/grpU8/nxproof/gzlwfml/service/IGzLwfExtService.java @@ -0,0 +1,22 @@ +package com.hzya.frame.grpU8.nxproof.gzlwfml.service; + +import com.alibaba.fastjson.JSONObject; +import com.hzya.frame.web.entity.JsonResultEntity; + +/** + * @Description 劳务费扩展类,用来组装参数 + * @Author xiangerlin + * @Date 2025/5/13 16:03 + **/ +public interface IGzLwfExtService { + + + + /** + * 保存前方法,先调用这个方法 组装参数 + * 插件方式执行用这个方法 + * @param jsonObject + * @return + */ + String saveLwfPrePlugin(JSONObject jsonObject); +} diff --git a/fw-grpU8/src/main/java/com/hzya/frame/grpU8/nxproof/gzlwfml/service/impl/GzLwfExtServiceImpl.java b/fw-grpU8/src/main/java/com/hzya/frame/grpU8/nxproof/gzlwfml/service/impl/GzLwfExtServiceImpl.java new file mode 100644 index 00000000..21e61878 --- /dev/null +++ b/fw-grpU8/src/main/java/com/hzya/frame/grpU8/nxproof/gzlwfml/service/impl/GzLwfExtServiceImpl.java @@ -0,0 +1,122 @@ +package com.hzya.frame.grpU8.nxproof.gzlwfml.service.impl; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.hzya.frame.grpU8.nxproof.gzlwfml.entity.GzLwfMlEntity; +import com.hzya.frame.grpU8.nxproof.gzlwfml.entity.GzLwfNrEntity; +import com.hzya.frame.grpU8.nxproof.gzlwfml.service.IGzLwfExtService; +import com.hzya.frame.grpU8.nxproof.oerdjml.enums.ColEventTypeEnum; +import com.hzya.frame.web.entity.JsonResultEntity; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.stereotype.Service; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * @Description + * @Author xiangerlin + * @Date 2025/5/13 16:04 + **/ +@Service(value ="gzLwfExtServiceImpl") +public class GzLwfExtServiceImpl implements IGzLwfExtService { + + Logger logger = LoggerFactory.getLogger(IGzLwfExtService.class); + /** + * 保存前方法,先调用这个方法 组装参数 + * 插件方式执行用这个方法 + * + * @param jsonObject + * @return + */ + @Override + public String saveLwfPrePlugin(JSONObject jsonObject) { + if (null != jsonObject){ + logger.info("进入劳务费保存前方法:{}",jsonObject.toString()); + JSONObject jsonStr = jsonObject.getJSONObject("jsonStr"); + HashMap headers = JSON.parseObject(jsonObject.getString("headers"), new HashMap().getClass()); + String datasourceCode = jsonObject.getString("apiDataSourceCode"); + String res = lwfValuOf(jsonStr,headers,datasourceCode); + logger.info("劳务费保存前方法返回值:{}",res); + return res; + } + return null; + } + + private String lwfValuOf(JSONObject jsonStr, HashMap headers, String datasourceCode) { + if (null != jsonStr && null != headers && !headers.isEmpty()){ + String formmainTableName = headers.get("formmainTableName"); + String forsonTableName = headers.get("forsonTableName"); + String djlx = headers.get("djlx"); + //事件类型 + String eventType = jsonStr.getString("eventType"); + //summaryId + String summaryId = jsonStr.getString("summaryId"); + JSONObject seeyonData = jsonStr.getJSONObject("businessDataStr"); + if (null != seeyonData){ + /** + * 流程发起 保存/更新单据 要全部数据 + * 流程撤销 只更新状态,传单号和状态就好了 + * 流程终止 只更新状态,传单号和状态就好了 + * 流程结束 更新状态 并上传附件 + */ + JSONObject formmainData = seeyonData.getJSONObject(formmainTableName); + JSONArray forsonData = seeyonData.getJSONArray(forsonTableName); + String lwf = lwf(headers, eventType, summaryId, datasourceCode, formmainData, forsonData); + return lwf; + } + } + return null; + } + + //劳务费参数 + private String lwf(Map headers, String eventType, String summaryId, String dataSourceCode, JSONObject formmainData, JSONArray forsonData) { + String djlxid = headers.get("djlxid"); + String flowcode = headers.get("flowcode"); + String fileApiCode = headers.get("file_api_code"); + GzLwfMlEntity djml = new GzLwfMlEntity(); + //流程发起 + if (ColEventTypeEnum.ONSTART.getType().equals(eventType)){ + JSONObject forjsonData0 = forsonData.getJSONObject(0); + djml.setGSDM(formmainData.getString("field0043")); + djml.setFFND(formmainData.getString("field0044")); + djml.setFFDATE(formmainData.getString("field0007")); + djml.setBZR(formmainData.getString("field0085")); + djml.setBZRID(formmainData.getString("field0084")); + djml.setBZRQ(formmainData.getString("field0002")); + djml.setBMDM(formmainData.getString("field0086")); + djml.setZT("2"); + List lwfnrList = new ArrayList<>(); + for (int i=0; i