parent
c6735a739e
commit
197762e530
|
@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil;
|
||||||
import cn.hutool.core.convert.Convert;
|
import cn.hutool.core.convert.Convert;
|
||||||
import cn.hutool.core.date.DateTime;
|
import cn.hutool.core.date.DateTime;
|
||||||
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.date.DateUtil;
|
||||||
|
import cn.hutool.core.util.NumberUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.alibaba.fastjson.JSONArray;
|
import com.alibaba.fastjson.JSONArray;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
@ -16,6 +17,9 @@ import com.hzya.frame.grpU8.nxproof.oeryszb.entity.OerYszbEntity;
|
||||||
import com.hzya.frame.seeyon.entity.CollAttachmentResDTO;
|
import com.hzya.frame.seeyon.entity.CollAttachmentResDTO;
|
||||||
import com.hzya.frame.seeyon.enums.ColEventTypeEnum;
|
import com.hzya.frame.seeyon.enums.ColEventTypeEnum;
|
||||||
import com.hzya.frame.seeyon.util.RestUtil;
|
import com.hzya.frame.seeyon.util.RestUtil;
|
||||||
|
import com.hzya.frame.sysnew.application.database.entity.SysApplicationDatabaseEntity;
|
||||||
|
import com.hzya.frame.sysnew.application.database.service.ISysApplicationDatabaseService;
|
||||||
|
import com.hzya.frame.sysnew.application.entity.SysApplicationEntity;
|
||||||
import com.hzya.frame.sysnew.application.entity.SysExtensionApiEntity;
|
import com.hzya.frame.sysnew.application.entity.SysExtensionApiEntity;
|
||||||
import org.apache.commons.collections.CollectionUtils;
|
import org.apache.commons.collections.CollectionUtils;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
|
@ -46,7 +50,8 @@ public class OerDjmlExtServiceImpl implements IOerDjmlExtService {
|
||||||
private RestUtil restUtil;
|
private RestUtil restUtil;
|
||||||
@Value("${savefile.path}")
|
@Value("${savefile.path}")
|
||||||
public String DSK;
|
public String DSK;
|
||||||
|
@Autowired
|
||||||
|
private ISysApplicationDatabaseService sysApplicationDatabaseService;
|
||||||
/**
|
/**
|
||||||
* 保存方法前,先调这个方法 组装参数
|
* 保存方法前,先调这个方法 组装参数
|
||||||
*
|
*
|
||||||
|
@ -57,11 +62,22 @@ public class OerDjmlExtServiceImpl implements IOerDjmlExtService {
|
||||||
public SysExtensionApiEntity saveExpensePre(SysExtensionApiEntity entity) {
|
public SysExtensionApiEntity saveExpensePre(SysExtensionApiEntity entity) {
|
||||||
try {
|
try {
|
||||||
String bodys = entity.getBodys();
|
String bodys = entity.getBodys();
|
||||||
|
String grpDataSourceCode = "";
|
||||||
|
SysApplicationEntity receiveApp = entity.getReceiveApp();
|
||||||
|
if (null != receiveApp){
|
||||||
|
SysApplicationDatabaseEntity sysDatabaseEntity = new SysApplicationDatabaseEntity();
|
||||||
|
sysDatabaseEntity.setAppId(receiveApp.getId());
|
||||||
|
List<SysApplicationDatabaseEntity> dataBaseList = sysApplicationDatabaseService.query(sysDatabaseEntity);
|
||||||
|
if (CollectionUtils.isNotEmpty(dataBaseList)){
|
||||||
|
grpDataSourceCode = dataBaseList.get(0).getSourceCode();
|
||||||
|
}
|
||||||
|
}
|
||||||
Map<String, String> headers = entity.getHeaders();
|
Map<String, String> headers = entity.getHeaders();
|
||||||
String eventType = headers.get("eventType");
|
String eventType = headers.get("eventType");
|
||||||
String formmainTableName = headers.get("formmainTableName");
|
String formmainTableName = headers.get("formmainTableName");
|
||||||
String forsonTableName = headers.get("forsonTableName");
|
String forsonTableName = headers.get("forsonTableName");
|
||||||
String djlxid = headers.get("djlxid");
|
String djlxid = headers.get("djlxid");
|
||||||
|
String djlx = headers.get("djlx");
|
||||||
String flowcode = headers.get("flowcode");
|
String flowcode = headers.get("flowcode");
|
||||||
String fileApiCode = headers.get("file_api_code");
|
String fileApiCode = headers.get("file_api_code");
|
||||||
JSONObject bodyObj = JSONObject.parseObject(bodys);
|
JSONObject bodyObj = JSONObject.parseObject(bodys);
|
||||||
|
@ -75,169 +91,20 @@ public class OerDjmlExtServiceImpl implements IOerDjmlExtService {
|
||||||
*/
|
*/
|
||||||
JSONObject formmainData = seeyonData.getJSONObject(formmainTableName);
|
JSONObject formmainData = seeyonData.getJSONObject(formmainTableName);
|
||||||
JSONArray forsonData = seeyonData.getJSONArray(forsonTableName);
|
JSONArray forsonData = seeyonData.getJSONArray(forsonTableName);
|
||||||
JSONObject forjsonData0 = forsonData.getJSONObject(0);
|
String res = "";
|
||||||
OerDjmlEntity djml = new OerDjmlEntity();
|
if (DjlxEnum.TRAVEL.type.equals(djlx)) {
|
||||||
djml.setDjbh(formmainData.getString("field0001"));
|
//差旅报销 travel
|
||||||
djml.setLclb(eventType);
|
res = travel(headers, eventType, djlxid, flowcode, fileApiCode, seeyonData, formmainData, forsonData);
|
||||||
//流程发起
|
}else if(DjlxEnum.EXPENSE.type.equals(djlx)){
|
||||||
if (ColEventTypeEnum.ONSTART.getType().equals(eventType)){
|
//费用报销 expense
|
||||||
djml.setGsdm(forjsonData0.getString("field0084"));
|
res = expense(headers, eventType, djlxid, flowcode, fileApiCode, seeyonData, formmainData, forsonData);
|
||||||
djml.setKjnd(forjsonData0.getString("field0082"));
|
}else if (DjlxEnum.LABOR.type.equals(djlx)){
|
||||||
djml.setDjlxId(djlxid);
|
//劳务费 labor
|
||||||
djml.setZt("2");
|
}
|
||||||
djml.setCrerdm(formmainData.getString("field0107"));
|
if (StrUtil.isNotEmpty(res)){
|
||||||
djml.setCrermc("");
|
entity.setBodys(res);
|
||||||
djml.setCrerdate(timestampConvert(formmainData.getString("start_date")));
|
//return entity;
|
||||||
djml.setDjdate((timestampConvert(formmainData.getString("field0002"))));
|
|
||||||
djml.setJe(formmainData.getString("field0080"));
|
|
||||||
djml.setJedx( Convert.numberToChinese(Double.valueOf(formmainData.getString("field0080")),true));
|
|
||||||
djml.setYjje("0.00");
|
|
||||||
djml.setThje("0.00");
|
|
||||||
djml.setBlje(formmainData.getString("field0080"));
|
|
||||||
djml.setFjs( formmainData.getString("field0004"));
|
|
||||||
djml.setZy( formmainData.getString("field0009"));
|
|
||||||
//部门代码
|
|
||||||
djml.setBmdm( formmainData.getString("field0006"));
|
|
||||||
djml.setBmmc( formmainData.getString("field0006"));
|
|
||||||
//项目代码
|
|
||||||
djml.setXmdm(forjsonData0.getString("field0074"));
|
|
||||||
djml.setXmmc(forjsonData0.getString("field0075"));
|
|
||||||
//个人代码
|
|
||||||
djml.setGrdm(formmainData.getString("field0108"));
|
|
||||||
djml.setGrmc("");
|
|
||||||
//经济代码
|
|
||||||
djml.setJjdm("");
|
|
||||||
djml.setJjmc("");
|
|
||||||
//银行帐号 开户银行
|
|
||||||
djml.setYhzh(forjsonData0.getString("field0079"));
|
|
||||||
djml.setKhyh(forjsonData0.getString("field0078"));
|
|
||||||
//当前审核节点、下个审核节点 ,不在grp审批,是不是不用填了
|
|
||||||
djml.setCurshjd("-9");
|
|
||||||
djml.setNextshjd("999");
|
|
||||||
djml.setFlowcode(flowcode);
|
|
||||||
djml.setJsfs(spliceStr(forjsonData0.getString("field0095"),forjsonData0.getString("field0094")));
|
|
||||||
//电话,oa上没有
|
|
||||||
djml.setTel(formmainData.getString("field0110"));
|
|
||||||
djml.setClf_ccr(formmainData.getString("field0010"));
|
|
||||||
//送审日期
|
|
||||||
djml.setSsrq( DateUtil.format(formmainData.getDate("startDate"),"yyyyMMddHHmmssSSS"));
|
|
||||||
djml.setSsrid("");
|
|
||||||
djml.setSsr("");
|
|
||||||
|
|
||||||
//报销明细
|
|
||||||
List<OerDjnrEntity> djnrList = new ArrayList<>();
|
|
||||||
//结算方式
|
|
||||||
List<OerDjjsfsEntity> jsfsList = new ArrayList<>();
|
|
||||||
//预算指标
|
|
||||||
List<OerYszbEntity> yszbList = new ArrayList<>();
|
|
||||||
//指标记录
|
|
||||||
int xh = 1;
|
|
||||||
for (int i=0; i<forsonData.size();i++) {
|
|
||||||
JSONObject forson = forsonData.getJSONObject(i);
|
|
||||||
String gsdm = forson.getString("field0084");
|
|
||||||
String kjnd = forson.getString("field0082");
|
|
||||||
String je = forson.getString("field0032");
|
|
||||||
//单据内容
|
|
||||||
OerDjnrEntity djnr = new OerDjnrEntity();
|
|
||||||
djnr.setXh(String.valueOf(xh));
|
|
||||||
djnr.setGsdm(gsdm);
|
|
||||||
djnr.setKjnd(kjnd);
|
|
||||||
djnr.setDjlxId(djlxid);
|
|
||||||
djnr.setBnxId(headers.get("bxmx_bnxid"));
|
|
||||||
djnr.setJe(je);
|
|
||||||
djnr.setBmdm(forson.getString("field0088"));
|
|
||||||
djnr.setBmmc(forson.getString("field0087"));
|
|
||||||
djnr.setXmdm(forson.getString("field0074"));
|
|
||||||
djnr.setXmmc(forson.getString("field0075"));
|
|
||||||
djnr.setJjdm("");
|
|
||||||
djnr.setJjmc("");
|
|
||||||
//grp库里有,不知道是什么 1001基本支出 2001项目支出(网银)
|
|
||||||
djnr.setFzx8dm("");
|
|
||||||
djnr.setFzx8mc("");
|
|
||||||
//指标id
|
|
||||||
djnr.setZbId(forson.getString("field0085"));
|
|
||||||
djnr.setJflxdm("");
|
|
||||||
djnr.setJflxmc("");
|
|
||||||
djnr.setZy(forson.getString("field0030"));
|
|
||||||
djnr.setClf_startdate(forson.getString("field0016"));
|
|
||||||
djnr.setClf_enddate(forson.getString("field0017"));
|
|
||||||
djnr.setClf_ccdd(forson.getString("field0019"));
|
|
||||||
djnr.setClf_ccksd(forson.getString("field0018"));
|
|
||||||
djnr.setClf_djzs(djml.getFjs());
|
|
||||||
djnr.setClf_ccts(forson.getString("field0023"));
|
|
||||||
djnr.setClf_ccrs(forson.getString("field0021"));
|
|
||||||
djnr.setClf_zw(forson.getString("field0092"));
|
|
||||||
djnr.setClf_jtgj(forson.getString("field0020"));
|
|
||||||
djnr.setClf_jtf(forson.getString("field0024"));
|
|
||||||
djnr.setClf_zsbz(forson.getString("field0077"));
|
|
||||||
djnr.setClf_zsf(forson.getString("field0025"));
|
|
||||||
//伙食补助是 标准金额
|
|
||||||
djnr.setCLF_HSBZ(forson.getString("field0026"));
|
|
||||||
//伙食费是 实际报销的金额
|
|
||||||
djnr.setClf_hsf(forson.getString("field0026"));
|
|
||||||
djnr.setClf_jtbz(forson.getString("field0024"));
|
|
||||||
djnr.setClf_qtf(forson.getString("field0028"));
|
|
||||||
djnr.setFjs(djml.getFjs());
|
|
||||||
djnrList.add(djnr);
|
|
||||||
//结算方式
|
|
||||||
OerDjjsfsEntity jsfs = new OerDjjsfsEntity();
|
|
||||||
jsfs.setGsdm(gsdm);
|
|
||||||
jsfs.setKjnd(kjnd);
|
|
||||||
jsfs.setDjlxId(djlxid);
|
|
||||||
jsfs.setBnxid(headers.get("jsfs_bnxid"));
|
|
||||||
jsfs.setXh(String.valueOf(xh));
|
|
||||||
jsfs.setJsfsdm(forson.getString("field0095"));
|
|
||||||
jsfs.setJsfsmc(forson.getString("field0094"));
|
|
||||||
jsfs.setKmdm(forson.getString("field0089"));
|
|
||||||
jsfs.setKmmc(forson.getString("field0066"));
|
|
||||||
jsfs.setSkr(forson.getString("field0096"));
|
|
||||||
jsfs.setKhyh(forson.getString("field0078"));
|
|
||||||
jsfs.setYhzh(forson.getString("field0079"));
|
|
||||||
jsfs.setJe(je);
|
|
||||||
jsfs.setYh("");
|
|
||||||
jsfs.setYhhh("");
|
|
||||||
jsfs.setProvince("");
|
|
||||||
jsfs.setCity("");
|
|
||||||
//支付方式为个人、公务卡时 可以选择 经办人、负责人、其他
|
|
||||||
jsfs.setRytype("");
|
|
||||||
//oa没有
|
|
||||||
jsfs.setYt(forson.getString("field0030"));
|
|
||||||
jsfsList.add(jsfs);
|
|
||||||
//预算指标
|
|
||||||
OerYszbEntity yszb = new OerYszbEntity();
|
|
||||||
BeanUtil.copyProperties(djnr,yszb);
|
|
||||||
yszb.setBnxId(headers.get("yszb_bnxid"));
|
|
||||||
yszb.setZbdm(forson.getString("field0085"));
|
|
||||||
yszb.setZy(forson.getString("field0111"));
|
|
||||||
yszb.setKmdm(forson.getString("field0089"));
|
|
||||||
yszb.setKmmc(forson.getString("field0066"));
|
|
||||||
yszb.setXh(String.valueOf(xh));
|
|
||||||
yszbList.add(yszb);
|
|
||||||
xh++;
|
|
||||||
}
|
|
||||||
logger.info("报销单主表:{}",JSONObject.toJSONString(djml));
|
|
||||||
logger.info("报销单明细表:{}",JSONObject.toJSONString(djnrList));
|
|
||||||
logger.info("报销单结算方式:{}",JSONObject.toJSONString(jsfsList));
|
|
||||||
logger.info("报销单预算指标:{}",JSONObject.toJSONString(yszbList));
|
|
||||||
djml.setOerDjnrEntityList(djnrList);
|
|
||||||
djml.setOerDjjsfsEntityList(jsfsList);
|
|
||||||
djml.setOerYszbEntityList(yszbList);
|
|
||||||
}else if (ColEventTypeEnum.ONSTOP.getType().equals(eventType)){
|
|
||||||
//流程终止 修改状态,释放指标
|
|
||||||
djml.setZt("0");
|
|
||||||
}else if (ColEventTypeEnum.ONCANCEL.getType().equals(eventType)){
|
|
||||||
//流程撤销 修改状态,释放指标
|
|
||||||
djml.setZt("1");
|
|
||||||
}else if (ColEventTypeEnum.ONPROCESSFINISHED.getType().equals(eventType)){
|
|
||||||
//流程处理事件
|
|
||||||
djml.setZt("3");
|
|
||||||
djml.setCurshjd("999");
|
|
||||||
djml.setNextshjd("-1");
|
|
||||||
//查询协同附件
|
|
||||||
List<FileInfoDTO> fileInfoList = fileDownload(seeyonData.getString("summaryId"),fileApiCode);
|
|
||||||
}
|
}
|
||||||
String djmlStr = JSONObject.toJSONString(djml);
|
|
||||||
logger.info("差旅报销单报文:{}",djmlStr);
|
|
||||||
}
|
}
|
||||||
}catch (Exception ex ){
|
}catch (Exception ex ){
|
||||||
logger.error("保存报销单之前组装参数出错",ex);
|
logger.error("保存报销单之前组装参数出错",ex);
|
||||||
|
@ -245,13 +112,314 @@ public class OerDjmlExtServiceImpl implements IOerDjmlExtService {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 费用报销单
|
||||||
|
* @param headers 请求头
|
||||||
|
* @param eventType 事件类型
|
||||||
|
* @param djlxid 单据类型id
|
||||||
|
* @param flowcode 流程编码
|
||||||
|
* @param fileApiCode 附件下载apicode
|
||||||
|
* @param seeyonData 表单对象
|
||||||
|
* @param formmainData 主表数据
|
||||||
|
* @param forsonData 子表数据
|
||||||
|
*/
|
||||||
|
private String expense(Map<String, String> headers, String eventType, String djlxid, String flowcode, String fileApiCode, JSONObject seeyonData, JSONObject formmainData, JSONArray forsonData) {
|
||||||
|
OerDjmlEntity djml = new OerDjmlEntity();
|
||||||
|
djml.setLclb(eventType);
|
||||||
|
djml.setDjbh(formmainData.getString("field0001"));
|
||||||
|
djml.setDjlxId(djlxid);
|
||||||
|
JSONObject forsonData0 = forsonData.getJSONObject(0);
|
||||||
|
//流程发起
|
||||||
|
if (ColEventTypeEnum.ONSTART.getType().equals(eventType)){
|
||||||
|
djml.setGsdm("");
|
||||||
|
djml.setKjnd("");
|
||||||
|
djml.setZt("2");
|
||||||
|
djml.setCrerdm("");
|
||||||
|
djml.setCrermc("");
|
||||||
|
djml.setCrerdate(timestampConvert(formmainData.getString("start_date")));
|
||||||
|
djml.setDjdate(timestampConvert(formmainData.getString("field0016")));
|
||||||
|
djml.setJe(formmainData.getString("field0052"));
|
||||||
|
djml.setJedx(formmainData.getString("field0071"));
|
||||||
|
djml.setYjje("0.00");
|
||||||
|
djml.setThje("0.00");
|
||||||
|
djml.setBlje(formmainData.getString("field0052"));
|
||||||
|
djml.setFjs(formmainData.getString("field0018"));
|
||||||
|
djml.setZy(formmainData.getString("field0027"));
|
||||||
|
djml.setBmdm("");
|
||||||
|
djml.setBmmc("");
|
||||||
|
djml.setXmdm("");
|
||||||
|
djml.setXmmc("");
|
||||||
|
djml.setGrdm("");
|
||||||
|
djml.setGrmc("");
|
||||||
|
djml.setJjdm("");
|
||||||
|
djml.setJjmc("");
|
||||||
|
djml.setYhzh(forsonData0.getString("field0078"));
|
||||||
|
djml.setKhyh(forsonData0.getString("field0077"));
|
||||||
|
djml.setCurshjd("-9");
|
||||||
|
djml.setNextshjd("999");
|
||||||
|
djml.setFlowcode(flowcode);
|
||||||
|
djml.setJsfs("");
|
||||||
|
djml.setTel("");
|
||||||
|
djml.setSsrq(DateUtil.format(formmainData.getDate("startDate"),"yyyyMMddHHmmssSSS"));
|
||||||
|
djml.setSsrid("");
|
||||||
|
djml.setSsr("");
|
||||||
|
//报销明细
|
||||||
|
List<OerDjnrEntity> djnrList = new ArrayList<>();
|
||||||
|
//结算方式
|
||||||
|
List<OerDjjsfsEntity> jsfsList = new ArrayList<>();
|
||||||
|
//预算指标
|
||||||
|
List<OerYszbEntity> yszbList = new ArrayList<>();
|
||||||
|
int xh = 1;
|
||||||
|
for (int i = 0; i< forsonData.size(); i++) {
|
||||||
|
JSONObject forson = forsonData.getJSONObject(i);
|
||||||
|
String gsdm = forson.getString("");
|
||||||
|
String kjnd = forson.getString("");
|
||||||
|
String je = forson.getString("field0063");
|
||||||
|
//单据内容
|
||||||
|
OerDjnrEntity djnr = new OerDjnrEntity();
|
||||||
|
djnr.setXh(String.valueOf(xh));
|
||||||
|
djnr.setGsdm(gsdm);
|
||||||
|
djnr.setKjnd(kjnd);
|
||||||
|
djnr.setDjlxId(djlxid);
|
||||||
|
djnr.setBnxId(headers.get("bxmx_bnxid"));
|
||||||
|
djnr.setJe(je);
|
||||||
|
djnr.setBmdm("");
|
||||||
|
djnr.setBmmc("");
|
||||||
|
djnr.setXmdm("");
|
||||||
|
djnr.setXmmc("");
|
||||||
|
djnr.setJjdm("");
|
||||||
|
djnr.setJjmc("");
|
||||||
|
djnr.setFzx8dm("");
|
||||||
|
djnr.setFzx8mc("");
|
||||||
|
djnr.setZbId("");
|
||||||
|
djnr.setJflxdm("");
|
||||||
|
djnr.setJflxmc("");
|
||||||
|
djnr.setZy(forson.getString("field0079"));
|
||||||
|
djnr.setFjs(djml.getFjs());
|
||||||
|
djnrList.add(djnr);
|
||||||
|
//结算方式
|
||||||
|
OerDjjsfsEntity jsfs = new OerDjjsfsEntity();
|
||||||
|
jsfs.setGsdm(gsdm);
|
||||||
|
jsfs.setKjnd(kjnd);
|
||||||
|
jsfs.setDjlxId(djlxid);
|
||||||
|
jsfs.setBnxid(headers.get("jsfs_bnxid"));
|
||||||
|
jsfs.setXh(String.valueOf(xh));
|
||||||
|
jsfs.setJsfsdm("");
|
||||||
|
jsfs.setJsfsmc("");
|
||||||
|
jsfs.setKmdm("");
|
||||||
|
jsfs.setKmmc("");
|
||||||
|
jsfs.setSkr(forson.getString("field0076"));
|
||||||
|
jsfs.setKhyh(forson.getString("field0077"));
|
||||||
|
jsfs.setYhzh(forson.getString("field0078"));
|
||||||
|
jsfs.setJe(je);
|
||||||
|
jsfs.setYh("");
|
||||||
|
jsfs.setYhhh("");
|
||||||
|
jsfs.setProvince("");
|
||||||
|
jsfs.setCity("");
|
||||||
|
jsfs.setRytype("");
|
||||||
|
jsfs.setYt(forson.getString("field0079"));
|
||||||
|
jsfsList.add(jsfs);
|
||||||
|
//预算指标
|
||||||
|
OerYszbEntity yszb = new OerYszbEntity();
|
||||||
|
BeanUtil.copyProperties(djnr,yszb);
|
||||||
|
yszb.setBnxId(headers.get("yszb_bnxid"));
|
||||||
|
yszb.setZbdm("");
|
||||||
|
yszb.setZy(forson.getString("field0079"));
|
||||||
|
yszb.setKmdm("");
|
||||||
|
yszb.setKmmc("");
|
||||||
|
yszb.setXh(String.valueOf(xh));
|
||||||
|
yszbList.add(yszb);
|
||||||
|
xh++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 差旅报销单
|
||||||
|
* @param headers 请求头
|
||||||
|
* @param eventType 事件类型
|
||||||
|
* @param djlxid 单据类型id
|
||||||
|
* @param flowcode 流程编码
|
||||||
|
* @param fileApiCode 附件下载apicode
|
||||||
|
* @param seeyonData 表单对象
|
||||||
|
* @param formmainData 主表数据
|
||||||
|
* @param forsonData 子表数据
|
||||||
|
*/
|
||||||
|
private String travel(Map<String, String> headers, String eventType, String djlxid, String flowcode, String fileApiCode, JSONObject seeyonData, JSONObject formmainData, JSONArray forsonData) {
|
||||||
|
OerDjmlEntity djml = new OerDjmlEntity();
|
||||||
|
djml.setLclb(eventType);
|
||||||
|
djml.setDjbh(formmainData.getString("field0001"));
|
||||||
|
//流程发起
|
||||||
|
if (ColEventTypeEnum.ONSTART.getType().equals(eventType)){
|
||||||
|
JSONObject forjsonData0 = forsonData.getJSONObject(0);
|
||||||
|
djml.setGsdm(forjsonData0.getString("field0084"));
|
||||||
|
djml.setKjnd(forjsonData0.getString("field0082"));
|
||||||
|
djml.setDjlxId(djlxid);
|
||||||
|
djml.setZt("2");
|
||||||
|
djml.setCrerdm(formmainData.getString("field0107"));
|
||||||
|
djml.setCrermc(formmainData.getString("field0114"));
|
||||||
|
djml.setCrerdate(timestampConvert(formmainData.getString("start_date")));
|
||||||
|
djml.setDjdate((timestampConvert(formmainData.getString("field0002"))));
|
||||||
|
djml.setJe(formmainData.getString("field0033"));
|
||||||
|
djml.setJedx(formmainData.getString("field0034"));
|
||||||
|
djml.setYjje("0.00");
|
||||||
|
djml.setThje("0.00");
|
||||||
|
djml.setBlje(formmainData.getString("field0080"));
|
||||||
|
djml.setFjs( formmainData.getString("field0004"));
|
||||||
|
djml.setZy( formmainData.getString("field0009"));
|
||||||
|
//部门代码
|
||||||
|
djml.setBmdm( formmainData.getString("field0109"));
|
||||||
|
djml.setBmmc( "");
|
||||||
|
//项目代码
|
||||||
|
djml.setXmdm(forjsonData0.getString("field0074"));
|
||||||
|
djml.setXmmc(forjsonData0.getString("field0075"));
|
||||||
|
//个人代码
|
||||||
|
djml.setGrdm(formmainData.getString("field0108"));
|
||||||
|
djml.setGrmc(formmainData.getString("field0115"));
|
||||||
|
//经济代码
|
||||||
|
djml.setJjdm("");
|
||||||
|
djml.setJjmc("");
|
||||||
|
//银行帐号 开户银行
|
||||||
|
djml.setYhzh(forjsonData0.getString("field0079"));
|
||||||
|
djml.setKhyh(forjsonData0.getString("field0078"));
|
||||||
|
//当前审核节点、下个审核节点 ,不在grp审批,是不是不用填了
|
||||||
|
djml.setCurshjd("-9");
|
||||||
|
djml.setNextshjd("999");
|
||||||
|
djml.setFlowcode(flowcode);
|
||||||
|
djml.setJsfs(spliceStr(forjsonData0.getString("field0095"), forjsonData0.getString("field0094")));
|
||||||
|
//电话,oa上没有
|
||||||
|
djml.setTel(formmainData.getString("field0110"));
|
||||||
|
djml.setClf_ccr(formmainData.getString("field0113"));
|
||||||
|
//送审日期
|
||||||
|
djml.setSsrq( DateUtil.format(formmainData.getDate("startDate"),"yyyyMMddHHmmssSSS"));
|
||||||
|
djml.setSsrid(formmainData.getString("field0108"));
|
||||||
|
djml.setSsr(formmainData.getString("field0115"));
|
||||||
|
|
||||||
|
//报销明细
|
||||||
|
List<OerDjnrEntity> djnrList = new ArrayList<>();
|
||||||
|
//结算方式
|
||||||
|
List<OerDjjsfsEntity> jsfsList = new ArrayList<>();
|
||||||
|
//预算指标
|
||||||
|
List<OerYszbEntity> yszbList = new ArrayList<>();
|
||||||
|
int xh = 1;
|
||||||
|
for (int i = 0; i< forsonData.size(); i++) {
|
||||||
|
JSONObject forson = forsonData.getJSONObject(i);
|
||||||
|
String gsdm = forson.getString("field0084");
|
||||||
|
String kjnd = forson.getString("field0082");
|
||||||
|
String je = forson.getString("field0029");
|
||||||
|
//单据内容
|
||||||
|
OerDjnrEntity djnr = new OerDjnrEntity();
|
||||||
|
djnr.setXh(String.valueOf(xh));
|
||||||
|
djnr.setGsdm(gsdm);
|
||||||
|
djnr.setKjnd(kjnd);
|
||||||
|
djnr.setDjlxId(djlxid);
|
||||||
|
djnr.setBnxId(headers.get("bxmx_bnxid"));
|
||||||
|
djnr.setJe(je);
|
||||||
|
djnr.setBmdm(forson.getString("field0088"));
|
||||||
|
djnr.setBmmc(forson.getString("field0087"));
|
||||||
|
djnr.setXmdm(forson.getString("field0074"));
|
||||||
|
djnr.setXmmc(forson.getString("field0075"));
|
||||||
|
djnr.setJjdm("");
|
||||||
|
djnr.setJjmc("");
|
||||||
|
//grp库里有,不知道是什么 1001基本支出 2001项目支出(网银)
|
||||||
|
djnr.setFzx8dm("");
|
||||||
|
djnr.setFzx8mc("");
|
||||||
|
//指标id
|
||||||
|
djnr.setZbId(forson.getString("field0085"));
|
||||||
|
djnr.setJflxdm("");
|
||||||
|
djnr.setJflxmc("");
|
||||||
|
djnr.setZy(forson.getString("field0030"));
|
||||||
|
djnr.setClf_startdate(forson.getString("field0016"));
|
||||||
|
djnr.setClf_enddate(forson.getString("field0017"));
|
||||||
|
djnr.setClf_ccdd(forson.getString("field0019"));
|
||||||
|
djnr.setClf_ccksd(forson.getString("field0018"));
|
||||||
|
djnr.setClf_djzs(djml.getFjs());
|
||||||
|
djnr.setClf_ccts(forson.getString("field0023"));
|
||||||
|
djnr.setClf_ccrs(forson.getString("field0021"));
|
||||||
|
djnr.setClf_zw(forson.getString("field0092"));
|
||||||
|
djnr.setClf_jtgj(forson.getString("field0020"));
|
||||||
|
djnr.setClf_jtf(forson.getString("field0024"));
|
||||||
|
djnr.setClf_zsbz(forson.getString("field0077"));
|
||||||
|
djnr.setClf_zsf(forson.getString("field0025"));
|
||||||
|
//伙食补助是 标准金额
|
||||||
|
djnr.setClf_hsbz(forson.getString("field0026"));
|
||||||
|
//伙食费是 实际报销的金额
|
||||||
|
djnr.setClf_hsf(forson.getString("field0026"));
|
||||||
|
djnr.setClf_jtbz(forson.getString("field0024"));
|
||||||
|
djnr.setClf_qtf(forson.getString("field0028"));
|
||||||
|
djnr.setFjs(djml.getFjs());
|
||||||
|
djnrList.add(djnr);
|
||||||
|
//结算方式
|
||||||
|
OerDjjsfsEntity jsfs = new OerDjjsfsEntity();
|
||||||
|
jsfs.setGsdm(gsdm);
|
||||||
|
jsfs.setKjnd(kjnd);
|
||||||
|
jsfs.setDjlxId(djlxid);
|
||||||
|
jsfs.setBnxid(headers.get("jsfs_bnxid"));
|
||||||
|
jsfs.setXh(String.valueOf(xh));
|
||||||
|
jsfs.setJsfsdm(forson.getString("field0095"));
|
||||||
|
jsfs.setJsfsmc(forson.getString("field0094"));
|
||||||
|
jsfs.setKmdm(forson.getString("field0089"));
|
||||||
|
jsfs.setKmmc(forson.getString("field0066"));
|
||||||
|
jsfs.setSkr(forson.getString("field0096"));
|
||||||
|
jsfs.setKhyh(forson.getString("field0078"));
|
||||||
|
jsfs.setYhzh(forson.getString("field0079"));
|
||||||
|
jsfs.setJe(je);
|
||||||
|
jsfs.setYh("");
|
||||||
|
jsfs.setYhhh("");
|
||||||
|
jsfs.setProvince("");
|
||||||
|
jsfs.setCity("");
|
||||||
|
//支付方式为个人、公务卡时 可以选择 经办人、负责人、其他
|
||||||
|
jsfs.setRytype("");
|
||||||
|
//oa没有
|
||||||
|
jsfs.setYt(forson.getString("field0030"));
|
||||||
|
jsfsList.add(jsfs);
|
||||||
|
//预算指标
|
||||||
|
OerYszbEntity yszb = new OerYszbEntity();
|
||||||
|
BeanUtil.copyProperties(djnr,yszb);
|
||||||
|
yszb.setBnxId(headers.get("yszb_bnxid"));
|
||||||
|
yszb.setZbdm(forson.getString("field0085"));
|
||||||
|
yszb.setZy(forson.getString("field0111"));
|
||||||
|
yszb.setKmdm(forson.getString("field0089"));
|
||||||
|
yszb.setKmmc(forson.getString("field0066"));
|
||||||
|
yszb.setXh(String.valueOf(xh));
|
||||||
|
yszbList.add(yszb);
|
||||||
|
xh++;
|
||||||
|
}
|
||||||
|
logger.info("报销单主表:{}",JSONObject.toJSONString(djml));
|
||||||
|
logger.info("报销单明细表:{}",JSONObject.toJSONString(djnrList));
|
||||||
|
logger.info("报销单结算方式:{}",JSONObject.toJSONString(jsfsList));
|
||||||
|
logger.info("报销单预算指标:{}",JSONObject.toJSONString(yszbList));
|
||||||
|
djml.setOerDjnrEntityList(djnrList);
|
||||||
|
djml.setOerDjjsfsEntityList(jsfsList);
|
||||||
|
djml.setOerYszbEntityList(yszbList);
|
||||||
|
}else if (ColEventTypeEnum.ONSTOP.getType().equals(eventType)){
|
||||||
|
//流程终止 修改状态,释放指标
|
||||||
|
djml.setZt("0");
|
||||||
|
}else if (ColEventTypeEnum.ONCANCEL.getType().equals(eventType)){
|
||||||
|
//流程撤销 修改状态,释放指标
|
||||||
|
djml.setZt("1");
|
||||||
|
}else if (ColEventTypeEnum.ONPROCESSFINISHED.getType().equals(eventType)){
|
||||||
|
//流程结束事件
|
||||||
|
djml.setZt("3");
|
||||||
|
djml.setCurshjd("999");
|
||||||
|
djml.setNextshjd("-1");
|
||||||
|
//查询协同附件
|
||||||
|
List<FileInfoDTO> fileInfoList = fileDownload(seeyonData.getString("summaryId"), fileApiCode);
|
||||||
|
djml.setFileInfoList(fileInfoList);
|
||||||
|
}
|
||||||
|
String djmlStr = JSONObject.toJSONString(djml);
|
||||||
|
logger.info("差旅报销单报文:{}",djmlStr);
|
||||||
|
return djmlStr;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 时间戳转成 yyyyMMdd
|
* 时间戳转成 yyyyMMdd
|
||||||
* @param timestamp
|
* @param timestamp
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
private String timestampConvert(String timestamp){
|
private String timestampConvert(String timestamp){
|
||||||
if (StrUtil.isNotEmpty(timestamp)){
|
if (StrUtil.isNotEmpty(timestamp) && NumberUtil.isNumber(timestamp)){
|
||||||
try {
|
try {
|
||||||
DateTime date = DateUtil.date(Long.valueOf(timestamp));
|
DateTime date = DateUtil.date(Long.valueOf(timestamp));
|
||||||
String formattedDate = DateUtil.format(date, "yyyyMMdd");
|
String formattedDate = DateUtil.format(date, "yyyyMMdd");
|
||||||
|
@ -260,7 +428,7 @@ public class OerDjmlExtServiceImpl implements IOerDjmlExtService {
|
||||||
logger.error("日期转换出错:{}",e);
|
logger.error("日期转换出错:{}",e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return null;
|
return timestamp;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -352,4 +520,36 @@ public class OerDjmlExtServiceImpl implements IOerDjmlExtService {
|
||||||
String template = "{}[{}]";
|
String template = "{}[{}]";
|
||||||
return StrUtil.format(template,code,name);
|
return StrUtil.format(template,code,name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public enum DjlxEnum {
|
||||||
|
TRAVEL("travel","差旅报销单"),
|
||||||
|
EXPENSE("expense","费用报销单"),
|
||||||
|
LABOR("labor","劳务费报销单"),
|
||||||
|
;
|
||||||
|
|
||||||
|
private String type;
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
public String getType() {
|
||||||
|
return type;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setType(String type) {
|
||||||
|
this.type = type;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setName(String name) {
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
DjlxEnum(String type, String name) {
|
||||||
|
this.type = type;
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue