劳务费

This commit is contained in:
xiang2lin 2025-05-16 13:43:02 +08:00
parent 41a506e414
commit 1788bbe19d
2 changed files with 144 additions and 0 deletions

View File

@ -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);
}

View File

@ -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<String,String> headers = JSON.parseObject(jsonObject.getString("headers"), new HashMap<String, String>().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<String,String> 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<String, String> 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<GzLwfNrEntity> lwfnrList = new ArrayList<>();
for (int i=0; i<forsonData.size();i++){
JSONObject forson = forsonData.getJSONObject(i);
GzLwfNrEntity djnr = new GzLwfNrEntity();
djnr.setGSDM(djml.getGSDM());
djnr.setFFND(djml.getFFND());
djnr.setBMDM(forson.getString("field0093"));
djnr.setBMMC(forson.getString("field0056"));
djnr.setFFZH(forson.getString("field0060"));
djnr.setSFZH(forson.getString("field0057"));
djnr.setJE(forson.getString("field0065"));
djnr.setSDS(new BigDecimal(forson.getString("field0064")));
djnr.setYhmc(forson.getString("field0059"));
lwfnrList.add(djnr);
}
djml.setLwfnrList(lwfnrList);
logger.info("劳务费主表:{}",JSONObject.toJSONString(djml));
logger.info("劳务费子表:{}",JSONObject.toJSONString(lwfnrList));
}else if (ColEventTypeEnum.ONSTOP.getType().equals(eventType)){
//流程终止
}else if (ColEventTypeEnum.ONCANCEL.getType().equals(eventType)){
//流程撤销
}else if (ColEventTypeEnum.ONPROCESSFINISHED.getType().equals(eventType)){
//流程终止
}
String djmlStr = JSONObject.toJSONString(djml);
return djmlStr;
}
}