diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/controller/PsApproverRecordController.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/controller/PsApproverRecordController.java index 0b74581..77cea26 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/controller/PsApproverRecordController.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/controller/PsApproverRecordController.java @@ -56,7 +56,43 @@ public class PsApproverRecordController extends BaseController { public R approver(@NotBlank(message = "操作类型不能为空") String operate, @NotNull(message = "数据id不能为空") String id, String desc) { String[] ids = id.split(","); - contractInfoService.finish(psApproverRecordService.approver(operate, ids, desc)); + contractInfoService.finish(psApproverRecordService.approver(operate, ids, desc, 0)); + return R.ok(); + } + + /** + * 财务审批停止代账 + * + * @param operate (2 通过 3拒绝) + * @param id 审批表id + * @param desc 备注(通过/拒绝原因) + * @return + */ + @SaCheckPermission("cw:apply:btn") + @RepeatSubmit() + @GetMapping("/cwApproverStopAccount") + public R cwApproverStopAccount(@NotBlank(message = "操作类型不能为空") String operate, + @NotNull(message = "数据id不能为空") String id, String desc) { + String[] ids = id.split(","); + contractInfoService.finish(psApproverRecordService.approver(operate, ids, desc, 1)); + return R.ok(); + } + + /** + * 总裁审批停止代账 + * + * @param operate (2 通过 3拒绝) + * @param id 审批表id + * @param desc 备注(通过/拒绝原因) + * @return + */ + @SaCheckPermission("zc:apply:btn") + @RepeatSubmit() + @GetMapping("/zcApproverStopAccount") + public R zcApproverStopAccount(@NotBlank(message = "操作类型不能为空") String operate, + @NotNull(message = "数据id不能为空") String id, String desc) { + String[] ids = id.split(","); + contractInfoService.finish(psApproverRecordService.approver(operate, ids, desc, 2)); return R.ok(); } diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/controller/PsCompanyInfoController.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/controller/PsCompanyInfoController.java index 192258c..6e8dc68 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/controller/PsCompanyInfoController.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/controller/PsCompanyInfoController.java @@ -98,8 +98,8 @@ public class PsCompanyInfoController extends BaseController { @SaCheckPermission("business:companyInfo:list") @Log(title = "停止代账" ) @GetMapping("/applyTerminationService") - public R terminationService(PsCompanyQueryBo queryBo, PageQuery pageQuery) { - psCompanyInfoService.terminationService(queryBo.getId()); + public R terminationService(Long serviceCompanyId) { + psCompanyInfoService.terminationService(serviceCompanyId); return R.ok(); } diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/bo/PsCompanyInfoBo.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/bo/PsCompanyInfoBo.java index ffd90d8..a79fe03 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/bo/PsCompanyInfoBo.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/domain/bo/PsCompanyInfoBo.java @@ -236,7 +236,10 @@ public class PsCompanyInfoBo { * 跟进人员 */ private List followUsers; - + /** + * 服务状态0终止1正常 + */ + private Integer serviceStatus; public BigDecimal getContractAmount(){ this.businessAmount = businessList == null ? new BigDecimal(0) : businessList.stream().map(PsContractBusinessBo::getBusinessAmount).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add); diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/enums/ApproverStepEnum.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/enums/ApproverStepEnum.java new file mode 100644 index 0000000..28ba55b --- /dev/null +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/enums/ApproverStepEnum.java @@ -0,0 +1,17 @@ +package com.pusong.business.enums; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * 审批表状态枚举 + */ +@Getter +@AllArgsConstructor +public enum ApproverStepEnum { + INIT("0","未审批"), + CW_APPLY("1","财务审批成功"), + ZC_APPLY("2","总裁审批成功"); + private String code; + private String text; +} diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/IPsApproverRecordService.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/IPsApproverRecordService.java index 7b924d8..ebe69ae 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/IPsApproverRecordService.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/IPsApproverRecordService.java @@ -46,9 +46,10 @@ public interface IPsApproverRecordService { * * @param operate (2 通过 3拒绝) * @param id 审批表id + * @param from 0通用审批 1财务审批代账 2总裁审批代账 * @return */ - String approver(String operate, String [] id,String desc); + String approver(String operate, String [] id,String desc, int from); /** * 根据条件查询最后一条审批失败的原因 diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/SignApproverServiceImpl.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/SignApproverServiceImpl.java index 154c998..5ff4eed 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/SignApproverServiceImpl.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/SignApproverServiceImpl.java @@ -1,26 +1,18 @@ package com.pusong.business.service.approver.impl; -import com.alibaba.fastjson.JSON; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.pusong.business.domain.PsApproverRecord; import com.pusong.business.domain.PsContractInfo; -import com.pusong.business.domain.bo.*; -import com.pusong.business.domain.vo.PsApproverRecordVo; +import com.pusong.business.domain.bo.PsCompanyInfoBo; +import com.pusong.business.domain.bo.PsContractBusinessBo; +import com.pusong.business.domain.bo.PsContractBusinessDetailBo; +import com.pusong.business.domain.bo.PsContractInfoBo; import com.pusong.business.domain.vo.PsCompanyInfoVo; import com.pusong.business.domain.vo.PsContractBusinessVo; import com.pusong.business.domain.vo.PsContractInfoVo; -import com.pusong.business.enums.ApproverStatusEnum; import com.pusong.business.enums.ApproverTypeEnum; import com.pusong.business.enums.CommonStatusEnum; -import com.pusong.business.mapper.PsApproverRecordMapper; import com.pusong.business.service.IPsContractBusinessService; import com.pusong.business.service.IPsContractInfoService; -import com.pusong.common.core.utils.MapstructUtils; -import com.pusong.common.core.utils.StringUtils; -import com.pusong.common.mybatis.core.page.PageQuery; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; @@ -56,6 +48,7 @@ public class SignApproverServiceImpl extends ApproverAbstractServiceImpl { PsContractInfoBo bo = new PsContractInfoBo(); bo.setSignStatus(CommonStatusEnum.SUCCESS.getCode()); bo.setContactPersonName(vo.getContactPersonName()); + bo.setContractMain(vo.getContractMain()); //合同信息 PsContractInfo info = new PsContractInfo(); BeanUtils.copyProperties(vo, info); diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/StopAccountServiceImpl.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/StopAccountServiceImpl.java index 3beeb85..d2bb1cb 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/StopAccountServiceImpl.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/approver/impl/StopAccountServiceImpl.java @@ -1,6 +1,8 @@ package com.pusong.business.service.approver.impl; import com.pusong.business.domain.PsApproverRecord; +import com.pusong.business.domain.bo.PsCompanyInfoBo; +import com.pusong.business.enums.ApproverStepEnum; import com.pusong.business.enums.ApproverTypeEnum; import com.pusong.business.mapper.PsApproverRecordMapper; import com.pusong.business.mapper.PsTaskAppointMapper; @@ -29,11 +31,23 @@ public class StopAccountServiceImpl extends ApproverAbstractServiceImpl { private final IPsCompanyInfoService companyInfoService; @Resource private PsApproverRecordMapper recordMapper; + + private final IPsCompanyInfoService psCompanyInfoService; @Override public void success(PsApproverRecord psApproverRecord) { - //修改服务公司状态为终止 - - + if (ApproverStepEnum.INIT.getCode().equals(psApproverRecord.getUpdateData())){ + //转给总裁 + psApproverRecord.setUpdateData(ApproverStepEnum.CW_APPLY.getCode()); + return; + } + if (ApproverStepEnum.CW_APPLY.getCode().equals(psApproverRecord.getUpdateData())){ + psApproverRecord.setUpdateData(ApproverStepEnum.ZC_APPLY.getCode()); + //修改服务公司状态为终止 + PsCompanyInfoBo bo = new PsCompanyInfoBo(); + bo.setId(Long.valueOf(psApproverRecord.getBusinessId())); + bo.setServiceStatus(0); + psCompanyInfoService.update(bo); + } } /** diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsApproverRecordServiceImpl.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsApproverRecordServiceImpl.java index dfa3dbc..d1f5997 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsApproverRecordServiceImpl.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsApproverRecordServiceImpl.java @@ -9,6 +9,7 @@ import com.pusong.business.domain.PsApproverRecord; import com.pusong.business.domain.bo.PsApproverRecordBo; import com.pusong.business.domain.vo.PsApproverRecordVo; import com.pusong.business.enums.ApproverStatusEnum; +import com.pusong.business.enums.ApproverStepEnum; import com.pusong.business.enums.ApproverTypeEnum; import com.pusong.business.mapper.PsApproverRecordMapper; import com.pusong.business.service.IPsApproverRecordService; @@ -90,16 +91,27 @@ public class PsApproverRecordServiceImpl implements IPsApproverRecordService { * * @param operate (2 通过 3拒绝) * @param ids 审批表id + * @param from 0通用审批 1财务审批代账 2总裁审批代账 * @return */ @Transactional - public String approver(String operate, String[] ids, String desc){ + public String approver(String operate, String[] ids, String desc, int from){ for (String idStr : ids) { Long id = Long.valueOf(idStr); PsApproverRecord info = baseMapper.selectById(id); - if(!StringUtils.equals(ApproverStatusEnum.INIT.getCode(),info.getApproverStatus())){ + if(!StringUtils.equals(ApproverStatusEnum.INIT.getCode(), info.getApproverStatus())){ throw new ServiceException("操作失败:该审批状态已变更"); } + if (from == 1){ + if (!ApproverStepEnum.INIT.getCode().equals(info.getUpdateData())){ + throw new ServiceException("操作失败:当前阶段财务不能审批"); + } + }else if(from == 2){ + if (!ApproverStepEnum.CW_APPLY.getCode().equals(info.getUpdateData())){ + throw new ServiceException("操作失败:当前阶段总裁不能审批"); + } + } + ApproverService service = container.getService(info.getBusinessType()); if(StringUtils.equals(ApproverStatusEnum.SUCCESS.getCode(),operate)){ service.success(info); diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsContractInfoServiceImpl.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsContractInfoServiceImpl.java index 97b6679..8088e2b 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsContractInfoServiceImpl.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsContractInfoServiceImpl.java @@ -630,11 +630,11 @@ public class PsContractInfoServiceImpl implements IPsContractInfoService { map.put("serviceCompany", bo.getServiceCompanyInfoList()); map.put("main", JSON.parseObject(main.getRemark()));// 合同主体信息 map.put("mainId", bo.getContractMain()); - if (bo.getContractMain().equals("1")){ + if ("1".equals(bo.getContractMain())){ map.put(MAINPREFIX, "zx-"); - }else if (bo.getContractMain().equals("2")){ + }else if ("2".equals(bo.getContractMain())){ map.put(MAINPREFIX, "cs-"); - }else if (bo.getContractMain().equals("3")){ + }else if ("3".equals(bo.getContractMain())){ map.put(MAINPREFIX, "sw-"); } diff --git a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsTaskServiceImpl.java b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsTaskServiceImpl.java index 9a8f991..15243a5 100644 --- a/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsTaskServiceImpl.java +++ b/pusong-modules/pusong-business/src/main/java/com/pusong/business/service/impl/PsTaskServiceImpl.java @@ -528,7 +528,7 @@ public class PsTaskServiceImpl implements IPsTaskService { lqw.eq(bo.getId() != null,"main.id",bo.getId()); - lqw.in(bo.getExtendList() != null,"main.extend", bo.getExtendList()); + lqw.in(bo.getExtendList() != null && !bo.getExtendList().isEmpty(),"main.extend", bo.getExtendList()); lqw.like(StringUtils.isNotBlank(bo.getContractCode()), "main.contract_code", bo.getContractCode()); lqw.like(StringUtils.isNotBlank(bo.getCompanyName()), "com.company_name", bo.getCompanyName());//公司名称 @@ -702,19 +702,21 @@ public class PsTaskServiceImpl implements IPsTaskService { PageQuery pageQuery = new PageQuery(); pageQuery.setPageSize(100); Page res = recordMapper.selectPageFreeApproverList(pageQuery.build(), lqw); - List approverIds = res.getRecords().stream().map(PsApproverRecordVo::idStr).toList(); + if (!res.getRecords().isEmpty()){ + List approverIds = res.getRecords().stream().map(PsApproverRecordVo::idStr).toList(); + PsTaskQueryBo psTaskQueryBo = new PsTaskQueryBo(); + psTaskQueryBo.setExtendList(approverIds); - PsTaskQueryBo psTaskQueryBo = new PsTaskQueryBo(); - psTaskQueryBo.setExtendList(approverIds); + pageQuery.setPageSize(approverIds.size()); + TableDataInfo psTaskMainVoTableDataInfo = queryPageList(psTaskQueryBo, pageQuery); + Map approverIdMap = psTaskMainVoTableDataInfo.getRows().stream().collect(Collectors.toMap(PsTaskMainVo::getExtend, a -> a)); - pageQuery.setPageSize(approverIds.size()); - TableDataInfo psTaskMainVoTableDataInfo = queryPageList(psTaskQueryBo, pageQuery); - Map approverIdMap = psTaskMainVoTableDataInfo.getRows().stream().collect(Collectors.toMap(PsTaskMainVo::getExtend, a -> a)); - - for (PsApproverRecordVo record : res.getRecords()) { - record.setPsTaskMainVo(approverIdMap.get(record.idStr())); + for (PsApproverRecordVo record : res.getRecords()) { + record.setPsTaskMainVo(approverIdMap.get(record.idStr())); + } } + return res; } } diff --git a/pusong-modules/pusong-business/src/main/resources/mapper/business/PsTaskMainMapper.xml b/pusong-modules/pusong-business/src/main/resources/mapper/business/PsTaskMainMapper.xml index da9b7b9..6531dc3 100644 --- a/pusong-modules/pusong-business/src/main/resources/mapper/business/PsTaskMainMapper.xml +++ b/pusong-modules/pusong-business/src/main/resources/mapper/business/PsTaskMainMapper.xml @@ -27,6 +27,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select main.*, main.id main_id, + main.id mainid, con.is_proxy con_is_proxy, con.apply_date con_apply_date, con.is_due con_is_due,