普通项目,工作组项目添加权限
This commit is contained in:
@@ -2,6 +2,10 @@ package com.jero.common.common;
|
||||
|
||||
public class RoleCommon {
|
||||
|
||||
/**
|
||||
* 项目负责人
|
||||
*/
|
||||
public final static String XMFZR = "xmfzr";
|
||||
/**
|
||||
* 财务人员
|
||||
*/
|
||||
|
||||
+8
@@ -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<PayCommonProject,
|
||||
payCommonProject.setContactsTemporaryName(oConvertUtils.replaceAllPercent(payCommonProject.getContactsTemporaryName()));
|
||||
}
|
||||
|
||||
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
if(Objects.equals(sysUser.getRoleCode(),RoleCommon.XMFZR)){
|
||||
payCommonProject.setPrincipal(sysUser.getId());
|
||||
}
|
||||
|
||||
Page<PayCommonProject> page = new Page<PayCommonProject>(pageNo, pageSize);
|
||||
IPage<PayCommonProject> pageList = payCommonProjectService.queryPageList(page, payCommonProject, paymentDate);
|
||||
if(!CollectionUtils.isEmpty(pageList.getRecords())){
|
||||
@@ -365,6 +371,8 @@ public class PayCommonProjectController extends JeroController<PayCommonProject,
|
||||
return Result.OK("编辑成功!");
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 通过id删除
|
||||
*
|
||||
|
||||
+18
-2
@@ -11,6 +11,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
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.RoleCommon;
|
||||
import com.jero.common.exception.JeroBootException;
|
||||
import com.jero.common.system.base.controller.JeroController;
|
||||
import com.jero.common.system.query.QueryGenerator;
|
||||
@@ -75,18 +76,22 @@ public class PayWorkingGroupController extends JeroController<PayWorkingGroup, I
|
||||
if(!StringUtils.isBlank(payWorkingGroup.getWorkingGroupProject()) && payWorkingGroup.getWorkingGroupProject().length() > 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<PayWorkingGroupVO> page = new Page<PayWorkingGroupVO>(pageNo, pageSize);
|
||||
if(!StringUtils.isBlank(payWorkingGroup.getWorkingGroupProject())){
|
||||
payWorkingGroup.setWorkingGroupProject(oConvertUtils.replaceAllPercent(payWorkingGroup.getWorkingGroupProject()));
|
||||
}
|
||||
IPage<PayWorkingGroupVO> pageList = payWorkingGroupService.queryPageList(page, payWorkingGroup);
|
||||
if(!Objects.isNull(pageList)){
|
||||
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
List<PayWorkingGroupVO> 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<PayWorkingGroup, I
|
||||
if(!StringUtils.isBlank(msg)){
|
||||
return Result.error(msg.toString());
|
||||
}
|
||||
if(StringUtils.isEmpty(payWorkingGroup.getId())){
|
||||
return Result.error("工作组id不能为空!");
|
||||
}
|
||||
PayWorkingGroup payWorkingGroupOld = payWorkingGroupService.getById(payWorkingGroup.getId());
|
||||
if(Objects.isNull(payWorkingGroupOld)){
|
||||
return Result.error(payWorkingGroupOld.getWorkingGroupProject() + "工作组不存在!");
|
||||
}
|
||||
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
if(Objects.equals(sysUser.getRoleCode(), RoleCommon.XMFZR) && !Objects.equals(payWorkingGroupOld.getPrincipalA(),sysUser.getId())){
|
||||
return Result.error(payWorkingGroupOld.getWorkingGroupProject() + "工作组项目不可操作!");
|
||||
}
|
||||
try {
|
||||
// 编辑保存前再次校验来款项目是否存在
|
||||
LambdaQueryWrapper<PayWorkingGroup> queryWrapper = new LambdaQueryWrapper<>();
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
+3
@@ -64,6 +64,9 @@
|
||||
<if test="payCommonProject.year != null and payCommonProject.year != ''">
|
||||
AND year = #{payCommonProject.year}
|
||||
</if>
|
||||
<if test="payCommonProject.principal != null and payCommonProject.principal != ''">
|
||||
AND pcp.principal_id = #{payCommonProject.principal}
|
||||
</if>
|
||||
</where>
|
||||
GROUP BY pcp.id ORDER BY pcp.create_time DESC
|
||||
</select>
|
||||
|
||||
+3
@@ -35,6 +35,9 @@
|
||||
<if test="payWorkingGroup.year != null and payWorkingGroup.year != ''">
|
||||
AND year = #{payWorkingGroup.year}
|
||||
</if>
|
||||
<if test="payWorkingGroup.principalA != null and payWorkingGroup.principalA != '' and payWorkingGroup.principalB != null and payWorkingGroup.principalB != ''">
|
||||
AND (principal_id_a = #{payWorkingGroup.principalA} OR principal_id_b = #{payWorkingGroup.principalB})
|
||||
</if>
|
||||
</where>
|
||||
ORDER BY create_time DESC
|
||||
</select>
|
||||
|
||||
+48
-15
@@ -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<PayCommonProjectMap
|
||||
private ProjectDetailService projectDetailService;
|
||||
@Resource
|
||||
private ContractCreateProjectSendMessageService contractCreateProjectSendMessageService;
|
||||
@Resource
|
||||
private IPayIncomeContractAssociatedService payIncomeContractAssociatedService;
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -119,7 +128,11 @@ public class PayCommonProjectServiceImpl extends ServiceImpl<PayCommonProjectMap
|
||||
public void editPayCommonProject(PayCommonProject payCommonProject) {
|
||||
PayCommonProject payCommonProjectOld = payCommonProjectService.getById(payCommonProject);
|
||||
if(Objects.isNull(payCommonProjectOld)){
|
||||
throw new JeroBootException("项目不存在!");
|
||||
throw new JeroBootException(payCommonProjectOld.getChargeProject() + "项目不存在!");
|
||||
}
|
||||
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
if(Objects.equals(sysUser.getRoleCode(),RoleCommon.XMFZR) && !Objects.equals(sysUser.getId(),payCommonProjectOld.getPrincipalId())){
|
||||
throw new JeroBootException(payCommonProjectOld.getChargeProject() + "项目不可操作!");
|
||||
}
|
||||
// 项目为打包状态 || 到账!=0 || 开票!=0 || 邮寄!=0
|
||||
if(!Objects.equals(payCommonProject.getChargeCompanyId(),payCommonProjectOld.getChargeCompanyId())
|
||||
@@ -212,7 +225,10 @@ public class PayCommonProjectServiceImpl extends ServiceImpl<PayCommonProjectMap
|
||||
if(StringUtils.isBlank(id)){
|
||||
throw new JeroBootException("id不能为空!");
|
||||
}
|
||||
deleteProject(id);
|
||||
StringBuilder msg = deleteProject(id);
|
||||
if(!StringUtils.isEmpty(msg)){
|
||||
throw new JeroBootException(msg.toString());
|
||||
}
|
||||
payCommonProjectService.removeById(id);
|
||||
}
|
||||
|
||||
@@ -223,11 +239,18 @@ public class PayCommonProjectServiceImpl extends ServiceImpl<PayCommonProjectMap
|
||||
throw new JeroBootException("id不能为空!");
|
||||
}
|
||||
String[] s = ids.split(",");
|
||||
StringBuilder msg = new StringBuilder();
|
||||
for (String s1 : s) {
|
||||
if(StringUtils.isBlank(s1)){
|
||||
throw new JeroBootException("id不能为空!");
|
||||
}
|
||||
deleteProject(s1);
|
||||
StringBuilder sb = deleteProject(s1);
|
||||
if(!StringUtils.isEmpty(sb)){
|
||||
msg.append(sb);
|
||||
}
|
||||
}
|
||||
if(!StringUtils.isEmpty(msg)){
|
||||
throw new JeroBootException(msg.toString());
|
||||
}
|
||||
this.payCommonProjectService.removeByIds(Arrays.asList(ids.split(",")));
|
||||
}
|
||||
@@ -245,23 +268,32 @@ public class PayCommonProjectServiceImpl extends ServiceImpl<PayCommonProjectMap
|
||||
* @Return
|
||||
* @Exception
|
||||
*/
|
||||
private void deleteProject(String id){
|
||||
private StringBuilder deleteProject(String id){
|
||||
StringBuilder sb = new StringBuilder();
|
||||
PayCommonProject payCommonProject = payCommonProjectService.getById(id);
|
||||
// 项目负责人权限最底层,其他任何权限都可直接操作,不需要认证当前项目是否为项目负责人
|
||||
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
if(Objects.equals(sysUser.getRoleCode(),RoleCommon.XMFZR) && !Objects.equals(payCommonProject.getPrincipalId(), sysUser.getId())){
|
||||
sb.append(payCommonProject.getChargeProject() + "项目没有删除权限!<br/>");
|
||||
}
|
||||
if(!StringUtils.isEmpty(sb)){
|
||||
return sb;
|
||||
}
|
||||
// 到账!=0
|
||||
if(!Objects.equals(payCommonProject.getInAccount(),PayProjectCommon.IN_ACCOUNT0)){
|
||||
throw new JeroBootException("项目已有到账信息不可删除!");
|
||||
sb.append(payCommonProject.getChargeProject() + "项目已有到账信息不可删除!<br/>");
|
||||
}else if(!Objects.equals(payCommonProject.getMakeInvoice(),PayProjectCommon.MAKE_INVOICE0)){// 开票!=0
|
||||
sb.append(payCommonProject.getChargeProject() + "项目已有开票信息不可删除!<br/>");
|
||||
}else if(!Objects.equals(payCommonProject.getMail(),PayProjectCommon.MAIL0)){// 邮寄!=0
|
||||
sb.append(payCommonProject.getChargeProject() + "项目已有邮寄信息不可删除!<br/>");
|
||||
}
|
||||
// 开票!=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<PayIncomeContractAssociated> queryPayIncomeContractAssociated = new LambdaQueryWrapper<>();
|
||||
queryPayIncomeContractAssociated.eq(PayIncomeContractAssociated::getProjectId,id);
|
||||
List<PayIncomeContractAssociated> listPayIncomeContractAssociated = payIncomeContractAssociatedService.list(queryPayIncomeContractAssociated);
|
||||
if(!CollectionUtils.isEmpty(listPayIncomeContractAssociated)){
|
||||
sb.append(payCommonProject.getChargeProject() + "项目已关联合同不可删除!<br/>");
|
||||
}
|
||||
// 如果已打报,同步删除打包关联
|
||||
LambdaUpdateWrapper<PayPackCompanyProject> update = new LambdaUpdateWrapper<>();
|
||||
update.eq(PayPackCompanyProject::getProjectId,payCommonProject.getId());
|
||||
@@ -269,6 +301,7 @@ public class PayCommonProjectServiceImpl extends ServiceImpl<PayCommonProjectMap
|
||||
// 删除企业联系人临时数据
|
||||
payCompanyManagementTemporaryService.removeById(payCommonProject.getChargeCompanyTemporaryId());
|
||||
payContactsManagementTemporaryService.removeByIds(Arrays.asList(payCommonProject.getContactsTemporaryId(),payCommonProject.getMailContactsTemporaryId()));
|
||||
return sb;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
+33
-6
@@ -4,7 +4,10 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
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.api.vo.Result;
|
||||
import com.jero.common.common.RoleCommon;
|
||||
import com.jero.common.exception.JeroBootException;
|
||||
import com.jero.common.system.vo.LoginUser;
|
||||
import com.jero.contract.entity.PayIncomeContractAssociated;
|
||||
import com.jero.contract.service.IPayIncomeContractAssociatedService;
|
||||
import com.jero.contract.service.IPayIncomeContractService;
|
||||
@@ -18,6 +21,7 @@ import com.jero.project.mapper.PayWorkingGroupMapper;
|
||||
import com.jero.statistics.entity.*;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.shiro.SecurityUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@@ -73,12 +77,20 @@ public class PayWorkingGroupServiceImpl extends ServiceImpl<PayWorkingGroupMappe
|
||||
@Override
|
||||
@Transactional
|
||||
public void deleteById(String id) {
|
||||
|
||||
PayWorkingGroup payWorkingGroupOld = payWorkingGroupService.getById(id);
|
||||
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
if(Objects.equals(sysUser.getRoleCode(), RoleCommon.XMFZR) && !Objects.equals(payWorkingGroupOld.getPrincipalA(),sysUser.getId())){
|
||||
throw new JeroBootException(payWorkingGroupOld.getWorkingGroupProject() + "工作组项目不可操作!");
|
||||
}
|
||||
|
||||
LambdaQueryWrapper<PayWorkingGroupSubItem> query = new LambdaQueryWrapper<>();
|
||||
query.eq(PayWorkingGroupSubItem::getWorkingGroupId,id);
|
||||
List<PayWorkingGroupSubItem> listPayWorkingGroupSubItem = payWorkingGroupSubItemService.list(query);
|
||||
if(!CollectionUtils.isEmpty(listPayWorkingGroupSubItem)) {
|
||||
throw new JeroBootException("工作组下存在企业,不可进行删除!");
|
||||
throw new JeroBootException(payWorkingGroupOld.getWorkingGroupProject() + "工作组下存在企业,不可进行删除!");
|
||||
}
|
||||
|
||||
payWorkingGroupService.removeById(id);
|
||||
LambdaUpdateWrapper<PayWorkingGroupSubItem> updatePayWorkingGroupSubItem = new LambdaUpdateWrapper<>();
|
||||
updatePayWorkingGroupSubItem.eq(PayWorkingGroupSubItem::getWorkingGroupId,id);
|
||||
@@ -88,11 +100,26 @@ public class PayWorkingGroupServiceImpl extends ServiceImpl<PayWorkingGroupMappe
|
||||
@Override
|
||||
@Transactional
|
||||
public void deleteByIds(List<String> ids) {
|
||||
LambdaQueryWrapper<PayWorkingGroupSubItem> query = new LambdaQueryWrapper<>();
|
||||
query.in(PayWorkingGroupSubItem::getWorkingGroupId, ids);
|
||||
List<PayWorkingGroupSubItem> 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() + "工作组项目不可操作!<br/>");
|
||||
}
|
||||
LambdaQueryWrapper<PayWorkingGroupSubItem> query = new LambdaQueryWrapper<>();
|
||||
query.eq(PayWorkingGroupSubItem::getWorkingGroupId, p);
|
||||
List<PayWorkingGroupSubItem> listPayWorkingGroupSubItem = payWorkingGroupSubItemService.list(query);
|
||||
if(!CollectionUtils.isEmpty(listPayWorkingGroupSubItem)) {
|
||||
sb1.append(payWorkingGroupOld.getWorkingGroupProject() + "工作组下存在企业,不可进行删除!<br/");
|
||||
}
|
||||
});
|
||||
if(!StringUtils.isEmpty(sb)){
|
||||
throw new JeroBootException(sb.toString());
|
||||
}
|
||||
if(!StringUtils.isEmpty(sb1)){
|
||||
throw new JeroBootException(sb1.toString());
|
||||
}
|
||||
payWorkingGroupService.removeByIds(ids);
|
||||
LambdaUpdateWrapper<PayWorkingGroupSubItem> updatePayWorkingGroupSubItem = new LambdaUpdateWrapper<>();
|
||||
|
||||
Reference in New Issue
Block a user