劳务费报销单

This commit is contained in:
xiang2lin 2025-05-28 08:34:31 +08:00
parent 64489a4fe3
commit e4e8c9ac5d
1 changed files with 293 additions and 25 deletions

View File

@ -884,7 +884,7 @@ public class OerDjmlExtServiceImpl implements IOerDjmlExtService {
String fileApiCode = headers.get("file_api_code");
OerDjmlEntity djml = new OerDjmlEntity();
djml.setLclb(eventType);
djml.setDjbh(formmainData.getString("field0001"));
djml.setDjbh(formmainData.getString("field0022"));
djml.setDjlxId(djlxid);
djml.setDataSourceCode(dataSourceCode);
String fflx = formmainData.getString("field0102");
@ -906,16 +906,16 @@ public class OerDjmlExtServiceImpl implements IOerDjmlExtService {
break;
}
if (ColEventTypeEnum.ONSTART.getType().equals(eventType)){
djml.setGsdm(formmainData.getString("field0037"));
djml.setKjnd(formmainData.getString("field0038"));
djml.setGsdm(formmainData.getString("field0043"));
djml.setKjnd(formmainData.getString("field0044"));
djml.setDjlxId(djlxid);
djml.setZt("2");
djml.setCrerdm(formmainData.getString("field0039"));//制单人代码
djml.setCrermc(formmainData.getString("field0045"));//制单人名称
djml.setCrerdm(formmainData.getString("field0084"));//制单人代码
djml.setCrermc(formmainData.getString("field0085"));//制单人名称
djml.setCrerdate(timestampConvert(formmainData.getString("start_date"),"yyyyMMdd"));
djml.setDjdate((timestampConvert(formmainData.getString("field0002"),"yyyyMMdd")));
djml.setJe(formmainData.getString("field0017"));//金额
djml.setJedx(formmainData.getString(""));//金额大写
djml.setJedx(formmainData.getString("field0018"));//金额大写
djml.setGrdm(formmainData.getString("field0084"));//报销人代码
djml.setGrmc(formmainData.getString("field0085"));//报销人名称
djml.setBmdm(formmainData.getString("field0086"));//部门代码
@ -924,38 +924,306 @@ public class OerDjmlExtServiceImpl implements IOerDjmlExtService {
djml.setXmmc(formmainData.getString("field0005"));//项目名称
djml.setZy(formmainData.getString("field0045"));//劳务内容
djml.setWX00000051(formmainData.getString("field0006"));//讲座发生时间
djml.setWX00000059(formmainData.getString("field0046"));//讲座发生时间
djml.setWX00000059(formmainData.getString("field0105"));//发放性质
//报销明细
List<OerDjnrEntity> djnrList = new ArrayList<>();
//结算方式
List<OerDjjsfsEntity> jsfsList = new ArrayList<>();
//预算指标
List<OerYszbEntity> yszbList = new ArrayList<>();
if (CollectionUtils.isNotEmpty(forsonData)){
int xh = 1;
for (int i=0; i<forsonData.size();i++){
JSONObject forson = forsonData.getJSONObject(i);
String gsdm = djml.getGsdm();
String kjnd = djml.getKjnd();
String je = forson.getString("field0024");
//单据内容
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(formmainData.getString("field0051"));
djnr.setBmmc(formmainData.getString("field0050"));
djnr.setXmdm(djml.getXmdm());
djnr.setXmmc(djml.getXmmc());
switch (fflx){
case "0"://校内职工/学生
case "3":
forson0044(headers, formmainData, djlxid, djml, forsonData, djnrList, jsfsList, yszbList, xh);
break;//校外一次性劳务
case "1":
forson0045(headers, formmainData, djlxid, djml, forsonData, djnrList, jsfsList, yszbList, xh);
break;
case "2"://通过第三方发放校外劳务
forson0046(headers, formmainData, djlxid, djml, forsonData, djnrList, jsfsList, yszbList, xh);
break;
}
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");
djml.setCurshjd("0");
djml.setNextshjd("-9");
djml.setSsrid(null);
djml.setSsr(null);
djml.setSsrq(null);
djml.setShrId(null);
djml.setShrq(null);
}else if (ColEventTypeEnum.ONCANCEL.getType().equals(eventType)){
//流程撤销 修改状态释放指标
djml.setZt("1");
djml.setCurshjd("0");
djml.setNextshjd("-9");
djml.setSsrid(null);
djml.setSsr(null);
djml.setSsrq(null);
djml.setShrId(null);
djml.setShrq(null);
}else if (ColEventTypeEnum.ONPROCESSFINISHED.getType().equals(eventType)){
//流程结束事件
djml.setZt("3");
djml.setCurshjd("999");
djml.setNextshjd("-1");
//查询协同附件
List<FileInfoDTO> fileInfoList = fileDownloadV1(summaryId, fileApiCode);
djml.setFileInfoList(fileInfoList);
}
return null;
String djmlStr = JSONObject.toJSONString(djml);
logger.info("劳务费报文:{}",djmlStr);
return djmlStr;
}
//校内职工/学生
private static void forson0044(Map<String, String> headers, JSONObject formmainData, String djlxid, OerDjmlEntity djml, JSONArray forsonData, List<OerDjnrEntity> djnrList, List<OerDjjsfsEntity> jsfsList, List<OerYszbEntity> yszbList, int xh) {
for (int i = 0; i< forsonData.size(); i++){
JSONObject forson = forsonData.getJSONObject(i);
String gsdm = djml.getGsdm();
String kjnd = djml.getKjnd();
String je = forson.getString("field0053");
//单据内容
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(null);//grp制单也没有这几个字段
djnr.setBmmc(null);
djnr.setXmdm(null);
djnr.setXmmc(null);
//指标id
djnr.setZbId(formmainData.getString("field0029"));
djnr.setZy(djml.getZy());
djnr.setFjs(djml.getFjs());
//支出项目
djnr.setFzx6dm(formmainData.getString("field0089"));
djnr.setFzx6mc(formmainData.getString("field0090"));
//资金来源
djnr.setFzx7dm(null);//grp制单也没这个
djnr.setFzx7mc(null);
//自定义项
djnr.setYs00000051(forson.getString("field0052"));//发放明目
djnr.setYs00000052("");//发放事项
djnr.setYs00000053("");//打款时备注 oa没有
djnr.setYs00000054("");//已开票应付劳务
djnr.setYs00000055("");//扣补个税
djnr.setYs00000056("");//个人所得税
djnr.setYs00000057(forson.getString("field0053"));//实发金额
djnr.setYs00000058("");//数量课时
djnr.setYs00000059("");//标准
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(null);
jsfs.setJsfsmc(null);
jsfs.setKmdm(forson.getString(""));
jsfs.setKmmc(forson.getString(""));
jsfs.setSkr(forson.getString("field0049"));
jsfs.setKhyh(forson.getString("field0051"));
jsfs.setYhzh(forson.getString("field0050"));
jsfs.setJe(je);
jsfs.setYh("");//银行类型 例如 招商银行
jsfs.setYhhh("");// 联行号
jsfs.setProvince("");//
jsfs.setCity("");//
//支付方式为个人公务卡时 可以选择 经办人负责人其他
jsfs.setRytype("");//人员类型
//用途
jsfs.setYt(forson.getString(""));
jsfsList.add(jsfs);
//预算指标
OerYszbEntity yszb = new OerYszbEntity();
BeanUtil.copyProperties(djnr,yszb);
yszb.setBnxId(headers.get("yszb_bnxid"));
yszb.setZbdm(formmainData.getString("field0029"));
yszb.setZy(djnr.getZy());
yszb.setKmdm(forson.getString(""));
yszb.setKmmc(forson.getString(""));
yszb.setXh(String.valueOf(xh));
yszbList.add(yszb);
xh++;
}
}
//校外一次性劳务
private static void forson0045(Map<String, String> headers, JSONObject formmainData, String djlxid, OerDjmlEntity djml, JSONArray forsonData, List<OerDjnrEntity> djnrList, List<OerDjjsfsEntity> jsfsList, List<OerYszbEntity> yszbList, int xh) {
for (int i = 0; i< forsonData.size(); i++){
JSONObject forson = forsonData.getJSONObject(i);
String gsdm = djml.getGsdm();
String kjnd = djml.getKjnd();
String je = forson.getString("field0062");
//单据内容
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(null);//grp制单也没有这几个字段
djnr.setBmmc(null);
djnr.setXmdm(null);
djnr.setXmmc(null);
//指标id
djnr.setZbId(formmainData.getString("field0029"));
djnr.setZy(djml.getZy());
djnr.setFjs(djml.getFjs());
//支出项目
djnr.setFzx6dm(formmainData.getString("field0089"));
djnr.setFzx6mc(formmainData.getString("field0090"));
//资金来源
djnr.setFzx7dm(null);//grp制单也没这个
djnr.setFzx7mc(null);
//自定义项
djnr.setYs00000051("");//发放明目
djnr.setYs00000052("");//发放事项
djnr.setYs00000053("");//打款时备注 oa没有
djnr.setYs00000054(forson.getString("field0062"));//已开票应付劳务
djnr.setYs00000055(forson.getString("field0063"));//扣补个税
djnr.setYs00000056(forson.getString("field0064"));//个人所得税
djnr.setYs00000057(forson.getString("field0062"));//实发金额
djnr.setYs00000058("");//数量课时
djnr.setYs00000059("");//标准
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(null);
jsfs.setJsfsmc(null);
jsfs.setKmdm(forson.getString(""));
jsfs.setKmmc(forson.getString(""));
jsfs.setSkr(forson.getString("field0058"));
jsfs.setKhyh(forson.getString("field0059"));
jsfs.setYhzh(forson.getString("field0060"));
jsfs.setJe(je);
jsfs.setYh("");//银行类型 例如 招商银行
jsfs.setYhhh("");// 联行号
jsfs.setProvince("");//
jsfs.setCity("");//
//支付方式为个人公务卡时 可以选择 经办人负责人其他
jsfs.setRytype("");//人员类型
//用途
jsfs.setYt(forson.getString(""));
jsfsList.add(jsfs);
//预算指标
OerYszbEntity yszb = new OerYszbEntity();
BeanUtil.copyProperties(djnr,yszb);
yszb.setBnxId(headers.get("yszb_bnxid"));
yszb.setZbdm(formmainData.getString("field0029"));
yszb.setZy(djnr.getZy());
yszb.setKmdm(forson.getString(""));
yszb.setKmmc(forson.getString(""));
yszb.setXh(String.valueOf(xh));
yszbList.add(yszb);
xh++;
}
}
//通过第三方发放校外劳务
private static void forson0046(Map<String, String> headers, JSONObject formmainData, String djlxid, OerDjmlEntity djml, JSONArray forsonData, List<OerDjnrEntity> djnrList, List<OerDjjsfsEntity> jsfsList, List<OerYszbEntity> yszbList, int xh) {
for (int i = 0; i< forsonData.size(); i++){
JSONObject forson = forsonData.getJSONObject(i);
String gsdm = djml.getGsdm();
String kjnd = djml.getKjnd();
String je = forson.getString("field0079");
//单据内容
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(null);//grp制单也没有这几个字段
djnr.setBmmc(null);
djnr.setXmdm(null);
djnr.setXmmc(null);
//指标id
djnr.setZbId(formmainData.getString("field0029"));
djnr.setZy(djml.getZy());
djnr.setFjs(djml.getFjs());
//支出项目
djnr.setFzx6dm(formmainData.getString("field0089"));
djnr.setFzx6mc(formmainData.getString("field0090"));
//资金来源
djnr.setFzx7dm(null);//grp制单也没这个
djnr.setFzx7mc(null);
//自定义项
djnr.setYs00000051("");//发放明目
djnr.setYs00000052(forson.getString("field0076"));//发放事项
djnr.setYs00000053("");//打款时备注 oa没有
djnr.setYs00000054("");//已开票应付劳务
djnr.setYs00000055("");//扣补个税
djnr.setYs00000056("");//个人所得税
djnr.setYs00000057("");//实发金额
djnr.setYs00000058(forson.getString("field0077"));//数量课时
djnr.setYs00000059(forson.getString("field0078"));//标准
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(null);
jsfs.setJsfsmc(null);
jsfs.setKmdm(forson.getString(""));
jsfs.setKmmc(forson.getString(""));
jsfs.setSkr(forson.getString("field0071"));
jsfs.setKhyh(forson.getString("field0072"));
jsfs.setYhzh(forson.getString("field0073"));
jsfs.setJe(je);
jsfs.setYh("");//银行类型 例如 招商银行
jsfs.setYhhh("");// 联行号
jsfs.setProvince("");//
jsfs.setCity("");//
//支付方式为个人公务卡时 可以选择 经办人负责人其他
jsfs.setRytype("");//人员类型
//用途
jsfs.setYt(forson.getString(""));
jsfsList.add(jsfs);
//预算指标
OerYszbEntity yszb = new OerYszbEntity();
BeanUtil.copyProperties(djnr,yszb);
yszb.setBnxId(headers.get("yszb_bnxid"));
yszb.setZbdm(formmainData.getString("field0029"));
yszb.setZy(djnr.getZy());
yszb.setKmdm(forson.getString(""));
yszb.setKmmc(forson.getString(""));
yszb.setXh(String.valueOf(xh));
yszbList.add(yszb);
xh++;
}
}
/**
* 时间戳转成 指定格式
* @param timestamp 时间戳