diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/common/common/RoleCommon.java b/jero-boot-incoming-payment/src/main/java/com/jero/common/common/RoleCommon.java index 8120f629..5d055584 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/common/common/RoleCommon.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/common/common/RoleCommon.java @@ -2,6 +2,10 @@ package com.jero.common.common; public class RoleCommon { + /** + * 项目负责人 + */ + public final static String XMFZR = "xmfzr"; /** * 财务人员 */ diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/project/controller/PayCommonProjectController.java b/jero-boot-incoming-payment/src/main/java/com/jero/project/controller/PayCommonProjectController.java index fd73a85e..37c141d2 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/project/controller/PayCommonProjectController.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/project/controller/PayCommonProjectController.java @@ -18,6 +18,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.jero.common.api.vo.Result; import com.jero.common.aspect.annotation.AutoLog; import com.jero.common.common.ProjectCommon; +import com.jero.common.common.RoleCommon; import com.jero.common.service.ProjectDetailService; import com.jero.common.system.api.ISysBaseAPI; import com.jero.common.system.base.controller.JeroController; @@ -129,6 +130,11 @@ public class PayCommonProjectController extends JeroController page = new Page(pageNo, pageSize); IPage pageList = payCommonProjectService.queryPageList(page, payCommonProject, paymentDate); if(!CollectionUtils.isEmpty(pageList.getRecords())){ @@ -365,6 +371,8 @@ public class PayCommonProjectController extends JeroController 50){ return Result.error("工作组项目长度不能大于50个字符"); } + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + if(Objects.equals(sysUser.getRoleCode(), RoleCommon.XMFZR)){ + payWorkingGroup.setPrincipalA(sysUser.getId()); + payWorkingGroup.setPrincipalB(sysUser.getId()); + } Page page = new Page(pageNo, pageSize); if(!StringUtils.isBlank(payWorkingGroup.getWorkingGroupProject())){ payWorkingGroup.setWorkingGroupProject(oConvertUtils.replaceAllPercent(payWorkingGroup.getWorkingGroupProject())); } IPage pageList = payWorkingGroupService.queryPageList(page, payWorkingGroup); if(!Objects.isNull(pageList)){ - LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); List listPayWorkingGroupVO = pageList.getRecords(); if(!CollectionUtils.isEmpty(listPayWorkingGroupVO)){ setPayWorkingGroupSubItem(listPayWorkingGroupVO); listPayWorkingGroupVO.forEach(p->{ - if(Objects.equals(p.getPrincipalIdB(),sysUser.getId())){ + if(Objects.equals(sysUser.getRoleCode(), RoleCommon.XMFZR) && Objects.equals(p.getPrincipalIdB(),sysUser.getId())){ p.setCheckoutOperation(PayProjectCommon.CHECKOUT_OPERATION2); }else{ p.setCheckoutOperation(PayProjectCommon.CHECKOUT_OPERATION1); @@ -308,6 +313,17 @@ public class PayWorkingGroupController extends JeroController queryWrapper = new LambdaQueryWrapper<>(); diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/project/entity/PayCommonProject.java b/jero-boot-incoming-payment/src/main/java/com/jero/project/entity/PayCommonProject.java index a2e03dcf..a4c82365 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/project/entity/PayCommonProject.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/project/entity/PayCommonProject.java @@ -202,4 +202,9 @@ public class PayCommonProject implements Serializable { @TableField(exist = false) @ApiModelProperty(value = "收入合同处新增标识 flag = 1") private String flag; + /** + * 负责人(权限查询) + */ + @TableField(exist = false) + private String principal; } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/project/entity/PayWorkingGroup.java b/jero-boot-incoming-payment/src/main/java/com/jero/project/entity/PayWorkingGroup.java index 1ca50864..0aebc12c 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/project/entity/PayWorkingGroup.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/project/entity/PayWorkingGroup.java @@ -5,6 +5,7 @@ import java.math.BigDecimal; import java.util.Date; import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; @@ -141,4 +142,14 @@ public class PayWorkingGroup implements Serializable { @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") @ApiModelProperty(value = "更新时间") private Date updateTime; + /** + * 负责人A(用于权限查询) + */ + @TableField(exist = false) + private String principalA; + /** + * 负责人B(用于权限查询) + */ + @TableField(exist = false) + private String principalB; } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/project/mapper/xml/PayCommonProjectMapper.xml b/jero-boot-incoming-payment/src/main/java/com/jero/project/mapper/xml/PayCommonProjectMapper.xml index 94cca1e3..7c9015ca 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/project/mapper/xml/PayCommonProjectMapper.xml +++ b/jero-boot-incoming-payment/src/main/java/com/jero/project/mapper/xml/PayCommonProjectMapper.xml @@ -64,6 +64,9 @@ AND year = #{payCommonProject.year} + + AND pcp.principal_id = #{payCommonProject.principal} + GROUP BY pcp.id ORDER BY pcp.create_time DESC diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/project/mapper/xml/PayWorkingGroupMapper.xml b/jero-boot-incoming-payment/src/main/java/com/jero/project/mapper/xml/PayWorkingGroupMapper.xml index 04a3c97d..981078fb 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/project/mapper/xml/PayWorkingGroupMapper.xml +++ b/jero-boot-incoming-payment/src/main/java/com/jero/project/mapper/xml/PayWorkingGroupMapper.xml @@ -35,6 +35,9 @@ AND year = #{payWorkingGroup.year} + + AND (principal_id_a = #{payWorkingGroup.principalA} OR principal_id_b = #{payWorkingGroup.principalB}) + ORDER BY create_time DESC diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/project/service/impl/PayCommonProjectServiceImpl.java b/jero-boot-incoming-payment/src/main/java/com/jero/project/service/impl/PayCommonProjectServiceImpl.java index 1e8d7b2b..403aceb3 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/project/service/impl/PayCommonProjectServiceImpl.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/project/service/impl/PayCommonProjectServiceImpl.java @@ -6,11 +6,15 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.jero.common.common.ProjectCommon; +import com.jero.common.common.RoleCommon; import com.jero.common.exception.JeroBootException; import com.jero.common.service.ContractCreateProjectSendMessageService; import com.jero.common.service.ProjectDetailService; +import com.jero.common.system.vo.LoginUser; import com.jero.common.vo.ProjectStatusVO; import com.jero.contract.entity.PayIncomeContract; +import com.jero.contract.entity.PayIncomeContractAssociated; +import com.jero.contract.service.IPayIncomeContractAssociatedService; import com.jero.contract.service.IPayIncomeContractService; import com.jero.modules.system.entity.SysUser; import com.jero.modules.system.service.ISysUserService; @@ -25,7 +29,9 @@ import com.jero.temporary.entity.PayContactsManagementTemporary; import com.jero.temporary.service.IPayCompanyManagementTemporaryService; import com.jero.temporary.service.IPayContactsManagementTemporaryService; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang3.StringUtils; +import org.apache.shiro.SecurityUtils; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.transaction.annotation.Transactional; @@ -60,6 +66,9 @@ public class PayCommonProjectServiceImpl extends ServiceImpl"); + } + if(!StringUtils.isEmpty(sb)){ + return sb; + } // 到账!=0 if(!Objects.equals(payCommonProject.getInAccount(),PayProjectCommon.IN_ACCOUNT0)){ - throw new JeroBootException("项目已有到账信息不可删除!"); + sb.append(payCommonProject.getChargeProject() + "项目已有到账信息不可删除!
"); + }else if(!Objects.equals(payCommonProject.getMakeInvoice(),PayProjectCommon.MAKE_INVOICE0)){// 开票!=0 + sb.append(payCommonProject.getChargeProject() + "项目已有开票信息不可删除!
"); + }else if(!Objects.equals(payCommonProject.getMail(),PayProjectCommon.MAIL0)){// 邮寄!=0 + sb.append(payCommonProject.getChargeProject() + "项目已有邮寄信息不可删除!
"); } - // 开票!=0 - if(!Objects.equals(payCommonProject.getMakeInvoice(),PayProjectCommon.MAKE_INVOICE0)){ - throw new JeroBootException("项目已有开票信息不可删除!"); - } - // 邮寄!=0 - if(!Objects.equals(payCommonProject.getMail(),PayProjectCommon.MAIL0)){ - throw new JeroBootException("项目已有邮寄信息不可删除!"); - } - // 校验项目是否已关联合同 抛异常 - payIncomeContractService.getPayIncomeContractAssociated(Collections.singletonList(payCommonProject.getId())); + LambdaQueryWrapper queryPayIncomeContractAssociated = new LambdaQueryWrapper<>(); + queryPayIncomeContractAssociated.eq(PayIncomeContractAssociated::getProjectId,id); + List listPayIncomeContractAssociated = payIncomeContractAssociatedService.list(queryPayIncomeContractAssociated); + if(!CollectionUtils.isEmpty(listPayIncomeContractAssociated)){ + sb.append(payCommonProject.getChargeProject() + "项目已关联合同不可删除!
"); + } // 如果已打报,同步删除打包关联 LambdaUpdateWrapper update = new LambdaUpdateWrapper<>(); update.eq(PayPackCompanyProject::getProjectId,payCommonProject.getId()); @@ -269,6 +301,7 @@ public class PayCommonProjectServiceImpl extends ServiceImpl query = new LambdaQueryWrapper<>(); query.eq(PayWorkingGroupSubItem::getWorkingGroupId,id); List listPayWorkingGroupSubItem = payWorkingGroupSubItemService.list(query); if(!CollectionUtils.isEmpty(listPayWorkingGroupSubItem)) { - throw new JeroBootException("工作组下存在企业,不可进行删除!"); + throw new JeroBootException(payWorkingGroupOld.getWorkingGroupProject() + "工作组下存在企业,不可进行删除!"); } + payWorkingGroupService.removeById(id); LambdaUpdateWrapper updatePayWorkingGroupSubItem = new LambdaUpdateWrapper<>(); updatePayWorkingGroupSubItem.eq(PayWorkingGroupSubItem::getWorkingGroupId,id); @@ -88,11 +100,26 @@ public class PayWorkingGroupServiceImpl extends ServiceImpl ids) { - LambdaQueryWrapper query = new LambdaQueryWrapper<>(); - query.in(PayWorkingGroupSubItem::getWorkingGroupId, ids); - List listPayWorkingGroupSubItem = payWorkingGroupSubItemService.list(query); - if(!CollectionUtils.isEmpty(listPayWorkingGroupSubItem)) { - throw new JeroBootException("工作组下存在企业,不可进行删除!"); + StringBuilder sb = new StringBuilder(); + StringBuilder sb1 = new StringBuilder(); + ids.forEach(p->{ + PayWorkingGroup payWorkingGroupOld = payWorkingGroupService.getById(p); + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + if(Objects.equals(sysUser.getRoleCode(), RoleCommon.XMFZR) && !Objects.equals(payWorkingGroupOld.getPrincipalA(),sysUser.getId())){ + sb.append(payWorkingGroupOld.getWorkingGroupProject() + "工作组项目不可操作!
"); + } + LambdaQueryWrapper query = new LambdaQueryWrapper<>(); + query.eq(PayWorkingGroupSubItem::getWorkingGroupId, p); + List listPayWorkingGroupSubItem = payWorkingGroupSubItemService.list(query); + if(!CollectionUtils.isEmpty(listPayWorkingGroupSubItem)) { + sb1.append(payWorkingGroupOld.getWorkingGroupProject() + "工作组下存在企业,不可进行删除!
updatePayWorkingGroupSubItem = new LambdaUpdateWrapper<>();