|
@@ -1,23 +1,36 @@
|
|
package cn.iocoder.yudao.module.contract.service.suppliercontract;
|
|
package cn.iocoder.yudao.module.contract.service.suppliercontract;
|
|
|
|
|
|
|
|
+import cn.hutool.core.util.IdUtil;
|
|
|
|
+import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
|
|
|
|
+import cn.iocoder.yudao.framework.common.exception.ErrorCode;
|
|
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
|
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.module.contract.controller.admin.suppliercontract.vo.SupplierContractPageReqVO;
|
|
import cn.iocoder.yudao.module.contract.controller.admin.suppliercontract.vo.SupplierContractPageReqVO;
|
|
import cn.iocoder.yudao.module.contract.controller.admin.suppliercontract.vo.SupplierContractSaveReqVO;
|
|
import cn.iocoder.yudao.module.contract.controller.admin.suppliercontract.vo.SupplierContractSaveReqVO;
|
|
import cn.iocoder.yudao.module.contract.dal.dataobject.suppliercontract.SupplierContractDO;
|
|
import cn.iocoder.yudao.module.contract.dal.dataobject.suppliercontract.SupplierContractDO;
|
|
import cn.iocoder.yudao.module.contract.dal.dataobject.suppliercontract.SupplierContractHistoryDO;
|
|
import cn.iocoder.yudao.module.contract.dal.dataobject.suppliercontract.SupplierContractHistoryDO;
|
|
import cn.iocoder.yudao.module.contract.dal.mysql.suppliercontract.SupplierContractHistoryMapper;
|
|
import cn.iocoder.yudao.module.contract.dal.mysql.suppliercontract.SupplierContractHistoryMapper;
|
|
import cn.iocoder.yudao.module.contract.dal.mysql.suppliercontract.SupplierContractMapper;
|
|
import cn.iocoder.yudao.module.contract.dal.mysql.suppliercontract.SupplierContractMapper;
|
|
|
|
+import cn.iocoder.yudao.module.contract.enums.ContractStatusEnum;
|
|
|
|
+import cn.iocoder.yudao.module.employee.api.EmployeeApi;
|
|
|
|
+import cn.iocoder.yudao.module.employee.api.dto.EmployeeRespDTO;
|
|
|
|
+import cn.iocoder.yudao.module.infra.api.file.FileApi;
|
|
|
|
+import cn.iocoder.yudao.module.system.api.dept.DeptApi;
|
|
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 javax.annotation.Resource;
|
|
import javax.annotation.Resource;
|
|
|
|
+import java.time.LocalDateTime;
|
|
|
|
+import java.time.format.DateTimeFormatter;
|
|
|
|
+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.SUPPLIER_CONTRACT_HISTORY_NOT_EXISTS;
|
|
import static cn.iocoder.yudao.module.contract.enums.ErrorCodeConstants.SUPPLIER_CONTRACT_HISTORY_NOT_EXISTS;
|
|
import static cn.iocoder.yudao.module.contract.enums.ErrorCodeConstants.SUPPLIER_CONTRACT_NOT_EXISTS;
|
|
import static cn.iocoder.yudao.module.contract.enums.ErrorCodeConstants.SUPPLIER_CONTRACT_NOT_EXISTS;
|
|
|
|
+import static cn.iocoder.yudao.module.employee.enums.ErrorCodeConstants.EMPLOYEE_INFO_NOT_EXISTS;
|
|
|
|
|
|
/**
|
|
/**
|
|
* 采购合同信息 Service 实现类
|
|
* 采购合同信息 Service 实现类
|
|
@@ -33,11 +46,59 @@ public class SupplierContractServiceImpl implements SupplierContractService {
|
|
@Resource
|
|
@Resource
|
|
private SupplierContractHistoryMapper supplierContractHistoryMapper;
|
|
private SupplierContractHistoryMapper supplierContractHistoryMapper;
|
|
|
|
|
|
|
|
+ @Resource
|
|
|
|
+ private FileApi fileApi;
|
|
|
|
+
|
|
|
|
+ @Resource
|
|
|
|
+ private EmployeeApi employeeApi;
|
|
|
|
+
|
|
|
|
+ @Resource
|
|
|
|
+ private DeptApi deptApi;
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public String getSupplierContractCode() {
|
|
|
|
+ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd");
|
|
|
|
+ String format = formatter.format(LocalDateTime.now());
|
|
|
|
+ return format + IdUtil.fastSimpleUUID();
|
|
|
|
+ }
|
|
|
|
+
|
|
@Override
|
|
@Override
|
|
public Long createSupplierContract(SupplierContractSaveReqVO createReqVO) {
|
|
public Long createSupplierContract(SupplierContractSaveReqVO createReqVO) {
|
|
|
|
+ Long loginUserId = SecurityFrameworkUtils.getLoginUserId();
|
|
|
|
+ EmployeeRespDTO loginEmployee = employeeApi.getEmployeeByUserId(loginUserId);
|
|
|
|
+ if (Objects.isNull(loginEmployee)) {
|
|
|
|
+ throw exception(new ErrorCode(EMPLOYEE_INFO_NOT_EXISTS.getCode(), "登录用户员工信息不存在"));
|
|
|
|
+ }
|
|
// 插入
|
|
// 插入
|
|
SupplierContractDO supplierContract = BeanUtils.toBean(createReqVO, SupplierContractDO.class);
|
|
SupplierContractDO supplierContract = BeanUtils.toBean(createReqVO, SupplierContractDO.class);
|
|
|
|
+ // uuid
|
|
|
|
+ supplierContract.setSupplierContractUuid(IdUtil.fastSimpleUUID());
|
|
|
|
+ // 负责人及部门
|
|
|
|
+ Long ownerEmployeeId = createReqVO.getOwnerEmployeeId();
|
|
|
|
+ EmployeeRespDTO ownerEmployee = employeeApi.getEmployeeById(ownerEmployeeId);
|
|
|
|
+ if (Objects.isNull(ownerEmployee)) {
|
|
|
|
+ throw exception(EMPLOYEE_INFO_NOT_EXISTS);
|
|
|
|
+ }
|
|
|
|
+ Long deptId = ownerEmployee.getDeptId();
|
|
|
|
+ if (Objects.nonNull(deptId)) {
|
|
|
|
+ supplierContract.setDeptId(deptId);
|
|
|
|
+ }
|
|
|
|
+ // 合同状态:0未归档
|
|
|
|
+ supplierContract.setContractStatus(ContractStatusEnum.UNARCHIVED.getStatus());
|
|
|
|
+ // 是否关闭:0否
|
|
|
|
+ supplierContract.setClosed(CommonStatusEnum.ENABLE.getStatus());
|
|
|
|
+ // 是否终止:0否
|
|
|
|
+ supplierContract.setTerminate(CommonStatusEnum.ENABLE.getStatus());
|
|
|
|
+ // 是否变更
|
|
|
|
+ supplierContract.setIsChange(CommonStatusEnum.ENABLE.getStatus());
|
|
|
|
+ // 创建人
|
|
|
|
+ supplierContract.setCreator(String.valueOf(loginEmployee.getId()));
|
|
|
|
+
|
|
supplierContractMapper.insert(supplierContract);
|
|
supplierContractMapper.insert(supplierContract);
|
|
|
|
+
|
|
|
|
+ // 附件
|
|
|
|
+ fileApi.updateFileBiz(createReqVO.getFileIdList(), supplierContract.getSupplierContractUuid());
|
|
|
|
+
|
|
// 返回
|
|
// 返回
|
|
return supplierContract.getId();
|
|
return supplierContract.getId();
|
|
}
|
|
}
|
|
@@ -45,10 +106,23 @@ public class SupplierContractServiceImpl implements SupplierContractService {
|
|
@Override
|
|
@Override
|
|
public void updateSupplierContract(SupplierContractSaveReqVO updateReqVO) {
|
|
public void updateSupplierContract(SupplierContractSaveReqVO updateReqVO) {
|
|
// 校验存在
|
|
// 校验存在
|
|
- validateSupplierContractExists(updateReqVO.getId());
|
|
|
|
|
|
+ SupplierContractDO supplierContractDO = validateSupplierContractExists(updateReqVO.getId());
|
|
// 更新
|
|
// 更新
|
|
SupplierContractDO updateObj = BeanUtils.toBean(updateReqVO, SupplierContractDO.class);
|
|
SupplierContractDO updateObj = BeanUtils.toBean(updateReqVO, SupplierContractDO.class);
|
|
|
|
+ // 负责人及部门
|
|
|
|
+ Long ownerEmployeeId = updateReqVO.getOwnerEmployeeId();
|
|
|
|
+ EmployeeRespDTO ownerEmployee = employeeApi.getEmployeeById(ownerEmployeeId);
|
|
|
|
+ if (Objects.isNull(ownerEmployee)) {
|
|
|
|
+ throw exception(EMPLOYEE_INFO_NOT_EXISTS);
|
|
|
|
+ }
|
|
|
|
+ Long deptId = ownerEmployee.getDeptId();
|
|
|
|
+ if (Objects.nonNull(deptId)) {
|
|
|
|
+ updateObj.setDeptId(deptId);
|
|
|
|
+ }
|
|
supplierContractMapper.updateById(updateObj);
|
|
supplierContractMapper.updateById(updateObj);
|
|
|
|
+
|
|
|
|
+ // 附件
|
|
|
|
+ fileApi.updateFileBiz(updateReqVO.getFileIdList(), supplierContractDO.getSupplierContractUuid());
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
@@ -60,7 +134,7 @@ public class SupplierContractServiceImpl implements SupplierContractService {
|
|
supplierContractMapper.deleteById(id);
|
|
supplierContractMapper.deleteById(id);
|
|
|
|
|
|
// 删除子表
|
|
// 删除子表
|
|
- deleteSupplierContractHistoryByCode(supplierContractDO.getCode());
|
|
|
|
|
|
+ deleteSupplierContractHistoryByCode(supplierContractDO.getSupplierContractCode());
|
|
}
|
|
}
|
|
|
|
|
|
private SupplierContractDO validateSupplierContractExists(Long id) {
|
|
private SupplierContractDO validateSupplierContractExists(Long id) {
|