|
@@ -8,7 +8,13 @@ import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
|
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
|
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
|
import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
|
|
import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
|
|
-import cn.iocoder.yudao.module.contract.controller.admin.customercontract.vo.*;
|
|
|
|
|
|
+import cn.iocoder.yudao.module.contract.controller.admin.customercontract.vo.CustomerContractCloseReqVO;
|
|
|
|
+import cn.iocoder.yudao.module.contract.controller.admin.customercontract.vo.CustomerContractListVO;
|
|
|
|
+import cn.iocoder.yudao.module.contract.controller.admin.customercontract.vo.CustomerContractPageReqVO;
|
|
|
|
+import cn.iocoder.yudao.module.contract.controller.admin.customercontract.vo.CustomerContractRespVO;
|
|
|
|
+import cn.iocoder.yudao.module.contract.controller.admin.customercontract.vo.CustomerContractSaveReqVO;
|
|
|
|
+import cn.iocoder.yudao.module.contract.controller.admin.customercontract.vo.CustomerContractStatusReqVO;
|
|
|
|
+import cn.iocoder.yudao.module.contract.controller.admin.customercontract.vo.CustomerContractTerminatedReqVO;
|
|
import cn.iocoder.yudao.module.contract.dal.dataobject.customercontract.CustomerContractDO;
|
|
import cn.iocoder.yudao.module.contract.dal.dataobject.customercontract.CustomerContractDO;
|
|
import cn.iocoder.yudao.module.contract.dal.dataobject.customercontract.CustomerContractHistoryDO;
|
|
import cn.iocoder.yudao.module.contract.dal.dataobject.customercontract.CustomerContractHistoryDO;
|
|
import cn.iocoder.yudao.module.contract.dal.mysql.customercontract.CustomerContractHistoryMapper;
|
|
import cn.iocoder.yudao.module.contract.dal.mysql.customercontract.CustomerContractHistoryMapper;
|
|
@@ -18,23 +24,29 @@ import cn.iocoder.yudao.module.employee.api.EmployeeApi;
|
|
import cn.iocoder.yudao.module.employee.api.dto.EmployeeRespDTO;
|
|
import cn.iocoder.yudao.module.employee.api.dto.EmployeeRespDTO;
|
|
import cn.iocoder.yudao.module.infra.api.file.FileApi;
|
|
import cn.iocoder.yudao.module.infra.api.file.FileApi;
|
|
import cn.iocoder.yudao.module.system.api.dept.DeptApi;
|
|
import cn.iocoder.yudao.module.system.api.dept.DeptApi;
|
|
|
|
+import cn.iocoder.yudao.module.system.api.permission.PermissionApi;
|
|
|
|
+import cn.iocoder.yudao.module.system.api.permission.dto.DeptDataPermissionRespDTO;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.validation.annotation.Validated;
|
|
import org.springframework.validation.annotation.Validated;
|
|
-import org.w3c.dom.ls.LSException;
|
|
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
import javax.annotation.Resource;
|
|
import java.time.LocalDateTime;
|
|
import java.time.LocalDateTime;
|
|
import java.time.format.DateTimeFormatter;
|
|
import java.time.format.DateTimeFormatter;
|
|
import java.util.Collections;
|
|
import java.util.Collections;
|
|
-import java.util.ConcurrentModificationException;
|
|
|
|
import java.util.List;
|
|
import java.util.List;
|
|
import java.util.Objects;
|
|
import java.util.Objects;
|
|
|
|
|
|
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
|
|
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
|
|
-import static cn.iocoder.yudao.module.contract.enums.ErrorCodeConstants.*;
|
|
|
|
|
|
+import static cn.iocoder.yudao.module.contract.enums.ErrorCodeConstants.CONTRACT_NOT_ALLOW_OPERATE_BY_OTHER;
|
|
|
|
+import static cn.iocoder.yudao.module.contract.enums.ErrorCodeConstants.CUSTOMER_CONTRACT_CODE_EXISTS;
|
|
|
|
+import static cn.iocoder.yudao.module.contract.enums.ErrorCodeConstants.CUSTOMER_CONTRACT_HISTORY_NOT_EXISTS;
|
|
|
|
+import static cn.iocoder.yudao.module.contract.enums.ErrorCodeConstants.CUSTOMER_CONTRACT_NAME_EXISTS;
|
|
|
|
+import static cn.iocoder.yudao.module.contract.enums.ErrorCodeConstants.CUSTOMER_CONTRACT_NOT_CLOSED;
|
|
|
|
+import static cn.iocoder.yudao.module.contract.enums.ErrorCodeConstants.CUSTOMER_CONTRACT_NOT_EXISTS;
|
|
|
|
+import static cn.iocoder.yudao.module.contract.enums.ErrorCodeConstants.CUSTOMER_CONTRACT_START_DATE_GREATER_THAN_END_DATE;
|
|
import static cn.iocoder.yudao.module.employee.enums.ErrorCodeConstants.EMPLOYEE_INFO_NOT_EXISTS;
|
|
import static cn.iocoder.yudao.module.employee.enums.ErrorCodeConstants.EMPLOYEE_INFO_NOT_EXISTS;
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -60,6 +72,9 @@ public class CustomerContractServiceImpl implements CustomerContractService {
|
|
@Resource
|
|
@Resource
|
|
private DeptApi deptApi;
|
|
private DeptApi deptApi;
|
|
|
|
|
|
|
|
+ @Resource
|
|
|
|
+ private PermissionApi permissionApi;
|
|
|
|
+
|
|
@Override
|
|
@Override
|
|
public String getCustomerContractCode() {
|
|
public String getCustomerContractCode() {
|
|
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd");
|
|
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd");
|
|
@@ -115,7 +130,7 @@ public class CustomerContractServiceImpl implements CustomerContractService {
|
|
}
|
|
}
|
|
|
|
|
|
// 创建人
|
|
// 创建人
|
|
- customerContract.setCreator(String.valueOf(loginEmployee.getId()));
|
|
|
|
|
|
+ // customerContract.setCreator(String.valueOf(loginEmployee.getId()));
|
|
|
|
|
|
customerContractMapper.insert(customerContract);
|
|
customerContractMapper.insert(customerContract);
|
|
|
|
|
|
@@ -152,6 +167,8 @@ public class CustomerContractServiceImpl implements CustomerContractService {
|
|
public void updateCustomerContract(CustomerContractSaveReqVO updateReqVO) {
|
|
public void updateCustomerContract(CustomerContractSaveReqVO updateReqVO) {
|
|
// 校验存在
|
|
// 校验存在
|
|
CustomerContractDO customerContractDO = validateCustomerContractExists(updateReqVO.getId());
|
|
CustomerContractDO customerContractDO = validateCustomerContractExists(updateReqVO.getId());
|
|
|
|
+ // 校验能否更新
|
|
|
|
+ validateOperator(SecurityFrameworkUtils.getLoginUserId(), Long.valueOf(customerContractDO.getCreator()));
|
|
String customerContractCode = updateReqVO.getCustomerContractCode();
|
|
String customerContractCode = updateReqVO.getCustomerContractCode();
|
|
if (StrUtil.isNotBlank(customerContractCode)) {
|
|
if (StrUtil.isNotBlank(customerContractCode)) {
|
|
validateCustomerContractCode(customerContractCode, updateReqVO.getId());
|
|
validateCustomerContractCode(customerContractCode, updateReqVO.getId());
|
|
@@ -185,11 +202,18 @@ public class CustomerContractServiceImpl implements CustomerContractService {
|
|
fileApi.updateFileBiz(updateReqVO.getFileIdList(), customerContractDO.getCustomerContractUuid());
|
|
fileApi.updateFileBiz(updateReqVO.getFileIdList(), customerContractDO.getCustomerContractUuid());
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ private void validateOperator(Long loginUserId, Long creator) {
|
|
|
|
+ if (!Objects.equals(loginUserId, creator)) {
|
|
|
|
+ throw exception(CONTRACT_NOT_ALLOW_OPERATE_BY_OTHER);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
@Override
|
|
@Override
|
|
@Transactional(rollbackFor = Exception.class)
|
|
@Transactional(rollbackFor = Exception.class)
|
|
public void deleteCustomerContract(Long id) {
|
|
public void deleteCustomerContract(Long id) {
|
|
// 校验存在
|
|
// 校验存在
|
|
CustomerContractDO customerContractDO = validateCustomerContractExists(id);
|
|
CustomerContractDO customerContractDO = validateCustomerContractExists(id);
|
|
|
|
+ validateOperator(SecurityFrameworkUtils.getLoginUserId(), Long.valueOf(customerContractDO.getCreator()));
|
|
// 删除
|
|
// 删除
|
|
customerContractMapper.deleteById(id);
|
|
customerContractMapper.deleteById(id);
|
|
|
|
|
|
@@ -219,6 +243,11 @@ public class CustomerContractServiceImpl implements CustomerContractService {
|
|
|
|
|
|
@Override
|
|
@Override
|
|
public PageResult<CustomerContractRespVO> getCustomerContractPage(CustomerContractPageReqVO pageReqVO) {
|
|
public PageResult<CustomerContractRespVO> getCustomerContractPage(CustomerContractPageReqVO pageReqVO) {
|
|
|
|
+ // 数据权限
|
|
|
|
+ Long loginUserId = SecurityFrameworkUtils.getLoginUserId();
|
|
|
|
+ DeptDataPermissionRespDTO deptDataPermission = permissionApi.getDeptDataPermission(loginUserId);
|
|
|
|
+ pageReqVO.setDeptDataPermission(deptDataPermission);
|
|
|
|
+ pageReqVO.setUserId(loginUserId);
|
|
pageReqVO.setPageNo((pageReqVO.getPageNo() - 1) * pageReqVO.getPageSize());
|
|
pageReqVO.setPageNo((pageReqVO.getPageNo() - 1) * pageReqVO.getPageSize());
|
|
|
|
|
|
long pageCount = -1;
|
|
long pageCount = -1;
|