diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/controller/BmAgreementCombineController.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/controller/BmAgreementCombineController.java new file mode 100644 index 00000000..6d00a366 --- /dev/null +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/controller/BmAgreementCombineController.java @@ -0,0 +1,53 @@ +package com.bonus.material.basic.controller; + +import com.bonus.common.core.web.controller.BaseController; +import com.bonus.common.core.web.domain.AjaxResult; +import com.bonus.common.core.web.page.TableDataInfo; +import com.bonus.material.basic.domain.BmAgreementCombine; +import com.bonus.material.basic.domain.BmProjectCombine; +import com.bonus.material.basic.service.IBmAgreementCombineService; +import com.bonus.material.basic.service.IBmProjectCombineService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * 合并协议管理Controller + * + * @author xsheng + * @date 2024-10-10 + */ +@Api(tags = "合并协议管理接口") +@RestController +@RequestMapping("/bm_agreement_combine") +public class BmAgreementCombineController extends BaseController +{ + + @Autowired + private IBmAgreementCombineService agreementService; + + + /** + * 查询标段工程管理列表 + */ + @ApiOperation(value = "查询协议管理列表") + + @GetMapping("/list") + public TableDataInfo list(BmAgreementCombine bmAgreement) + { + startPage(); + List list = agreementService.selectBmAgreementList(bmAgreement); + return getDataTable(list); + } + + @ApiOperation(value = "合并协议接口") + @PostMapping("/combineAgreement") + public AjaxResult combineAgreement(@RequestBody BmAgreementCombine bmAgreement) { + int result = agreementService.combineProject(bmAgreement); + return result > 0 ? success("合并成功") : error("合并失败"); + } + +} diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/domain/BmAgreementCombine.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/domain/BmAgreementCombine.java new file mode 100644 index 00000000..9e283032 --- /dev/null +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/domain/BmAgreementCombine.java @@ -0,0 +1,62 @@ +package com.bonus.material.basic.domain; + +import com.bonus.common.core.web.domain.BaseEntity; +import lombok.Data; +import lombok.ToString; + +import java.util.Date; +import java.util.List; + +/** + * 合并协议实体 bm_agreement + * + * @author xsheng + * @date 2024-09-26 + */ + + +@Data +@ToString +public class BmAgreementCombine extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + + + /** 主键ID */ + private Long id; + + private String tableName; + + private String tableId; + + private String proName; + + private String unitName; + + private String proId; + + private String unitId; + + private String agreementId; + + private String agreementCode; + + private String createBy; + + private Date createTime; + + private String oldProId; + + private String oldUnitId; + + private String newUnitId; + + private String newProId; + + private String oldAgreementId; + + private String newAgreementId; + + private List oldAgreementIds; +} diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/mapper/BmAgreementCombineMapper.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/mapper/BmAgreementCombineMapper.java new file mode 100644 index 00000000..7505735a --- /dev/null +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/mapper/BmAgreementCombineMapper.java @@ -0,0 +1,49 @@ +package com.bonus.material.basic.mapper; + +import com.bonus.material.basic.domain.BmAgreementCombine; +import com.bonus.material.basic.domain.BmProjectCombine; + +import java.util.List; + +/** + * 合并协议管理Mapper接口 + * + * @author xsheng + * @date 2024-09-26 + */ +public interface BmAgreementCombineMapper +{ + + + List selectBmAgreementList(BmAgreementCombine bmAgreement); + + List selectBAIList(BmAgreementCombine bmAgreement); + + void updateLAI(BmAgreementCombine bai); + + void insertCombine(BmAgreementCombine bai); + + List selectLAIList(BmAgreementCombine bmAgreement); + + List selectLPDList(BmAgreementCombine bmAgreement); + + void updateLPD(BmAgreementCombine bai); + + List selectTTAList(BmAgreementCombine bmAgreement); + + void updateTTA(BmAgreementCombine bai); + + void updateSAI(BmAgreementCombine bai); + + List selectSAIList(BmAgreementCombine bmAgreement); + + List selectPMCList(BmAgreementCombine bmAgreement); + + void updatePMC(BmAgreementCombine bai); + + List selectPMIList(BmAgreementCombine bmAgreement); + + void updatePMI(BmAgreementCombine bai); + + void deleteBAI(BmAgreementCombine bai); +} diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/service/IBmAgreementCombineService.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/service/IBmAgreementCombineService.java new file mode 100644 index 00000000..99de4545 --- /dev/null +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/service/IBmAgreementCombineService.java @@ -0,0 +1,21 @@ +package com.bonus.material.basic.service; + +import com.bonus.material.basic.domain.BmAgreementCombine; +import com.bonus.material.basic.domain.BmProjectCombine; + +import java.util.List; + +/** + * 标段工程管理Service接口 + * + * @author xsheng + * @date 2024-09-26 + */ +public interface IBmAgreementCombineService +{ + + + List selectBmAgreementList(BmAgreementCombine bmAgreement); + + int combineProject(BmAgreementCombine bmAgreement); +} diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/service/impl/BmAgreementCombineServiceImpl.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/service/impl/BmAgreementCombineServiceImpl.java new file mode 100644 index 00000000..1210bd07 --- /dev/null +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/service/impl/BmAgreementCombineServiceImpl.java @@ -0,0 +1,204 @@ +package com.bonus.material.basic.service.impl; + +import com.alibaba.nacos.common.utils.CollectionUtils; +import com.bonus.common.security.utils.SecurityUtils; +import com.bonus.material.basic.domain.BmAgreementCombine; +import com.bonus.material.basic.domain.BmProjectCombine; +import com.bonus.material.basic.mapper.BmAgreementCombineMapper; +import com.bonus.material.basic.mapper.BmProjectCombineMapper; +import com.bonus.material.basic.service.IBmAgreementCombineService; +import com.bonus.material.basic.service.IBmProjectCombineService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.Collections; +import java.util.List; +import java.util.Objects; + + +/** + * 合并协议管理Service业务层处理 + * + * @author xsheng + * @date 2024-09-26 + */ +@Service +@Slf4j +public class BmAgreementCombineServiceImpl implements IBmAgreementCombineService +{ + @Resource + private BmAgreementCombineMapper acMapper; + + + @Override + public List selectBmAgreementList(BmAgreementCombine bmAgreement) { + return acMapper.selectBmAgreementList(bmAgreement); + } + + @Override + public int combineProject(BmAgreementCombine bmAgreement) { + int res = 0; + try { + String createBy = SecurityUtils.getLoginUser().getUsername(); + + List oldAgreementIds = bmAgreement.getOldAgreementIds(); + if(CollectionUtils.isEmpty(oldAgreementIds)){ + + }else{ + + //业务办理领料申请:lease_apply_info,修改oldProId-->newProId,oldUnitId--> newUnitId记录修改信息 + res= updateLAI(bmAgreement,createBy); + //业务办理领料发布:lease_publish_details,修改oldProId-->newProId,oldUnitId--> newUnitId记录修改信息 + res= updateLPD(bmAgreement,createBy); + //协议任务表tm_task_agreement修改oldAgreementId-->newAgreementId 记录修改信息 + res= updateTTA(bmAgreement,createBy); + //协议领退明细表slt_agreement_info修改oldAgreementId-->newAgreementId 记录修改信息 + res= updateSAI(bmAgreement,createBy); + //费用推送表project_month_costs 修改oldAgreementId-->newAgreementId 记录修改信息 + res= updatePMC(bmAgreement,createBy); + //费用推送表project_month_info 修改oldAgreementId-->newAgreementId 记录修改信息 + res= updatePMI(bmAgreement,createBy); + //查询协议表:bm_agreement_info,记录协议信息,删除需要合并的协议 + res= delBAI(bmAgreement,createBy); + + + + } + + }catch (Exception e){ + log.error("合并标段工程异常",e); + } + return res; + } + + private int delBAI(BmAgreementCombine bmAgreement, String createBy) { + List baiList = acMapper.selectBAIList(bmAgreement); + + + if (CollectionUtils.isNotEmpty(baiList)) { + for (BmAgreementCombine bai : baiList){ + bai.setOldAgreementId(bai.getAgreementId()); + bai.setNewAgreementId(bmAgreement.getAgreementId()); + acMapper.deleteBAI(bai); + bai.setCreateBy(createBy); + bai.setTableId(bai.getId()+""); + bai.setTableName("bm_agreement_info"); + log.info("修改表:bm_agreement_info,删除AgreementId,记录修改信息"); + acMapper.insertCombine(bai); + } + } + return 1; + } + + private int updatePMI(BmAgreementCombine bmAgreement, String createBy) { + List baiList = acMapper.selectPMIList(bmAgreement); + + + if (CollectionUtils.isNotEmpty(baiList)) { + for (BmAgreementCombine bai : baiList){ + bai.setNewAgreementId(bmAgreement.getAgreementId()); + acMapper.updatePMI(bai); + bai.setCreateBy(createBy); + bai.setTableId(bai.getId()+""); + bai.setTableName("project_month_info"); + log.info("修改表:project_month_info,修改oldAgreementId-->newAgreementId,记录修改信息"); + acMapper.insertCombine(bai); + } + } + return 1; + } + + private int updatePMC(BmAgreementCombine bmAgreement, String createBy) { + List baiList = acMapper.selectPMCList(bmAgreement); + + + if (CollectionUtils.isNotEmpty(baiList)) { + for (BmAgreementCombine bai : baiList){ + bai.setNewAgreementId(bmAgreement.getAgreementId()); + acMapper.updatePMC(bai); + bai.setCreateBy(createBy); + bai.setTableId(bai.getId()+""); + bai.setTableName("project_month_costs"); + log.info("修改表:project_month_costs,修改oldAgreementId-->newAgreementId,记录修改信息"); + acMapper.insertCombine(bai); + } + } + return 1; + } + + private int updateSAI(BmAgreementCombine bmAgreement, String createBy) { + List baiList = acMapper.selectSAIList(bmAgreement); + + + if (CollectionUtils.isNotEmpty(baiList)) { + for (BmAgreementCombine bai : baiList){ + bai.setNewAgreementId(bmAgreement.getAgreementId()); + acMapper.updateSAI(bai); + bai.setCreateBy(createBy); + bai.setTableId(bai.getId()+""); + bai.setTableName("slt_agreement_info"); + log.info("修改表:slt_agreement_info,修改oldAgreementId-->newAgreementId,记录修改信息"); + acMapper.insertCombine(bai); + } + } + return 1; + } + + private int updateTTA(BmAgreementCombine bmAgreement, String createBy) { + List baiList = acMapper.selectTTAList(bmAgreement); + + + if (CollectionUtils.isNotEmpty(baiList)) { + for (BmAgreementCombine bai : baiList){ + bai.setNewAgreementId(bmAgreement.getAgreementId()); + acMapper.updateTTA(bai); + bai.setCreateBy(createBy); + bai.setTableId(bai.getId()+""); + bai.setTableName("tm_task_agreement"); + log.info("修改表:tm_task_agreement,修改oldAgreementId-->newAgreementId,记录修改信息"); + acMapper.insertCombine(bai); + } + } + return 1; + } + + private int updateLPD(BmAgreementCombine bmAgreement, String createBy) { + List baiList = acMapper.selectLPDList(bmAgreement); + + baiList.removeIf(Objects::isNull); + if (CollectionUtils.isNotEmpty(baiList) && baiList.size()>0) { + for (BmAgreementCombine bai : baiList){ + bai.setNewProId(bmAgreement.getProId()); + bai.setNewUnitId(bmAgreement.getUnitId()); + acMapper.updateLPD(bai); + bai.setCreateBy(createBy); + bai.setTableId(bai.getId()+""); + bai.setTableName("lease_publish_details"); + log.info("修改表:lease_publish_details,修改oldProId-->newProId,oldUnitId-->newUnitId,记录修改信息"); + acMapper.insertCombine(bai); + } + } + return 1; + } + + private int updateLAI(BmAgreementCombine bmAgreement, String createBy) { + + List baiList = acMapper.selectLAIList(bmAgreement); + + baiList.removeIf(Objects::isNull); + if (CollectionUtils.isNotEmpty(baiList) && baiList.size()>0) { + for (BmAgreementCombine bai : baiList){ + bai.setNewProId(bmAgreement.getProId()); + bai.setNewUnitId(bmAgreement.getUnitId()); + acMapper.updateLAI(bai); + bai.setCreateBy(createBy); + bai.setTableId(bai.getId()+""); + bai.setTableName("lease_apply_info"); + log.info("修改表:lease_apply_info,修改oldProId-->newProId,oldUnitId-->newUnitId,记录修改信息"); + acMapper.insertCombine(bai); + } + } + return 1; + } +} diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/service/impl/BmProjectCombineServiceImpl.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/service/impl/BmProjectCombineServiceImpl.java index 9d64f3f7..8cc50cdb 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/service/impl/BmProjectCombineServiceImpl.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/service/impl/BmProjectCombineServiceImpl.java @@ -49,7 +49,7 @@ public class BmProjectCombineServiceImpl implements IBmProjectCombineService res= updateLAI(project,createBy); //业务办理领料申请:材料站领料申请:clz_lease_apply_info,修改oldProId-->newProId,记录修改信息 res= updateCLAI(project,createBy); - + //删除工程,记录修改信息 res= updateDelFlag(project,createBy); diff --git a/bonus-modules/bonus-material/src/main/resources/mapper/material/basic/BmAgreementCombineMapper.xml b/bonus-modules/bonus-material/src/main/resources/mapper/material/basic/BmAgreementCombineMapper.xml new file mode 100644 index 00000000..9eb36cc1 --- /dev/null +++ b/bonus-modules/bonus-material/src/main/resources/mapper/material/basic/BmAgreementCombineMapper.xml @@ -0,0 +1,202 @@ + + + + + + + + + insert into sys_combine_agreement + + tab_name, + tab_id, + pre_pro_id, + new_pro_id, + pre_unit_id, + new_unit_id, + pre_agreement_id, + new_agreement_id, + create_by, + create_time, + + + #{tableName}, + #{tableId}, + #{oldProId}, + #{newProId}, + #{oldUnitId}, + #{newUnitId}, + #{oldAgreementId}, + #{newAgreementId}, + #{createBy}, + now(), + + + + + update lease_apply_info set unit_id = #{newUnitId}, project_id = #{newProId} where id = #{id} + + + + update lease_publish_details set unit_id = #{newUnitId}, project_id = #{newProId} where id = #{id} + + + + update tm_task_agreement set agreement_id = #{newAgreementId} where id = #{id} + + + + update slt_agreement_info set agreement_id = #{newAgreementId} where id = #{id} + + + + update project_month_costs set agreement_id = #{newAgreementId} where id = #{id} + + + update project_month_info set agreementId = #{newAgreementId} where id = #{id} + + + + + delete from bm_agreement_info where agreement_id = #{oldAgreementId} + + + + + + + + + + + + + + + + + + + + + diff --git a/bonus-modules/bonus-material/src/main/resources/mapper/material/clz/MaterialMachineMapper.xml b/bonus-modules/bonus-material/src/main/resources/mapper/material/clz/MaterialMachineMapper.xml index 322f5bf9..d17674c1 100644 --- a/bonus-modules/bonus-material/src/main/resources/mapper/material/clz/MaterialMachineMapper.xml +++ b/bonus-modules/bonus-material/src/main/resources/mapper/material/clz/MaterialMachineMapper.xml @@ -2409,7 +2409,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" AND sai.end_time IS NULL AND sai.back_id IS NULL AND bp.external_id IS NOT NULL - AND bu.type_id = 32 + AND bu.type_id in(32,33) AND sd.dept_name like concat('%',#{impUnitName},'%')