diff --git a/service/src/main/java/com/hzya/frame/grpU8/nxproof/gbizbsyrec/entity/GbiZbsyrecEntity.xml b/service/src/main/java/com/hzya/frame/grpU8/nxproof/gbizbsyrec/entity/GbiZbsyrecEntity.xml index a4bd5216..83805dac 100644 --- a/service/src/main/java/com/hzya/frame/grpU8/nxproof/gbizbsyrec/entity/GbiZbsyrecEntity.xml +++ b/service/src/main/java/com/hzya/frame/grpU8/nxproof/gbizbsyrec/entity/GbiZbsyrecEntity.xml @@ -122,6 +122,9 @@ delete FROM gbi_zbsyrec where GSDM =#{gsdm} and KJND=#{kjnd} and MODULE='OER' and djlx=#{djlx} and djid=#{djId} AND DJFLMX=#{djflmx} + + delete FROM gbi_zbsyrec where GSDM =#{gsdm} and KJND=#{kjnd} and djid=#{djId} + diff --git a/service/src/main/java/com/hzya/frame/grpU8/nxproof/oerdjjsfs/entity/OerDjjsfsEntity.xml b/service/src/main/java/com/hzya/frame/grpU8/nxproof/oerdjjsfs/entity/OerDjjsfsEntity.xml index 68531fae..1373b9b4 100644 --- a/service/src/main/java/com/hzya/frame/grpU8/nxproof/oerdjjsfs/entity/OerDjjsfsEntity.xml +++ b/service/src/main/java/com/hzya/frame/grpU8/nxproof/oerdjjsfs/entity/OerDjjsfsEntity.xml @@ -128,5 +128,9 @@ GSDM,KJND DELETE FROM oer_djjsfs WHERE GSDM = #{gsdm} AND KJND = #{kjnd} AND DJLXID = #{djlxId} AND MLID = #{mlId} + + + DELETE FROM oer_djjsfs WHERE GSDM = #{gsdm} AND MLID = #{mlId} + diff --git a/service/src/main/java/com/hzya/frame/grpU8/nxproof/oerdjml/entity/OerDjmlEntity.java b/service/src/main/java/com/hzya/frame/grpU8/nxproof/oerdjml/entity/OerDjmlEntity.java index 6f726222..58fc7ac4 100644 --- a/service/src/main/java/com/hzya/frame/grpU8/nxproof/oerdjml/entity/OerDjmlEntity.java +++ b/service/src/main/java/com/hzya/frame/grpU8/nxproof/oerdjml/entity/OerDjmlEntity.java @@ -1,5 +1,9 @@ package com.hzya.frame.grpU8.nxproof.oerdjml.entity; +import com.hzya.frame.grpU8.nxproof.gbizbsyrec.entity.GbiZbsyrecEntity; +import com.hzya.frame.grpU8.nxproof.oerdjjsfs.entity.OerDjjsfsEntity; +import com.hzya.frame.grpU8.nxproof.oerdjnr.entity.OerDjnrEntity; +import com.hzya.frame.grpU8.nxproof.oeryszb.entity.OerYszbEntity; import com.hzya.frame.web.entity.BaseEntity; import lombok.*; @@ -69,11 +73,10 @@ public class OerDjmlEntity extends BaseEntity { private String ssrid; //送审人 private String ssr; - private List gbiZbsyrecAllEntitylist; - private List oerDjnrAllEntityList; - private List oerYszbAllEntityList; - - + private List gbiZbsyrecEntitylist; + private List oerDjnrEntityList; + private List oerYszbEntityList; + private List oerDjjsfsEntityList; public String getMlId() { return mlId; @@ -347,28 +350,28 @@ public class OerDjmlEntity extends BaseEntity { this.lclb = lclb; } - public List getGbiZbsyrecAllEntitylist() { - return gbiZbsyrecAllEntitylist; + public List getGbiZbsyrecEntitylist() { + return gbiZbsyrecEntitylist; } - public void setGbiZbsyrecAllEntitylist(List gbiZbsyrecAllEntitylist) { - this.gbiZbsyrecAllEntitylist = gbiZbsyrecAllEntitylist; + public void setGbiZbsyrecEntitylist(List gbiZbsyrecEntitylist) { + this.gbiZbsyrecEntitylist = gbiZbsyrecEntitylist; } - public List getOerDjnrAllEntityList() { - return oerDjnrAllEntityList; + public List getOerDjnrEntityList() { + return oerDjnrEntityList; } - public void setOerDjnrAllEntityList(List oerDjnrAllEntityList) { - this.oerDjnrAllEntityList = oerDjnrAllEntityList; + public void setOerDjnrEntityList(List oerDjnrEntityList) { + this.oerDjnrEntityList = oerDjnrEntityList; } - public List getOerYszbAllEntityList() { - return oerYszbAllEntityList; + public List getOerYszbEntityList() { + return oerYszbEntityList; } - public void setOerYszbAllEntityList(List oerYszbAllEntityList) { - this.oerYszbAllEntityList = oerYszbAllEntityList; + public void setOerYszbEntityList(List oerYszbEntityList) { + this.oerYszbEntityList = oerYszbEntityList; } public String getXmdm() { @@ -450,4 +453,12 @@ public class OerDjmlEntity extends BaseEntity { public void setSsr(String ssr) { this.ssr = ssr; } + + public List getOerDjjsfsEntityList() { + return oerDjjsfsEntityList; + } + + public void setOerDjjsfsEntityList(List oerDjjsfsEntityList) { + this.oerDjjsfsEntityList = oerDjjsfsEntityList; + } } diff --git a/service/src/main/java/com/hzya/frame/grpU8/nxproof/oerdjml/entity/OerDjmlEntity.xml b/service/src/main/java/com/hzya/frame/grpU8/nxproof/oerdjml/entity/OerDjmlEntity.xml index ccb2a7c5..bd6b826b 100644 --- a/service/src/main/java/com/hzya/frame/grpU8/nxproof/oerdjml/entity/OerDjmlEntity.xml +++ b/service/src/main/java/com/hzya/frame/grpU8/nxproof/oerdjml/entity/OerDjmlEntity.xml @@ -160,6 +160,43 @@ GSDM,KJND,mlId where GSDM = #{gsdm} and KJND=#{kjnd} and DJLXID=${djlxId} and MLID=${mlId} + + + update oer_djml set + + GSDM = #{gsdm}, + KJND = #{kjnd}, + DJLXID = #{djlxId}, + MLID = #{mlId}, + ZT = #{zt}, + CRerDM = #{crerdm}, + CRerMC = #{crermc}, + CRerDate = #{crerdate}, + FlowCode = #{flowcode}, + CurSHJD = #{curshjd}, + NextSHJD = #{nextshjd}, + SHR = #{shrs}, + SHRID = #{shrId}, + SHRQ = #{shrq}, + JSFS = #{jsfs}, + DJBH = #{djbh}, + DJDate = #{djdate}, + FJS = #{fjs}, + BMDM = #{bmdm}, + BMMC = #{bmmc}, + GRDM = #{grdm}, + GRMC = #{grmc}, + TEL = #{tel}, + YJJE = #{yjje}, + THJE = #{thje}, + BLJE = #{blje}, + JE = #{je}, + WHJE = #{whje}, + JEDX = #{jedx}, + + where DJBH = #{djbh} and MLID=${mlId} + + DELETE diff --git a/service/src/main/java/com/hzya/frame/grpU8/nxproof/oerdjml/service/impl/OerDjmlServiceImpl.java b/service/src/main/java/com/hzya/frame/grpU8/nxproof/oerdjml/service/impl/OerDjmlServiceImpl.java index d89a0acf..4f31ea77 100644 --- a/service/src/main/java/com/hzya/frame/grpU8/nxproof/oerdjml/service/impl/OerDjmlServiceImpl.java +++ b/service/src/main/java/com/hzya/frame/grpU8/nxproof/oerdjml/service/impl/OerDjmlServiceImpl.java @@ -190,6 +190,27 @@ public class OerDjmlServiceImpl implements IOerDjmlService { return pubObjFlowEntity; } + /** + * 保存节点PUB_OBJ_FLOW + * @param entity + * @param maxMlId + */ + public PubObjFlowEntity setPubObjFlow(OerDjmlEntity entity, String maxMlId){ + PubObjFlowEntity pubObjFlowEntity = new PubObjFlowEntity(); + PubObjFlowEntity pubObjFlowEntityPofid=iPubObjFlowDao.query(pubObjFlowEntity, "PubObjFlowEntity_list_base"); + pubObjFlowEntity.setDjh(maxMlId); + pubObjFlowEntity.setPofId(pubObjFlowEntityPofid.getPofId()); + pubObjFlowEntity.setModCode("OER"); + pubObjFlowEntity.setDjlx(entity.getDjlxId()); + pubObjFlowEntity.setShrs(entity.getCrerdm()); + pubObjFlowEntity.setShrmc(entity.getCrermc()); + pubObjFlowEntity.setFlowcode(entity.getFlowcode()); + pubObjFlowEntity.setAuditFlag("999"); + pubObjFlowEntity.setAuditAftFlag("-1"); + pubObjFlowEntity.setIsaudit("1"); + return pubObjFlowEntity; + } + /** * 新增日志表PubAuditLog * @param jsonObject @@ -250,6 +271,43 @@ public class OerDjmlServiceImpl implements IOerDjmlService { pubAuditLogEntityList.add(pubAuditLogEntity); pubAuditLogEntityList.add(pubAuditLogEntityTwo);*/ + pubAuditLogEntityList.add(pubAuditLogEntity); + return pubAuditLogEntityList; + } + /** + * 新增日志表PubAuditLog + * @param entity + * @param maxMlId + */ + public List setPubAuditLog(OerDjmlEntity entity,String maxMlId){ + List pubAuditLogEntityList=new ArrayList<>(); + //拼接送审参数 + PubAuditLogEntity pubAuditLogEntity = new PubAuditLogEntity(); + pubAuditLogEntity.setBillname("费用报销[向导式]"); + pubAuditLogEntity.setFlowname("暂时费用报销审批流"); + pubAuditLogEntity.setNodeseq("-9"); + pubAuditLogEntity.setNodename("送审"); + pubAuditLogEntity.setAuditorId("1"); + pubAuditLogEntity.setAuditor("系统管理员"); + pubAuditLogEntity.setAmt(entity.getJe()); + pubAuditLogEntity.setRemark("国子系统送审成功"); + pubAuditLogEntity.setAtype("国子系统通过"); + pubAuditLogEntity.setBillId(maxMlId); + pubAuditLogEntity.setModname("OER"); + pubAuditLogEntity.setFlowcode(entity.getFlowcode()); + pubAuditLogEntity.setGsdm(entity.getGsdm()); + pubAuditLogEntity.setKjnd(entity.getKjnd()); + pubAuditLogEntity.setServdatetime("1"); + pubAuditLogEntity.setAdatetime("1"); + //获取最大值logid + PubAuditLogEntity pubAuditLogEntityLogid = iPubAuditLogDao.query(pubAuditLogEntity, "PubAuditLogEntity_list_base_max"); + pubAuditLogEntity.setLogId(pubAuditLogEntityLogid.getLogId()); + //获取最大值logseq + PubAuditLogEntity pubAuditLogEntityLogseq=iPubAuditLogDao.query(pubAuditLogEntity,"PubAuditLogEntity_list_base_logseq"); + pubAuditLogEntity.setLogseq(pubAuditLogEntityLogseq.getLogseq()); + + + pubAuditLogEntityList.add(pubAuditLogEntity); return pubAuditLogEntityList; } @@ -299,6 +357,35 @@ public class OerDjmlServiceImpl implements IOerDjmlService { return yszbEntity; } + /***** + * 根据预算指标,生成指标生成指标使用记录 + * @Author 👻👻👻👻👻👻👻👻 gjh + * @Date 2023-06-29 16:43 + * @Param [djnrEntity] + * @return com.hzya.frame.online.expense.insert.oerYszb.entity.oerYszbEntity + **/ + private GbiZbsyrecEntity setOerYszbEntity(OerDjmlEntity entity,OerDjnrEntity djnrEntity) { + GbiZbsyrecEntity yszbEntity = new GbiZbsyrecEntity(); + BeanUtil.copyProperties(djnrEntity,yszbEntity); + yszbEntity.setModule(djnrEntity.getModule()); + yszbEntity.setDjlx(djnrEntity.getDjlxId()); + yszbEntity.setDjId(djnrEntity.getMlId()); + yszbEntity.setDjflh(djnrEntity.getDjflh()); + yszbEntity.setDjflmx(djnrEntity.getMlId()); + yszbEntity.setDjywrq(entity.getDjdate()); + yszbEntity.setDjzt(entity.getZt()); + yszbEntity.setJhId(djnrEntity.getZbId()); + yszbEntity.setDjje(djnrEntity.getJe()); + yszbEntity.setSl("0"); + yszbEntity.setDjzy(djnrEntity.getZy()); + yszbEntity.setSzfx("1"); + yszbEntity.setZblb("MXZB"); + yszbEntity.setJdzb("0"); + yszbEntity.setCzlx("0"); + yszbEntity.setZzbz("0"); + return yszbEntity; + } + /**** * 组装结算方式集合 @@ -327,6 +414,22 @@ public class OerDjmlServiceImpl implements IOerDjmlService { return oerDjjsfsEntityList; } } + /**** + * 组装结算方式集合 + * @Author 👻👻👻👻👻👻👻👻 gjh + * @Date 2023-06-29 16:08 + * @param entity 三方json数据, maxDjbh, maxMlId] + * @return java.util.List + **/ + private List setOerDjjsfsEntityList(OerDjmlEntity entity, String maxDjbh, String maxMlId) { + List oerDjjsfsEntityList = entity.getOerDjjsfsEntityList(); + for (int i = 0; i < oerDjjsfsEntityList.size(); i++) { + oerDjjsfsEntityList.get(i).setMlId(maxMlId); + oerDjjsfsEntityList.get(i).setGsdm(entity.getGsdm()); + } + return oerDjjsfsEntityList; + +} /**** * 根据报销明细生成预算指标数据 @@ -869,9 +972,152 @@ public class OerDjmlServiceImpl implements IOerDjmlService { * @return java.lang.Object **/ private Object saveOrUpdateData(OerDjmlEntity entity) { + //获取主表数据 + logger.info("开始处理数据:------>"); + String gsdm = entity.getGsdm(); + logger.info("根据公司代码查询最大单据编号,公司代码:------>"+gsdm); + if(StrUtil.isEmpty(gsdm)){ + return BaseResult.getFailureMessageEntity("公司代码不能为空!请排查参数gsdm"); + } + if(StrUtil.isEmpty(entity.getDjdate())){ + return BaseResult.getFailureMessageEntity("单据日期不能为空!请排查参数djdate"); + } + if(entity.getOerDjnrEntityList() == null || entity.getOerDjnrEntityList().size() == 0 ){ + return BaseResult.getFailureMessageEntity("报销单明细数据为空!请检查参数"); + } + if(entity.getOerDjjsfsEntityList() == null || entity.getOerDjjsfsEntityList().size() == 0 ){ + return BaseResult.getFailureMessageEntity("报销单结算明细数据为空!请检查参数"); + } + boolean flag = false; + String maxDjbh = null; + String maxMlId = null; + if(entity.getDjbh() != null && !"".equals(entity.getDjbh())){ + OerDjmlEntity oerDjmlAllEntity = new OerDjmlEntity(); + oerDjmlAllEntity.setDjbh(entity.getDjbh()); + List oerDjmlAllEntities = iOerDjmlDao.queryOerDjml(oerDjmlAllEntity); + if(oerDjmlAllEntities != null && oerDjmlAllEntities.size() == 1){ + flag = true; + maxDjbh = oerDjmlAllEntities.get(0).getDjbh(); + maxMlId = oerDjmlAllEntities.get(0).getMlId(); + } + } + if(!flag){ + logger.info("获取最大单据编号"); + OerDjmlEntity oerDjmlEntity = new OerDjmlEntity(); + oerDjmlEntity.setGsdm(gsdm); + oerDjmlEntity.setDjdate(entity.getDjdate()); + oerDjmlEntity.setFph(nullConvert(entity.getFph())); + maxDjbh = iOerDjmlDao.getMaxDjbgByGsdm(oerDjmlEntity); + logger.info("获取到最大单据编号:------>"+maxDjbh); + //查询最大单据ID mlid + maxMlId = iOerDjmlDao.getMaxMlIdByGsdm(oerDjmlEntity); + logger.info("获取到最大单据ID MLID:------>"+maxMlId); + } - return null; + logger.info("组装单据主表数据开始:------>"); + OerDjmlEntity oerdjml = setMainData(entity,maxDjbh,maxMlId); + logger.info("保存主表信息:------>"); + if(flag){ + iOerDjmlDao.update("OerDjmlEntity_update_data",oerdjml); + //删除明细 + OerDjnrEntity oerDjnrEntity = new OerDjnrEntity(); + oerDjnrEntity.setMlId(maxMlId); + oerDjnrEntity.setGsdm(entity.getGsdm()); + oerDjnrEntity.setKjnd(entity.getKjnd()); + oerDjnrEntity.setDjlxId(entity.getDjlxId()); + iOerDjnrDao.delete("OerDjnrEntity_delete",oerDjnrEntity); + //删除预算指标 + OerYszbEntity oerYszbEntity = new OerYszbEntity(); + oerYszbEntity.setGsdm(entity.getGsdm()); + oerYszbEntity.setKjnd(entity.getKjnd()); + oerYszbEntity.setMlId(maxMlId); + iOerYszbDao.delete("OerYszbEntity_delete",oerYszbEntity); + + //删除预算指标记录 + GbiZbsyrecEntity oeryszb= new GbiZbsyrecEntity(); + oeryszb.setGsdm(entity.getGsdm()); + oeryszb.setKjnd(entity.getKjnd()); + oeryszb.setDjId(maxMlId); + iGbiZbsyrecDao.delete("GbiZbsyrecEntity_delete_mlid",oeryszb); + //删除单据结算方式 + OerDjjsfsEntity oerDjjsfsEntity = new OerDjjsfsEntity(); + oerDjjsfsEntity.setMlId(maxMlId); + oerDjjsfsEntity.setGsdm(entity.getGsdm()); + iOerDjjsfsDao.delete("OerDjjsfsEntity_delete_delMlid",oerDjjsfsEntity); + //删除日志 + //删除节点 + }else { + iOerDjmlDao.save("OerDjmlEntity_insert",oerdjml); + } + + logger.info("组装单据报销明细开始:------>"); + List oerDjnrEntityList = setOerDjnrEntity(entity,maxDjbh,maxMlId); + logger.info("保存报销明细开始:------>"); + for(OerDjnrEntity djnrEntity : oerDjnrEntityList){ + iOerDjnrDao.save("OerDjnrEntity_insert",djnrEntity); + logger.info("保存完报销明细后,根据明细数据生成预算指标数据:------>"); + OerYszbEntity yszbEntity = createOerYszbEntity(djnrEntity,maxMlId); + logger.info("保存预算指标开始:------>"); + iOerYszbDao.save("OerYszbEntity_insert",yszbEntity); + logger.info("保存预算指标记录:------>"); + GbiZbsyrecEntity oeryszb= setOerYszbEntity(entity,djnrEntity); + iGbiZbsyrecDao.save("GbiZbsyrecEntity_insert",oeryszb); + } + logger.info("组装单据结算方式明细开始:------>"); + List oerDjjsfsEntityList = setOerDjjsfsEntityList(entity,maxDjbh,maxMlId); + logger.info("保存结算方式明细开始:------>"); + for(OerDjjsfsEntity oerdjjsfs :oerDjjsfsEntityList){ + iOerDjjsfsDao.save("OerDjjsfsEntity_insert",oerdjjsfs); + } + //保存日志表PubAuditLog + List pubAuditLogEntityList = setPubAuditLog(entity, maxMlId); + for (PubAuditLogEntity pubAuditLog : pubAuditLogEntityList) { + iPubAuditLogDao.save("PubAuditLogEntity_insert",pubAuditLog); + } + //保存节点PUB_OBJ_FLOW + PubObjFlowEntity pubObjFlowEntity = setPubObjFlow(entity, maxMlId); + iPubObjFlowDao.save("PubObjFlowEntity_insert",pubObjFlowEntity); + + return BaseResult.getSuccessMessageEntity("保存报销单成功"); + } + + /** + * @Author lvleigang + * @Description 设置报销单明细 + * @Date 3:39 下午 2024/8/15 + * @param entity + * @param maxDjbh + * @param maxMlId + * @return java.util.List + **/ + private List setOerDjnrEntity(OerDjmlEntity entity, String maxDjbh, String maxMlId) { + List djnrEntityList = entity.getOerDjnrEntityList(); + for (int i = 0; i < djnrEntityList.size(); i++) { + djnrEntityList.get(i).setMlId(maxMlId); + djnrEntityList.get(i).setGsdm(entity.getGsdm()); + } + return djnrEntityList; + } + + /** + * @Author lvleigang + * @Description 设置值 + * @Date 3:30 下午 2024/8/15 + * @param oerDjmlEntity + * @param maxDjbh + * @param maxMlId + * @return com.hzya.frame.grpU8.nxproof.oerdjml.entity.OerDjmlEntity + **/ + private OerDjmlEntity setMainData(OerDjmlEntity oerDjmlEntity, String maxDjbh, String maxMlId) { + oerDjmlEntity.setDjbh(maxDjbh); + oerDjmlEntity.setMlId(maxMlId); + //oerDjmlEntity.setZt("3"); + //oerDjmlEntity.setFlowcode("000006"); + //oerDjmlEntity.setCurshjd("999"); + //oerDjmlEntity.setNextshjd("-1"); + logger.info("主表数据组装完成:"+JSON.toJSONString(oerDjmlEntity)); + return oerDjmlEntity; } protected T getData(String key, JSONObject jsonObject, Class clz) {