mirror of
https://gitee.com/hhyykk/ipms-sjy.git
synced 2025-02-13 00:54:59 +08:00
[feat] 新增外部合同管理的流程管理 新增外部合同历史管理
This commit is contained in:
parent
e20a7fca05
commit
b40fda808a
@ -1,5 +1,7 @@
|
||||
package cn.iocoder.yudao.module.cms.controller.admin.outscontracthistory;
|
||||
|
||||
import cn.iocoder.yudao.framework.common.util.file.FileUtils;
|
||||
import cn.iocoder.yudao.module.cms.dal.dataobject.outscontracthistory.OutsContractHistoryDetailDO;
|
||||
import cn.iocoder.yudao.module.cms.service.outscontracthistory.OutsContractHistoryService;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import jakarta.annotation.Resource;
|
||||
@ -27,7 +29,6 @@ import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*;
|
||||
import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
|
||||
|
||||
import cn.iocoder.yudao.module.cms.controller.admin.outscontracthistory.vo.*;
|
||||
import cn.iocoder.yudao.module.cms.dal.dataobject.outscontracthistory.OutsContractHistoryDO;
|
||||
|
||||
@Tag(name = "管理后台 - 外包合同历史")
|
||||
@RestController
|
||||
@ -52,16 +53,20 @@ public class OutsContractHistoryController {
|
||||
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
||||
@PreAuthorize("@ss.hasPermission('cms:outs-contract-history:query')")
|
||||
public CommonResult<OutsContractHistoryRespVO> getOutsContractHistory(@RequestParam("id") Long id) {
|
||||
OutsContractHistoryDO outsContractHistory = outsContractHistoryService.getOutsContractHistory(id);
|
||||
return success(BeanUtils.toBean(outsContractHistory, OutsContractHistoryRespVO.class));
|
||||
OutsContractHistoryDetailDO outsContractDetail = outsContractHistoryService.getOutsContractHistoryDetail(id);
|
||||
OutsContractHistoryRespVO outsContractRespVO = new OutsContractHistoryRespVO();
|
||||
org.springframework.beans.BeanUtils.copyProperties(outsContractDetail, outsContractRespVO, "contractFileUrl");
|
||||
outsContractRespVO.setContractFileUrl(FileUtils.covertJSONStringToFile(outsContractDetail.getContractFileUrl()));
|
||||
|
||||
return success(outsContractRespVO);
|
||||
}
|
||||
|
||||
@GetMapping("/page")
|
||||
@Operation(summary = "获得外包合同历史分页")
|
||||
@PreAuthorize("@ss.hasPermission('cms:outs-contract-history:query')")
|
||||
public CommonResult<PageResult<OutsContractHistoryRespVO>> getOutsContractHistoryPage(@Valid OutsContractHistoryPageReqVO pageReqVO) {
|
||||
PageResult<OutsContractHistoryDO> pageResult = outsContractHistoryService.getOutsContractHistoryPage(pageReqVO);
|
||||
return success(BeanUtils.toBean(pageResult, OutsContractHistoryRespVO.class));
|
||||
PageResult<OutsContractHistoryRespVO> pageResult = outsContractHistoryService.getOutsContractHistoryPage(pageReqVO);
|
||||
return success(pageResult);
|
||||
}
|
||||
|
||||
@GetMapping("/export-excel")
|
||||
@ -71,7 +76,7 @@ public class OutsContractHistoryController {
|
||||
public void exportOutsContractHistoryExcel(@Valid OutsContractHistoryPageReqVO pageReqVO,
|
||||
HttpServletResponse response) throws IOException {
|
||||
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
|
||||
List<OutsContractHistoryDO> list = outsContractHistoryService.getOutsContractHistoryPage(pageReqVO).getList();
|
||||
List<OutsContractHistoryRespVO> list = outsContractHistoryService.getOutsContractHistoryPage(pageReqVO).getList();
|
||||
// 导出 Excel
|
||||
ExcelUtils.write(response, "外包合同历史.xls", "数据", OutsContractHistoryRespVO.class,
|
||||
BeanUtils.toBean(list, OutsContractHistoryRespVO.class));
|
||||
|
@ -1,10 +1,13 @@
|
||||
package cn.iocoder.yudao.module.cms.controller.admin.outscontracthistory.vo;
|
||||
|
||||
import cn.iocoder.yudao.framework.common.pojo.FileDTO;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
import com.alibaba.excel.annotation.*;
|
||||
import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
|
||||
import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
|
||||
@ -42,7 +45,7 @@ public class OutsContractHistoryRespVO {
|
||||
|
||||
@Schema(description = "合同文件url", example = "https://www.iocoder.cn")
|
||||
@ExcelProperty("合同文件url")
|
||||
private String contractFileUrl;
|
||||
private List<FileDTO> contractFileUrl;
|
||||
|
||||
@Schema(description = "创建者")
|
||||
@ExcelProperty("创建者")
|
||||
|
@ -1,10 +1,12 @@
|
||||
package cn.iocoder.yudao.module.cms.controller.admin.outscontracthistory.vo;
|
||||
|
||||
import cn.iocoder.yudao.framework.common.pojo.FileDTO;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
import jakarta.validation.constraints.*;
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
@Schema(description = "管理后台 - 外包合同历史新增/修改 Request VO")
|
||||
@Data
|
||||
@ -30,7 +32,7 @@ public class OutsContractHistorySaveReqVO {
|
||||
private LocalDateTime signingTime;
|
||||
|
||||
@Schema(description = "合同文件url", example = "https://www.iocoder.cn")
|
||||
private String contractFileUrl;
|
||||
private List<FileDTO> contractFileUrl;
|
||||
|
||||
@Schema(description = "流程状态", example = "2")
|
||||
private Integer processStatus;
|
||||
|
@ -1,5 +1,7 @@
|
||||
package cn.iocoder.yudao.module.cms.service.outscontracthistory;
|
||||
|
||||
import cn.iocoder.yudao.module.cms.dal.dataobject.outscontract.OutsContractDetailDO;
|
||||
import cn.iocoder.yudao.module.cms.dal.dataobject.outscontracthistory.OutsContractHistoryDetailDO;
|
||||
import jakarta.validation.*;
|
||||
import cn.iocoder.yudao.module.cms.controller.admin.outscontracthistory.vo.*;
|
||||
import cn.iocoder.yudao.module.cms.dal.dataobject.outscontracthistory.OutsContractHistoryDO;
|
||||
@ -18,12 +20,12 @@ public interface OutsContractHistoryService {
|
||||
*/
|
||||
void updateOutsContractHistory(Long loginUserId,@Valid OutsContractHistorySaveReqVO updateReqVO);
|
||||
/**
|
||||
* 获得外包合同历史
|
||||
* 获得外包合同历史基本信息
|
||||
*
|
||||
* @param id 编号
|
||||
* @return 外包合同历史
|
||||
*/
|
||||
OutsContractHistoryDO getOutsContractHistory(Long id);
|
||||
OutsContractHistoryDetailDO getOutsContractHistoryDetail(Long id);
|
||||
|
||||
/**
|
||||
* 获得外包合同历史分页
|
||||
@ -31,6 +33,6 @@ public interface OutsContractHistoryService {
|
||||
* @param pageReqVO 分页查询
|
||||
* @return 外包合同历史分页
|
||||
*/
|
||||
PageResult<OutsContractHistoryDO> getOutsContractHistoryPage(OutsContractHistoryPageReqVO pageReqVO);
|
||||
PageResult<OutsContractHistoryRespVO> getOutsContractHistoryPage(OutsContractHistoryPageReqVO pageReqVO);
|
||||
|
||||
}
|
@ -1,7 +1,13 @@
|
||||
package cn.iocoder.yudao.module.cms.service.outscontracthistory;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.iocoder.yudao.module.cms.dal.dataobject.contract.ContractDO;
|
||||
import cn.iocoder.yudao.module.cms.dal.dataobject.outscontracthistory.OutsContractHistoryDetailDO;
|
||||
import cn.iocoder.yudao.module.cms.service.contract.ContractService;
|
||||
import cn.iocoder.yudao.module.pms.api.projectschedule.ProjectScheduleApi;
|
||||
import cn.iocoder.yudao.module.pms.api.projectschedule.dto.ProjectScheduleDetailDTO;
|
||||
import cn.iocoder.yudao.module.pms.api.projecttracking.ProjectTrackingApi;
|
||||
import cn.iocoder.yudao.module.pms.api.projecttracking.dto.ProjectTrackingDetailDTO;
|
||||
import cn.iocoder.yudao.module.system.api.user.AdminUserApi;
|
||||
import org.springframework.stereotype.Service;
|
||||
import jakarta.annotation.Resource;
|
||||
@ -14,6 +20,9 @@ import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
||||
|
||||
import cn.iocoder.yudao.module.cms.dal.mysql.outscontracthistory.OutsContractHistoryMapper;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||
import static cn.iocoder.yudao.module.cms.enums.ErrorCodeConstants.*;
|
||||
|
||||
@ -38,27 +47,65 @@ public class OutsContractHistoryServiceImpl implements OutsContractHistoryServic
|
||||
@Resource
|
||||
private ContractService contractService;
|
||||
|
||||
@Resource
|
||||
private ProjectScheduleApi projectScheduleApi;
|
||||
|
||||
@Override
|
||||
public void updateOutsContractHistory(Long loginUserId,OutsContractHistorySaveReqVO updateReqVO) {
|
||||
//校验
|
||||
// 校验
|
||||
validateOutsContractHistoryExists(updateReqVO.getId());
|
||||
contractService.validateContractExists(updateReqVO.getContractId());
|
||||
projectTrackingApi.validateProjectExists(updateReqVO.getProjectId());
|
||||
String userName = adminUserApi.getUser(loginUserId).getNickname();
|
||||
|
||||
Long contractId = updateReqVO.getContractId();
|
||||
contractService.validateContractExists(contractId);
|
||||
|
||||
Long projectId = updateReqVO.getProjectId();
|
||||
projectTrackingApi.validateProjectExists(projectId);
|
||||
|
||||
// 更新
|
||||
String userName = adminUserApi.getUser(loginUserId).getNickname();
|
||||
OutsContractHistoryDO updateObj = BeanUtils.toBean(updateReqVO, OutsContractHistoryDO.class);
|
||||
updateObj.setUpdater(userName);
|
||||
outsContractHistoryMapper.updateById(updateObj);
|
||||
}
|
||||
|
||||
@Override
|
||||
public OutsContractHistoryDO getOutsContractHistory(Long id) {
|
||||
return outsContractHistoryMapper.selectById(id);
|
||||
public OutsContractHistoryDetailDO getOutsContractHistoryDetail(Long id) {
|
||||
OutsContractHistoryDetailDO outsContractHistoryDetailDO = new OutsContractHistoryDetailDO();
|
||||
OutsContractHistoryDO outsContractHistoryDO = outsContractHistoryMapper.selectById(id);
|
||||
ContractDO contractDO = contractService.getContractDetail(outsContractHistoryDO.getContractId());
|
||||
outsContractHistoryDetailDO.setAmount(contractDO.getAmount());
|
||||
outsContractHistoryDetailDO.setName(contractDO.getName());
|
||||
//校验
|
||||
validateOutsContractHistoryExists(id);
|
||||
|
||||
Long projectId = outsContractHistoryDO.getProjectId();
|
||||
projectTrackingApi.validateProjectExists(projectId);
|
||||
ProjectScheduleDetailDTO projectScheduleDetail = projectScheduleApi.getProjectScheduleDetail(projectId);
|
||||
ProjectTrackingDetailDTO projectTracking = projectTrackingApi.getProjectTracking(projectId);
|
||||
BeanUtil.copyProperties(outsContractHistoryDO, outsContractHistoryDetailDO);
|
||||
BeanUtil.copyProperties(projectTracking,outsContractHistoryDetailDO);
|
||||
BeanUtil.copyProperties(projectScheduleDetail,outsContractHistoryDetailDO);
|
||||
|
||||
return outsContractHistoryDetailDO;
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageResult<OutsContractHistoryDO> getOutsContractHistoryPage(OutsContractHistoryPageReqVO pageReqVO) {
|
||||
return outsContractHistoryMapper.selectPage(pageReqVO);
|
||||
public PageResult<OutsContractHistoryRespVO> getOutsContractHistoryPage(OutsContractHistoryPageReqVO pageReqVO) {
|
||||
PageResult<OutsContractHistoryDO> outsContractDOPage = outsContractHistoryMapper.selectPage(pageReqVO);
|
||||
List<OutsContractHistoryDO> list = outsContractDOPage.getList();
|
||||
List<OutsContractHistoryDetailDO> outsContractDetailDOS = new ArrayList<>();
|
||||
|
||||
for (OutsContractHistoryDO outsContractHistoryDO : list) {
|
||||
Long id = outsContractHistoryDO.getId();
|
||||
OutsContractHistoryDetailDO outsContractHistoryDetail = getOutsContractHistoryDetail(id);
|
||||
outsContractDetailDOS.add(outsContractHistoryDetail);
|
||||
}
|
||||
|
||||
List<OutsContractHistoryRespVO> respVOS = BeanUtils.toBean(outsContractDetailDOS, OutsContractHistoryRespVO.class);
|
||||
PageResult<OutsContractHistoryRespVO> pageResult = new PageResult<>();
|
||||
pageResult.setList(respVOS);
|
||||
return pageResult;
|
||||
|
||||
}
|
||||
|
||||
private void validateOutsContractHistoryExists(Long id) {
|
||||
|
Loading…
Reference in New Issue
Block a user