diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectApplyController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectApplyController.java index b7dae53..76facc2 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectApplyController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectApplyController.java @@ -11,6 +11,7 @@ import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.outsource.OutsourceProjectApprovalListRequest; import com.casic.missiles.dto.business.outsource.OutsourceProjectApprovalListResponse; +import com.casic.missiles.dto.business.outsource.OutsourceProjectListRequest; import com.casic.missiles.dto.business.outsource.OutsourceProjectSaveResponse; import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; import com.casic.missiles.enums.BusinessExceptionEnum; @@ -48,13 +49,14 @@ private IBusinessOutsourceProjectService projectService; @ApiOperation("分包项目申请审批列表(分页)") - @PostMapping("/approval/listPage") + @PostMapping("/approval/listPage") public ReturnDTO> approvalListPage(@RequestBody @Valid OutsourceProjectApprovalListRequest request, BindingResult bindingResult) throws Exception { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } DictCodeUtils.validDictCode(request); Page page = PageFactory.defaultPage(); + request.setTypeFlag(1); List responseList = projectService.projectApplyApprovalListPage(request, page); page.setRecords(responseList); return ReturnUtil.success(super.packForBT(page)); @@ -64,7 +66,7 @@ @PostMapping("/save") @ResponseBody public ReturnDTO save(@RequestBody @Valid BusinessOutsourceProject outsourceProject, BindingResult bindingResult) throws Exception { - Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getDtos()), () -> { + Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getOrderSampleList()), () -> { throw new BusinessException(BusinessExceptionEnum.SAMPLE_ORDER_IDS_NULL); }); if(bindingResult.hasErrors()){ @@ -81,7 +83,7 @@ Assert.isFalse(Objects.isNull(outsourceProject.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getDtos()), () -> { + Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getOrderSampleList()), () -> { throw new BusinessException(BusinessExceptionEnum.SAMPLE_ORDER_IDS_NULL); }); if(bindingResult.hasErrors()){ @@ -108,19 +110,9 @@ Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - return projectService.projectDelete(idDTO.getId()); + return projectService.projectApplyDelete(idDTO.getId()); } -// @ApiOperation("分包项目申请批量删除") -// @PostMapping("/batchDelete") -// @ResponseBody -// public ReturnDTO batchDelete(@RequestBody @Valid IdsDTO idsDTO) { -// Assert.isFalse(CollectionUtils.isEmpty(idsDTO.getIds()), () -> { -// throw new BusinessException(BusinessExceptionEnum.ID_NULL); -// }); -// return projectService.deleteBatchProject(idsDTO.getIds()); -// } - @ApiOperation("分包项目申请详情") @PostMapping("/detail") @ResponseBody @@ -151,6 +143,19 @@ if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return projectService.failUpdate(outsourceProject); + return projectService.projectApplyFailUpdate(outsourceProject); + } + + /** + * 查询分包项目申请审批通过列表 + */ + @ApiOperation("分包项目申请审批通过列表(分页)") + @PostMapping("/listPage") + public ReturnDTO> listPage(@RequestBody @Valid OutsourceProjectListRequest request, BindingResult bindingResult) throws Exception { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(projectService.projectListPage(request, page))); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectApplyController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectApplyController.java index b7dae53..76facc2 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectApplyController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectApplyController.java @@ -11,6 +11,7 @@ import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.outsource.OutsourceProjectApprovalListRequest; import com.casic.missiles.dto.business.outsource.OutsourceProjectApprovalListResponse; +import com.casic.missiles.dto.business.outsource.OutsourceProjectListRequest; import com.casic.missiles.dto.business.outsource.OutsourceProjectSaveResponse; import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; import com.casic.missiles.enums.BusinessExceptionEnum; @@ -48,13 +49,14 @@ private IBusinessOutsourceProjectService projectService; @ApiOperation("分包项目申请审批列表(分页)") - @PostMapping("/approval/listPage") + @PostMapping("/approval/listPage") public ReturnDTO> approvalListPage(@RequestBody @Valid OutsourceProjectApprovalListRequest request, BindingResult bindingResult) throws Exception { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } DictCodeUtils.validDictCode(request); Page page = PageFactory.defaultPage(); + request.setTypeFlag(1); List responseList = projectService.projectApplyApprovalListPage(request, page); page.setRecords(responseList); return ReturnUtil.success(super.packForBT(page)); @@ -64,7 +66,7 @@ @PostMapping("/save") @ResponseBody public ReturnDTO save(@RequestBody @Valid BusinessOutsourceProject outsourceProject, BindingResult bindingResult) throws Exception { - Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getDtos()), () -> { + Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getOrderSampleList()), () -> { throw new BusinessException(BusinessExceptionEnum.SAMPLE_ORDER_IDS_NULL); }); if(bindingResult.hasErrors()){ @@ -81,7 +83,7 @@ Assert.isFalse(Objects.isNull(outsourceProject.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getDtos()), () -> { + Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getOrderSampleList()), () -> { throw new BusinessException(BusinessExceptionEnum.SAMPLE_ORDER_IDS_NULL); }); if(bindingResult.hasErrors()){ @@ -108,19 +110,9 @@ Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - return projectService.projectDelete(idDTO.getId()); + return projectService.projectApplyDelete(idDTO.getId()); } -// @ApiOperation("分包项目申请批量删除") -// @PostMapping("/batchDelete") -// @ResponseBody -// public ReturnDTO batchDelete(@RequestBody @Valid IdsDTO idsDTO) { -// Assert.isFalse(CollectionUtils.isEmpty(idsDTO.getIds()), () -> { -// throw new BusinessException(BusinessExceptionEnum.ID_NULL); -// }); -// return projectService.deleteBatchProject(idsDTO.getIds()); -// } - @ApiOperation("分包项目申请详情") @PostMapping("/detail") @ResponseBody @@ -151,6 +143,19 @@ if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return projectService.failUpdate(outsourceProject); + return projectService.projectApplyFailUpdate(outsourceProject); + } + + /** + * 查询分包项目申请审批通过列表 + */ + @ApiOperation("分包项目申请审批通过列表(分页)") + @PostMapping("/listPage") + public ReturnDTO> listPage(@RequestBody @Valid OutsourceProjectListRequest request, BindingResult bindingResult) throws Exception { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(projectService.projectListPage(request, page))); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectCheckController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectCheckController.java index f44d54c..6575ab7 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectCheckController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectCheckController.java @@ -1,10 +1,35 @@ package com.casic.missiles.controller.business; +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.BaseApprovalSubmitRequest; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.outsource.OutsourceProjectApprovalListRequest; +import com.casic.missiles.dto.business.outsource.OutsourceProjectApprovalListResponse; +import com.casic.missiles.dto.business.outsource.OutsourceProjectCheckSaveOrUpdateRequest; +import com.casic.missiles.dto.business.outsource.OutsourceProjectSaveResponse; +import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.business.BusinessOutsourceProject; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.service.business.IBusinessOutsourceProjectService; +import com.casic.missiles.utils.DictCodeUtils; import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.*; + +import javax.validation.Valid; +import java.util.List; +import java.util.Objects; /** *

@@ -19,5 +44,99 @@ @RestController @RequestMapping("/business/outsourceProject/check") public class BusinessOutsourceProjectCheckController extends ExportController { + @Autowired + private IBusinessOutsourceProjectService projectService; + @ApiOperation("分包项目验收审批列表(分页)") + @PostMapping("/approval/listPage") + public ReturnDTO> approvalListPage(@RequestBody @Valid OutsourceProjectApprovalListRequest request, BindingResult bindingResult) throws Exception { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + DictCodeUtils.validDictCode(request); + Page page = PageFactory.defaultPage(); + request.setTypeFlag(2); + List responseList = projectService.projectApplyApprovalListPage(request, page); + page.setRecords(responseList); + return ReturnUtil.success(super.packForBT(page)); + } + + @ApiOperation("分包项目验收审批保存(保存至草稿箱)") + @PostMapping("/save") + @ResponseBody + public ReturnDTO save(@RequestBody @Valid OutsourceProjectCheckSaveOrUpdateRequest request, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.saveOrUpdateProjectCheck(request); + } + + @ApiOperation("草稿箱分包项目验收编辑") + @PostMapping("/draftUpdate") + @ResponseBody + public ReturnDTO draftUpdate(@RequestBody @Valid OutsourceProjectCheckSaveOrUpdateRequest request, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.saveOrUpdateProjectCheck(request); + } + + @ApiOperation("分包项目验收提交(未调用过保存接口保存至草稿箱需先调用保存接口,再调用该接口)") + @PostMapping("/submit") + @ResponseBody + public ReturnDTO submit(@RequestBody @Valid BaseApprovalSubmitRequest request, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.submitProjectCheck(request); + } + + /** + * 只清空验收所填字段及验收审批草稿状态 + */ + @ApiOperation("分包项目验收删除(草稿删除也调用该接口)") + @PostMapping("/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return projectService.projectCheckDelete(idDTO.getId()); + } + + /** + * 复用分包项目申请详情service + */ + @ApiOperation("分包项目验收详情") + @PostMapping("/detail") + @ResponseBody + public ReturnDTO supplierDetail(@RequestBody @Valid IdDTO idDTO) throws Exception { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return projectService.projectDetail(idDTO.getId()); + } + + /** + * 清空验收所填字段及验收审批状态 + */ + @ApiOperation("分包项目验收审批操作-删除") + @PostMapping("/approval/operate/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid ApprovalDeleteRequest request, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.projectCheckApprovalDelete(request); + } + + @ApiOperation("未通过分包项目验收编辑(驳回后的分包项目验收重新编辑,仅未通过列表中的编辑按钮可调用)") + @PostMapping("/failUpdate") + @ResponseBody + public ReturnDTO failUpdate(@RequestBody @Valid OutsourceProjectCheckSaveOrUpdateRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.projectCheckFailUpdate(request); + } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectApplyController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectApplyController.java index b7dae53..76facc2 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectApplyController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectApplyController.java @@ -11,6 +11,7 @@ import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.outsource.OutsourceProjectApprovalListRequest; import com.casic.missiles.dto.business.outsource.OutsourceProjectApprovalListResponse; +import com.casic.missiles.dto.business.outsource.OutsourceProjectListRequest; import com.casic.missiles.dto.business.outsource.OutsourceProjectSaveResponse; import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; import com.casic.missiles.enums.BusinessExceptionEnum; @@ -48,13 +49,14 @@ private IBusinessOutsourceProjectService projectService; @ApiOperation("分包项目申请审批列表(分页)") - @PostMapping("/approval/listPage") + @PostMapping("/approval/listPage") public ReturnDTO> approvalListPage(@RequestBody @Valid OutsourceProjectApprovalListRequest request, BindingResult bindingResult) throws Exception { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } DictCodeUtils.validDictCode(request); Page page = PageFactory.defaultPage(); + request.setTypeFlag(1); List responseList = projectService.projectApplyApprovalListPage(request, page); page.setRecords(responseList); return ReturnUtil.success(super.packForBT(page)); @@ -64,7 +66,7 @@ @PostMapping("/save") @ResponseBody public ReturnDTO save(@RequestBody @Valid BusinessOutsourceProject outsourceProject, BindingResult bindingResult) throws Exception { - Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getDtos()), () -> { + Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getOrderSampleList()), () -> { throw new BusinessException(BusinessExceptionEnum.SAMPLE_ORDER_IDS_NULL); }); if(bindingResult.hasErrors()){ @@ -81,7 +83,7 @@ Assert.isFalse(Objects.isNull(outsourceProject.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getDtos()), () -> { + Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getOrderSampleList()), () -> { throw new BusinessException(BusinessExceptionEnum.SAMPLE_ORDER_IDS_NULL); }); if(bindingResult.hasErrors()){ @@ -108,19 +110,9 @@ Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - return projectService.projectDelete(idDTO.getId()); + return projectService.projectApplyDelete(idDTO.getId()); } -// @ApiOperation("分包项目申请批量删除") -// @PostMapping("/batchDelete") -// @ResponseBody -// public ReturnDTO batchDelete(@RequestBody @Valid IdsDTO idsDTO) { -// Assert.isFalse(CollectionUtils.isEmpty(idsDTO.getIds()), () -> { -// throw new BusinessException(BusinessExceptionEnum.ID_NULL); -// }); -// return projectService.deleteBatchProject(idsDTO.getIds()); -// } - @ApiOperation("分包项目申请详情") @PostMapping("/detail") @ResponseBody @@ -151,6 +143,19 @@ if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return projectService.failUpdate(outsourceProject); + return projectService.projectApplyFailUpdate(outsourceProject); + } + + /** + * 查询分包项目申请审批通过列表 + */ + @ApiOperation("分包项目申请审批通过列表(分页)") + @PostMapping("/listPage") + public ReturnDTO> listPage(@RequestBody @Valid OutsourceProjectListRequest request, BindingResult bindingResult) throws Exception { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(projectService.projectListPage(request, page))); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectCheckController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectCheckController.java index f44d54c..6575ab7 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectCheckController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectCheckController.java @@ -1,10 +1,35 @@ package com.casic.missiles.controller.business; +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.BaseApprovalSubmitRequest; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.outsource.OutsourceProjectApprovalListRequest; +import com.casic.missiles.dto.business.outsource.OutsourceProjectApprovalListResponse; +import com.casic.missiles.dto.business.outsource.OutsourceProjectCheckSaveOrUpdateRequest; +import com.casic.missiles.dto.business.outsource.OutsourceProjectSaveResponse; +import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.business.BusinessOutsourceProject; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.service.business.IBusinessOutsourceProjectService; +import com.casic.missiles.utils.DictCodeUtils; import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.*; + +import javax.validation.Valid; +import java.util.List; +import java.util.Objects; /** *

@@ -19,5 +44,99 @@ @RestController @RequestMapping("/business/outsourceProject/check") public class BusinessOutsourceProjectCheckController extends ExportController { + @Autowired + private IBusinessOutsourceProjectService projectService; + @ApiOperation("分包项目验收审批列表(分页)") + @PostMapping("/approval/listPage") + public ReturnDTO> approvalListPage(@RequestBody @Valid OutsourceProjectApprovalListRequest request, BindingResult bindingResult) throws Exception { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + DictCodeUtils.validDictCode(request); + Page page = PageFactory.defaultPage(); + request.setTypeFlag(2); + List responseList = projectService.projectApplyApprovalListPage(request, page); + page.setRecords(responseList); + return ReturnUtil.success(super.packForBT(page)); + } + + @ApiOperation("分包项目验收审批保存(保存至草稿箱)") + @PostMapping("/save") + @ResponseBody + public ReturnDTO save(@RequestBody @Valid OutsourceProjectCheckSaveOrUpdateRequest request, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.saveOrUpdateProjectCheck(request); + } + + @ApiOperation("草稿箱分包项目验收编辑") + @PostMapping("/draftUpdate") + @ResponseBody + public ReturnDTO draftUpdate(@RequestBody @Valid OutsourceProjectCheckSaveOrUpdateRequest request, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.saveOrUpdateProjectCheck(request); + } + + @ApiOperation("分包项目验收提交(未调用过保存接口保存至草稿箱需先调用保存接口,再调用该接口)") + @PostMapping("/submit") + @ResponseBody + public ReturnDTO submit(@RequestBody @Valid BaseApprovalSubmitRequest request, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.submitProjectCheck(request); + } + + /** + * 只清空验收所填字段及验收审批草稿状态 + */ + @ApiOperation("分包项目验收删除(草稿删除也调用该接口)") + @PostMapping("/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return projectService.projectCheckDelete(idDTO.getId()); + } + + /** + * 复用分包项目申请详情service + */ + @ApiOperation("分包项目验收详情") + @PostMapping("/detail") + @ResponseBody + public ReturnDTO supplierDetail(@RequestBody @Valid IdDTO idDTO) throws Exception { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return projectService.projectDetail(idDTO.getId()); + } + + /** + * 清空验收所填字段及验收审批状态 + */ + @ApiOperation("分包项目验收审批操作-删除") + @PostMapping("/approval/operate/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid ApprovalDeleteRequest request, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.projectCheckApprovalDelete(request); + } + + @ApiOperation("未通过分包项目验收编辑(驳回后的分包项目验收重新编辑,仅未通过列表中的编辑按钮可调用)") + @PostMapping("/failUpdate") + @ResponseBody + public ReturnDTO failUpdate(@RequestBody @Valid OutsourceProjectCheckSaveOrUpdateRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.projectCheckFailUpdate(request); + } } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index e792441..2cc4a24 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -68,8 +68,10 @@ OUTSOURCER_SAVE_FAILED(2419, "分包方保存至草稿箱失败"), OUTSOURCER_SUBMIT_FAILED(2420, "分包方提交处理失败"), - OUTSOURCE_PROJECT_SAVE_FAILED(2421, "分包项目保存至草稿箱失败"), - OUTSOURCE_PROJECT_SUBMIT_FAILED(2422, "分包项目提交处理失败"); + OUTSOURCE_PROJECT_APPLY_SAVE_FAILED(2421, "分包项目申请保存至草稿箱失败"), + OUTSOURCE_PROJECT_APPLY_SUBMIT_FAILED(2422, "分包项目申请提交处理失败"), + OUTSOURCE_PROJECT_CHECK_SAVE_FAILED(2423, "分包项目验收保存至草稿箱失败"), + OUTSOURCE_PROJECT_CHECK_SUBMIT_FAILED(2424, "分包项目验收提交处理失败"); private Integer code; private String message; diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectApplyController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectApplyController.java index b7dae53..76facc2 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectApplyController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectApplyController.java @@ -11,6 +11,7 @@ import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.outsource.OutsourceProjectApprovalListRequest; import com.casic.missiles.dto.business.outsource.OutsourceProjectApprovalListResponse; +import com.casic.missiles.dto.business.outsource.OutsourceProjectListRequest; import com.casic.missiles.dto.business.outsource.OutsourceProjectSaveResponse; import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; import com.casic.missiles.enums.BusinessExceptionEnum; @@ -48,13 +49,14 @@ private IBusinessOutsourceProjectService projectService; @ApiOperation("分包项目申请审批列表(分页)") - @PostMapping("/approval/listPage") + @PostMapping("/approval/listPage") public ReturnDTO> approvalListPage(@RequestBody @Valid OutsourceProjectApprovalListRequest request, BindingResult bindingResult) throws Exception { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } DictCodeUtils.validDictCode(request); Page page = PageFactory.defaultPage(); + request.setTypeFlag(1); List responseList = projectService.projectApplyApprovalListPage(request, page); page.setRecords(responseList); return ReturnUtil.success(super.packForBT(page)); @@ -64,7 +66,7 @@ @PostMapping("/save") @ResponseBody public ReturnDTO save(@RequestBody @Valid BusinessOutsourceProject outsourceProject, BindingResult bindingResult) throws Exception { - Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getDtos()), () -> { + Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getOrderSampleList()), () -> { throw new BusinessException(BusinessExceptionEnum.SAMPLE_ORDER_IDS_NULL); }); if(bindingResult.hasErrors()){ @@ -81,7 +83,7 @@ Assert.isFalse(Objects.isNull(outsourceProject.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getDtos()), () -> { + Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getOrderSampleList()), () -> { throw new BusinessException(BusinessExceptionEnum.SAMPLE_ORDER_IDS_NULL); }); if(bindingResult.hasErrors()){ @@ -108,19 +110,9 @@ Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - return projectService.projectDelete(idDTO.getId()); + return projectService.projectApplyDelete(idDTO.getId()); } -// @ApiOperation("分包项目申请批量删除") -// @PostMapping("/batchDelete") -// @ResponseBody -// public ReturnDTO batchDelete(@RequestBody @Valid IdsDTO idsDTO) { -// Assert.isFalse(CollectionUtils.isEmpty(idsDTO.getIds()), () -> { -// throw new BusinessException(BusinessExceptionEnum.ID_NULL); -// }); -// return projectService.deleteBatchProject(idsDTO.getIds()); -// } - @ApiOperation("分包项目申请详情") @PostMapping("/detail") @ResponseBody @@ -151,6 +143,19 @@ if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return projectService.failUpdate(outsourceProject); + return projectService.projectApplyFailUpdate(outsourceProject); + } + + /** + * 查询分包项目申请审批通过列表 + */ + @ApiOperation("分包项目申请审批通过列表(分页)") + @PostMapping("/listPage") + public ReturnDTO> listPage(@RequestBody @Valid OutsourceProjectListRequest request, BindingResult bindingResult) throws Exception { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(projectService.projectListPage(request, page))); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectCheckController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectCheckController.java index f44d54c..6575ab7 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectCheckController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectCheckController.java @@ -1,10 +1,35 @@ package com.casic.missiles.controller.business; +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.BaseApprovalSubmitRequest; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.outsource.OutsourceProjectApprovalListRequest; +import com.casic.missiles.dto.business.outsource.OutsourceProjectApprovalListResponse; +import com.casic.missiles.dto.business.outsource.OutsourceProjectCheckSaveOrUpdateRequest; +import com.casic.missiles.dto.business.outsource.OutsourceProjectSaveResponse; +import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.business.BusinessOutsourceProject; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.service.business.IBusinessOutsourceProjectService; +import com.casic.missiles.utils.DictCodeUtils; import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.*; + +import javax.validation.Valid; +import java.util.List; +import java.util.Objects; /** *

@@ -19,5 +44,99 @@ @RestController @RequestMapping("/business/outsourceProject/check") public class BusinessOutsourceProjectCheckController extends ExportController { + @Autowired + private IBusinessOutsourceProjectService projectService; + @ApiOperation("分包项目验收审批列表(分页)") + @PostMapping("/approval/listPage") + public ReturnDTO> approvalListPage(@RequestBody @Valid OutsourceProjectApprovalListRequest request, BindingResult bindingResult) throws Exception { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + DictCodeUtils.validDictCode(request); + Page page = PageFactory.defaultPage(); + request.setTypeFlag(2); + List responseList = projectService.projectApplyApprovalListPage(request, page); + page.setRecords(responseList); + return ReturnUtil.success(super.packForBT(page)); + } + + @ApiOperation("分包项目验收审批保存(保存至草稿箱)") + @PostMapping("/save") + @ResponseBody + public ReturnDTO save(@RequestBody @Valid OutsourceProjectCheckSaveOrUpdateRequest request, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.saveOrUpdateProjectCheck(request); + } + + @ApiOperation("草稿箱分包项目验收编辑") + @PostMapping("/draftUpdate") + @ResponseBody + public ReturnDTO draftUpdate(@RequestBody @Valid OutsourceProjectCheckSaveOrUpdateRequest request, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.saveOrUpdateProjectCheck(request); + } + + @ApiOperation("分包项目验收提交(未调用过保存接口保存至草稿箱需先调用保存接口,再调用该接口)") + @PostMapping("/submit") + @ResponseBody + public ReturnDTO submit(@RequestBody @Valid BaseApprovalSubmitRequest request, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.submitProjectCheck(request); + } + + /** + * 只清空验收所填字段及验收审批草稿状态 + */ + @ApiOperation("分包项目验收删除(草稿删除也调用该接口)") + @PostMapping("/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return projectService.projectCheckDelete(idDTO.getId()); + } + + /** + * 复用分包项目申请详情service + */ + @ApiOperation("分包项目验收详情") + @PostMapping("/detail") + @ResponseBody + public ReturnDTO supplierDetail(@RequestBody @Valid IdDTO idDTO) throws Exception { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return projectService.projectDetail(idDTO.getId()); + } + + /** + * 清空验收所填字段及验收审批状态 + */ + @ApiOperation("分包项目验收审批操作-删除") + @PostMapping("/approval/operate/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid ApprovalDeleteRequest request, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.projectCheckApprovalDelete(request); + } + + @ApiOperation("未通过分包项目验收编辑(驳回后的分包项目验收重新编辑,仅未通过列表中的编辑按钮可调用)") + @PostMapping("/failUpdate") + @ResponseBody + public ReturnDTO failUpdate(@RequestBody @Valid OutsourceProjectCheckSaveOrUpdateRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.projectCheckFailUpdate(request); + } } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index e792441..2cc4a24 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -68,8 +68,10 @@ OUTSOURCER_SAVE_FAILED(2419, "分包方保存至草稿箱失败"), OUTSOURCER_SUBMIT_FAILED(2420, "分包方提交处理失败"), - OUTSOURCE_PROJECT_SAVE_FAILED(2421, "分包项目保存至草稿箱失败"), - OUTSOURCE_PROJECT_SUBMIT_FAILED(2422, "分包项目提交处理失败"); + OUTSOURCE_PROJECT_APPLY_SAVE_FAILED(2421, "分包项目申请保存至草稿箱失败"), + OUTSOURCE_PROJECT_APPLY_SUBMIT_FAILED(2422, "分包项目申请提交处理失败"), + OUTSOURCE_PROJECT_CHECK_SAVE_FAILED(2423, "分包项目验收保存至草稿箱失败"), + OUTSOURCE_PROJECT_CHECK_SUBMIT_FAILED(2424, "分包项目验收提交处理失败"); private Integer code; private String message; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java index a318a34..d3d5eb4 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java @@ -17,4 +17,8 @@ String CERTIFICATE_REPORT_BEAN_NAME = "certificateReportBean"; + String OUTSOURCE_PROJECT_APPLY_BEAN_NAME = "outsourceProjectApplyBean"; + + String OUTSOURCE_PROJECT_CHECK_BEAN_NAME = "outsourceProjectCheckBean"; + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectApplyController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectApplyController.java index b7dae53..76facc2 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectApplyController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectApplyController.java @@ -11,6 +11,7 @@ import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.outsource.OutsourceProjectApprovalListRequest; import com.casic.missiles.dto.business.outsource.OutsourceProjectApprovalListResponse; +import com.casic.missiles.dto.business.outsource.OutsourceProjectListRequest; import com.casic.missiles.dto.business.outsource.OutsourceProjectSaveResponse; import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; import com.casic.missiles.enums.BusinessExceptionEnum; @@ -48,13 +49,14 @@ private IBusinessOutsourceProjectService projectService; @ApiOperation("分包项目申请审批列表(分页)") - @PostMapping("/approval/listPage") + @PostMapping("/approval/listPage") public ReturnDTO> approvalListPage(@RequestBody @Valid OutsourceProjectApprovalListRequest request, BindingResult bindingResult) throws Exception { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } DictCodeUtils.validDictCode(request); Page page = PageFactory.defaultPage(); + request.setTypeFlag(1); List responseList = projectService.projectApplyApprovalListPage(request, page); page.setRecords(responseList); return ReturnUtil.success(super.packForBT(page)); @@ -64,7 +66,7 @@ @PostMapping("/save") @ResponseBody public ReturnDTO save(@RequestBody @Valid BusinessOutsourceProject outsourceProject, BindingResult bindingResult) throws Exception { - Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getDtos()), () -> { + Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getOrderSampleList()), () -> { throw new BusinessException(BusinessExceptionEnum.SAMPLE_ORDER_IDS_NULL); }); if(bindingResult.hasErrors()){ @@ -81,7 +83,7 @@ Assert.isFalse(Objects.isNull(outsourceProject.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getDtos()), () -> { + Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getOrderSampleList()), () -> { throw new BusinessException(BusinessExceptionEnum.SAMPLE_ORDER_IDS_NULL); }); if(bindingResult.hasErrors()){ @@ -108,19 +110,9 @@ Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - return projectService.projectDelete(idDTO.getId()); + return projectService.projectApplyDelete(idDTO.getId()); } -// @ApiOperation("分包项目申请批量删除") -// @PostMapping("/batchDelete") -// @ResponseBody -// public ReturnDTO batchDelete(@RequestBody @Valid IdsDTO idsDTO) { -// Assert.isFalse(CollectionUtils.isEmpty(idsDTO.getIds()), () -> { -// throw new BusinessException(BusinessExceptionEnum.ID_NULL); -// }); -// return projectService.deleteBatchProject(idsDTO.getIds()); -// } - @ApiOperation("分包项目申请详情") @PostMapping("/detail") @ResponseBody @@ -151,6 +143,19 @@ if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return projectService.failUpdate(outsourceProject); + return projectService.projectApplyFailUpdate(outsourceProject); + } + + /** + * 查询分包项目申请审批通过列表 + */ + @ApiOperation("分包项目申请审批通过列表(分页)") + @PostMapping("/listPage") + public ReturnDTO> listPage(@RequestBody @Valid OutsourceProjectListRequest request, BindingResult bindingResult) throws Exception { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(projectService.projectListPage(request, page))); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectCheckController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectCheckController.java index f44d54c..6575ab7 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectCheckController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectCheckController.java @@ -1,10 +1,35 @@ package com.casic.missiles.controller.business; +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.BaseApprovalSubmitRequest; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.outsource.OutsourceProjectApprovalListRequest; +import com.casic.missiles.dto.business.outsource.OutsourceProjectApprovalListResponse; +import com.casic.missiles.dto.business.outsource.OutsourceProjectCheckSaveOrUpdateRequest; +import com.casic.missiles.dto.business.outsource.OutsourceProjectSaveResponse; +import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.business.BusinessOutsourceProject; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.service.business.IBusinessOutsourceProjectService; +import com.casic.missiles.utils.DictCodeUtils; import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.*; + +import javax.validation.Valid; +import java.util.List; +import java.util.Objects; /** *

@@ -19,5 +44,99 @@ @RestController @RequestMapping("/business/outsourceProject/check") public class BusinessOutsourceProjectCheckController extends ExportController { + @Autowired + private IBusinessOutsourceProjectService projectService; + @ApiOperation("分包项目验收审批列表(分页)") + @PostMapping("/approval/listPage") + public ReturnDTO> approvalListPage(@RequestBody @Valid OutsourceProjectApprovalListRequest request, BindingResult bindingResult) throws Exception { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + DictCodeUtils.validDictCode(request); + Page page = PageFactory.defaultPage(); + request.setTypeFlag(2); + List responseList = projectService.projectApplyApprovalListPage(request, page); + page.setRecords(responseList); + return ReturnUtil.success(super.packForBT(page)); + } + + @ApiOperation("分包项目验收审批保存(保存至草稿箱)") + @PostMapping("/save") + @ResponseBody + public ReturnDTO save(@RequestBody @Valid OutsourceProjectCheckSaveOrUpdateRequest request, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.saveOrUpdateProjectCheck(request); + } + + @ApiOperation("草稿箱分包项目验收编辑") + @PostMapping("/draftUpdate") + @ResponseBody + public ReturnDTO draftUpdate(@RequestBody @Valid OutsourceProjectCheckSaveOrUpdateRequest request, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.saveOrUpdateProjectCheck(request); + } + + @ApiOperation("分包项目验收提交(未调用过保存接口保存至草稿箱需先调用保存接口,再调用该接口)") + @PostMapping("/submit") + @ResponseBody + public ReturnDTO submit(@RequestBody @Valid BaseApprovalSubmitRequest request, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.submitProjectCheck(request); + } + + /** + * 只清空验收所填字段及验收审批草稿状态 + */ + @ApiOperation("分包项目验收删除(草稿删除也调用该接口)") + @PostMapping("/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return projectService.projectCheckDelete(idDTO.getId()); + } + + /** + * 复用分包项目申请详情service + */ + @ApiOperation("分包项目验收详情") + @PostMapping("/detail") + @ResponseBody + public ReturnDTO supplierDetail(@RequestBody @Valid IdDTO idDTO) throws Exception { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return projectService.projectDetail(idDTO.getId()); + } + + /** + * 清空验收所填字段及验收审批状态 + */ + @ApiOperation("分包项目验收审批操作-删除") + @PostMapping("/approval/operate/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid ApprovalDeleteRequest request, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.projectCheckApprovalDelete(request); + } + + @ApiOperation("未通过分包项目验收编辑(驳回后的分包项目验收重新编辑,仅未通过列表中的编辑按钮可调用)") + @PostMapping("/failUpdate") + @ResponseBody + public ReturnDTO failUpdate(@RequestBody @Valid OutsourceProjectCheckSaveOrUpdateRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.projectCheckFailUpdate(request); + } } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index e792441..2cc4a24 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -68,8 +68,10 @@ OUTSOURCER_SAVE_FAILED(2419, "分包方保存至草稿箱失败"), OUTSOURCER_SUBMIT_FAILED(2420, "分包方提交处理失败"), - OUTSOURCE_PROJECT_SAVE_FAILED(2421, "分包项目保存至草稿箱失败"), - OUTSOURCE_PROJECT_SUBMIT_FAILED(2422, "分包项目提交处理失败"); + OUTSOURCE_PROJECT_APPLY_SAVE_FAILED(2421, "分包项目申请保存至草稿箱失败"), + OUTSOURCE_PROJECT_APPLY_SUBMIT_FAILED(2422, "分包项目申请提交处理失败"), + OUTSOURCE_PROJECT_CHECK_SAVE_FAILED(2423, "分包项目验收保存至草稿箱失败"), + OUTSOURCE_PROJECT_CHECK_SUBMIT_FAILED(2424, "分包项目验收提交处理失败"); private Integer code; private String message; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java index a318a34..d3d5eb4 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java @@ -17,4 +17,8 @@ String CERTIFICATE_REPORT_BEAN_NAME = "certificateReportBean"; + String OUTSOURCE_PROJECT_APPLY_BEAN_NAME = "outsourceProjectApplyBean"; + + String OUTSOURCE_PROJECT_CHECK_BEAN_NAME = "outsourceProjectCheckBean"; + } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareActionStatusEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareActionStatusEnum.java index 2435309..c45da69 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareActionStatusEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareActionStatusEnum.java @@ -19,6 +19,8 @@ DEVICE_LEASE_BORROWED(LEASE_BEAN_NAME, EquipmentApplyProcessEnum.WAIT_BORROWED), CERTIFICATE_PRINT_STATUS(CERTIFICATE_BEAN_NAME, ""), CERTIFICATE_REPORT_STATUS(CERTIFICATE_REPORT_BEAN_NAME, ""), + OUTSOURCE_PROJECT_APPLY(OUTSOURCE_PROJECT_APPLY_BEAN_NAME, ""), + OUTSOURCE_PROJECT_CHECK(OUTSOURCE_PROJECT_CHECK_BEAN_NAME, ""), ACTION_STATUS_MAP(new HashMap() { { put(ApplyFromIdEnum.STANDARD_REVERT_APPROVAL, EQUIPMENT_APPLY_USE); @@ -28,12 +30,14 @@ put(ApplyFromIdEnum.DEVICE_UNUSED_APPROVAL, DEVICE_MANAGING_IDLE); put(ApplyFromIdEnum.DEVICE_SEALED_APPROVAL, DEVICE_MANAGING_SEALED); put(ApplyFromIdEnum.DEVICE_UNSEALED_APPROVAL, DEVICE_MANAGING_USE); - put(ApplyFromIdEnum.DEVICE_SCRAPPED_ROVAL, DEVICE_MANAGING_SCRAP); + put(ApplyFromIdEnum.DEVICE_SCRAP_APPROVAL, DEVICE_MANAGING_SCRAP); put(ApplyFromIdEnum.DEVICE_HANDLE_APPROVAL, DEVICE_MANAGING_MANAGEMENT); put(ApplyFromIdEnum.DEVICE_CONSUMING_APPROVAL, DEVICE_LEASE_CONSUMING); // 设备领用申请 put(ApplyFromIdEnum.DEVICE_BORROW_APPROVAL, DEVICE_LEASE_BORROWED); // 设备借用申请 put(ApplyFromIdEnum.CERTIFICATE_PRINT_APPROVAL, CERTIFICATE_PRINT_STATUS); //证书打印审批通过状态回填 put(ApplyFromIdEnum.CERTIFICATE_REPORT_APPROVAL, CERTIFICATE_REPORT_STATUS); //证书报告审批通过状态回填 + put(ApplyFromIdEnum.OUTSOURCE_PROJECT_APPLY_APPROVAL, OUTSOURCE_PROJECT_APPLY); + put(ApplyFromIdEnum.OUTSOURCE_PROJECT_CHECK_APPROVAL, OUTSOURCE_PROJECT_CHECK); } }); String actionBeanName; diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectApplyController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectApplyController.java index b7dae53..76facc2 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectApplyController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectApplyController.java @@ -11,6 +11,7 @@ import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.outsource.OutsourceProjectApprovalListRequest; import com.casic.missiles.dto.business.outsource.OutsourceProjectApprovalListResponse; +import com.casic.missiles.dto.business.outsource.OutsourceProjectListRequest; import com.casic.missiles.dto.business.outsource.OutsourceProjectSaveResponse; import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; import com.casic.missiles.enums.BusinessExceptionEnum; @@ -48,13 +49,14 @@ private IBusinessOutsourceProjectService projectService; @ApiOperation("分包项目申请审批列表(分页)") - @PostMapping("/approval/listPage") + @PostMapping("/approval/listPage") public ReturnDTO> approvalListPage(@RequestBody @Valid OutsourceProjectApprovalListRequest request, BindingResult bindingResult) throws Exception { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } DictCodeUtils.validDictCode(request); Page page = PageFactory.defaultPage(); + request.setTypeFlag(1); List responseList = projectService.projectApplyApprovalListPage(request, page); page.setRecords(responseList); return ReturnUtil.success(super.packForBT(page)); @@ -64,7 +66,7 @@ @PostMapping("/save") @ResponseBody public ReturnDTO save(@RequestBody @Valid BusinessOutsourceProject outsourceProject, BindingResult bindingResult) throws Exception { - Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getDtos()), () -> { + Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getOrderSampleList()), () -> { throw new BusinessException(BusinessExceptionEnum.SAMPLE_ORDER_IDS_NULL); }); if(bindingResult.hasErrors()){ @@ -81,7 +83,7 @@ Assert.isFalse(Objects.isNull(outsourceProject.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getDtos()), () -> { + Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getOrderSampleList()), () -> { throw new BusinessException(BusinessExceptionEnum.SAMPLE_ORDER_IDS_NULL); }); if(bindingResult.hasErrors()){ @@ -108,19 +110,9 @@ Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - return projectService.projectDelete(idDTO.getId()); + return projectService.projectApplyDelete(idDTO.getId()); } -// @ApiOperation("分包项目申请批量删除") -// @PostMapping("/batchDelete") -// @ResponseBody -// public ReturnDTO batchDelete(@RequestBody @Valid IdsDTO idsDTO) { -// Assert.isFalse(CollectionUtils.isEmpty(idsDTO.getIds()), () -> { -// throw new BusinessException(BusinessExceptionEnum.ID_NULL); -// }); -// return projectService.deleteBatchProject(idsDTO.getIds()); -// } - @ApiOperation("分包项目申请详情") @PostMapping("/detail") @ResponseBody @@ -151,6 +143,19 @@ if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return projectService.failUpdate(outsourceProject); + return projectService.projectApplyFailUpdate(outsourceProject); + } + + /** + * 查询分包项目申请审批通过列表 + */ + @ApiOperation("分包项目申请审批通过列表(分页)") + @PostMapping("/listPage") + public ReturnDTO> listPage(@RequestBody @Valid OutsourceProjectListRequest request, BindingResult bindingResult) throws Exception { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(projectService.projectListPage(request, page))); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectCheckController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectCheckController.java index f44d54c..6575ab7 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectCheckController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectCheckController.java @@ -1,10 +1,35 @@ package com.casic.missiles.controller.business; +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.BaseApprovalSubmitRequest; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.outsource.OutsourceProjectApprovalListRequest; +import com.casic.missiles.dto.business.outsource.OutsourceProjectApprovalListResponse; +import com.casic.missiles.dto.business.outsource.OutsourceProjectCheckSaveOrUpdateRequest; +import com.casic.missiles.dto.business.outsource.OutsourceProjectSaveResponse; +import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.business.BusinessOutsourceProject; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.service.business.IBusinessOutsourceProjectService; +import com.casic.missiles.utils.DictCodeUtils; import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.*; + +import javax.validation.Valid; +import java.util.List; +import java.util.Objects; /** *

@@ -19,5 +44,99 @@ @RestController @RequestMapping("/business/outsourceProject/check") public class BusinessOutsourceProjectCheckController extends ExportController { + @Autowired + private IBusinessOutsourceProjectService projectService; + @ApiOperation("分包项目验收审批列表(分页)") + @PostMapping("/approval/listPage") + public ReturnDTO> approvalListPage(@RequestBody @Valid OutsourceProjectApprovalListRequest request, BindingResult bindingResult) throws Exception { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + DictCodeUtils.validDictCode(request); + Page page = PageFactory.defaultPage(); + request.setTypeFlag(2); + List responseList = projectService.projectApplyApprovalListPage(request, page); + page.setRecords(responseList); + return ReturnUtil.success(super.packForBT(page)); + } + + @ApiOperation("分包项目验收审批保存(保存至草稿箱)") + @PostMapping("/save") + @ResponseBody + public ReturnDTO save(@RequestBody @Valid OutsourceProjectCheckSaveOrUpdateRequest request, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.saveOrUpdateProjectCheck(request); + } + + @ApiOperation("草稿箱分包项目验收编辑") + @PostMapping("/draftUpdate") + @ResponseBody + public ReturnDTO draftUpdate(@RequestBody @Valid OutsourceProjectCheckSaveOrUpdateRequest request, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.saveOrUpdateProjectCheck(request); + } + + @ApiOperation("分包项目验收提交(未调用过保存接口保存至草稿箱需先调用保存接口,再调用该接口)") + @PostMapping("/submit") + @ResponseBody + public ReturnDTO submit(@RequestBody @Valid BaseApprovalSubmitRequest request, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.submitProjectCheck(request); + } + + /** + * 只清空验收所填字段及验收审批草稿状态 + */ + @ApiOperation("分包项目验收删除(草稿删除也调用该接口)") + @PostMapping("/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return projectService.projectCheckDelete(idDTO.getId()); + } + + /** + * 复用分包项目申请详情service + */ + @ApiOperation("分包项目验收详情") + @PostMapping("/detail") + @ResponseBody + public ReturnDTO supplierDetail(@RequestBody @Valid IdDTO idDTO) throws Exception { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return projectService.projectDetail(idDTO.getId()); + } + + /** + * 清空验收所填字段及验收审批状态 + */ + @ApiOperation("分包项目验收审批操作-删除") + @PostMapping("/approval/operate/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid ApprovalDeleteRequest request, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.projectCheckApprovalDelete(request); + } + + @ApiOperation("未通过分包项目验收编辑(驳回后的分包项目验收重新编辑,仅未通过列表中的编辑按钮可调用)") + @PostMapping("/failUpdate") + @ResponseBody + public ReturnDTO failUpdate(@RequestBody @Valid OutsourceProjectCheckSaveOrUpdateRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.projectCheckFailUpdate(request); + } } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index e792441..2cc4a24 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -68,8 +68,10 @@ OUTSOURCER_SAVE_FAILED(2419, "分包方保存至草稿箱失败"), OUTSOURCER_SUBMIT_FAILED(2420, "分包方提交处理失败"), - OUTSOURCE_PROJECT_SAVE_FAILED(2421, "分包项目保存至草稿箱失败"), - OUTSOURCE_PROJECT_SUBMIT_FAILED(2422, "分包项目提交处理失败"); + OUTSOURCE_PROJECT_APPLY_SAVE_FAILED(2421, "分包项目申请保存至草稿箱失败"), + OUTSOURCE_PROJECT_APPLY_SUBMIT_FAILED(2422, "分包项目申请提交处理失败"), + OUTSOURCE_PROJECT_CHECK_SAVE_FAILED(2423, "分包项目验收保存至草稿箱失败"), + OUTSOURCE_PROJECT_CHECK_SUBMIT_FAILED(2424, "分包项目验收提交处理失败"); private Integer code; private String message; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java index a318a34..d3d5eb4 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java @@ -17,4 +17,8 @@ String CERTIFICATE_REPORT_BEAN_NAME = "certificateReportBean"; + String OUTSOURCE_PROJECT_APPLY_BEAN_NAME = "outsourceProjectApplyBean"; + + String OUTSOURCE_PROJECT_CHECK_BEAN_NAME = "outsourceProjectCheckBean"; + } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareActionStatusEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareActionStatusEnum.java index 2435309..c45da69 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareActionStatusEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareActionStatusEnum.java @@ -19,6 +19,8 @@ DEVICE_LEASE_BORROWED(LEASE_BEAN_NAME, EquipmentApplyProcessEnum.WAIT_BORROWED), CERTIFICATE_PRINT_STATUS(CERTIFICATE_BEAN_NAME, ""), CERTIFICATE_REPORT_STATUS(CERTIFICATE_REPORT_BEAN_NAME, ""), + OUTSOURCE_PROJECT_APPLY(OUTSOURCE_PROJECT_APPLY_BEAN_NAME, ""), + OUTSOURCE_PROJECT_CHECK(OUTSOURCE_PROJECT_CHECK_BEAN_NAME, ""), ACTION_STATUS_MAP(new HashMap() { { put(ApplyFromIdEnum.STANDARD_REVERT_APPROVAL, EQUIPMENT_APPLY_USE); @@ -28,12 +30,14 @@ put(ApplyFromIdEnum.DEVICE_UNUSED_APPROVAL, DEVICE_MANAGING_IDLE); put(ApplyFromIdEnum.DEVICE_SEALED_APPROVAL, DEVICE_MANAGING_SEALED); put(ApplyFromIdEnum.DEVICE_UNSEALED_APPROVAL, DEVICE_MANAGING_USE); - put(ApplyFromIdEnum.DEVICE_SCRAPPED_ROVAL, DEVICE_MANAGING_SCRAP); + put(ApplyFromIdEnum.DEVICE_SCRAP_APPROVAL, DEVICE_MANAGING_SCRAP); put(ApplyFromIdEnum.DEVICE_HANDLE_APPROVAL, DEVICE_MANAGING_MANAGEMENT); put(ApplyFromIdEnum.DEVICE_CONSUMING_APPROVAL, DEVICE_LEASE_CONSUMING); // 设备领用申请 put(ApplyFromIdEnum.DEVICE_BORROW_APPROVAL, DEVICE_LEASE_BORROWED); // 设备借用申请 put(ApplyFromIdEnum.CERTIFICATE_PRINT_APPROVAL, CERTIFICATE_PRINT_STATUS); //证书打印审批通过状态回填 put(ApplyFromIdEnum.CERTIFICATE_REPORT_APPROVAL, CERTIFICATE_REPORT_STATUS); //证书报告审批通过状态回填 + put(ApplyFromIdEnum.OUTSOURCE_PROJECT_APPLY_APPROVAL, OUTSOURCE_PROJECT_APPLY); + put(ApplyFromIdEnum.OUTSOURCE_PROJECT_CHECK_APPROVAL, OUTSOURCE_PROJECT_CHECK); } }); String actionBeanName; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java index 5d16918..61c86df 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java @@ -12,7 +12,7 @@ String DEVICE_UNUSED_APPROVAL = "sbglsbxzsq"; // 设备闲置申请 String DEVICE_SEALED_APPROVAL = "sbglsbfcsq"; // 设备封存申请 String DEVICE_UNSEALED_APPROVAL = "sbglsbqfsq"; // 设备启封申请 - String DEVICE_SCRAPPED_ROVAL = "sbglsbbfsq"; // 设备报废申请 + String DEVICE_SCRAP_APPROVAL = "sbglsbbfsq"; // 设备报废申请 String DEVICE_HANDLE_APPROVAL = "sbglsbczsq"; // 设备处置申请 String DEVICE_CONSUMING_APPROVAL = "clsblysp"; // 设备领用申请 String DEVICE_BORROW_APPROVAL = "clsbjysp"; // 设备借用申请 @@ -20,4 +20,7 @@ String DEVICE_FIX_ACCEPTANCE = "sbglsbjxbyysd"; // 设备检修保养验收单 String CERTIFICATE_PRINT_APPROVAL = "ywglzsdy"; // 证书打印通过 String CERTIFICATE_REPORT_APPROVAL = "ywglzsbg"; // 证书报告通过 + String OUTSOURCER_APPROVAL = "ywglfbfzg"; // 分包方资格 + String OUTSOURCE_PROJECT_APPLY_APPROVAL = "ywglfbxmsq"; // 分包项目申请 + String OUTSOURCE_PROJECT_CHECK_APPROVAL = "ywglfbxmys"; // 分包项目验收 } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectApplyController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectApplyController.java index b7dae53..76facc2 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectApplyController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectApplyController.java @@ -11,6 +11,7 @@ import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.outsource.OutsourceProjectApprovalListRequest; import com.casic.missiles.dto.business.outsource.OutsourceProjectApprovalListResponse; +import com.casic.missiles.dto.business.outsource.OutsourceProjectListRequest; import com.casic.missiles.dto.business.outsource.OutsourceProjectSaveResponse; import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; import com.casic.missiles.enums.BusinessExceptionEnum; @@ -48,13 +49,14 @@ private IBusinessOutsourceProjectService projectService; @ApiOperation("分包项目申请审批列表(分页)") - @PostMapping("/approval/listPage") + @PostMapping("/approval/listPage") public ReturnDTO> approvalListPage(@RequestBody @Valid OutsourceProjectApprovalListRequest request, BindingResult bindingResult) throws Exception { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } DictCodeUtils.validDictCode(request); Page page = PageFactory.defaultPage(); + request.setTypeFlag(1); List responseList = projectService.projectApplyApprovalListPage(request, page); page.setRecords(responseList); return ReturnUtil.success(super.packForBT(page)); @@ -64,7 +66,7 @@ @PostMapping("/save") @ResponseBody public ReturnDTO save(@RequestBody @Valid BusinessOutsourceProject outsourceProject, BindingResult bindingResult) throws Exception { - Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getDtos()), () -> { + Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getOrderSampleList()), () -> { throw new BusinessException(BusinessExceptionEnum.SAMPLE_ORDER_IDS_NULL); }); if(bindingResult.hasErrors()){ @@ -81,7 +83,7 @@ Assert.isFalse(Objects.isNull(outsourceProject.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getDtos()), () -> { + Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getOrderSampleList()), () -> { throw new BusinessException(BusinessExceptionEnum.SAMPLE_ORDER_IDS_NULL); }); if(bindingResult.hasErrors()){ @@ -108,19 +110,9 @@ Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - return projectService.projectDelete(idDTO.getId()); + return projectService.projectApplyDelete(idDTO.getId()); } -// @ApiOperation("分包项目申请批量删除") -// @PostMapping("/batchDelete") -// @ResponseBody -// public ReturnDTO batchDelete(@RequestBody @Valid IdsDTO idsDTO) { -// Assert.isFalse(CollectionUtils.isEmpty(idsDTO.getIds()), () -> { -// throw new BusinessException(BusinessExceptionEnum.ID_NULL); -// }); -// return projectService.deleteBatchProject(idsDTO.getIds()); -// } - @ApiOperation("分包项目申请详情") @PostMapping("/detail") @ResponseBody @@ -151,6 +143,19 @@ if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return projectService.failUpdate(outsourceProject); + return projectService.projectApplyFailUpdate(outsourceProject); + } + + /** + * 查询分包项目申请审批通过列表 + */ + @ApiOperation("分包项目申请审批通过列表(分页)") + @PostMapping("/listPage") + public ReturnDTO> listPage(@RequestBody @Valid OutsourceProjectListRequest request, BindingResult bindingResult) throws Exception { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(projectService.projectListPage(request, page))); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectCheckController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectCheckController.java index f44d54c..6575ab7 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectCheckController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectCheckController.java @@ -1,10 +1,35 @@ package com.casic.missiles.controller.business; +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.BaseApprovalSubmitRequest; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.outsource.OutsourceProjectApprovalListRequest; +import com.casic.missiles.dto.business.outsource.OutsourceProjectApprovalListResponse; +import com.casic.missiles.dto.business.outsource.OutsourceProjectCheckSaveOrUpdateRequest; +import com.casic.missiles.dto.business.outsource.OutsourceProjectSaveResponse; +import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.business.BusinessOutsourceProject; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.service.business.IBusinessOutsourceProjectService; +import com.casic.missiles.utils.DictCodeUtils; import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.*; + +import javax.validation.Valid; +import java.util.List; +import java.util.Objects; /** *

@@ -19,5 +44,99 @@ @RestController @RequestMapping("/business/outsourceProject/check") public class BusinessOutsourceProjectCheckController extends ExportController { + @Autowired + private IBusinessOutsourceProjectService projectService; + @ApiOperation("分包项目验收审批列表(分页)") + @PostMapping("/approval/listPage") + public ReturnDTO> approvalListPage(@RequestBody @Valid OutsourceProjectApprovalListRequest request, BindingResult bindingResult) throws Exception { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + DictCodeUtils.validDictCode(request); + Page page = PageFactory.defaultPage(); + request.setTypeFlag(2); + List responseList = projectService.projectApplyApprovalListPage(request, page); + page.setRecords(responseList); + return ReturnUtil.success(super.packForBT(page)); + } + + @ApiOperation("分包项目验收审批保存(保存至草稿箱)") + @PostMapping("/save") + @ResponseBody + public ReturnDTO save(@RequestBody @Valid OutsourceProjectCheckSaveOrUpdateRequest request, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.saveOrUpdateProjectCheck(request); + } + + @ApiOperation("草稿箱分包项目验收编辑") + @PostMapping("/draftUpdate") + @ResponseBody + public ReturnDTO draftUpdate(@RequestBody @Valid OutsourceProjectCheckSaveOrUpdateRequest request, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.saveOrUpdateProjectCheck(request); + } + + @ApiOperation("分包项目验收提交(未调用过保存接口保存至草稿箱需先调用保存接口,再调用该接口)") + @PostMapping("/submit") + @ResponseBody + public ReturnDTO submit(@RequestBody @Valid BaseApprovalSubmitRequest request, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.submitProjectCheck(request); + } + + /** + * 只清空验收所填字段及验收审批草稿状态 + */ + @ApiOperation("分包项目验收删除(草稿删除也调用该接口)") + @PostMapping("/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return projectService.projectCheckDelete(idDTO.getId()); + } + + /** + * 复用分包项目申请详情service + */ + @ApiOperation("分包项目验收详情") + @PostMapping("/detail") + @ResponseBody + public ReturnDTO supplierDetail(@RequestBody @Valid IdDTO idDTO) throws Exception { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return projectService.projectDetail(idDTO.getId()); + } + + /** + * 清空验收所填字段及验收审批状态 + */ + @ApiOperation("分包项目验收审批操作-删除") + @PostMapping("/approval/operate/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid ApprovalDeleteRequest request, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.projectCheckApprovalDelete(request); + } + + @ApiOperation("未通过分包项目验收编辑(驳回后的分包项目验收重新编辑,仅未通过列表中的编辑按钮可调用)") + @PostMapping("/failUpdate") + @ResponseBody + public ReturnDTO failUpdate(@RequestBody @Valid OutsourceProjectCheckSaveOrUpdateRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.projectCheckFailUpdate(request); + } } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index e792441..2cc4a24 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -68,8 +68,10 @@ OUTSOURCER_SAVE_FAILED(2419, "分包方保存至草稿箱失败"), OUTSOURCER_SUBMIT_FAILED(2420, "分包方提交处理失败"), - OUTSOURCE_PROJECT_SAVE_FAILED(2421, "分包项目保存至草稿箱失败"), - OUTSOURCE_PROJECT_SUBMIT_FAILED(2422, "分包项目提交处理失败"); + OUTSOURCE_PROJECT_APPLY_SAVE_FAILED(2421, "分包项目申请保存至草稿箱失败"), + OUTSOURCE_PROJECT_APPLY_SUBMIT_FAILED(2422, "分包项目申请提交处理失败"), + OUTSOURCE_PROJECT_CHECK_SAVE_FAILED(2423, "分包项目验收保存至草稿箱失败"), + OUTSOURCE_PROJECT_CHECK_SUBMIT_FAILED(2424, "分包项目验收提交处理失败"); private Integer code; private String message; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java index a318a34..d3d5eb4 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java @@ -17,4 +17,8 @@ String CERTIFICATE_REPORT_BEAN_NAME = "certificateReportBean"; + String OUTSOURCE_PROJECT_APPLY_BEAN_NAME = "outsourceProjectApplyBean"; + + String OUTSOURCE_PROJECT_CHECK_BEAN_NAME = "outsourceProjectCheckBean"; + } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareActionStatusEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareActionStatusEnum.java index 2435309..c45da69 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareActionStatusEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareActionStatusEnum.java @@ -19,6 +19,8 @@ DEVICE_LEASE_BORROWED(LEASE_BEAN_NAME, EquipmentApplyProcessEnum.WAIT_BORROWED), CERTIFICATE_PRINT_STATUS(CERTIFICATE_BEAN_NAME, ""), CERTIFICATE_REPORT_STATUS(CERTIFICATE_REPORT_BEAN_NAME, ""), + OUTSOURCE_PROJECT_APPLY(OUTSOURCE_PROJECT_APPLY_BEAN_NAME, ""), + OUTSOURCE_PROJECT_CHECK(OUTSOURCE_PROJECT_CHECK_BEAN_NAME, ""), ACTION_STATUS_MAP(new HashMap() { { put(ApplyFromIdEnum.STANDARD_REVERT_APPROVAL, EQUIPMENT_APPLY_USE); @@ -28,12 +30,14 @@ put(ApplyFromIdEnum.DEVICE_UNUSED_APPROVAL, DEVICE_MANAGING_IDLE); put(ApplyFromIdEnum.DEVICE_SEALED_APPROVAL, DEVICE_MANAGING_SEALED); put(ApplyFromIdEnum.DEVICE_UNSEALED_APPROVAL, DEVICE_MANAGING_USE); - put(ApplyFromIdEnum.DEVICE_SCRAPPED_ROVAL, DEVICE_MANAGING_SCRAP); + put(ApplyFromIdEnum.DEVICE_SCRAP_APPROVAL, DEVICE_MANAGING_SCRAP); put(ApplyFromIdEnum.DEVICE_HANDLE_APPROVAL, DEVICE_MANAGING_MANAGEMENT); put(ApplyFromIdEnum.DEVICE_CONSUMING_APPROVAL, DEVICE_LEASE_CONSUMING); // 设备领用申请 put(ApplyFromIdEnum.DEVICE_BORROW_APPROVAL, DEVICE_LEASE_BORROWED); // 设备借用申请 put(ApplyFromIdEnum.CERTIFICATE_PRINT_APPROVAL, CERTIFICATE_PRINT_STATUS); //证书打印审批通过状态回填 put(ApplyFromIdEnum.CERTIFICATE_REPORT_APPROVAL, CERTIFICATE_REPORT_STATUS); //证书报告审批通过状态回填 + put(ApplyFromIdEnum.OUTSOURCE_PROJECT_APPLY_APPROVAL, OUTSOURCE_PROJECT_APPLY); + put(ApplyFromIdEnum.OUTSOURCE_PROJECT_CHECK_APPROVAL, OUTSOURCE_PROJECT_CHECK); } }); String actionBeanName; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java index 5d16918..61c86df 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java @@ -12,7 +12,7 @@ String DEVICE_UNUSED_APPROVAL = "sbglsbxzsq"; // 设备闲置申请 String DEVICE_SEALED_APPROVAL = "sbglsbfcsq"; // 设备封存申请 String DEVICE_UNSEALED_APPROVAL = "sbglsbqfsq"; // 设备启封申请 - String DEVICE_SCRAPPED_ROVAL = "sbglsbbfsq"; // 设备报废申请 + String DEVICE_SCRAP_APPROVAL = "sbglsbbfsq"; // 设备报废申请 String DEVICE_HANDLE_APPROVAL = "sbglsbczsq"; // 设备处置申请 String DEVICE_CONSUMING_APPROVAL = "clsblysp"; // 设备领用申请 String DEVICE_BORROW_APPROVAL = "clsbjysp"; // 设备借用申请 @@ -20,4 +20,7 @@ String DEVICE_FIX_ACCEPTANCE = "sbglsbjxbyysd"; // 设备检修保养验收单 String CERTIFICATE_PRINT_APPROVAL = "ywglzsdy"; // 证书打印通过 String CERTIFICATE_REPORT_APPROVAL = "ywglzsbg"; // 证书报告通过 + String OUTSOURCER_APPROVAL = "ywglfbfzg"; // 分包方资格 + String OUTSOURCE_PROJECT_APPLY_APPROVAL = "ywglfbxmsq"; // 分包项目申请 + String OUTSOURCE_PROJECT_CHECK_APPROVAL = "ywglfbxmys"; // 分包项目验收 } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java index bddf56f..344358a 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java @@ -7,6 +7,7 @@ import com.casic.missiles.dto.business.SampleHandOutListResponse; import com.casic.missiles.dto.business.dispatch.DeviceDispatchDTO; import com.casic.missiles.dto.business.dispatch.DeviceDispatchVO; +import com.casic.missiles.dto.business.outsource.OrderSampleDTO; import com.casic.missiles.dto.customer.sample.CustomerSampleListVO; import com.casic.missiles.model.business.BusinessOrderSampleRelation; import org.apache.ibatis.annotations.Param; @@ -32,4 +33,8 @@ int updateByOrderIdAndSampleId(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId, @Param("status") String status); CustomerSampleListVO getInterChangeSampleList(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId); + + int updateTypeBatchByOrderAndSample(@Param("orderSampleDTOS") List orderSampleDTOS); + + int updateStatusBatchByOrderAndSample(@Param("orderSampleDTOS") List orderSampleDTOS); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectApplyController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectApplyController.java index b7dae53..76facc2 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectApplyController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectApplyController.java @@ -11,6 +11,7 @@ import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.outsource.OutsourceProjectApprovalListRequest; import com.casic.missiles.dto.business.outsource.OutsourceProjectApprovalListResponse; +import com.casic.missiles.dto.business.outsource.OutsourceProjectListRequest; import com.casic.missiles.dto.business.outsource.OutsourceProjectSaveResponse; import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; import com.casic.missiles.enums.BusinessExceptionEnum; @@ -48,13 +49,14 @@ private IBusinessOutsourceProjectService projectService; @ApiOperation("分包项目申请审批列表(分页)") - @PostMapping("/approval/listPage") + @PostMapping("/approval/listPage") public ReturnDTO> approvalListPage(@RequestBody @Valid OutsourceProjectApprovalListRequest request, BindingResult bindingResult) throws Exception { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } DictCodeUtils.validDictCode(request); Page page = PageFactory.defaultPage(); + request.setTypeFlag(1); List responseList = projectService.projectApplyApprovalListPage(request, page); page.setRecords(responseList); return ReturnUtil.success(super.packForBT(page)); @@ -64,7 +66,7 @@ @PostMapping("/save") @ResponseBody public ReturnDTO save(@RequestBody @Valid BusinessOutsourceProject outsourceProject, BindingResult bindingResult) throws Exception { - Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getDtos()), () -> { + Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getOrderSampleList()), () -> { throw new BusinessException(BusinessExceptionEnum.SAMPLE_ORDER_IDS_NULL); }); if(bindingResult.hasErrors()){ @@ -81,7 +83,7 @@ Assert.isFalse(Objects.isNull(outsourceProject.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getDtos()), () -> { + Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getOrderSampleList()), () -> { throw new BusinessException(BusinessExceptionEnum.SAMPLE_ORDER_IDS_NULL); }); if(bindingResult.hasErrors()){ @@ -108,19 +110,9 @@ Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - return projectService.projectDelete(idDTO.getId()); + return projectService.projectApplyDelete(idDTO.getId()); } -// @ApiOperation("分包项目申请批量删除") -// @PostMapping("/batchDelete") -// @ResponseBody -// public ReturnDTO batchDelete(@RequestBody @Valid IdsDTO idsDTO) { -// Assert.isFalse(CollectionUtils.isEmpty(idsDTO.getIds()), () -> { -// throw new BusinessException(BusinessExceptionEnum.ID_NULL); -// }); -// return projectService.deleteBatchProject(idsDTO.getIds()); -// } - @ApiOperation("分包项目申请详情") @PostMapping("/detail") @ResponseBody @@ -151,6 +143,19 @@ if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return projectService.failUpdate(outsourceProject); + return projectService.projectApplyFailUpdate(outsourceProject); + } + + /** + * 查询分包项目申请审批通过列表 + */ + @ApiOperation("分包项目申请审批通过列表(分页)") + @PostMapping("/listPage") + public ReturnDTO> listPage(@RequestBody @Valid OutsourceProjectListRequest request, BindingResult bindingResult) throws Exception { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(projectService.projectListPage(request, page))); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectCheckController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectCheckController.java index f44d54c..6575ab7 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectCheckController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectCheckController.java @@ -1,10 +1,35 @@ package com.casic.missiles.controller.business; +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.BaseApprovalSubmitRequest; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.outsource.OutsourceProjectApprovalListRequest; +import com.casic.missiles.dto.business.outsource.OutsourceProjectApprovalListResponse; +import com.casic.missiles.dto.business.outsource.OutsourceProjectCheckSaveOrUpdateRequest; +import com.casic.missiles.dto.business.outsource.OutsourceProjectSaveResponse; +import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.business.BusinessOutsourceProject; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.service.business.IBusinessOutsourceProjectService; +import com.casic.missiles.utils.DictCodeUtils; import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.*; + +import javax.validation.Valid; +import java.util.List; +import java.util.Objects; /** *

@@ -19,5 +44,99 @@ @RestController @RequestMapping("/business/outsourceProject/check") public class BusinessOutsourceProjectCheckController extends ExportController { + @Autowired + private IBusinessOutsourceProjectService projectService; + @ApiOperation("分包项目验收审批列表(分页)") + @PostMapping("/approval/listPage") + public ReturnDTO> approvalListPage(@RequestBody @Valid OutsourceProjectApprovalListRequest request, BindingResult bindingResult) throws Exception { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + DictCodeUtils.validDictCode(request); + Page page = PageFactory.defaultPage(); + request.setTypeFlag(2); + List responseList = projectService.projectApplyApprovalListPage(request, page); + page.setRecords(responseList); + return ReturnUtil.success(super.packForBT(page)); + } + + @ApiOperation("分包项目验收审批保存(保存至草稿箱)") + @PostMapping("/save") + @ResponseBody + public ReturnDTO save(@RequestBody @Valid OutsourceProjectCheckSaveOrUpdateRequest request, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.saveOrUpdateProjectCheck(request); + } + + @ApiOperation("草稿箱分包项目验收编辑") + @PostMapping("/draftUpdate") + @ResponseBody + public ReturnDTO draftUpdate(@RequestBody @Valid OutsourceProjectCheckSaveOrUpdateRequest request, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.saveOrUpdateProjectCheck(request); + } + + @ApiOperation("分包项目验收提交(未调用过保存接口保存至草稿箱需先调用保存接口,再调用该接口)") + @PostMapping("/submit") + @ResponseBody + public ReturnDTO submit(@RequestBody @Valid BaseApprovalSubmitRequest request, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.submitProjectCheck(request); + } + + /** + * 只清空验收所填字段及验收审批草稿状态 + */ + @ApiOperation("分包项目验收删除(草稿删除也调用该接口)") + @PostMapping("/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return projectService.projectCheckDelete(idDTO.getId()); + } + + /** + * 复用分包项目申请详情service + */ + @ApiOperation("分包项目验收详情") + @PostMapping("/detail") + @ResponseBody + public ReturnDTO supplierDetail(@RequestBody @Valid IdDTO idDTO) throws Exception { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return projectService.projectDetail(idDTO.getId()); + } + + /** + * 清空验收所填字段及验收审批状态 + */ + @ApiOperation("分包项目验收审批操作-删除") + @PostMapping("/approval/operate/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid ApprovalDeleteRequest request, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.projectCheckApprovalDelete(request); + } + + @ApiOperation("未通过分包项目验收编辑(驳回后的分包项目验收重新编辑,仅未通过列表中的编辑按钮可调用)") + @PostMapping("/failUpdate") + @ResponseBody + public ReturnDTO failUpdate(@RequestBody @Valid OutsourceProjectCheckSaveOrUpdateRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.projectCheckFailUpdate(request); + } } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index e792441..2cc4a24 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -68,8 +68,10 @@ OUTSOURCER_SAVE_FAILED(2419, "分包方保存至草稿箱失败"), OUTSOURCER_SUBMIT_FAILED(2420, "分包方提交处理失败"), - OUTSOURCE_PROJECT_SAVE_FAILED(2421, "分包项目保存至草稿箱失败"), - OUTSOURCE_PROJECT_SUBMIT_FAILED(2422, "分包项目提交处理失败"); + OUTSOURCE_PROJECT_APPLY_SAVE_FAILED(2421, "分包项目申请保存至草稿箱失败"), + OUTSOURCE_PROJECT_APPLY_SUBMIT_FAILED(2422, "分包项目申请提交处理失败"), + OUTSOURCE_PROJECT_CHECK_SAVE_FAILED(2423, "分包项目验收保存至草稿箱失败"), + OUTSOURCE_PROJECT_CHECK_SUBMIT_FAILED(2424, "分包项目验收提交处理失败"); private Integer code; private String message; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java index a318a34..d3d5eb4 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java @@ -17,4 +17,8 @@ String CERTIFICATE_REPORT_BEAN_NAME = "certificateReportBean"; + String OUTSOURCE_PROJECT_APPLY_BEAN_NAME = "outsourceProjectApplyBean"; + + String OUTSOURCE_PROJECT_CHECK_BEAN_NAME = "outsourceProjectCheckBean"; + } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareActionStatusEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareActionStatusEnum.java index 2435309..c45da69 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareActionStatusEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareActionStatusEnum.java @@ -19,6 +19,8 @@ DEVICE_LEASE_BORROWED(LEASE_BEAN_NAME, EquipmentApplyProcessEnum.WAIT_BORROWED), CERTIFICATE_PRINT_STATUS(CERTIFICATE_BEAN_NAME, ""), CERTIFICATE_REPORT_STATUS(CERTIFICATE_REPORT_BEAN_NAME, ""), + OUTSOURCE_PROJECT_APPLY(OUTSOURCE_PROJECT_APPLY_BEAN_NAME, ""), + OUTSOURCE_PROJECT_CHECK(OUTSOURCE_PROJECT_CHECK_BEAN_NAME, ""), ACTION_STATUS_MAP(new HashMap() { { put(ApplyFromIdEnum.STANDARD_REVERT_APPROVAL, EQUIPMENT_APPLY_USE); @@ -28,12 +30,14 @@ put(ApplyFromIdEnum.DEVICE_UNUSED_APPROVAL, DEVICE_MANAGING_IDLE); put(ApplyFromIdEnum.DEVICE_SEALED_APPROVAL, DEVICE_MANAGING_SEALED); put(ApplyFromIdEnum.DEVICE_UNSEALED_APPROVAL, DEVICE_MANAGING_USE); - put(ApplyFromIdEnum.DEVICE_SCRAPPED_ROVAL, DEVICE_MANAGING_SCRAP); + put(ApplyFromIdEnum.DEVICE_SCRAP_APPROVAL, DEVICE_MANAGING_SCRAP); put(ApplyFromIdEnum.DEVICE_HANDLE_APPROVAL, DEVICE_MANAGING_MANAGEMENT); put(ApplyFromIdEnum.DEVICE_CONSUMING_APPROVAL, DEVICE_LEASE_CONSUMING); // 设备领用申请 put(ApplyFromIdEnum.DEVICE_BORROW_APPROVAL, DEVICE_LEASE_BORROWED); // 设备借用申请 put(ApplyFromIdEnum.CERTIFICATE_PRINT_APPROVAL, CERTIFICATE_PRINT_STATUS); //证书打印审批通过状态回填 put(ApplyFromIdEnum.CERTIFICATE_REPORT_APPROVAL, CERTIFICATE_REPORT_STATUS); //证书报告审批通过状态回填 + put(ApplyFromIdEnum.OUTSOURCE_PROJECT_APPLY_APPROVAL, OUTSOURCE_PROJECT_APPLY); + put(ApplyFromIdEnum.OUTSOURCE_PROJECT_CHECK_APPROVAL, OUTSOURCE_PROJECT_CHECK); } }); String actionBeanName; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java index 5d16918..61c86df 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java @@ -12,7 +12,7 @@ String DEVICE_UNUSED_APPROVAL = "sbglsbxzsq"; // 设备闲置申请 String DEVICE_SEALED_APPROVAL = "sbglsbfcsq"; // 设备封存申请 String DEVICE_UNSEALED_APPROVAL = "sbglsbqfsq"; // 设备启封申请 - String DEVICE_SCRAPPED_ROVAL = "sbglsbbfsq"; // 设备报废申请 + String DEVICE_SCRAP_APPROVAL = "sbglsbbfsq"; // 设备报废申请 String DEVICE_HANDLE_APPROVAL = "sbglsbczsq"; // 设备处置申请 String DEVICE_CONSUMING_APPROVAL = "clsblysp"; // 设备领用申请 String DEVICE_BORROW_APPROVAL = "clsbjysp"; // 设备借用申请 @@ -20,4 +20,7 @@ String DEVICE_FIX_ACCEPTANCE = "sbglsbjxbyysd"; // 设备检修保养验收单 String CERTIFICATE_PRINT_APPROVAL = "ywglzsdy"; // 证书打印通过 String CERTIFICATE_REPORT_APPROVAL = "ywglzsbg"; // 证书报告通过 + String OUTSOURCER_APPROVAL = "ywglfbfzg"; // 分包方资格 + String OUTSOURCE_PROJECT_APPLY_APPROVAL = "ywglfbxmsq"; // 分包项目申请 + String OUTSOURCE_PROJECT_CHECK_APPROVAL = "ywglfbxmys"; // 分包项目验收 } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java index bddf56f..344358a 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java @@ -7,6 +7,7 @@ import com.casic.missiles.dto.business.SampleHandOutListResponse; import com.casic.missiles.dto.business.dispatch.DeviceDispatchDTO; import com.casic.missiles.dto.business.dispatch.DeviceDispatchVO; +import com.casic.missiles.dto.business.outsource.OrderSampleDTO; import com.casic.missiles.dto.customer.sample.CustomerSampleListVO; import com.casic.missiles.model.business.BusinessOrderSampleRelation; import org.apache.ibatis.annotations.Param; @@ -32,4 +33,8 @@ int updateByOrderIdAndSampleId(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId, @Param("status") String status); CustomerSampleListVO getInterChangeSampleList(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId); + + int updateTypeBatchByOrderAndSample(@Param("orderSampleDTOS") List orderSampleDTOS); + + int updateStatusBatchByOrderAndSample(@Param("orderSampleDTOS") List orderSampleDTOS); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOutsourceProjectMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOutsourceProjectMapper.java index b1724d8..b6d6726 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOutsourceProjectMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOutsourceProjectMapper.java @@ -26,4 +26,6 @@ Long selectMaxOutsourcerNo(); BusinessOutsourceProject selectProjectById(@Param("id") Long id); + + int updateForProjectCheck(@Param("id") Long id); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectApplyController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectApplyController.java index b7dae53..76facc2 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectApplyController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectApplyController.java @@ -11,6 +11,7 @@ import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.outsource.OutsourceProjectApprovalListRequest; import com.casic.missiles.dto.business.outsource.OutsourceProjectApprovalListResponse; +import com.casic.missiles.dto.business.outsource.OutsourceProjectListRequest; import com.casic.missiles.dto.business.outsource.OutsourceProjectSaveResponse; import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; import com.casic.missiles.enums.BusinessExceptionEnum; @@ -48,13 +49,14 @@ private IBusinessOutsourceProjectService projectService; @ApiOperation("分包项目申请审批列表(分页)") - @PostMapping("/approval/listPage") + @PostMapping("/approval/listPage") public ReturnDTO> approvalListPage(@RequestBody @Valid OutsourceProjectApprovalListRequest request, BindingResult bindingResult) throws Exception { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } DictCodeUtils.validDictCode(request); Page page = PageFactory.defaultPage(); + request.setTypeFlag(1); List responseList = projectService.projectApplyApprovalListPage(request, page); page.setRecords(responseList); return ReturnUtil.success(super.packForBT(page)); @@ -64,7 +66,7 @@ @PostMapping("/save") @ResponseBody public ReturnDTO save(@RequestBody @Valid BusinessOutsourceProject outsourceProject, BindingResult bindingResult) throws Exception { - Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getDtos()), () -> { + Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getOrderSampleList()), () -> { throw new BusinessException(BusinessExceptionEnum.SAMPLE_ORDER_IDS_NULL); }); if(bindingResult.hasErrors()){ @@ -81,7 +83,7 @@ Assert.isFalse(Objects.isNull(outsourceProject.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getDtos()), () -> { + Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getOrderSampleList()), () -> { throw new BusinessException(BusinessExceptionEnum.SAMPLE_ORDER_IDS_NULL); }); if(bindingResult.hasErrors()){ @@ -108,19 +110,9 @@ Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - return projectService.projectDelete(idDTO.getId()); + return projectService.projectApplyDelete(idDTO.getId()); } -// @ApiOperation("分包项目申请批量删除") -// @PostMapping("/batchDelete") -// @ResponseBody -// public ReturnDTO batchDelete(@RequestBody @Valid IdsDTO idsDTO) { -// Assert.isFalse(CollectionUtils.isEmpty(idsDTO.getIds()), () -> { -// throw new BusinessException(BusinessExceptionEnum.ID_NULL); -// }); -// return projectService.deleteBatchProject(idsDTO.getIds()); -// } - @ApiOperation("分包项目申请详情") @PostMapping("/detail") @ResponseBody @@ -151,6 +143,19 @@ if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return projectService.failUpdate(outsourceProject); + return projectService.projectApplyFailUpdate(outsourceProject); + } + + /** + * 查询分包项目申请审批通过列表 + */ + @ApiOperation("分包项目申请审批通过列表(分页)") + @PostMapping("/listPage") + public ReturnDTO> listPage(@RequestBody @Valid OutsourceProjectListRequest request, BindingResult bindingResult) throws Exception { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(projectService.projectListPage(request, page))); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectCheckController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectCheckController.java index f44d54c..6575ab7 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectCheckController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectCheckController.java @@ -1,10 +1,35 @@ package com.casic.missiles.controller.business; +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.BaseApprovalSubmitRequest; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.outsource.OutsourceProjectApprovalListRequest; +import com.casic.missiles.dto.business.outsource.OutsourceProjectApprovalListResponse; +import com.casic.missiles.dto.business.outsource.OutsourceProjectCheckSaveOrUpdateRequest; +import com.casic.missiles.dto.business.outsource.OutsourceProjectSaveResponse; +import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.business.BusinessOutsourceProject; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.service.business.IBusinessOutsourceProjectService; +import com.casic.missiles.utils.DictCodeUtils; import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.*; + +import javax.validation.Valid; +import java.util.List; +import java.util.Objects; /** *

@@ -19,5 +44,99 @@ @RestController @RequestMapping("/business/outsourceProject/check") public class BusinessOutsourceProjectCheckController extends ExportController { + @Autowired + private IBusinessOutsourceProjectService projectService; + @ApiOperation("分包项目验收审批列表(分页)") + @PostMapping("/approval/listPage") + public ReturnDTO> approvalListPage(@RequestBody @Valid OutsourceProjectApprovalListRequest request, BindingResult bindingResult) throws Exception { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + DictCodeUtils.validDictCode(request); + Page page = PageFactory.defaultPage(); + request.setTypeFlag(2); + List responseList = projectService.projectApplyApprovalListPage(request, page); + page.setRecords(responseList); + return ReturnUtil.success(super.packForBT(page)); + } + + @ApiOperation("分包项目验收审批保存(保存至草稿箱)") + @PostMapping("/save") + @ResponseBody + public ReturnDTO save(@RequestBody @Valid OutsourceProjectCheckSaveOrUpdateRequest request, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.saveOrUpdateProjectCheck(request); + } + + @ApiOperation("草稿箱分包项目验收编辑") + @PostMapping("/draftUpdate") + @ResponseBody + public ReturnDTO draftUpdate(@RequestBody @Valid OutsourceProjectCheckSaveOrUpdateRequest request, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.saveOrUpdateProjectCheck(request); + } + + @ApiOperation("分包项目验收提交(未调用过保存接口保存至草稿箱需先调用保存接口,再调用该接口)") + @PostMapping("/submit") + @ResponseBody + public ReturnDTO submit(@RequestBody @Valid BaseApprovalSubmitRequest request, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.submitProjectCheck(request); + } + + /** + * 只清空验收所填字段及验收审批草稿状态 + */ + @ApiOperation("分包项目验收删除(草稿删除也调用该接口)") + @PostMapping("/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return projectService.projectCheckDelete(idDTO.getId()); + } + + /** + * 复用分包项目申请详情service + */ + @ApiOperation("分包项目验收详情") + @PostMapping("/detail") + @ResponseBody + public ReturnDTO supplierDetail(@RequestBody @Valid IdDTO idDTO) throws Exception { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return projectService.projectDetail(idDTO.getId()); + } + + /** + * 清空验收所填字段及验收审批状态 + */ + @ApiOperation("分包项目验收审批操作-删除") + @PostMapping("/approval/operate/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid ApprovalDeleteRequest request, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.projectCheckApprovalDelete(request); + } + + @ApiOperation("未通过分包项目验收编辑(驳回后的分包项目验收重新编辑,仅未通过列表中的编辑按钮可调用)") + @PostMapping("/failUpdate") + @ResponseBody + public ReturnDTO failUpdate(@RequestBody @Valid OutsourceProjectCheckSaveOrUpdateRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.projectCheckFailUpdate(request); + } } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index e792441..2cc4a24 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -68,8 +68,10 @@ OUTSOURCER_SAVE_FAILED(2419, "分包方保存至草稿箱失败"), OUTSOURCER_SUBMIT_FAILED(2420, "分包方提交处理失败"), - OUTSOURCE_PROJECT_SAVE_FAILED(2421, "分包项目保存至草稿箱失败"), - OUTSOURCE_PROJECT_SUBMIT_FAILED(2422, "分包项目提交处理失败"); + OUTSOURCE_PROJECT_APPLY_SAVE_FAILED(2421, "分包项目申请保存至草稿箱失败"), + OUTSOURCE_PROJECT_APPLY_SUBMIT_FAILED(2422, "分包项目申请提交处理失败"), + OUTSOURCE_PROJECT_CHECK_SAVE_FAILED(2423, "分包项目验收保存至草稿箱失败"), + OUTSOURCE_PROJECT_CHECK_SUBMIT_FAILED(2424, "分包项目验收提交处理失败"); private Integer code; private String message; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java index a318a34..d3d5eb4 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java @@ -17,4 +17,8 @@ String CERTIFICATE_REPORT_BEAN_NAME = "certificateReportBean"; + String OUTSOURCE_PROJECT_APPLY_BEAN_NAME = "outsourceProjectApplyBean"; + + String OUTSOURCE_PROJECT_CHECK_BEAN_NAME = "outsourceProjectCheckBean"; + } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareActionStatusEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareActionStatusEnum.java index 2435309..c45da69 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareActionStatusEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareActionStatusEnum.java @@ -19,6 +19,8 @@ DEVICE_LEASE_BORROWED(LEASE_BEAN_NAME, EquipmentApplyProcessEnum.WAIT_BORROWED), CERTIFICATE_PRINT_STATUS(CERTIFICATE_BEAN_NAME, ""), CERTIFICATE_REPORT_STATUS(CERTIFICATE_REPORT_BEAN_NAME, ""), + OUTSOURCE_PROJECT_APPLY(OUTSOURCE_PROJECT_APPLY_BEAN_NAME, ""), + OUTSOURCE_PROJECT_CHECK(OUTSOURCE_PROJECT_CHECK_BEAN_NAME, ""), ACTION_STATUS_MAP(new HashMap() { { put(ApplyFromIdEnum.STANDARD_REVERT_APPROVAL, EQUIPMENT_APPLY_USE); @@ -28,12 +30,14 @@ put(ApplyFromIdEnum.DEVICE_UNUSED_APPROVAL, DEVICE_MANAGING_IDLE); put(ApplyFromIdEnum.DEVICE_SEALED_APPROVAL, DEVICE_MANAGING_SEALED); put(ApplyFromIdEnum.DEVICE_UNSEALED_APPROVAL, DEVICE_MANAGING_USE); - put(ApplyFromIdEnum.DEVICE_SCRAPPED_ROVAL, DEVICE_MANAGING_SCRAP); + put(ApplyFromIdEnum.DEVICE_SCRAP_APPROVAL, DEVICE_MANAGING_SCRAP); put(ApplyFromIdEnum.DEVICE_HANDLE_APPROVAL, DEVICE_MANAGING_MANAGEMENT); put(ApplyFromIdEnum.DEVICE_CONSUMING_APPROVAL, DEVICE_LEASE_CONSUMING); // 设备领用申请 put(ApplyFromIdEnum.DEVICE_BORROW_APPROVAL, DEVICE_LEASE_BORROWED); // 设备借用申请 put(ApplyFromIdEnum.CERTIFICATE_PRINT_APPROVAL, CERTIFICATE_PRINT_STATUS); //证书打印审批通过状态回填 put(ApplyFromIdEnum.CERTIFICATE_REPORT_APPROVAL, CERTIFICATE_REPORT_STATUS); //证书报告审批通过状态回填 + put(ApplyFromIdEnum.OUTSOURCE_PROJECT_APPLY_APPROVAL, OUTSOURCE_PROJECT_APPLY); + put(ApplyFromIdEnum.OUTSOURCE_PROJECT_CHECK_APPROVAL, OUTSOURCE_PROJECT_CHECK); } }); String actionBeanName; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java index 5d16918..61c86df 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java @@ -12,7 +12,7 @@ String DEVICE_UNUSED_APPROVAL = "sbglsbxzsq"; // 设备闲置申请 String DEVICE_SEALED_APPROVAL = "sbglsbfcsq"; // 设备封存申请 String DEVICE_UNSEALED_APPROVAL = "sbglsbqfsq"; // 设备启封申请 - String DEVICE_SCRAPPED_ROVAL = "sbglsbbfsq"; // 设备报废申请 + String DEVICE_SCRAP_APPROVAL = "sbglsbbfsq"; // 设备报废申请 String DEVICE_HANDLE_APPROVAL = "sbglsbczsq"; // 设备处置申请 String DEVICE_CONSUMING_APPROVAL = "clsblysp"; // 设备领用申请 String DEVICE_BORROW_APPROVAL = "clsbjysp"; // 设备借用申请 @@ -20,4 +20,7 @@ String DEVICE_FIX_ACCEPTANCE = "sbglsbjxbyysd"; // 设备检修保养验收单 String CERTIFICATE_PRINT_APPROVAL = "ywglzsdy"; // 证书打印通过 String CERTIFICATE_REPORT_APPROVAL = "ywglzsbg"; // 证书报告通过 + String OUTSOURCER_APPROVAL = "ywglfbfzg"; // 分包方资格 + String OUTSOURCE_PROJECT_APPLY_APPROVAL = "ywglfbxmsq"; // 分包项目申请 + String OUTSOURCE_PROJECT_CHECK_APPROVAL = "ywglfbxmys"; // 分包项目验收 } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java index bddf56f..344358a 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java @@ -7,6 +7,7 @@ import com.casic.missiles.dto.business.SampleHandOutListResponse; import com.casic.missiles.dto.business.dispatch.DeviceDispatchDTO; import com.casic.missiles.dto.business.dispatch.DeviceDispatchVO; +import com.casic.missiles.dto.business.outsource.OrderSampleDTO; import com.casic.missiles.dto.customer.sample.CustomerSampleListVO; import com.casic.missiles.model.business.BusinessOrderSampleRelation; import org.apache.ibatis.annotations.Param; @@ -32,4 +33,8 @@ int updateByOrderIdAndSampleId(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId, @Param("status") String status); CustomerSampleListVO getInterChangeSampleList(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId); + + int updateTypeBatchByOrderAndSample(@Param("orderSampleDTOS") List orderSampleDTOS); + + int updateStatusBatchByOrderAndSample(@Param("orderSampleDTOS") List orderSampleDTOS); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOutsourceProjectMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOutsourceProjectMapper.java index b1724d8..b6d6726 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOutsourceProjectMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOutsourceProjectMapper.java @@ -26,4 +26,6 @@ Long selectMaxOutsourcerNo(); BusinessOutsourceProject selectProjectById(@Param("id") Long id); + + int updateForProjectCheck(@Param("id") Long id); } diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml index 95012eb..881bbb2 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -180,4 +180,19 @@ )bosr ON bosr.sampleId=bo.id + + + UPDATE business_order_sample_relation + SET measure_type = 2 + WHERE order_id = #{item.orderId} AND sample_id = #{item.sampleId} + + + + + + UPDATE business_order_sample_relation + SET sample_status = 4 + WHERE order_id = #{item.orderId} AND sample_id = #{item.sampleId} + + diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectApplyController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectApplyController.java index b7dae53..76facc2 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectApplyController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectApplyController.java @@ -11,6 +11,7 @@ import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.outsource.OutsourceProjectApprovalListRequest; import com.casic.missiles.dto.business.outsource.OutsourceProjectApprovalListResponse; +import com.casic.missiles.dto.business.outsource.OutsourceProjectListRequest; import com.casic.missiles.dto.business.outsource.OutsourceProjectSaveResponse; import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; import com.casic.missiles.enums.BusinessExceptionEnum; @@ -48,13 +49,14 @@ private IBusinessOutsourceProjectService projectService; @ApiOperation("分包项目申请审批列表(分页)") - @PostMapping("/approval/listPage") + @PostMapping("/approval/listPage") public ReturnDTO> approvalListPage(@RequestBody @Valid OutsourceProjectApprovalListRequest request, BindingResult bindingResult) throws Exception { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } DictCodeUtils.validDictCode(request); Page page = PageFactory.defaultPage(); + request.setTypeFlag(1); List responseList = projectService.projectApplyApprovalListPage(request, page); page.setRecords(responseList); return ReturnUtil.success(super.packForBT(page)); @@ -64,7 +66,7 @@ @PostMapping("/save") @ResponseBody public ReturnDTO save(@RequestBody @Valid BusinessOutsourceProject outsourceProject, BindingResult bindingResult) throws Exception { - Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getDtos()), () -> { + Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getOrderSampleList()), () -> { throw new BusinessException(BusinessExceptionEnum.SAMPLE_ORDER_IDS_NULL); }); if(bindingResult.hasErrors()){ @@ -81,7 +83,7 @@ Assert.isFalse(Objects.isNull(outsourceProject.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getDtos()), () -> { + Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getOrderSampleList()), () -> { throw new BusinessException(BusinessExceptionEnum.SAMPLE_ORDER_IDS_NULL); }); if(bindingResult.hasErrors()){ @@ -108,19 +110,9 @@ Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - return projectService.projectDelete(idDTO.getId()); + return projectService.projectApplyDelete(idDTO.getId()); } -// @ApiOperation("分包项目申请批量删除") -// @PostMapping("/batchDelete") -// @ResponseBody -// public ReturnDTO batchDelete(@RequestBody @Valid IdsDTO idsDTO) { -// Assert.isFalse(CollectionUtils.isEmpty(idsDTO.getIds()), () -> { -// throw new BusinessException(BusinessExceptionEnum.ID_NULL); -// }); -// return projectService.deleteBatchProject(idsDTO.getIds()); -// } - @ApiOperation("分包项目申请详情") @PostMapping("/detail") @ResponseBody @@ -151,6 +143,19 @@ if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return projectService.failUpdate(outsourceProject); + return projectService.projectApplyFailUpdate(outsourceProject); + } + + /** + * 查询分包项目申请审批通过列表 + */ + @ApiOperation("分包项目申请审批通过列表(分页)") + @PostMapping("/listPage") + public ReturnDTO> listPage(@RequestBody @Valid OutsourceProjectListRequest request, BindingResult bindingResult) throws Exception { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(projectService.projectListPage(request, page))); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectCheckController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectCheckController.java index f44d54c..6575ab7 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectCheckController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectCheckController.java @@ -1,10 +1,35 @@ package com.casic.missiles.controller.business; +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.BaseApprovalSubmitRequest; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.outsource.OutsourceProjectApprovalListRequest; +import com.casic.missiles.dto.business.outsource.OutsourceProjectApprovalListResponse; +import com.casic.missiles.dto.business.outsource.OutsourceProjectCheckSaveOrUpdateRequest; +import com.casic.missiles.dto.business.outsource.OutsourceProjectSaveResponse; +import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.business.BusinessOutsourceProject; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.service.business.IBusinessOutsourceProjectService; +import com.casic.missiles.utils.DictCodeUtils; import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.*; + +import javax.validation.Valid; +import java.util.List; +import java.util.Objects; /** *

@@ -19,5 +44,99 @@ @RestController @RequestMapping("/business/outsourceProject/check") public class BusinessOutsourceProjectCheckController extends ExportController { + @Autowired + private IBusinessOutsourceProjectService projectService; + @ApiOperation("分包项目验收审批列表(分页)") + @PostMapping("/approval/listPage") + public ReturnDTO> approvalListPage(@RequestBody @Valid OutsourceProjectApprovalListRequest request, BindingResult bindingResult) throws Exception { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + DictCodeUtils.validDictCode(request); + Page page = PageFactory.defaultPage(); + request.setTypeFlag(2); + List responseList = projectService.projectApplyApprovalListPage(request, page); + page.setRecords(responseList); + return ReturnUtil.success(super.packForBT(page)); + } + + @ApiOperation("分包项目验收审批保存(保存至草稿箱)") + @PostMapping("/save") + @ResponseBody + public ReturnDTO save(@RequestBody @Valid OutsourceProjectCheckSaveOrUpdateRequest request, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.saveOrUpdateProjectCheck(request); + } + + @ApiOperation("草稿箱分包项目验收编辑") + @PostMapping("/draftUpdate") + @ResponseBody + public ReturnDTO draftUpdate(@RequestBody @Valid OutsourceProjectCheckSaveOrUpdateRequest request, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.saveOrUpdateProjectCheck(request); + } + + @ApiOperation("分包项目验收提交(未调用过保存接口保存至草稿箱需先调用保存接口,再调用该接口)") + @PostMapping("/submit") + @ResponseBody + public ReturnDTO submit(@RequestBody @Valid BaseApprovalSubmitRequest request, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.submitProjectCheck(request); + } + + /** + * 只清空验收所填字段及验收审批草稿状态 + */ + @ApiOperation("分包项目验收删除(草稿删除也调用该接口)") + @PostMapping("/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return projectService.projectCheckDelete(idDTO.getId()); + } + + /** + * 复用分包项目申请详情service + */ + @ApiOperation("分包项目验收详情") + @PostMapping("/detail") + @ResponseBody + public ReturnDTO supplierDetail(@RequestBody @Valid IdDTO idDTO) throws Exception { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return projectService.projectDetail(idDTO.getId()); + } + + /** + * 清空验收所填字段及验收审批状态 + */ + @ApiOperation("分包项目验收审批操作-删除") + @PostMapping("/approval/operate/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid ApprovalDeleteRequest request, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.projectCheckApprovalDelete(request); + } + + @ApiOperation("未通过分包项目验收编辑(驳回后的分包项目验收重新编辑,仅未通过列表中的编辑按钮可调用)") + @PostMapping("/failUpdate") + @ResponseBody + public ReturnDTO failUpdate(@RequestBody @Valid OutsourceProjectCheckSaveOrUpdateRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.projectCheckFailUpdate(request); + } } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index e792441..2cc4a24 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -68,8 +68,10 @@ OUTSOURCER_SAVE_FAILED(2419, "分包方保存至草稿箱失败"), OUTSOURCER_SUBMIT_FAILED(2420, "分包方提交处理失败"), - OUTSOURCE_PROJECT_SAVE_FAILED(2421, "分包项目保存至草稿箱失败"), - OUTSOURCE_PROJECT_SUBMIT_FAILED(2422, "分包项目提交处理失败"); + OUTSOURCE_PROJECT_APPLY_SAVE_FAILED(2421, "分包项目申请保存至草稿箱失败"), + OUTSOURCE_PROJECT_APPLY_SUBMIT_FAILED(2422, "分包项目申请提交处理失败"), + OUTSOURCE_PROJECT_CHECK_SAVE_FAILED(2423, "分包项目验收保存至草稿箱失败"), + OUTSOURCE_PROJECT_CHECK_SUBMIT_FAILED(2424, "分包项目验收提交处理失败"); private Integer code; private String message; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java index a318a34..d3d5eb4 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java @@ -17,4 +17,8 @@ String CERTIFICATE_REPORT_BEAN_NAME = "certificateReportBean"; + String OUTSOURCE_PROJECT_APPLY_BEAN_NAME = "outsourceProjectApplyBean"; + + String OUTSOURCE_PROJECT_CHECK_BEAN_NAME = "outsourceProjectCheckBean"; + } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareActionStatusEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareActionStatusEnum.java index 2435309..c45da69 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareActionStatusEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareActionStatusEnum.java @@ -19,6 +19,8 @@ DEVICE_LEASE_BORROWED(LEASE_BEAN_NAME, EquipmentApplyProcessEnum.WAIT_BORROWED), CERTIFICATE_PRINT_STATUS(CERTIFICATE_BEAN_NAME, ""), CERTIFICATE_REPORT_STATUS(CERTIFICATE_REPORT_BEAN_NAME, ""), + OUTSOURCE_PROJECT_APPLY(OUTSOURCE_PROJECT_APPLY_BEAN_NAME, ""), + OUTSOURCE_PROJECT_CHECK(OUTSOURCE_PROJECT_CHECK_BEAN_NAME, ""), ACTION_STATUS_MAP(new HashMap() { { put(ApplyFromIdEnum.STANDARD_REVERT_APPROVAL, EQUIPMENT_APPLY_USE); @@ -28,12 +30,14 @@ put(ApplyFromIdEnum.DEVICE_UNUSED_APPROVAL, DEVICE_MANAGING_IDLE); put(ApplyFromIdEnum.DEVICE_SEALED_APPROVAL, DEVICE_MANAGING_SEALED); put(ApplyFromIdEnum.DEVICE_UNSEALED_APPROVAL, DEVICE_MANAGING_USE); - put(ApplyFromIdEnum.DEVICE_SCRAPPED_ROVAL, DEVICE_MANAGING_SCRAP); + put(ApplyFromIdEnum.DEVICE_SCRAP_APPROVAL, DEVICE_MANAGING_SCRAP); put(ApplyFromIdEnum.DEVICE_HANDLE_APPROVAL, DEVICE_MANAGING_MANAGEMENT); put(ApplyFromIdEnum.DEVICE_CONSUMING_APPROVAL, DEVICE_LEASE_CONSUMING); // 设备领用申请 put(ApplyFromIdEnum.DEVICE_BORROW_APPROVAL, DEVICE_LEASE_BORROWED); // 设备借用申请 put(ApplyFromIdEnum.CERTIFICATE_PRINT_APPROVAL, CERTIFICATE_PRINT_STATUS); //证书打印审批通过状态回填 put(ApplyFromIdEnum.CERTIFICATE_REPORT_APPROVAL, CERTIFICATE_REPORT_STATUS); //证书报告审批通过状态回填 + put(ApplyFromIdEnum.OUTSOURCE_PROJECT_APPLY_APPROVAL, OUTSOURCE_PROJECT_APPLY); + put(ApplyFromIdEnum.OUTSOURCE_PROJECT_CHECK_APPROVAL, OUTSOURCE_PROJECT_CHECK); } }); String actionBeanName; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java index 5d16918..61c86df 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java @@ -12,7 +12,7 @@ String DEVICE_UNUSED_APPROVAL = "sbglsbxzsq"; // 设备闲置申请 String DEVICE_SEALED_APPROVAL = "sbglsbfcsq"; // 设备封存申请 String DEVICE_UNSEALED_APPROVAL = "sbglsbqfsq"; // 设备启封申请 - String DEVICE_SCRAPPED_ROVAL = "sbglsbbfsq"; // 设备报废申请 + String DEVICE_SCRAP_APPROVAL = "sbglsbbfsq"; // 设备报废申请 String DEVICE_HANDLE_APPROVAL = "sbglsbczsq"; // 设备处置申请 String DEVICE_CONSUMING_APPROVAL = "clsblysp"; // 设备领用申请 String DEVICE_BORROW_APPROVAL = "clsbjysp"; // 设备借用申请 @@ -20,4 +20,7 @@ String DEVICE_FIX_ACCEPTANCE = "sbglsbjxbyysd"; // 设备检修保养验收单 String CERTIFICATE_PRINT_APPROVAL = "ywglzsdy"; // 证书打印通过 String CERTIFICATE_REPORT_APPROVAL = "ywglzsbg"; // 证书报告通过 + String OUTSOURCER_APPROVAL = "ywglfbfzg"; // 分包方资格 + String OUTSOURCE_PROJECT_APPLY_APPROVAL = "ywglfbxmsq"; // 分包项目申请 + String OUTSOURCE_PROJECT_CHECK_APPROVAL = "ywglfbxmys"; // 分包项目验收 } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java index bddf56f..344358a 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java @@ -7,6 +7,7 @@ import com.casic.missiles.dto.business.SampleHandOutListResponse; import com.casic.missiles.dto.business.dispatch.DeviceDispatchDTO; import com.casic.missiles.dto.business.dispatch.DeviceDispatchVO; +import com.casic.missiles.dto.business.outsource.OrderSampleDTO; import com.casic.missiles.dto.customer.sample.CustomerSampleListVO; import com.casic.missiles.model.business.BusinessOrderSampleRelation; import org.apache.ibatis.annotations.Param; @@ -32,4 +33,8 @@ int updateByOrderIdAndSampleId(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId, @Param("status") String status); CustomerSampleListVO getInterChangeSampleList(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId); + + int updateTypeBatchByOrderAndSample(@Param("orderSampleDTOS") List orderSampleDTOS); + + int updateStatusBatchByOrderAndSample(@Param("orderSampleDTOS") List orderSampleDTOS); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOutsourceProjectMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOutsourceProjectMapper.java index b1724d8..b6d6726 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOutsourceProjectMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOutsourceProjectMapper.java @@ -26,4 +26,6 @@ Long selectMaxOutsourcerNo(); BusinessOutsourceProject selectProjectById(@Param("id") Long id); + + int updateForProjectCheck(@Param("id") Long id); } diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml index 95012eb..881bbb2 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -180,4 +180,19 @@ )bosr ON bosr.sampleId=bo.id + + + UPDATE business_order_sample_relation + SET measure_type = 2 + WHERE order_id = #{item.orderId} AND sample_id = #{item.sampleId} + + + + + + UPDATE business_order_sample_relation + SET sample_status = 4 + WHERE order_id = #{item.orderId} AND sample_id = #{item.sampleId} + + diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourceProjectMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourceProjectMapper.xml index f35e05d..6c69ac9 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourceProjectMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourceProjectMapper.xml @@ -8,37 +8,43 @@ + + - + + - + + - - - id, project_no, project_name, applicant_id, applicant_name, applicant_time, pre_cost, outsourcer_id, outsource_reason, pre_start_time, pre_end_time, minio_file_name, apply_approval_status, apply_process_id, check_approval_status, check_process_id, check_conclusion, check_time, remark, create_time, update_time - - + + + UPDATE business_outsource_project + SET checker_id = null, checker_name = null, check_conclusion = null, check_minio_file_name = null, check_remark = null, check_approval_status = null + WHERE id = #{id} + diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectApplyController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectApplyController.java index b7dae53..76facc2 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectApplyController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectApplyController.java @@ -11,6 +11,7 @@ import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.outsource.OutsourceProjectApprovalListRequest; import com.casic.missiles.dto.business.outsource.OutsourceProjectApprovalListResponse; +import com.casic.missiles.dto.business.outsource.OutsourceProjectListRequest; import com.casic.missiles.dto.business.outsource.OutsourceProjectSaveResponse; import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; import com.casic.missiles.enums.BusinessExceptionEnum; @@ -48,13 +49,14 @@ private IBusinessOutsourceProjectService projectService; @ApiOperation("分包项目申请审批列表(分页)") - @PostMapping("/approval/listPage") + @PostMapping("/approval/listPage") public ReturnDTO> approvalListPage(@RequestBody @Valid OutsourceProjectApprovalListRequest request, BindingResult bindingResult) throws Exception { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } DictCodeUtils.validDictCode(request); Page page = PageFactory.defaultPage(); + request.setTypeFlag(1); List responseList = projectService.projectApplyApprovalListPage(request, page); page.setRecords(responseList); return ReturnUtil.success(super.packForBT(page)); @@ -64,7 +66,7 @@ @PostMapping("/save") @ResponseBody public ReturnDTO save(@RequestBody @Valid BusinessOutsourceProject outsourceProject, BindingResult bindingResult) throws Exception { - Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getDtos()), () -> { + Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getOrderSampleList()), () -> { throw new BusinessException(BusinessExceptionEnum.SAMPLE_ORDER_IDS_NULL); }); if(bindingResult.hasErrors()){ @@ -81,7 +83,7 @@ Assert.isFalse(Objects.isNull(outsourceProject.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getDtos()), () -> { + Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getOrderSampleList()), () -> { throw new BusinessException(BusinessExceptionEnum.SAMPLE_ORDER_IDS_NULL); }); if(bindingResult.hasErrors()){ @@ -108,19 +110,9 @@ Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - return projectService.projectDelete(idDTO.getId()); + return projectService.projectApplyDelete(idDTO.getId()); } -// @ApiOperation("分包项目申请批量删除") -// @PostMapping("/batchDelete") -// @ResponseBody -// public ReturnDTO batchDelete(@RequestBody @Valid IdsDTO idsDTO) { -// Assert.isFalse(CollectionUtils.isEmpty(idsDTO.getIds()), () -> { -// throw new BusinessException(BusinessExceptionEnum.ID_NULL); -// }); -// return projectService.deleteBatchProject(idsDTO.getIds()); -// } - @ApiOperation("分包项目申请详情") @PostMapping("/detail") @ResponseBody @@ -151,6 +143,19 @@ if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return projectService.failUpdate(outsourceProject); + return projectService.projectApplyFailUpdate(outsourceProject); + } + + /** + * 查询分包项目申请审批通过列表 + */ + @ApiOperation("分包项目申请审批通过列表(分页)") + @PostMapping("/listPage") + public ReturnDTO> listPage(@RequestBody @Valid OutsourceProjectListRequest request, BindingResult bindingResult) throws Exception { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(projectService.projectListPage(request, page))); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectCheckController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectCheckController.java index f44d54c..6575ab7 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectCheckController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectCheckController.java @@ -1,10 +1,35 @@ package com.casic.missiles.controller.business; +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.BaseApprovalSubmitRequest; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.outsource.OutsourceProjectApprovalListRequest; +import com.casic.missiles.dto.business.outsource.OutsourceProjectApprovalListResponse; +import com.casic.missiles.dto.business.outsource.OutsourceProjectCheckSaveOrUpdateRequest; +import com.casic.missiles.dto.business.outsource.OutsourceProjectSaveResponse; +import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.business.BusinessOutsourceProject; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.service.business.IBusinessOutsourceProjectService; +import com.casic.missiles.utils.DictCodeUtils; import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.*; + +import javax.validation.Valid; +import java.util.List; +import java.util.Objects; /** *

@@ -19,5 +44,99 @@ @RestController @RequestMapping("/business/outsourceProject/check") public class BusinessOutsourceProjectCheckController extends ExportController { + @Autowired + private IBusinessOutsourceProjectService projectService; + @ApiOperation("分包项目验收审批列表(分页)") + @PostMapping("/approval/listPage") + public ReturnDTO> approvalListPage(@RequestBody @Valid OutsourceProjectApprovalListRequest request, BindingResult bindingResult) throws Exception { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + DictCodeUtils.validDictCode(request); + Page page = PageFactory.defaultPage(); + request.setTypeFlag(2); + List responseList = projectService.projectApplyApprovalListPage(request, page); + page.setRecords(responseList); + return ReturnUtil.success(super.packForBT(page)); + } + + @ApiOperation("分包项目验收审批保存(保存至草稿箱)") + @PostMapping("/save") + @ResponseBody + public ReturnDTO save(@RequestBody @Valid OutsourceProjectCheckSaveOrUpdateRequest request, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.saveOrUpdateProjectCheck(request); + } + + @ApiOperation("草稿箱分包项目验收编辑") + @PostMapping("/draftUpdate") + @ResponseBody + public ReturnDTO draftUpdate(@RequestBody @Valid OutsourceProjectCheckSaveOrUpdateRequest request, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.saveOrUpdateProjectCheck(request); + } + + @ApiOperation("分包项目验收提交(未调用过保存接口保存至草稿箱需先调用保存接口,再调用该接口)") + @PostMapping("/submit") + @ResponseBody + public ReturnDTO submit(@RequestBody @Valid BaseApprovalSubmitRequest request, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.submitProjectCheck(request); + } + + /** + * 只清空验收所填字段及验收审批草稿状态 + */ + @ApiOperation("分包项目验收删除(草稿删除也调用该接口)") + @PostMapping("/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return projectService.projectCheckDelete(idDTO.getId()); + } + + /** + * 复用分包项目申请详情service + */ + @ApiOperation("分包项目验收详情") + @PostMapping("/detail") + @ResponseBody + public ReturnDTO supplierDetail(@RequestBody @Valid IdDTO idDTO) throws Exception { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return projectService.projectDetail(idDTO.getId()); + } + + /** + * 清空验收所填字段及验收审批状态 + */ + @ApiOperation("分包项目验收审批操作-删除") + @PostMapping("/approval/operate/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid ApprovalDeleteRequest request, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.projectCheckApprovalDelete(request); + } + + @ApiOperation("未通过分包项目验收编辑(驳回后的分包项目验收重新编辑,仅未通过列表中的编辑按钮可调用)") + @PostMapping("/failUpdate") + @ResponseBody + public ReturnDTO failUpdate(@RequestBody @Valid OutsourceProjectCheckSaveOrUpdateRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.projectCheckFailUpdate(request); + } } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index e792441..2cc4a24 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -68,8 +68,10 @@ OUTSOURCER_SAVE_FAILED(2419, "分包方保存至草稿箱失败"), OUTSOURCER_SUBMIT_FAILED(2420, "分包方提交处理失败"), - OUTSOURCE_PROJECT_SAVE_FAILED(2421, "分包项目保存至草稿箱失败"), - OUTSOURCE_PROJECT_SUBMIT_FAILED(2422, "分包项目提交处理失败"); + OUTSOURCE_PROJECT_APPLY_SAVE_FAILED(2421, "分包项目申请保存至草稿箱失败"), + OUTSOURCE_PROJECT_APPLY_SUBMIT_FAILED(2422, "分包项目申请提交处理失败"), + OUTSOURCE_PROJECT_CHECK_SAVE_FAILED(2423, "分包项目验收保存至草稿箱失败"), + OUTSOURCE_PROJECT_CHECK_SUBMIT_FAILED(2424, "分包项目验收提交处理失败"); private Integer code; private String message; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java index a318a34..d3d5eb4 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java @@ -17,4 +17,8 @@ String CERTIFICATE_REPORT_BEAN_NAME = "certificateReportBean"; + String OUTSOURCE_PROJECT_APPLY_BEAN_NAME = "outsourceProjectApplyBean"; + + String OUTSOURCE_PROJECT_CHECK_BEAN_NAME = "outsourceProjectCheckBean"; + } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareActionStatusEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareActionStatusEnum.java index 2435309..c45da69 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareActionStatusEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareActionStatusEnum.java @@ -19,6 +19,8 @@ DEVICE_LEASE_BORROWED(LEASE_BEAN_NAME, EquipmentApplyProcessEnum.WAIT_BORROWED), CERTIFICATE_PRINT_STATUS(CERTIFICATE_BEAN_NAME, ""), CERTIFICATE_REPORT_STATUS(CERTIFICATE_REPORT_BEAN_NAME, ""), + OUTSOURCE_PROJECT_APPLY(OUTSOURCE_PROJECT_APPLY_BEAN_NAME, ""), + OUTSOURCE_PROJECT_CHECK(OUTSOURCE_PROJECT_CHECK_BEAN_NAME, ""), ACTION_STATUS_MAP(new HashMap() { { put(ApplyFromIdEnum.STANDARD_REVERT_APPROVAL, EQUIPMENT_APPLY_USE); @@ -28,12 +30,14 @@ put(ApplyFromIdEnum.DEVICE_UNUSED_APPROVAL, DEVICE_MANAGING_IDLE); put(ApplyFromIdEnum.DEVICE_SEALED_APPROVAL, DEVICE_MANAGING_SEALED); put(ApplyFromIdEnum.DEVICE_UNSEALED_APPROVAL, DEVICE_MANAGING_USE); - put(ApplyFromIdEnum.DEVICE_SCRAPPED_ROVAL, DEVICE_MANAGING_SCRAP); + put(ApplyFromIdEnum.DEVICE_SCRAP_APPROVAL, DEVICE_MANAGING_SCRAP); put(ApplyFromIdEnum.DEVICE_HANDLE_APPROVAL, DEVICE_MANAGING_MANAGEMENT); put(ApplyFromIdEnum.DEVICE_CONSUMING_APPROVAL, DEVICE_LEASE_CONSUMING); // 设备领用申请 put(ApplyFromIdEnum.DEVICE_BORROW_APPROVAL, DEVICE_LEASE_BORROWED); // 设备借用申请 put(ApplyFromIdEnum.CERTIFICATE_PRINT_APPROVAL, CERTIFICATE_PRINT_STATUS); //证书打印审批通过状态回填 put(ApplyFromIdEnum.CERTIFICATE_REPORT_APPROVAL, CERTIFICATE_REPORT_STATUS); //证书报告审批通过状态回填 + put(ApplyFromIdEnum.OUTSOURCE_PROJECT_APPLY_APPROVAL, OUTSOURCE_PROJECT_APPLY); + put(ApplyFromIdEnum.OUTSOURCE_PROJECT_CHECK_APPROVAL, OUTSOURCE_PROJECT_CHECK); } }); String actionBeanName; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java index 5d16918..61c86df 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java @@ -12,7 +12,7 @@ String DEVICE_UNUSED_APPROVAL = "sbglsbxzsq"; // 设备闲置申请 String DEVICE_SEALED_APPROVAL = "sbglsbfcsq"; // 设备封存申请 String DEVICE_UNSEALED_APPROVAL = "sbglsbqfsq"; // 设备启封申请 - String DEVICE_SCRAPPED_ROVAL = "sbglsbbfsq"; // 设备报废申请 + String DEVICE_SCRAP_APPROVAL = "sbglsbbfsq"; // 设备报废申请 String DEVICE_HANDLE_APPROVAL = "sbglsbczsq"; // 设备处置申请 String DEVICE_CONSUMING_APPROVAL = "clsblysp"; // 设备领用申请 String DEVICE_BORROW_APPROVAL = "clsbjysp"; // 设备借用申请 @@ -20,4 +20,7 @@ String DEVICE_FIX_ACCEPTANCE = "sbglsbjxbyysd"; // 设备检修保养验收单 String CERTIFICATE_PRINT_APPROVAL = "ywglzsdy"; // 证书打印通过 String CERTIFICATE_REPORT_APPROVAL = "ywglzsbg"; // 证书报告通过 + String OUTSOURCER_APPROVAL = "ywglfbfzg"; // 分包方资格 + String OUTSOURCE_PROJECT_APPLY_APPROVAL = "ywglfbxmsq"; // 分包项目申请 + String OUTSOURCE_PROJECT_CHECK_APPROVAL = "ywglfbxmys"; // 分包项目验收 } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java index bddf56f..344358a 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java @@ -7,6 +7,7 @@ import com.casic.missiles.dto.business.SampleHandOutListResponse; import com.casic.missiles.dto.business.dispatch.DeviceDispatchDTO; import com.casic.missiles.dto.business.dispatch.DeviceDispatchVO; +import com.casic.missiles.dto.business.outsource.OrderSampleDTO; import com.casic.missiles.dto.customer.sample.CustomerSampleListVO; import com.casic.missiles.model.business.BusinessOrderSampleRelation; import org.apache.ibatis.annotations.Param; @@ -32,4 +33,8 @@ int updateByOrderIdAndSampleId(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId, @Param("status") String status); CustomerSampleListVO getInterChangeSampleList(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId); + + int updateTypeBatchByOrderAndSample(@Param("orderSampleDTOS") List orderSampleDTOS); + + int updateStatusBatchByOrderAndSample(@Param("orderSampleDTOS") List orderSampleDTOS); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOutsourceProjectMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOutsourceProjectMapper.java index b1724d8..b6d6726 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOutsourceProjectMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOutsourceProjectMapper.java @@ -26,4 +26,6 @@ Long selectMaxOutsourcerNo(); BusinessOutsourceProject selectProjectById(@Param("id") Long id); + + int updateForProjectCheck(@Param("id") Long id); } diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml index 95012eb..881bbb2 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -180,4 +180,19 @@ )bosr ON bosr.sampleId=bo.id + + + UPDATE business_order_sample_relation + SET measure_type = 2 + WHERE order_id = #{item.orderId} AND sample_id = #{item.sampleId} + + + + + + UPDATE business_order_sample_relation + SET sample_status = 4 + WHERE order_id = #{item.orderId} AND sample_id = #{item.sampleId} + + diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourceProjectMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourceProjectMapper.xml index f35e05d..6c69ac9 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourceProjectMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourceProjectMapper.xml @@ -8,37 +8,43 @@ + + - + + - + + - - - id, project_no, project_name, applicant_id, applicant_name, applicant_time, pre_cost, outsourcer_id, outsource_reason, pre_start_time, pre_end_time, minio_file_name, apply_approval_status, apply_process_id, check_approval_status, check_process_id, check_conclusion, check_time, remark, create_time, update_time - - + + + UPDATE business_outsource_project + SET checker_id = null, checker_name = null, check_conclusion = null, check_minio_file_name = null, check_remark = null, check_approval_status = null + WHERE id = #{id} + diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourcerInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourcerInfoMapper.xml index a00bac6..2273d52 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourcerInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourcerInfoMapper.xml @@ -47,17 +47,11 @@ - - - - id, outsourcer_no, outsourcer_name, outsourcer_brief_name, outsourcer_size, business_size, grade, evaluation, business_content, tax_number, bank_account, bank_name, bank_account_number, postal_code, director, phone, mobile, email, website, address_country, address_province, address_city, address_area, full_address, address_country_name, address_province_name, address_city_name, address_area_name, invoice_country, invoice_province, invoice_city, invoice_area, invoice_full_address, invoice_country_name, invoice_province_name, invoice_city_name, invoice_area_name, business_scope, minio_file_name, approval_status, process_id, remark, create_user, update_user, is_del, create_time, update_time - - + + + UPDATE business_order_sample_relation + SET measure_type = 2 + WHERE order_id = #{item.orderId} AND sample_id = #{item.sampleId} + + + + + + UPDATE business_order_sample_relation + SET sample_status = 4 + WHERE order_id = #{item.orderId} AND sample_id = #{item.sampleId} + + diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourceProjectMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourceProjectMapper.xml index f35e05d..6c69ac9 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourceProjectMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourceProjectMapper.xml @@ -8,37 +8,43 @@ + + - + + - + + - - - id, project_no, project_name, applicant_id, applicant_name, applicant_time, pre_cost, outsourcer_id, outsource_reason, pre_start_time, pre_end_time, minio_file_name, apply_approval_status, apply_process_id, check_approval_status, check_process_id, check_conclusion, check_time, remark, create_time, update_time - - + + + UPDATE business_outsource_project + SET checker_id = null, checker_name = null, check_conclusion = null, check_minio_file_name = null, check_remark = null, check_approval_status = null + WHERE id = #{id} + diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourcerInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourcerInfoMapper.xml index a00bac6..2273d52 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourcerInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourcerInfoMapper.xml @@ -47,17 +47,11 @@ - - - - id, outsourcer_no, outsourcer_name, outsourcer_brief_name, outsourcer_size, business_size, grade, evaluation, business_content, tax_number, bank_account, bank_name, bank_account_number, postal_code, director, phone, mobile, email, website, address_country, address_province, address_city, address_area, full_address, address_country_name, address_province_name, address_city_name, address_area_name, invoice_country, invoice_province, invoice_city, invoice_area, invoice_full_address, invoice_country_name, invoice_province_name, invoice_city_name, invoice_area_name, business_scope, minio_file_name, approval_status, process_id, remark, create_user, update_user, is_del, create_time, update_time - - SELECT * FROM business_site_executive_info diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectApplyController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectApplyController.java index b7dae53..76facc2 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectApplyController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectApplyController.java @@ -11,6 +11,7 @@ import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.outsource.OutsourceProjectApprovalListRequest; import com.casic.missiles.dto.business.outsource.OutsourceProjectApprovalListResponse; +import com.casic.missiles.dto.business.outsource.OutsourceProjectListRequest; import com.casic.missiles.dto.business.outsource.OutsourceProjectSaveResponse; import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; import com.casic.missiles.enums.BusinessExceptionEnum; @@ -48,13 +49,14 @@ private IBusinessOutsourceProjectService projectService; @ApiOperation("分包项目申请审批列表(分页)") - @PostMapping("/approval/listPage") + @PostMapping("/approval/listPage") public ReturnDTO> approvalListPage(@RequestBody @Valid OutsourceProjectApprovalListRequest request, BindingResult bindingResult) throws Exception { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } DictCodeUtils.validDictCode(request); Page page = PageFactory.defaultPage(); + request.setTypeFlag(1); List responseList = projectService.projectApplyApprovalListPage(request, page); page.setRecords(responseList); return ReturnUtil.success(super.packForBT(page)); @@ -64,7 +66,7 @@ @PostMapping("/save") @ResponseBody public ReturnDTO save(@RequestBody @Valid BusinessOutsourceProject outsourceProject, BindingResult bindingResult) throws Exception { - Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getDtos()), () -> { + Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getOrderSampleList()), () -> { throw new BusinessException(BusinessExceptionEnum.SAMPLE_ORDER_IDS_NULL); }); if(bindingResult.hasErrors()){ @@ -81,7 +83,7 @@ Assert.isFalse(Objects.isNull(outsourceProject.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getDtos()), () -> { + Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getOrderSampleList()), () -> { throw new BusinessException(BusinessExceptionEnum.SAMPLE_ORDER_IDS_NULL); }); if(bindingResult.hasErrors()){ @@ -108,19 +110,9 @@ Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - return projectService.projectDelete(idDTO.getId()); + return projectService.projectApplyDelete(idDTO.getId()); } -// @ApiOperation("分包项目申请批量删除") -// @PostMapping("/batchDelete") -// @ResponseBody -// public ReturnDTO batchDelete(@RequestBody @Valid IdsDTO idsDTO) { -// Assert.isFalse(CollectionUtils.isEmpty(idsDTO.getIds()), () -> { -// throw new BusinessException(BusinessExceptionEnum.ID_NULL); -// }); -// return projectService.deleteBatchProject(idsDTO.getIds()); -// } - @ApiOperation("分包项目申请详情") @PostMapping("/detail") @ResponseBody @@ -151,6 +143,19 @@ if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return projectService.failUpdate(outsourceProject); + return projectService.projectApplyFailUpdate(outsourceProject); + } + + /** + * 查询分包项目申请审批通过列表 + */ + @ApiOperation("分包项目申请审批通过列表(分页)") + @PostMapping("/listPage") + public ReturnDTO> listPage(@RequestBody @Valid OutsourceProjectListRequest request, BindingResult bindingResult) throws Exception { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(projectService.projectListPage(request, page))); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectCheckController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectCheckController.java index f44d54c..6575ab7 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectCheckController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectCheckController.java @@ -1,10 +1,35 @@ package com.casic.missiles.controller.business; +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.BaseApprovalSubmitRequest; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.outsource.OutsourceProjectApprovalListRequest; +import com.casic.missiles.dto.business.outsource.OutsourceProjectApprovalListResponse; +import com.casic.missiles.dto.business.outsource.OutsourceProjectCheckSaveOrUpdateRequest; +import com.casic.missiles.dto.business.outsource.OutsourceProjectSaveResponse; +import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.business.BusinessOutsourceProject; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.service.business.IBusinessOutsourceProjectService; +import com.casic.missiles.utils.DictCodeUtils; import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.*; + +import javax.validation.Valid; +import java.util.List; +import java.util.Objects; /** *

@@ -19,5 +44,99 @@ @RestController @RequestMapping("/business/outsourceProject/check") public class BusinessOutsourceProjectCheckController extends ExportController { + @Autowired + private IBusinessOutsourceProjectService projectService; + @ApiOperation("分包项目验收审批列表(分页)") + @PostMapping("/approval/listPage") + public ReturnDTO> approvalListPage(@RequestBody @Valid OutsourceProjectApprovalListRequest request, BindingResult bindingResult) throws Exception { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + DictCodeUtils.validDictCode(request); + Page page = PageFactory.defaultPage(); + request.setTypeFlag(2); + List responseList = projectService.projectApplyApprovalListPage(request, page); + page.setRecords(responseList); + return ReturnUtil.success(super.packForBT(page)); + } + + @ApiOperation("分包项目验收审批保存(保存至草稿箱)") + @PostMapping("/save") + @ResponseBody + public ReturnDTO save(@RequestBody @Valid OutsourceProjectCheckSaveOrUpdateRequest request, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.saveOrUpdateProjectCheck(request); + } + + @ApiOperation("草稿箱分包项目验收编辑") + @PostMapping("/draftUpdate") + @ResponseBody + public ReturnDTO draftUpdate(@RequestBody @Valid OutsourceProjectCheckSaveOrUpdateRequest request, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.saveOrUpdateProjectCheck(request); + } + + @ApiOperation("分包项目验收提交(未调用过保存接口保存至草稿箱需先调用保存接口,再调用该接口)") + @PostMapping("/submit") + @ResponseBody + public ReturnDTO submit(@RequestBody @Valid BaseApprovalSubmitRequest request, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.submitProjectCheck(request); + } + + /** + * 只清空验收所填字段及验收审批草稿状态 + */ + @ApiOperation("分包项目验收删除(草稿删除也调用该接口)") + @PostMapping("/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return projectService.projectCheckDelete(idDTO.getId()); + } + + /** + * 复用分包项目申请详情service + */ + @ApiOperation("分包项目验收详情") + @PostMapping("/detail") + @ResponseBody + public ReturnDTO supplierDetail(@RequestBody @Valid IdDTO idDTO) throws Exception { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return projectService.projectDetail(idDTO.getId()); + } + + /** + * 清空验收所填字段及验收审批状态 + */ + @ApiOperation("分包项目验收审批操作-删除") + @PostMapping("/approval/operate/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid ApprovalDeleteRequest request, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.projectCheckApprovalDelete(request); + } + + @ApiOperation("未通过分包项目验收编辑(驳回后的分包项目验收重新编辑,仅未通过列表中的编辑按钮可调用)") + @PostMapping("/failUpdate") + @ResponseBody + public ReturnDTO failUpdate(@RequestBody @Valid OutsourceProjectCheckSaveOrUpdateRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.projectCheckFailUpdate(request); + } } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index e792441..2cc4a24 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -68,8 +68,10 @@ OUTSOURCER_SAVE_FAILED(2419, "分包方保存至草稿箱失败"), OUTSOURCER_SUBMIT_FAILED(2420, "分包方提交处理失败"), - OUTSOURCE_PROJECT_SAVE_FAILED(2421, "分包项目保存至草稿箱失败"), - OUTSOURCE_PROJECT_SUBMIT_FAILED(2422, "分包项目提交处理失败"); + OUTSOURCE_PROJECT_APPLY_SAVE_FAILED(2421, "分包项目申请保存至草稿箱失败"), + OUTSOURCE_PROJECT_APPLY_SUBMIT_FAILED(2422, "分包项目申请提交处理失败"), + OUTSOURCE_PROJECT_CHECK_SAVE_FAILED(2423, "分包项目验收保存至草稿箱失败"), + OUTSOURCE_PROJECT_CHECK_SUBMIT_FAILED(2424, "分包项目验收提交处理失败"); private Integer code; private String message; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java index a318a34..d3d5eb4 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java @@ -17,4 +17,8 @@ String CERTIFICATE_REPORT_BEAN_NAME = "certificateReportBean"; + String OUTSOURCE_PROJECT_APPLY_BEAN_NAME = "outsourceProjectApplyBean"; + + String OUTSOURCE_PROJECT_CHECK_BEAN_NAME = "outsourceProjectCheckBean"; + } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareActionStatusEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareActionStatusEnum.java index 2435309..c45da69 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareActionStatusEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareActionStatusEnum.java @@ -19,6 +19,8 @@ DEVICE_LEASE_BORROWED(LEASE_BEAN_NAME, EquipmentApplyProcessEnum.WAIT_BORROWED), CERTIFICATE_PRINT_STATUS(CERTIFICATE_BEAN_NAME, ""), CERTIFICATE_REPORT_STATUS(CERTIFICATE_REPORT_BEAN_NAME, ""), + OUTSOURCE_PROJECT_APPLY(OUTSOURCE_PROJECT_APPLY_BEAN_NAME, ""), + OUTSOURCE_PROJECT_CHECK(OUTSOURCE_PROJECT_CHECK_BEAN_NAME, ""), ACTION_STATUS_MAP(new HashMap() { { put(ApplyFromIdEnum.STANDARD_REVERT_APPROVAL, EQUIPMENT_APPLY_USE); @@ -28,12 +30,14 @@ put(ApplyFromIdEnum.DEVICE_UNUSED_APPROVAL, DEVICE_MANAGING_IDLE); put(ApplyFromIdEnum.DEVICE_SEALED_APPROVAL, DEVICE_MANAGING_SEALED); put(ApplyFromIdEnum.DEVICE_UNSEALED_APPROVAL, DEVICE_MANAGING_USE); - put(ApplyFromIdEnum.DEVICE_SCRAPPED_ROVAL, DEVICE_MANAGING_SCRAP); + put(ApplyFromIdEnum.DEVICE_SCRAP_APPROVAL, DEVICE_MANAGING_SCRAP); put(ApplyFromIdEnum.DEVICE_HANDLE_APPROVAL, DEVICE_MANAGING_MANAGEMENT); put(ApplyFromIdEnum.DEVICE_CONSUMING_APPROVAL, DEVICE_LEASE_CONSUMING); // 设备领用申请 put(ApplyFromIdEnum.DEVICE_BORROW_APPROVAL, DEVICE_LEASE_BORROWED); // 设备借用申请 put(ApplyFromIdEnum.CERTIFICATE_PRINT_APPROVAL, CERTIFICATE_PRINT_STATUS); //证书打印审批通过状态回填 put(ApplyFromIdEnum.CERTIFICATE_REPORT_APPROVAL, CERTIFICATE_REPORT_STATUS); //证书报告审批通过状态回填 + put(ApplyFromIdEnum.OUTSOURCE_PROJECT_APPLY_APPROVAL, OUTSOURCE_PROJECT_APPLY); + put(ApplyFromIdEnum.OUTSOURCE_PROJECT_CHECK_APPROVAL, OUTSOURCE_PROJECT_CHECK); } }); String actionBeanName; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java index 5d16918..61c86df 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java @@ -12,7 +12,7 @@ String DEVICE_UNUSED_APPROVAL = "sbglsbxzsq"; // 设备闲置申请 String DEVICE_SEALED_APPROVAL = "sbglsbfcsq"; // 设备封存申请 String DEVICE_UNSEALED_APPROVAL = "sbglsbqfsq"; // 设备启封申请 - String DEVICE_SCRAPPED_ROVAL = "sbglsbbfsq"; // 设备报废申请 + String DEVICE_SCRAP_APPROVAL = "sbglsbbfsq"; // 设备报废申请 String DEVICE_HANDLE_APPROVAL = "sbglsbczsq"; // 设备处置申请 String DEVICE_CONSUMING_APPROVAL = "clsblysp"; // 设备领用申请 String DEVICE_BORROW_APPROVAL = "clsbjysp"; // 设备借用申请 @@ -20,4 +20,7 @@ String DEVICE_FIX_ACCEPTANCE = "sbglsbjxbyysd"; // 设备检修保养验收单 String CERTIFICATE_PRINT_APPROVAL = "ywglzsdy"; // 证书打印通过 String CERTIFICATE_REPORT_APPROVAL = "ywglzsbg"; // 证书报告通过 + String OUTSOURCER_APPROVAL = "ywglfbfzg"; // 分包方资格 + String OUTSOURCE_PROJECT_APPLY_APPROVAL = "ywglfbxmsq"; // 分包项目申请 + String OUTSOURCE_PROJECT_CHECK_APPROVAL = "ywglfbxmys"; // 分包项目验收 } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java index bddf56f..344358a 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java @@ -7,6 +7,7 @@ import com.casic.missiles.dto.business.SampleHandOutListResponse; import com.casic.missiles.dto.business.dispatch.DeviceDispatchDTO; import com.casic.missiles.dto.business.dispatch.DeviceDispatchVO; +import com.casic.missiles.dto.business.outsource.OrderSampleDTO; import com.casic.missiles.dto.customer.sample.CustomerSampleListVO; import com.casic.missiles.model.business.BusinessOrderSampleRelation; import org.apache.ibatis.annotations.Param; @@ -32,4 +33,8 @@ int updateByOrderIdAndSampleId(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId, @Param("status") String status); CustomerSampleListVO getInterChangeSampleList(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId); + + int updateTypeBatchByOrderAndSample(@Param("orderSampleDTOS") List orderSampleDTOS); + + int updateStatusBatchByOrderAndSample(@Param("orderSampleDTOS") List orderSampleDTOS); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOutsourceProjectMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOutsourceProjectMapper.java index b1724d8..b6d6726 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOutsourceProjectMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOutsourceProjectMapper.java @@ -26,4 +26,6 @@ Long selectMaxOutsourcerNo(); BusinessOutsourceProject selectProjectById(@Param("id") Long id); + + int updateForProjectCheck(@Param("id") Long id); } diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml index 95012eb..881bbb2 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -180,4 +180,19 @@ )bosr ON bosr.sampleId=bo.id + + + UPDATE business_order_sample_relation + SET measure_type = 2 + WHERE order_id = #{item.orderId} AND sample_id = #{item.sampleId} + + + + + + UPDATE business_order_sample_relation + SET sample_status = 4 + WHERE order_id = #{item.orderId} AND sample_id = #{item.sampleId} + + diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourceProjectMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourceProjectMapper.xml index f35e05d..6c69ac9 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourceProjectMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourceProjectMapper.xml @@ -8,37 +8,43 @@ + + - + + - + + - - - id, project_no, project_name, applicant_id, applicant_name, applicant_time, pre_cost, outsourcer_id, outsource_reason, pre_start_time, pre_end_time, minio_file_name, apply_approval_status, apply_process_id, check_approval_status, check_process_id, check_conclusion, check_time, remark, create_time, update_time - - + + + UPDATE business_outsource_project + SET checker_id = null, checker_name = null, check_conclusion = null, check_minio_file_name = null, check_remark = null, check_approval_status = null + WHERE id = #{id} + diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourcerInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourcerInfoMapper.xml index a00bac6..2273d52 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourcerInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourcerInfoMapper.xml @@ -47,17 +47,11 @@ - - - - id, outsourcer_no, outsourcer_name, outsourcer_brief_name, outsourcer_size, business_size, grade, evaluation, business_content, tax_number, bank_account, bank_name, bank_account_number, postal_code, director, phone, mobile, email, website, address_country, address_province, address_city, address_area, full_address, address_country_name, address_province_name, address_city_name, address_area_name, invoice_country, invoice_province, invoice_city, invoice_area, invoice_full_address, invoice_country_name, invoice_province_name, invoice_city_name, invoice_area_name, business_scope, minio_file_name, approval_status, process_id, remark, create_user, update_user, is_del, create_time, update_time - - SELECT * FROM business_site_executive_info diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectApprovalListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectApprovalListRequest.java index b7d61d6..43e1229 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectApprovalListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectApprovalListRequest.java @@ -46,4 +46,8 @@ @ApiModelProperty(hidden = true) private Long createUserId; + + //标识是申请or验收,代码中设置 + @ApiModelProperty(hidden = true) + private Integer typeFlag; } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectApplyController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectApplyController.java index b7dae53..76facc2 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectApplyController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectApplyController.java @@ -11,6 +11,7 @@ import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.outsource.OutsourceProjectApprovalListRequest; import com.casic.missiles.dto.business.outsource.OutsourceProjectApprovalListResponse; +import com.casic.missiles.dto.business.outsource.OutsourceProjectListRequest; import com.casic.missiles.dto.business.outsource.OutsourceProjectSaveResponse; import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; import com.casic.missiles.enums.BusinessExceptionEnum; @@ -48,13 +49,14 @@ private IBusinessOutsourceProjectService projectService; @ApiOperation("分包项目申请审批列表(分页)") - @PostMapping("/approval/listPage") + @PostMapping("/approval/listPage") public ReturnDTO> approvalListPage(@RequestBody @Valid OutsourceProjectApprovalListRequest request, BindingResult bindingResult) throws Exception { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } DictCodeUtils.validDictCode(request); Page page = PageFactory.defaultPage(); + request.setTypeFlag(1); List responseList = projectService.projectApplyApprovalListPage(request, page); page.setRecords(responseList); return ReturnUtil.success(super.packForBT(page)); @@ -64,7 +66,7 @@ @PostMapping("/save") @ResponseBody public ReturnDTO save(@RequestBody @Valid BusinessOutsourceProject outsourceProject, BindingResult bindingResult) throws Exception { - Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getDtos()), () -> { + Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getOrderSampleList()), () -> { throw new BusinessException(BusinessExceptionEnum.SAMPLE_ORDER_IDS_NULL); }); if(bindingResult.hasErrors()){ @@ -81,7 +83,7 @@ Assert.isFalse(Objects.isNull(outsourceProject.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getDtos()), () -> { + Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getOrderSampleList()), () -> { throw new BusinessException(BusinessExceptionEnum.SAMPLE_ORDER_IDS_NULL); }); if(bindingResult.hasErrors()){ @@ -108,19 +110,9 @@ Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - return projectService.projectDelete(idDTO.getId()); + return projectService.projectApplyDelete(idDTO.getId()); } -// @ApiOperation("分包项目申请批量删除") -// @PostMapping("/batchDelete") -// @ResponseBody -// public ReturnDTO batchDelete(@RequestBody @Valid IdsDTO idsDTO) { -// Assert.isFalse(CollectionUtils.isEmpty(idsDTO.getIds()), () -> { -// throw new BusinessException(BusinessExceptionEnum.ID_NULL); -// }); -// return projectService.deleteBatchProject(idsDTO.getIds()); -// } - @ApiOperation("分包项目申请详情") @PostMapping("/detail") @ResponseBody @@ -151,6 +143,19 @@ if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return projectService.failUpdate(outsourceProject); + return projectService.projectApplyFailUpdate(outsourceProject); + } + + /** + * 查询分包项目申请审批通过列表 + */ + @ApiOperation("分包项目申请审批通过列表(分页)") + @PostMapping("/listPage") + public ReturnDTO> listPage(@RequestBody @Valid OutsourceProjectListRequest request, BindingResult bindingResult) throws Exception { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(projectService.projectListPage(request, page))); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectCheckController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectCheckController.java index f44d54c..6575ab7 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectCheckController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectCheckController.java @@ -1,10 +1,35 @@ package com.casic.missiles.controller.business; +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.BaseApprovalSubmitRequest; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.outsource.OutsourceProjectApprovalListRequest; +import com.casic.missiles.dto.business.outsource.OutsourceProjectApprovalListResponse; +import com.casic.missiles.dto.business.outsource.OutsourceProjectCheckSaveOrUpdateRequest; +import com.casic.missiles.dto.business.outsource.OutsourceProjectSaveResponse; +import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.business.BusinessOutsourceProject; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.service.business.IBusinessOutsourceProjectService; +import com.casic.missiles.utils.DictCodeUtils; import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.*; + +import javax.validation.Valid; +import java.util.List; +import java.util.Objects; /** *

@@ -19,5 +44,99 @@ @RestController @RequestMapping("/business/outsourceProject/check") public class BusinessOutsourceProjectCheckController extends ExportController { + @Autowired + private IBusinessOutsourceProjectService projectService; + @ApiOperation("分包项目验收审批列表(分页)") + @PostMapping("/approval/listPage") + public ReturnDTO> approvalListPage(@RequestBody @Valid OutsourceProjectApprovalListRequest request, BindingResult bindingResult) throws Exception { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + DictCodeUtils.validDictCode(request); + Page page = PageFactory.defaultPage(); + request.setTypeFlag(2); + List responseList = projectService.projectApplyApprovalListPage(request, page); + page.setRecords(responseList); + return ReturnUtil.success(super.packForBT(page)); + } + + @ApiOperation("分包项目验收审批保存(保存至草稿箱)") + @PostMapping("/save") + @ResponseBody + public ReturnDTO save(@RequestBody @Valid OutsourceProjectCheckSaveOrUpdateRequest request, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.saveOrUpdateProjectCheck(request); + } + + @ApiOperation("草稿箱分包项目验收编辑") + @PostMapping("/draftUpdate") + @ResponseBody + public ReturnDTO draftUpdate(@RequestBody @Valid OutsourceProjectCheckSaveOrUpdateRequest request, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.saveOrUpdateProjectCheck(request); + } + + @ApiOperation("分包项目验收提交(未调用过保存接口保存至草稿箱需先调用保存接口,再调用该接口)") + @PostMapping("/submit") + @ResponseBody + public ReturnDTO submit(@RequestBody @Valid BaseApprovalSubmitRequest request, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.submitProjectCheck(request); + } + + /** + * 只清空验收所填字段及验收审批草稿状态 + */ + @ApiOperation("分包项目验收删除(草稿删除也调用该接口)") + @PostMapping("/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return projectService.projectCheckDelete(idDTO.getId()); + } + + /** + * 复用分包项目申请详情service + */ + @ApiOperation("分包项目验收详情") + @PostMapping("/detail") + @ResponseBody + public ReturnDTO supplierDetail(@RequestBody @Valid IdDTO idDTO) throws Exception { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return projectService.projectDetail(idDTO.getId()); + } + + /** + * 清空验收所填字段及验收审批状态 + */ + @ApiOperation("分包项目验收审批操作-删除") + @PostMapping("/approval/operate/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid ApprovalDeleteRequest request, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.projectCheckApprovalDelete(request); + } + + @ApiOperation("未通过分包项目验收编辑(驳回后的分包项目验收重新编辑,仅未通过列表中的编辑按钮可调用)") + @PostMapping("/failUpdate") + @ResponseBody + public ReturnDTO failUpdate(@RequestBody @Valid OutsourceProjectCheckSaveOrUpdateRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.projectCheckFailUpdate(request); + } } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index e792441..2cc4a24 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -68,8 +68,10 @@ OUTSOURCER_SAVE_FAILED(2419, "分包方保存至草稿箱失败"), OUTSOURCER_SUBMIT_FAILED(2420, "分包方提交处理失败"), - OUTSOURCE_PROJECT_SAVE_FAILED(2421, "分包项目保存至草稿箱失败"), - OUTSOURCE_PROJECT_SUBMIT_FAILED(2422, "分包项目提交处理失败"); + OUTSOURCE_PROJECT_APPLY_SAVE_FAILED(2421, "分包项目申请保存至草稿箱失败"), + OUTSOURCE_PROJECT_APPLY_SUBMIT_FAILED(2422, "分包项目申请提交处理失败"), + OUTSOURCE_PROJECT_CHECK_SAVE_FAILED(2423, "分包项目验收保存至草稿箱失败"), + OUTSOURCE_PROJECT_CHECK_SUBMIT_FAILED(2424, "分包项目验收提交处理失败"); private Integer code; private String message; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java index a318a34..d3d5eb4 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java @@ -17,4 +17,8 @@ String CERTIFICATE_REPORT_BEAN_NAME = "certificateReportBean"; + String OUTSOURCE_PROJECT_APPLY_BEAN_NAME = "outsourceProjectApplyBean"; + + String OUTSOURCE_PROJECT_CHECK_BEAN_NAME = "outsourceProjectCheckBean"; + } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareActionStatusEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareActionStatusEnum.java index 2435309..c45da69 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareActionStatusEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareActionStatusEnum.java @@ -19,6 +19,8 @@ DEVICE_LEASE_BORROWED(LEASE_BEAN_NAME, EquipmentApplyProcessEnum.WAIT_BORROWED), CERTIFICATE_PRINT_STATUS(CERTIFICATE_BEAN_NAME, ""), CERTIFICATE_REPORT_STATUS(CERTIFICATE_REPORT_BEAN_NAME, ""), + OUTSOURCE_PROJECT_APPLY(OUTSOURCE_PROJECT_APPLY_BEAN_NAME, ""), + OUTSOURCE_PROJECT_CHECK(OUTSOURCE_PROJECT_CHECK_BEAN_NAME, ""), ACTION_STATUS_MAP(new HashMap() { { put(ApplyFromIdEnum.STANDARD_REVERT_APPROVAL, EQUIPMENT_APPLY_USE); @@ -28,12 +30,14 @@ put(ApplyFromIdEnum.DEVICE_UNUSED_APPROVAL, DEVICE_MANAGING_IDLE); put(ApplyFromIdEnum.DEVICE_SEALED_APPROVAL, DEVICE_MANAGING_SEALED); put(ApplyFromIdEnum.DEVICE_UNSEALED_APPROVAL, DEVICE_MANAGING_USE); - put(ApplyFromIdEnum.DEVICE_SCRAPPED_ROVAL, DEVICE_MANAGING_SCRAP); + put(ApplyFromIdEnum.DEVICE_SCRAP_APPROVAL, DEVICE_MANAGING_SCRAP); put(ApplyFromIdEnum.DEVICE_HANDLE_APPROVAL, DEVICE_MANAGING_MANAGEMENT); put(ApplyFromIdEnum.DEVICE_CONSUMING_APPROVAL, DEVICE_LEASE_CONSUMING); // 设备领用申请 put(ApplyFromIdEnum.DEVICE_BORROW_APPROVAL, DEVICE_LEASE_BORROWED); // 设备借用申请 put(ApplyFromIdEnum.CERTIFICATE_PRINT_APPROVAL, CERTIFICATE_PRINT_STATUS); //证书打印审批通过状态回填 put(ApplyFromIdEnum.CERTIFICATE_REPORT_APPROVAL, CERTIFICATE_REPORT_STATUS); //证书报告审批通过状态回填 + put(ApplyFromIdEnum.OUTSOURCE_PROJECT_APPLY_APPROVAL, OUTSOURCE_PROJECT_APPLY); + put(ApplyFromIdEnum.OUTSOURCE_PROJECT_CHECK_APPROVAL, OUTSOURCE_PROJECT_CHECK); } }); String actionBeanName; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java index 5d16918..61c86df 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java @@ -12,7 +12,7 @@ String DEVICE_UNUSED_APPROVAL = "sbglsbxzsq"; // 设备闲置申请 String DEVICE_SEALED_APPROVAL = "sbglsbfcsq"; // 设备封存申请 String DEVICE_UNSEALED_APPROVAL = "sbglsbqfsq"; // 设备启封申请 - String DEVICE_SCRAPPED_ROVAL = "sbglsbbfsq"; // 设备报废申请 + String DEVICE_SCRAP_APPROVAL = "sbglsbbfsq"; // 设备报废申请 String DEVICE_HANDLE_APPROVAL = "sbglsbczsq"; // 设备处置申请 String DEVICE_CONSUMING_APPROVAL = "clsblysp"; // 设备领用申请 String DEVICE_BORROW_APPROVAL = "clsbjysp"; // 设备借用申请 @@ -20,4 +20,7 @@ String DEVICE_FIX_ACCEPTANCE = "sbglsbjxbyysd"; // 设备检修保养验收单 String CERTIFICATE_PRINT_APPROVAL = "ywglzsdy"; // 证书打印通过 String CERTIFICATE_REPORT_APPROVAL = "ywglzsbg"; // 证书报告通过 + String OUTSOURCER_APPROVAL = "ywglfbfzg"; // 分包方资格 + String OUTSOURCE_PROJECT_APPLY_APPROVAL = "ywglfbxmsq"; // 分包项目申请 + String OUTSOURCE_PROJECT_CHECK_APPROVAL = "ywglfbxmys"; // 分包项目验收 } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java index bddf56f..344358a 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java @@ -7,6 +7,7 @@ import com.casic.missiles.dto.business.SampleHandOutListResponse; import com.casic.missiles.dto.business.dispatch.DeviceDispatchDTO; import com.casic.missiles.dto.business.dispatch.DeviceDispatchVO; +import com.casic.missiles.dto.business.outsource.OrderSampleDTO; import com.casic.missiles.dto.customer.sample.CustomerSampleListVO; import com.casic.missiles.model.business.BusinessOrderSampleRelation; import org.apache.ibatis.annotations.Param; @@ -32,4 +33,8 @@ int updateByOrderIdAndSampleId(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId, @Param("status") String status); CustomerSampleListVO getInterChangeSampleList(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId); + + int updateTypeBatchByOrderAndSample(@Param("orderSampleDTOS") List orderSampleDTOS); + + int updateStatusBatchByOrderAndSample(@Param("orderSampleDTOS") List orderSampleDTOS); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOutsourceProjectMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOutsourceProjectMapper.java index b1724d8..b6d6726 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOutsourceProjectMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOutsourceProjectMapper.java @@ -26,4 +26,6 @@ Long selectMaxOutsourcerNo(); BusinessOutsourceProject selectProjectById(@Param("id") Long id); + + int updateForProjectCheck(@Param("id") Long id); } diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml index 95012eb..881bbb2 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -180,4 +180,19 @@ )bosr ON bosr.sampleId=bo.id + + + UPDATE business_order_sample_relation + SET measure_type = 2 + WHERE order_id = #{item.orderId} AND sample_id = #{item.sampleId} + + + + + + UPDATE business_order_sample_relation + SET sample_status = 4 + WHERE order_id = #{item.orderId} AND sample_id = #{item.sampleId} + + diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourceProjectMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourceProjectMapper.xml index f35e05d..6c69ac9 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourceProjectMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourceProjectMapper.xml @@ -8,37 +8,43 @@ + + - + + - + + - - - id, project_no, project_name, applicant_id, applicant_name, applicant_time, pre_cost, outsourcer_id, outsource_reason, pre_start_time, pre_end_time, minio_file_name, apply_approval_status, apply_process_id, check_approval_status, check_process_id, check_conclusion, check_time, remark, create_time, update_time - - + + + UPDATE business_outsource_project + SET checker_id = null, checker_name = null, check_conclusion = null, check_minio_file_name = null, check_remark = null, check_approval_status = null + WHERE id = #{id} + diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourcerInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourcerInfoMapper.xml index a00bac6..2273d52 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourcerInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourcerInfoMapper.xml @@ -47,17 +47,11 @@ - - - - id, outsourcer_no, outsourcer_name, outsourcer_brief_name, outsourcer_size, business_size, grade, evaluation, business_content, tax_number, bank_account, bank_name, bank_account_number, postal_code, director, phone, mobile, email, website, address_country, address_province, address_city, address_area, full_address, address_country_name, address_province_name, address_city_name, address_area_name, invoice_country, invoice_province, invoice_city, invoice_area, invoice_full_address, invoice_country_name, invoice_province_name, invoice_city_name, invoice_area_name, business_scope, minio_file_name, approval_status, process_id, remark, create_user, update_user, is_del, create_time, update_time - - SELECT * FROM business_site_executive_info diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectApprovalListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectApprovalListRequest.java index b7d61d6..43e1229 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectApprovalListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectApprovalListRequest.java @@ -46,4 +46,8 @@ @ApiModelProperty(hidden = true) private Long createUserId; + + //标识是申请or验收,代码中设置 + @ApiModelProperty(hidden = true) + private Integer typeFlag; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectApprovalListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectApprovalListResponse.java index 3dc13d9..ea8bc09 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectApprovalListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectApprovalListResponse.java @@ -24,6 +24,12 @@ @ApiModelProperty(value = "申请人名字", dataType = "String") private String applicantName; + @ApiModelProperty(value = "验收人名字", dataType = "String") + private String checkerName; + + @ApiModelProperty(value = "验收时间", dataType = "String") + private String checkTime; + @ApiModelProperty(value = "分包方名称", dataType = "String") private String outsourcerName; @@ -42,8 +48,17 @@ @ApiModelProperty(value = "分包项目申请审批状态类型-字典value", dataType = "String") private String applyApprovalStatusName; - @ApiModelProperty(value = "流程实例id", dataType = "String") - private String processId; + @ApiModelProperty(value = "分包项目验收审批状态类型-字典code", dataType = "String") + private String checkApprovalStatus; + + @ApiModelProperty(value = "分包项目验收审批状态类型-字典value", dataType = "String") + private String checkApprovalStatusName; + + @ApiModelProperty(value = "分包项目申请流程实例id", dataType = "String") + private String applyProcessId; + + @ApiModelProperty(value = "分包项目验收流程实例id", dataType = "String") + private String checkProcessId; @ApiModelProperty(value = "任务id(同意、驳回等操作使用)", dataType = "String") private String taskId; diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectApplyController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectApplyController.java index b7dae53..76facc2 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectApplyController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectApplyController.java @@ -11,6 +11,7 @@ import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.outsource.OutsourceProjectApprovalListRequest; import com.casic.missiles.dto.business.outsource.OutsourceProjectApprovalListResponse; +import com.casic.missiles.dto.business.outsource.OutsourceProjectListRequest; import com.casic.missiles.dto.business.outsource.OutsourceProjectSaveResponse; import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; import com.casic.missiles.enums.BusinessExceptionEnum; @@ -48,13 +49,14 @@ private IBusinessOutsourceProjectService projectService; @ApiOperation("分包项目申请审批列表(分页)") - @PostMapping("/approval/listPage") + @PostMapping("/approval/listPage") public ReturnDTO> approvalListPage(@RequestBody @Valid OutsourceProjectApprovalListRequest request, BindingResult bindingResult) throws Exception { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } DictCodeUtils.validDictCode(request); Page page = PageFactory.defaultPage(); + request.setTypeFlag(1); List responseList = projectService.projectApplyApprovalListPage(request, page); page.setRecords(responseList); return ReturnUtil.success(super.packForBT(page)); @@ -64,7 +66,7 @@ @PostMapping("/save") @ResponseBody public ReturnDTO save(@RequestBody @Valid BusinessOutsourceProject outsourceProject, BindingResult bindingResult) throws Exception { - Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getDtos()), () -> { + Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getOrderSampleList()), () -> { throw new BusinessException(BusinessExceptionEnum.SAMPLE_ORDER_IDS_NULL); }); if(bindingResult.hasErrors()){ @@ -81,7 +83,7 @@ Assert.isFalse(Objects.isNull(outsourceProject.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getDtos()), () -> { + Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getOrderSampleList()), () -> { throw new BusinessException(BusinessExceptionEnum.SAMPLE_ORDER_IDS_NULL); }); if(bindingResult.hasErrors()){ @@ -108,19 +110,9 @@ Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - return projectService.projectDelete(idDTO.getId()); + return projectService.projectApplyDelete(idDTO.getId()); } -// @ApiOperation("分包项目申请批量删除") -// @PostMapping("/batchDelete") -// @ResponseBody -// public ReturnDTO batchDelete(@RequestBody @Valid IdsDTO idsDTO) { -// Assert.isFalse(CollectionUtils.isEmpty(idsDTO.getIds()), () -> { -// throw new BusinessException(BusinessExceptionEnum.ID_NULL); -// }); -// return projectService.deleteBatchProject(idsDTO.getIds()); -// } - @ApiOperation("分包项目申请详情") @PostMapping("/detail") @ResponseBody @@ -151,6 +143,19 @@ if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return projectService.failUpdate(outsourceProject); + return projectService.projectApplyFailUpdate(outsourceProject); + } + + /** + * 查询分包项目申请审批通过列表 + */ + @ApiOperation("分包项目申请审批通过列表(分页)") + @PostMapping("/listPage") + public ReturnDTO> listPage(@RequestBody @Valid OutsourceProjectListRequest request, BindingResult bindingResult) throws Exception { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(projectService.projectListPage(request, page))); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectCheckController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectCheckController.java index f44d54c..6575ab7 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectCheckController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectCheckController.java @@ -1,10 +1,35 @@ package com.casic.missiles.controller.business; +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.BaseApprovalSubmitRequest; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.outsource.OutsourceProjectApprovalListRequest; +import com.casic.missiles.dto.business.outsource.OutsourceProjectApprovalListResponse; +import com.casic.missiles.dto.business.outsource.OutsourceProjectCheckSaveOrUpdateRequest; +import com.casic.missiles.dto.business.outsource.OutsourceProjectSaveResponse; +import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.business.BusinessOutsourceProject; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.service.business.IBusinessOutsourceProjectService; +import com.casic.missiles.utils.DictCodeUtils; import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.*; + +import javax.validation.Valid; +import java.util.List; +import java.util.Objects; /** *

@@ -19,5 +44,99 @@ @RestController @RequestMapping("/business/outsourceProject/check") public class BusinessOutsourceProjectCheckController extends ExportController { + @Autowired + private IBusinessOutsourceProjectService projectService; + @ApiOperation("分包项目验收审批列表(分页)") + @PostMapping("/approval/listPage") + public ReturnDTO> approvalListPage(@RequestBody @Valid OutsourceProjectApprovalListRequest request, BindingResult bindingResult) throws Exception { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + DictCodeUtils.validDictCode(request); + Page page = PageFactory.defaultPage(); + request.setTypeFlag(2); + List responseList = projectService.projectApplyApprovalListPage(request, page); + page.setRecords(responseList); + return ReturnUtil.success(super.packForBT(page)); + } + + @ApiOperation("分包项目验收审批保存(保存至草稿箱)") + @PostMapping("/save") + @ResponseBody + public ReturnDTO save(@RequestBody @Valid OutsourceProjectCheckSaveOrUpdateRequest request, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.saveOrUpdateProjectCheck(request); + } + + @ApiOperation("草稿箱分包项目验收编辑") + @PostMapping("/draftUpdate") + @ResponseBody + public ReturnDTO draftUpdate(@RequestBody @Valid OutsourceProjectCheckSaveOrUpdateRequest request, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.saveOrUpdateProjectCheck(request); + } + + @ApiOperation("分包项目验收提交(未调用过保存接口保存至草稿箱需先调用保存接口,再调用该接口)") + @PostMapping("/submit") + @ResponseBody + public ReturnDTO submit(@RequestBody @Valid BaseApprovalSubmitRequest request, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.submitProjectCheck(request); + } + + /** + * 只清空验收所填字段及验收审批草稿状态 + */ + @ApiOperation("分包项目验收删除(草稿删除也调用该接口)") + @PostMapping("/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return projectService.projectCheckDelete(idDTO.getId()); + } + + /** + * 复用分包项目申请详情service + */ + @ApiOperation("分包项目验收详情") + @PostMapping("/detail") + @ResponseBody + public ReturnDTO supplierDetail(@RequestBody @Valid IdDTO idDTO) throws Exception { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return projectService.projectDetail(idDTO.getId()); + } + + /** + * 清空验收所填字段及验收审批状态 + */ + @ApiOperation("分包项目验收审批操作-删除") + @PostMapping("/approval/operate/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid ApprovalDeleteRequest request, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.projectCheckApprovalDelete(request); + } + + @ApiOperation("未通过分包项目验收编辑(驳回后的分包项目验收重新编辑,仅未通过列表中的编辑按钮可调用)") + @PostMapping("/failUpdate") + @ResponseBody + public ReturnDTO failUpdate(@RequestBody @Valid OutsourceProjectCheckSaveOrUpdateRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.projectCheckFailUpdate(request); + } } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index e792441..2cc4a24 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -68,8 +68,10 @@ OUTSOURCER_SAVE_FAILED(2419, "分包方保存至草稿箱失败"), OUTSOURCER_SUBMIT_FAILED(2420, "分包方提交处理失败"), - OUTSOURCE_PROJECT_SAVE_FAILED(2421, "分包项目保存至草稿箱失败"), - OUTSOURCE_PROJECT_SUBMIT_FAILED(2422, "分包项目提交处理失败"); + OUTSOURCE_PROJECT_APPLY_SAVE_FAILED(2421, "分包项目申请保存至草稿箱失败"), + OUTSOURCE_PROJECT_APPLY_SUBMIT_FAILED(2422, "分包项目申请提交处理失败"), + OUTSOURCE_PROJECT_CHECK_SAVE_FAILED(2423, "分包项目验收保存至草稿箱失败"), + OUTSOURCE_PROJECT_CHECK_SUBMIT_FAILED(2424, "分包项目验收提交处理失败"); private Integer code; private String message; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java index a318a34..d3d5eb4 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java @@ -17,4 +17,8 @@ String CERTIFICATE_REPORT_BEAN_NAME = "certificateReportBean"; + String OUTSOURCE_PROJECT_APPLY_BEAN_NAME = "outsourceProjectApplyBean"; + + String OUTSOURCE_PROJECT_CHECK_BEAN_NAME = "outsourceProjectCheckBean"; + } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareActionStatusEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareActionStatusEnum.java index 2435309..c45da69 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareActionStatusEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareActionStatusEnum.java @@ -19,6 +19,8 @@ DEVICE_LEASE_BORROWED(LEASE_BEAN_NAME, EquipmentApplyProcessEnum.WAIT_BORROWED), CERTIFICATE_PRINT_STATUS(CERTIFICATE_BEAN_NAME, ""), CERTIFICATE_REPORT_STATUS(CERTIFICATE_REPORT_BEAN_NAME, ""), + OUTSOURCE_PROJECT_APPLY(OUTSOURCE_PROJECT_APPLY_BEAN_NAME, ""), + OUTSOURCE_PROJECT_CHECK(OUTSOURCE_PROJECT_CHECK_BEAN_NAME, ""), ACTION_STATUS_MAP(new HashMap() { { put(ApplyFromIdEnum.STANDARD_REVERT_APPROVAL, EQUIPMENT_APPLY_USE); @@ -28,12 +30,14 @@ put(ApplyFromIdEnum.DEVICE_UNUSED_APPROVAL, DEVICE_MANAGING_IDLE); put(ApplyFromIdEnum.DEVICE_SEALED_APPROVAL, DEVICE_MANAGING_SEALED); put(ApplyFromIdEnum.DEVICE_UNSEALED_APPROVAL, DEVICE_MANAGING_USE); - put(ApplyFromIdEnum.DEVICE_SCRAPPED_ROVAL, DEVICE_MANAGING_SCRAP); + put(ApplyFromIdEnum.DEVICE_SCRAP_APPROVAL, DEVICE_MANAGING_SCRAP); put(ApplyFromIdEnum.DEVICE_HANDLE_APPROVAL, DEVICE_MANAGING_MANAGEMENT); put(ApplyFromIdEnum.DEVICE_CONSUMING_APPROVAL, DEVICE_LEASE_CONSUMING); // 设备领用申请 put(ApplyFromIdEnum.DEVICE_BORROW_APPROVAL, DEVICE_LEASE_BORROWED); // 设备借用申请 put(ApplyFromIdEnum.CERTIFICATE_PRINT_APPROVAL, CERTIFICATE_PRINT_STATUS); //证书打印审批通过状态回填 put(ApplyFromIdEnum.CERTIFICATE_REPORT_APPROVAL, CERTIFICATE_REPORT_STATUS); //证书报告审批通过状态回填 + put(ApplyFromIdEnum.OUTSOURCE_PROJECT_APPLY_APPROVAL, OUTSOURCE_PROJECT_APPLY); + put(ApplyFromIdEnum.OUTSOURCE_PROJECT_CHECK_APPROVAL, OUTSOURCE_PROJECT_CHECK); } }); String actionBeanName; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java index 5d16918..61c86df 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java @@ -12,7 +12,7 @@ String DEVICE_UNUSED_APPROVAL = "sbglsbxzsq"; // 设备闲置申请 String DEVICE_SEALED_APPROVAL = "sbglsbfcsq"; // 设备封存申请 String DEVICE_UNSEALED_APPROVAL = "sbglsbqfsq"; // 设备启封申请 - String DEVICE_SCRAPPED_ROVAL = "sbglsbbfsq"; // 设备报废申请 + String DEVICE_SCRAP_APPROVAL = "sbglsbbfsq"; // 设备报废申请 String DEVICE_HANDLE_APPROVAL = "sbglsbczsq"; // 设备处置申请 String DEVICE_CONSUMING_APPROVAL = "clsblysp"; // 设备领用申请 String DEVICE_BORROW_APPROVAL = "clsbjysp"; // 设备借用申请 @@ -20,4 +20,7 @@ String DEVICE_FIX_ACCEPTANCE = "sbglsbjxbyysd"; // 设备检修保养验收单 String CERTIFICATE_PRINT_APPROVAL = "ywglzsdy"; // 证书打印通过 String CERTIFICATE_REPORT_APPROVAL = "ywglzsbg"; // 证书报告通过 + String OUTSOURCER_APPROVAL = "ywglfbfzg"; // 分包方资格 + String OUTSOURCE_PROJECT_APPLY_APPROVAL = "ywglfbxmsq"; // 分包项目申请 + String OUTSOURCE_PROJECT_CHECK_APPROVAL = "ywglfbxmys"; // 分包项目验收 } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java index bddf56f..344358a 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java @@ -7,6 +7,7 @@ import com.casic.missiles.dto.business.SampleHandOutListResponse; import com.casic.missiles.dto.business.dispatch.DeviceDispatchDTO; import com.casic.missiles.dto.business.dispatch.DeviceDispatchVO; +import com.casic.missiles.dto.business.outsource.OrderSampleDTO; import com.casic.missiles.dto.customer.sample.CustomerSampleListVO; import com.casic.missiles.model.business.BusinessOrderSampleRelation; import org.apache.ibatis.annotations.Param; @@ -32,4 +33,8 @@ int updateByOrderIdAndSampleId(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId, @Param("status") String status); CustomerSampleListVO getInterChangeSampleList(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId); + + int updateTypeBatchByOrderAndSample(@Param("orderSampleDTOS") List orderSampleDTOS); + + int updateStatusBatchByOrderAndSample(@Param("orderSampleDTOS") List orderSampleDTOS); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOutsourceProjectMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOutsourceProjectMapper.java index b1724d8..b6d6726 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOutsourceProjectMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOutsourceProjectMapper.java @@ -26,4 +26,6 @@ Long selectMaxOutsourcerNo(); BusinessOutsourceProject selectProjectById(@Param("id") Long id); + + int updateForProjectCheck(@Param("id") Long id); } diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml index 95012eb..881bbb2 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -180,4 +180,19 @@ )bosr ON bosr.sampleId=bo.id + + + UPDATE business_order_sample_relation + SET measure_type = 2 + WHERE order_id = #{item.orderId} AND sample_id = #{item.sampleId} + + + + + + UPDATE business_order_sample_relation + SET sample_status = 4 + WHERE order_id = #{item.orderId} AND sample_id = #{item.sampleId} + + diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourceProjectMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourceProjectMapper.xml index f35e05d..6c69ac9 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourceProjectMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourceProjectMapper.xml @@ -8,37 +8,43 @@ + + - + + - + + - - - id, project_no, project_name, applicant_id, applicant_name, applicant_time, pre_cost, outsourcer_id, outsource_reason, pre_start_time, pre_end_time, minio_file_name, apply_approval_status, apply_process_id, check_approval_status, check_process_id, check_conclusion, check_time, remark, create_time, update_time - - + + + UPDATE business_outsource_project + SET checker_id = null, checker_name = null, check_conclusion = null, check_minio_file_name = null, check_remark = null, check_approval_status = null + WHERE id = #{id} + diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourcerInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourcerInfoMapper.xml index a00bac6..2273d52 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourcerInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourcerInfoMapper.xml @@ -47,17 +47,11 @@ - - - - id, outsourcer_no, outsourcer_name, outsourcer_brief_name, outsourcer_size, business_size, grade, evaluation, business_content, tax_number, bank_account, bank_name, bank_account_number, postal_code, director, phone, mobile, email, website, address_country, address_province, address_city, address_area, full_address, address_country_name, address_province_name, address_city_name, address_area_name, invoice_country, invoice_province, invoice_city, invoice_area, invoice_full_address, invoice_country_name, invoice_province_name, invoice_city_name, invoice_area_name, business_scope, minio_file_name, approval_status, process_id, remark, create_user, update_user, is_del, create_time, update_time - - SELECT * FROM business_site_executive_info diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectApprovalListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectApprovalListRequest.java index b7d61d6..43e1229 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectApprovalListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectApprovalListRequest.java @@ -46,4 +46,8 @@ @ApiModelProperty(hidden = true) private Long createUserId; + + //标识是申请or验收,代码中设置 + @ApiModelProperty(hidden = true) + private Integer typeFlag; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectApprovalListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectApprovalListResponse.java index 3dc13d9..ea8bc09 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectApprovalListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectApprovalListResponse.java @@ -24,6 +24,12 @@ @ApiModelProperty(value = "申请人名字", dataType = "String") private String applicantName; + @ApiModelProperty(value = "验收人名字", dataType = "String") + private String checkerName; + + @ApiModelProperty(value = "验收时间", dataType = "String") + private String checkTime; + @ApiModelProperty(value = "分包方名称", dataType = "String") private String outsourcerName; @@ -42,8 +48,17 @@ @ApiModelProperty(value = "分包项目申请审批状态类型-字典value", dataType = "String") private String applyApprovalStatusName; - @ApiModelProperty(value = "流程实例id", dataType = "String") - private String processId; + @ApiModelProperty(value = "分包项目验收审批状态类型-字典code", dataType = "String") + private String checkApprovalStatus; + + @ApiModelProperty(value = "分包项目验收审批状态类型-字典value", dataType = "String") + private String checkApprovalStatusName; + + @ApiModelProperty(value = "分包项目申请流程实例id", dataType = "String") + private String applyProcessId; + + @ApiModelProperty(value = "分包项目验收流程实例id", dataType = "String") + private String checkProcessId; @ApiModelProperty(value = "任务id(同意、驳回等操作使用)", dataType = "String") private String taskId; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectCheckSaveOrUpdateRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectCheckSaveOrUpdateRequest.java new file mode 100644 index 0000000..9a61a8b --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectCheckSaveOrUpdateRequest.java @@ -0,0 +1,37 @@ +package com.casic.missiles.dto.business.outsource; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; + +/** + * @Description: 分包项目验收草稿箱保存/编辑请求实体 + * @Author: wangpeng + * @Date: 2023/3/29 9:03 + */ +@ApiModel +@Data +public class OutsourceProjectCheckSaveOrUpdateRequest { + @NotNull(message = "分包项目主键id不能为空") + @ApiModelProperty(value = "主键id", dataType = "Long", required = true) + private Long id; + + @NotBlank(message = "验收结论不能为空") + @ApiModelProperty(value = "验收结论", dataType = "String", required = true) + private String checkConclusion; + + @ApiModelProperty(value = "验收时间", dataType = "String", required = true) + private String checkTime; + + @ApiModelProperty(value = "项目验收文件-minio存储文件名", dataType = "String", required = true) + private String checkMinioFileName; + + @ApiModelProperty(value = "项目验收备注", dataType = "String", required = true) + private String checkRemark; + + @ApiModelProperty(value = "流程实例id(未通过验收编辑接口入参必传)", dataType = "String") + private String checkProcessId; +} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectApplyController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectApplyController.java index b7dae53..76facc2 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectApplyController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectApplyController.java @@ -11,6 +11,7 @@ import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.outsource.OutsourceProjectApprovalListRequest; import com.casic.missiles.dto.business.outsource.OutsourceProjectApprovalListResponse; +import com.casic.missiles.dto.business.outsource.OutsourceProjectListRequest; import com.casic.missiles.dto.business.outsource.OutsourceProjectSaveResponse; import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; import com.casic.missiles.enums.BusinessExceptionEnum; @@ -48,13 +49,14 @@ private IBusinessOutsourceProjectService projectService; @ApiOperation("分包项目申请审批列表(分页)") - @PostMapping("/approval/listPage") + @PostMapping("/approval/listPage") public ReturnDTO> approvalListPage(@RequestBody @Valid OutsourceProjectApprovalListRequest request, BindingResult bindingResult) throws Exception { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } DictCodeUtils.validDictCode(request); Page page = PageFactory.defaultPage(); + request.setTypeFlag(1); List responseList = projectService.projectApplyApprovalListPage(request, page); page.setRecords(responseList); return ReturnUtil.success(super.packForBT(page)); @@ -64,7 +66,7 @@ @PostMapping("/save") @ResponseBody public ReturnDTO save(@RequestBody @Valid BusinessOutsourceProject outsourceProject, BindingResult bindingResult) throws Exception { - Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getDtos()), () -> { + Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getOrderSampleList()), () -> { throw new BusinessException(BusinessExceptionEnum.SAMPLE_ORDER_IDS_NULL); }); if(bindingResult.hasErrors()){ @@ -81,7 +83,7 @@ Assert.isFalse(Objects.isNull(outsourceProject.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getDtos()), () -> { + Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getOrderSampleList()), () -> { throw new BusinessException(BusinessExceptionEnum.SAMPLE_ORDER_IDS_NULL); }); if(bindingResult.hasErrors()){ @@ -108,19 +110,9 @@ Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - return projectService.projectDelete(idDTO.getId()); + return projectService.projectApplyDelete(idDTO.getId()); } -// @ApiOperation("分包项目申请批量删除") -// @PostMapping("/batchDelete") -// @ResponseBody -// public ReturnDTO batchDelete(@RequestBody @Valid IdsDTO idsDTO) { -// Assert.isFalse(CollectionUtils.isEmpty(idsDTO.getIds()), () -> { -// throw new BusinessException(BusinessExceptionEnum.ID_NULL); -// }); -// return projectService.deleteBatchProject(idsDTO.getIds()); -// } - @ApiOperation("分包项目申请详情") @PostMapping("/detail") @ResponseBody @@ -151,6 +143,19 @@ if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return projectService.failUpdate(outsourceProject); + return projectService.projectApplyFailUpdate(outsourceProject); + } + + /** + * 查询分包项目申请审批通过列表 + */ + @ApiOperation("分包项目申请审批通过列表(分页)") + @PostMapping("/listPage") + public ReturnDTO> listPage(@RequestBody @Valid OutsourceProjectListRequest request, BindingResult bindingResult) throws Exception { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(projectService.projectListPage(request, page))); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectCheckController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectCheckController.java index f44d54c..6575ab7 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectCheckController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectCheckController.java @@ -1,10 +1,35 @@ package com.casic.missiles.controller.business; +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.BaseApprovalSubmitRequest; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.outsource.OutsourceProjectApprovalListRequest; +import com.casic.missiles.dto.business.outsource.OutsourceProjectApprovalListResponse; +import com.casic.missiles.dto.business.outsource.OutsourceProjectCheckSaveOrUpdateRequest; +import com.casic.missiles.dto.business.outsource.OutsourceProjectSaveResponse; +import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.business.BusinessOutsourceProject; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.service.business.IBusinessOutsourceProjectService; +import com.casic.missiles.utils.DictCodeUtils; import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.*; + +import javax.validation.Valid; +import java.util.List; +import java.util.Objects; /** *

@@ -19,5 +44,99 @@ @RestController @RequestMapping("/business/outsourceProject/check") public class BusinessOutsourceProjectCheckController extends ExportController { + @Autowired + private IBusinessOutsourceProjectService projectService; + @ApiOperation("分包项目验收审批列表(分页)") + @PostMapping("/approval/listPage") + public ReturnDTO> approvalListPage(@RequestBody @Valid OutsourceProjectApprovalListRequest request, BindingResult bindingResult) throws Exception { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + DictCodeUtils.validDictCode(request); + Page page = PageFactory.defaultPage(); + request.setTypeFlag(2); + List responseList = projectService.projectApplyApprovalListPage(request, page); + page.setRecords(responseList); + return ReturnUtil.success(super.packForBT(page)); + } + + @ApiOperation("分包项目验收审批保存(保存至草稿箱)") + @PostMapping("/save") + @ResponseBody + public ReturnDTO save(@RequestBody @Valid OutsourceProjectCheckSaveOrUpdateRequest request, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.saveOrUpdateProjectCheck(request); + } + + @ApiOperation("草稿箱分包项目验收编辑") + @PostMapping("/draftUpdate") + @ResponseBody + public ReturnDTO draftUpdate(@RequestBody @Valid OutsourceProjectCheckSaveOrUpdateRequest request, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.saveOrUpdateProjectCheck(request); + } + + @ApiOperation("分包项目验收提交(未调用过保存接口保存至草稿箱需先调用保存接口,再调用该接口)") + @PostMapping("/submit") + @ResponseBody + public ReturnDTO submit(@RequestBody @Valid BaseApprovalSubmitRequest request, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.submitProjectCheck(request); + } + + /** + * 只清空验收所填字段及验收审批草稿状态 + */ + @ApiOperation("分包项目验收删除(草稿删除也调用该接口)") + @PostMapping("/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return projectService.projectCheckDelete(idDTO.getId()); + } + + /** + * 复用分包项目申请详情service + */ + @ApiOperation("分包项目验收详情") + @PostMapping("/detail") + @ResponseBody + public ReturnDTO supplierDetail(@RequestBody @Valid IdDTO idDTO) throws Exception { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return projectService.projectDetail(idDTO.getId()); + } + + /** + * 清空验收所填字段及验收审批状态 + */ + @ApiOperation("分包项目验收审批操作-删除") + @PostMapping("/approval/operate/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid ApprovalDeleteRequest request, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.projectCheckApprovalDelete(request); + } + + @ApiOperation("未通过分包项目验收编辑(驳回后的分包项目验收重新编辑,仅未通过列表中的编辑按钮可调用)") + @PostMapping("/failUpdate") + @ResponseBody + public ReturnDTO failUpdate(@RequestBody @Valid OutsourceProjectCheckSaveOrUpdateRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.projectCheckFailUpdate(request); + } } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index e792441..2cc4a24 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -68,8 +68,10 @@ OUTSOURCER_SAVE_FAILED(2419, "分包方保存至草稿箱失败"), OUTSOURCER_SUBMIT_FAILED(2420, "分包方提交处理失败"), - OUTSOURCE_PROJECT_SAVE_FAILED(2421, "分包项目保存至草稿箱失败"), - OUTSOURCE_PROJECT_SUBMIT_FAILED(2422, "分包项目提交处理失败"); + OUTSOURCE_PROJECT_APPLY_SAVE_FAILED(2421, "分包项目申请保存至草稿箱失败"), + OUTSOURCE_PROJECT_APPLY_SUBMIT_FAILED(2422, "分包项目申请提交处理失败"), + OUTSOURCE_PROJECT_CHECK_SAVE_FAILED(2423, "分包项目验收保存至草稿箱失败"), + OUTSOURCE_PROJECT_CHECK_SUBMIT_FAILED(2424, "分包项目验收提交处理失败"); private Integer code; private String message; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java index a318a34..d3d5eb4 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java @@ -17,4 +17,8 @@ String CERTIFICATE_REPORT_BEAN_NAME = "certificateReportBean"; + String OUTSOURCE_PROJECT_APPLY_BEAN_NAME = "outsourceProjectApplyBean"; + + String OUTSOURCE_PROJECT_CHECK_BEAN_NAME = "outsourceProjectCheckBean"; + } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareActionStatusEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareActionStatusEnum.java index 2435309..c45da69 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareActionStatusEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareActionStatusEnum.java @@ -19,6 +19,8 @@ DEVICE_LEASE_BORROWED(LEASE_BEAN_NAME, EquipmentApplyProcessEnum.WAIT_BORROWED), CERTIFICATE_PRINT_STATUS(CERTIFICATE_BEAN_NAME, ""), CERTIFICATE_REPORT_STATUS(CERTIFICATE_REPORT_BEAN_NAME, ""), + OUTSOURCE_PROJECT_APPLY(OUTSOURCE_PROJECT_APPLY_BEAN_NAME, ""), + OUTSOURCE_PROJECT_CHECK(OUTSOURCE_PROJECT_CHECK_BEAN_NAME, ""), ACTION_STATUS_MAP(new HashMap() { { put(ApplyFromIdEnum.STANDARD_REVERT_APPROVAL, EQUIPMENT_APPLY_USE); @@ -28,12 +30,14 @@ put(ApplyFromIdEnum.DEVICE_UNUSED_APPROVAL, DEVICE_MANAGING_IDLE); put(ApplyFromIdEnum.DEVICE_SEALED_APPROVAL, DEVICE_MANAGING_SEALED); put(ApplyFromIdEnum.DEVICE_UNSEALED_APPROVAL, DEVICE_MANAGING_USE); - put(ApplyFromIdEnum.DEVICE_SCRAPPED_ROVAL, DEVICE_MANAGING_SCRAP); + put(ApplyFromIdEnum.DEVICE_SCRAP_APPROVAL, DEVICE_MANAGING_SCRAP); put(ApplyFromIdEnum.DEVICE_HANDLE_APPROVAL, DEVICE_MANAGING_MANAGEMENT); put(ApplyFromIdEnum.DEVICE_CONSUMING_APPROVAL, DEVICE_LEASE_CONSUMING); // 设备领用申请 put(ApplyFromIdEnum.DEVICE_BORROW_APPROVAL, DEVICE_LEASE_BORROWED); // 设备借用申请 put(ApplyFromIdEnum.CERTIFICATE_PRINT_APPROVAL, CERTIFICATE_PRINT_STATUS); //证书打印审批通过状态回填 put(ApplyFromIdEnum.CERTIFICATE_REPORT_APPROVAL, CERTIFICATE_REPORT_STATUS); //证书报告审批通过状态回填 + put(ApplyFromIdEnum.OUTSOURCE_PROJECT_APPLY_APPROVAL, OUTSOURCE_PROJECT_APPLY); + put(ApplyFromIdEnum.OUTSOURCE_PROJECT_CHECK_APPROVAL, OUTSOURCE_PROJECT_CHECK); } }); String actionBeanName; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java index 5d16918..61c86df 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java @@ -12,7 +12,7 @@ String DEVICE_UNUSED_APPROVAL = "sbglsbxzsq"; // 设备闲置申请 String DEVICE_SEALED_APPROVAL = "sbglsbfcsq"; // 设备封存申请 String DEVICE_UNSEALED_APPROVAL = "sbglsbqfsq"; // 设备启封申请 - String DEVICE_SCRAPPED_ROVAL = "sbglsbbfsq"; // 设备报废申请 + String DEVICE_SCRAP_APPROVAL = "sbglsbbfsq"; // 设备报废申请 String DEVICE_HANDLE_APPROVAL = "sbglsbczsq"; // 设备处置申请 String DEVICE_CONSUMING_APPROVAL = "clsblysp"; // 设备领用申请 String DEVICE_BORROW_APPROVAL = "clsbjysp"; // 设备借用申请 @@ -20,4 +20,7 @@ String DEVICE_FIX_ACCEPTANCE = "sbglsbjxbyysd"; // 设备检修保养验收单 String CERTIFICATE_PRINT_APPROVAL = "ywglzsdy"; // 证书打印通过 String CERTIFICATE_REPORT_APPROVAL = "ywglzsbg"; // 证书报告通过 + String OUTSOURCER_APPROVAL = "ywglfbfzg"; // 分包方资格 + String OUTSOURCE_PROJECT_APPLY_APPROVAL = "ywglfbxmsq"; // 分包项目申请 + String OUTSOURCE_PROJECT_CHECK_APPROVAL = "ywglfbxmys"; // 分包项目验收 } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java index bddf56f..344358a 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java @@ -7,6 +7,7 @@ import com.casic.missiles.dto.business.SampleHandOutListResponse; import com.casic.missiles.dto.business.dispatch.DeviceDispatchDTO; import com.casic.missiles.dto.business.dispatch.DeviceDispatchVO; +import com.casic.missiles.dto.business.outsource.OrderSampleDTO; import com.casic.missiles.dto.customer.sample.CustomerSampleListVO; import com.casic.missiles.model.business.BusinessOrderSampleRelation; import org.apache.ibatis.annotations.Param; @@ -32,4 +33,8 @@ int updateByOrderIdAndSampleId(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId, @Param("status") String status); CustomerSampleListVO getInterChangeSampleList(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId); + + int updateTypeBatchByOrderAndSample(@Param("orderSampleDTOS") List orderSampleDTOS); + + int updateStatusBatchByOrderAndSample(@Param("orderSampleDTOS") List orderSampleDTOS); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOutsourceProjectMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOutsourceProjectMapper.java index b1724d8..b6d6726 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOutsourceProjectMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOutsourceProjectMapper.java @@ -26,4 +26,6 @@ Long selectMaxOutsourcerNo(); BusinessOutsourceProject selectProjectById(@Param("id") Long id); + + int updateForProjectCheck(@Param("id") Long id); } diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml index 95012eb..881bbb2 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -180,4 +180,19 @@ )bosr ON bosr.sampleId=bo.id + + + UPDATE business_order_sample_relation + SET measure_type = 2 + WHERE order_id = #{item.orderId} AND sample_id = #{item.sampleId} + + + + + + UPDATE business_order_sample_relation + SET sample_status = 4 + WHERE order_id = #{item.orderId} AND sample_id = #{item.sampleId} + + diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourceProjectMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourceProjectMapper.xml index f35e05d..6c69ac9 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourceProjectMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourceProjectMapper.xml @@ -8,37 +8,43 @@ + + - + + - + + - - - id, project_no, project_name, applicant_id, applicant_name, applicant_time, pre_cost, outsourcer_id, outsource_reason, pre_start_time, pre_end_time, minio_file_name, apply_approval_status, apply_process_id, check_approval_status, check_process_id, check_conclusion, check_time, remark, create_time, update_time - - + + + UPDATE business_outsource_project + SET checker_id = null, checker_name = null, check_conclusion = null, check_minio_file_name = null, check_remark = null, check_approval_status = null + WHERE id = #{id} + diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourcerInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourcerInfoMapper.xml index a00bac6..2273d52 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourcerInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourcerInfoMapper.xml @@ -47,17 +47,11 @@ - - - - id, outsourcer_no, outsourcer_name, outsourcer_brief_name, outsourcer_size, business_size, grade, evaluation, business_content, tax_number, bank_account, bank_name, bank_account_number, postal_code, director, phone, mobile, email, website, address_country, address_province, address_city, address_area, full_address, address_country_name, address_province_name, address_city_name, address_area_name, invoice_country, invoice_province, invoice_city, invoice_area, invoice_full_address, invoice_country_name, invoice_province_name, invoice_city_name, invoice_area_name, business_scope, minio_file_name, approval_status, process_id, remark, create_user, update_user, is_del, create_time, update_time - - SELECT * FROM business_site_executive_info diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectApprovalListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectApprovalListRequest.java index b7d61d6..43e1229 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectApprovalListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectApprovalListRequest.java @@ -46,4 +46,8 @@ @ApiModelProperty(hidden = true) private Long createUserId; + + //标识是申请or验收,代码中设置 + @ApiModelProperty(hidden = true) + private Integer typeFlag; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectApprovalListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectApprovalListResponse.java index 3dc13d9..ea8bc09 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectApprovalListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectApprovalListResponse.java @@ -24,6 +24,12 @@ @ApiModelProperty(value = "申请人名字", dataType = "String") private String applicantName; + @ApiModelProperty(value = "验收人名字", dataType = "String") + private String checkerName; + + @ApiModelProperty(value = "验收时间", dataType = "String") + private String checkTime; + @ApiModelProperty(value = "分包方名称", dataType = "String") private String outsourcerName; @@ -42,8 +48,17 @@ @ApiModelProperty(value = "分包项目申请审批状态类型-字典value", dataType = "String") private String applyApprovalStatusName; - @ApiModelProperty(value = "流程实例id", dataType = "String") - private String processId; + @ApiModelProperty(value = "分包项目验收审批状态类型-字典code", dataType = "String") + private String checkApprovalStatus; + + @ApiModelProperty(value = "分包项目验收审批状态类型-字典value", dataType = "String") + private String checkApprovalStatusName; + + @ApiModelProperty(value = "分包项目申请流程实例id", dataType = "String") + private String applyProcessId; + + @ApiModelProperty(value = "分包项目验收流程实例id", dataType = "String") + private String checkProcessId; @ApiModelProperty(value = "任务id(同意、驳回等操作使用)", dataType = "String") private String taskId; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectCheckSaveOrUpdateRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectCheckSaveOrUpdateRequest.java new file mode 100644 index 0000000..9a61a8b --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectCheckSaveOrUpdateRequest.java @@ -0,0 +1,37 @@ +package com.casic.missiles.dto.business.outsource; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; + +/** + * @Description: 分包项目验收草稿箱保存/编辑请求实体 + * @Author: wangpeng + * @Date: 2023/3/29 9:03 + */ +@ApiModel +@Data +public class OutsourceProjectCheckSaveOrUpdateRequest { + @NotNull(message = "分包项目主键id不能为空") + @ApiModelProperty(value = "主键id", dataType = "Long", required = true) + private Long id; + + @NotBlank(message = "验收结论不能为空") + @ApiModelProperty(value = "验收结论", dataType = "String", required = true) + private String checkConclusion; + + @ApiModelProperty(value = "验收时间", dataType = "String", required = true) + private String checkTime; + + @ApiModelProperty(value = "项目验收文件-minio存储文件名", dataType = "String", required = true) + private String checkMinioFileName; + + @ApiModelProperty(value = "项目验收备注", dataType = "String", required = true) + private String checkRemark; + + @ApiModelProperty(value = "流程实例id(未通过验收编辑接口入参必传)", dataType = "String") + private String checkProcessId; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectListRequest.java new file mode 100644 index 0000000..c325bca --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectListRequest.java @@ -0,0 +1,26 @@ +package com.casic.missiles.dto.business.outsource; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + * @Description: 分包项目列表请求实体 + * @Author: wangpeng + * @Date: 2023/3/29 11:22 + */ +@Data +@ApiModel +public class OutsourceProjectListRequest { + @NotBlank(message = "表单id不能为空") + @ApiModelProperty(value = "表单id(流程定义对应的表单id,等价于业务id)", dataType = "String") + private String formId; + + @ApiModelProperty(value = "分包项目编号", dataType = "String") + private String projectNo; + + @ApiModelProperty(value = "分包项目名称", dataType = "String") + private String projectName; +} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectApplyController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectApplyController.java index b7dae53..76facc2 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectApplyController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectApplyController.java @@ -11,6 +11,7 @@ import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.outsource.OutsourceProjectApprovalListRequest; import com.casic.missiles.dto.business.outsource.OutsourceProjectApprovalListResponse; +import com.casic.missiles.dto.business.outsource.OutsourceProjectListRequest; import com.casic.missiles.dto.business.outsource.OutsourceProjectSaveResponse; import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; import com.casic.missiles.enums.BusinessExceptionEnum; @@ -48,13 +49,14 @@ private IBusinessOutsourceProjectService projectService; @ApiOperation("分包项目申请审批列表(分页)") - @PostMapping("/approval/listPage") + @PostMapping("/approval/listPage") public ReturnDTO> approvalListPage(@RequestBody @Valid OutsourceProjectApprovalListRequest request, BindingResult bindingResult) throws Exception { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } DictCodeUtils.validDictCode(request); Page page = PageFactory.defaultPage(); + request.setTypeFlag(1); List responseList = projectService.projectApplyApprovalListPage(request, page); page.setRecords(responseList); return ReturnUtil.success(super.packForBT(page)); @@ -64,7 +66,7 @@ @PostMapping("/save") @ResponseBody public ReturnDTO save(@RequestBody @Valid BusinessOutsourceProject outsourceProject, BindingResult bindingResult) throws Exception { - Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getDtos()), () -> { + Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getOrderSampleList()), () -> { throw new BusinessException(BusinessExceptionEnum.SAMPLE_ORDER_IDS_NULL); }); if(bindingResult.hasErrors()){ @@ -81,7 +83,7 @@ Assert.isFalse(Objects.isNull(outsourceProject.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getDtos()), () -> { + Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getOrderSampleList()), () -> { throw new BusinessException(BusinessExceptionEnum.SAMPLE_ORDER_IDS_NULL); }); if(bindingResult.hasErrors()){ @@ -108,19 +110,9 @@ Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - return projectService.projectDelete(idDTO.getId()); + return projectService.projectApplyDelete(idDTO.getId()); } -// @ApiOperation("分包项目申请批量删除") -// @PostMapping("/batchDelete") -// @ResponseBody -// public ReturnDTO batchDelete(@RequestBody @Valid IdsDTO idsDTO) { -// Assert.isFalse(CollectionUtils.isEmpty(idsDTO.getIds()), () -> { -// throw new BusinessException(BusinessExceptionEnum.ID_NULL); -// }); -// return projectService.deleteBatchProject(idsDTO.getIds()); -// } - @ApiOperation("分包项目申请详情") @PostMapping("/detail") @ResponseBody @@ -151,6 +143,19 @@ if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return projectService.failUpdate(outsourceProject); + return projectService.projectApplyFailUpdate(outsourceProject); + } + + /** + * 查询分包项目申请审批通过列表 + */ + @ApiOperation("分包项目申请审批通过列表(分页)") + @PostMapping("/listPage") + public ReturnDTO> listPage(@RequestBody @Valid OutsourceProjectListRequest request, BindingResult bindingResult) throws Exception { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(projectService.projectListPage(request, page))); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectCheckController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectCheckController.java index f44d54c..6575ab7 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectCheckController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectCheckController.java @@ -1,10 +1,35 @@ package com.casic.missiles.controller.business; +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.BaseApprovalSubmitRequest; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.outsource.OutsourceProjectApprovalListRequest; +import com.casic.missiles.dto.business.outsource.OutsourceProjectApprovalListResponse; +import com.casic.missiles.dto.business.outsource.OutsourceProjectCheckSaveOrUpdateRequest; +import com.casic.missiles.dto.business.outsource.OutsourceProjectSaveResponse; +import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.business.BusinessOutsourceProject; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.service.business.IBusinessOutsourceProjectService; +import com.casic.missiles.utils.DictCodeUtils; import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.*; + +import javax.validation.Valid; +import java.util.List; +import java.util.Objects; /** *

@@ -19,5 +44,99 @@ @RestController @RequestMapping("/business/outsourceProject/check") public class BusinessOutsourceProjectCheckController extends ExportController { + @Autowired + private IBusinessOutsourceProjectService projectService; + @ApiOperation("分包项目验收审批列表(分页)") + @PostMapping("/approval/listPage") + public ReturnDTO> approvalListPage(@RequestBody @Valid OutsourceProjectApprovalListRequest request, BindingResult bindingResult) throws Exception { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + DictCodeUtils.validDictCode(request); + Page page = PageFactory.defaultPage(); + request.setTypeFlag(2); + List responseList = projectService.projectApplyApprovalListPage(request, page); + page.setRecords(responseList); + return ReturnUtil.success(super.packForBT(page)); + } + + @ApiOperation("分包项目验收审批保存(保存至草稿箱)") + @PostMapping("/save") + @ResponseBody + public ReturnDTO save(@RequestBody @Valid OutsourceProjectCheckSaveOrUpdateRequest request, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.saveOrUpdateProjectCheck(request); + } + + @ApiOperation("草稿箱分包项目验收编辑") + @PostMapping("/draftUpdate") + @ResponseBody + public ReturnDTO draftUpdate(@RequestBody @Valid OutsourceProjectCheckSaveOrUpdateRequest request, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.saveOrUpdateProjectCheck(request); + } + + @ApiOperation("分包项目验收提交(未调用过保存接口保存至草稿箱需先调用保存接口,再调用该接口)") + @PostMapping("/submit") + @ResponseBody + public ReturnDTO submit(@RequestBody @Valid BaseApprovalSubmitRequest request, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.submitProjectCheck(request); + } + + /** + * 只清空验收所填字段及验收审批草稿状态 + */ + @ApiOperation("分包项目验收删除(草稿删除也调用该接口)") + @PostMapping("/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return projectService.projectCheckDelete(idDTO.getId()); + } + + /** + * 复用分包项目申请详情service + */ + @ApiOperation("分包项目验收详情") + @PostMapping("/detail") + @ResponseBody + public ReturnDTO supplierDetail(@RequestBody @Valid IdDTO idDTO) throws Exception { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return projectService.projectDetail(idDTO.getId()); + } + + /** + * 清空验收所填字段及验收审批状态 + */ + @ApiOperation("分包项目验收审批操作-删除") + @PostMapping("/approval/operate/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid ApprovalDeleteRequest request, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.projectCheckApprovalDelete(request); + } + + @ApiOperation("未通过分包项目验收编辑(驳回后的分包项目验收重新编辑,仅未通过列表中的编辑按钮可调用)") + @PostMapping("/failUpdate") + @ResponseBody + public ReturnDTO failUpdate(@RequestBody @Valid OutsourceProjectCheckSaveOrUpdateRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.projectCheckFailUpdate(request); + } } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index e792441..2cc4a24 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -68,8 +68,10 @@ OUTSOURCER_SAVE_FAILED(2419, "分包方保存至草稿箱失败"), OUTSOURCER_SUBMIT_FAILED(2420, "分包方提交处理失败"), - OUTSOURCE_PROJECT_SAVE_FAILED(2421, "分包项目保存至草稿箱失败"), - OUTSOURCE_PROJECT_SUBMIT_FAILED(2422, "分包项目提交处理失败"); + OUTSOURCE_PROJECT_APPLY_SAVE_FAILED(2421, "分包项目申请保存至草稿箱失败"), + OUTSOURCE_PROJECT_APPLY_SUBMIT_FAILED(2422, "分包项目申请提交处理失败"), + OUTSOURCE_PROJECT_CHECK_SAVE_FAILED(2423, "分包项目验收保存至草稿箱失败"), + OUTSOURCE_PROJECT_CHECK_SUBMIT_FAILED(2424, "分包项目验收提交处理失败"); private Integer code; private String message; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java index a318a34..d3d5eb4 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java @@ -17,4 +17,8 @@ String CERTIFICATE_REPORT_BEAN_NAME = "certificateReportBean"; + String OUTSOURCE_PROJECT_APPLY_BEAN_NAME = "outsourceProjectApplyBean"; + + String OUTSOURCE_PROJECT_CHECK_BEAN_NAME = "outsourceProjectCheckBean"; + } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareActionStatusEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareActionStatusEnum.java index 2435309..c45da69 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareActionStatusEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareActionStatusEnum.java @@ -19,6 +19,8 @@ DEVICE_LEASE_BORROWED(LEASE_BEAN_NAME, EquipmentApplyProcessEnum.WAIT_BORROWED), CERTIFICATE_PRINT_STATUS(CERTIFICATE_BEAN_NAME, ""), CERTIFICATE_REPORT_STATUS(CERTIFICATE_REPORT_BEAN_NAME, ""), + OUTSOURCE_PROJECT_APPLY(OUTSOURCE_PROJECT_APPLY_BEAN_NAME, ""), + OUTSOURCE_PROJECT_CHECK(OUTSOURCE_PROJECT_CHECK_BEAN_NAME, ""), ACTION_STATUS_MAP(new HashMap() { { put(ApplyFromIdEnum.STANDARD_REVERT_APPROVAL, EQUIPMENT_APPLY_USE); @@ -28,12 +30,14 @@ put(ApplyFromIdEnum.DEVICE_UNUSED_APPROVAL, DEVICE_MANAGING_IDLE); put(ApplyFromIdEnum.DEVICE_SEALED_APPROVAL, DEVICE_MANAGING_SEALED); put(ApplyFromIdEnum.DEVICE_UNSEALED_APPROVAL, DEVICE_MANAGING_USE); - put(ApplyFromIdEnum.DEVICE_SCRAPPED_ROVAL, DEVICE_MANAGING_SCRAP); + put(ApplyFromIdEnum.DEVICE_SCRAP_APPROVAL, DEVICE_MANAGING_SCRAP); put(ApplyFromIdEnum.DEVICE_HANDLE_APPROVAL, DEVICE_MANAGING_MANAGEMENT); put(ApplyFromIdEnum.DEVICE_CONSUMING_APPROVAL, DEVICE_LEASE_CONSUMING); // 设备领用申请 put(ApplyFromIdEnum.DEVICE_BORROW_APPROVAL, DEVICE_LEASE_BORROWED); // 设备借用申请 put(ApplyFromIdEnum.CERTIFICATE_PRINT_APPROVAL, CERTIFICATE_PRINT_STATUS); //证书打印审批通过状态回填 put(ApplyFromIdEnum.CERTIFICATE_REPORT_APPROVAL, CERTIFICATE_REPORT_STATUS); //证书报告审批通过状态回填 + put(ApplyFromIdEnum.OUTSOURCE_PROJECT_APPLY_APPROVAL, OUTSOURCE_PROJECT_APPLY); + put(ApplyFromIdEnum.OUTSOURCE_PROJECT_CHECK_APPROVAL, OUTSOURCE_PROJECT_CHECK); } }); String actionBeanName; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java index 5d16918..61c86df 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java @@ -12,7 +12,7 @@ String DEVICE_UNUSED_APPROVAL = "sbglsbxzsq"; // 设备闲置申请 String DEVICE_SEALED_APPROVAL = "sbglsbfcsq"; // 设备封存申请 String DEVICE_UNSEALED_APPROVAL = "sbglsbqfsq"; // 设备启封申请 - String DEVICE_SCRAPPED_ROVAL = "sbglsbbfsq"; // 设备报废申请 + String DEVICE_SCRAP_APPROVAL = "sbglsbbfsq"; // 设备报废申请 String DEVICE_HANDLE_APPROVAL = "sbglsbczsq"; // 设备处置申请 String DEVICE_CONSUMING_APPROVAL = "clsblysp"; // 设备领用申请 String DEVICE_BORROW_APPROVAL = "clsbjysp"; // 设备借用申请 @@ -20,4 +20,7 @@ String DEVICE_FIX_ACCEPTANCE = "sbglsbjxbyysd"; // 设备检修保养验收单 String CERTIFICATE_PRINT_APPROVAL = "ywglzsdy"; // 证书打印通过 String CERTIFICATE_REPORT_APPROVAL = "ywglzsbg"; // 证书报告通过 + String OUTSOURCER_APPROVAL = "ywglfbfzg"; // 分包方资格 + String OUTSOURCE_PROJECT_APPLY_APPROVAL = "ywglfbxmsq"; // 分包项目申请 + String OUTSOURCE_PROJECT_CHECK_APPROVAL = "ywglfbxmys"; // 分包项目验收 } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java index bddf56f..344358a 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java @@ -7,6 +7,7 @@ import com.casic.missiles.dto.business.SampleHandOutListResponse; import com.casic.missiles.dto.business.dispatch.DeviceDispatchDTO; import com.casic.missiles.dto.business.dispatch.DeviceDispatchVO; +import com.casic.missiles.dto.business.outsource.OrderSampleDTO; import com.casic.missiles.dto.customer.sample.CustomerSampleListVO; import com.casic.missiles.model.business.BusinessOrderSampleRelation; import org.apache.ibatis.annotations.Param; @@ -32,4 +33,8 @@ int updateByOrderIdAndSampleId(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId, @Param("status") String status); CustomerSampleListVO getInterChangeSampleList(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId); + + int updateTypeBatchByOrderAndSample(@Param("orderSampleDTOS") List orderSampleDTOS); + + int updateStatusBatchByOrderAndSample(@Param("orderSampleDTOS") List orderSampleDTOS); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOutsourceProjectMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOutsourceProjectMapper.java index b1724d8..b6d6726 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOutsourceProjectMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOutsourceProjectMapper.java @@ -26,4 +26,6 @@ Long selectMaxOutsourcerNo(); BusinessOutsourceProject selectProjectById(@Param("id") Long id); + + int updateForProjectCheck(@Param("id") Long id); } diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml index 95012eb..881bbb2 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -180,4 +180,19 @@ )bosr ON bosr.sampleId=bo.id + + + UPDATE business_order_sample_relation + SET measure_type = 2 + WHERE order_id = #{item.orderId} AND sample_id = #{item.sampleId} + + + + + + UPDATE business_order_sample_relation + SET sample_status = 4 + WHERE order_id = #{item.orderId} AND sample_id = #{item.sampleId} + + diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourceProjectMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourceProjectMapper.xml index f35e05d..6c69ac9 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourceProjectMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourceProjectMapper.xml @@ -8,37 +8,43 @@ + + - + + - + + - - - id, project_no, project_name, applicant_id, applicant_name, applicant_time, pre_cost, outsourcer_id, outsource_reason, pre_start_time, pre_end_time, minio_file_name, apply_approval_status, apply_process_id, check_approval_status, check_process_id, check_conclusion, check_time, remark, create_time, update_time - - + + + UPDATE business_outsource_project + SET checker_id = null, checker_name = null, check_conclusion = null, check_minio_file_name = null, check_remark = null, check_approval_status = null + WHERE id = #{id} + diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourcerInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourcerInfoMapper.xml index a00bac6..2273d52 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourcerInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourcerInfoMapper.xml @@ -47,17 +47,11 @@ - - - - id, outsourcer_no, outsourcer_name, outsourcer_brief_name, outsourcer_size, business_size, grade, evaluation, business_content, tax_number, bank_account, bank_name, bank_account_number, postal_code, director, phone, mobile, email, website, address_country, address_province, address_city, address_area, full_address, address_country_name, address_province_name, address_city_name, address_area_name, invoice_country, invoice_province, invoice_city, invoice_area, invoice_full_address, invoice_country_name, invoice_province_name, invoice_city_name, invoice_area_name, business_scope, minio_file_name, approval_status, process_id, remark, create_user, update_user, is_del, create_time, update_time - - SELECT * FROM business_site_executive_info diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectApprovalListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectApprovalListRequest.java index b7d61d6..43e1229 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectApprovalListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectApprovalListRequest.java @@ -46,4 +46,8 @@ @ApiModelProperty(hidden = true) private Long createUserId; + + //标识是申请or验收,代码中设置 + @ApiModelProperty(hidden = true) + private Integer typeFlag; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectApprovalListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectApprovalListResponse.java index 3dc13d9..ea8bc09 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectApprovalListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectApprovalListResponse.java @@ -24,6 +24,12 @@ @ApiModelProperty(value = "申请人名字", dataType = "String") private String applicantName; + @ApiModelProperty(value = "验收人名字", dataType = "String") + private String checkerName; + + @ApiModelProperty(value = "验收时间", dataType = "String") + private String checkTime; + @ApiModelProperty(value = "分包方名称", dataType = "String") private String outsourcerName; @@ -42,8 +48,17 @@ @ApiModelProperty(value = "分包项目申请审批状态类型-字典value", dataType = "String") private String applyApprovalStatusName; - @ApiModelProperty(value = "流程实例id", dataType = "String") - private String processId; + @ApiModelProperty(value = "分包项目验收审批状态类型-字典code", dataType = "String") + private String checkApprovalStatus; + + @ApiModelProperty(value = "分包项目验收审批状态类型-字典value", dataType = "String") + private String checkApprovalStatusName; + + @ApiModelProperty(value = "分包项目申请流程实例id", dataType = "String") + private String applyProcessId; + + @ApiModelProperty(value = "分包项目验收流程实例id", dataType = "String") + private String checkProcessId; @ApiModelProperty(value = "任务id(同意、驳回等操作使用)", dataType = "String") private String taskId; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectCheckSaveOrUpdateRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectCheckSaveOrUpdateRequest.java new file mode 100644 index 0000000..9a61a8b --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectCheckSaveOrUpdateRequest.java @@ -0,0 +1,37 @@ +package com.casic.missiles.dto.business.outsource; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; + +/** + * @Description: 分包项目验收草稿箱保存/编辑请求实体 + * @Author: wangpeng + * @Date: 2023/3/29 9:03 + */ +@ApiModel +@Data +public class OutsourceProjectCheckSaveOrUpdateRequest { + @NotNull(message = "分包项目主键id不能为空") + @ApiModelProperty(value = "主键id", dataType = "Long", required = true) + private Long id; + + @NotBlank(message = "验收结论不能为空") + @ApiModelProperty(value = "验收结论", dataType = "String", required = true) + private String checkConclusion; + + @ApiModelProperty(value = "验收时间", dataType = "String", required = true) + private String checkTime; + + @ApiModelProperty(value = "项目验收文件-minio存储文件名", dataType = "String", required = true) + private String checkMinioFileName; + + @ApiModelProperty(value = "项目验收备注", dataType = "String", required = true) + private String checkRemark; + + @ApiModelProperty(value = "流程实例id(未通过验收编辑接口入参必传)", dataType = "String") + private String checkProcessId; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectListRequest.java new file mode 100644 index 0000000..c325bca --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectListRequest.java @@ -0,0 +1,26 @@ +package com.casic.missiles.dto.business.outsource; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + * @Description: 分包项目列表请求实体 + * @Author: wangpeng + * @Date: 2023/3/29 11:22 + */ +@Data +@ApiModel +public class OutsourceProjectListRequest { + @NotBlank(message = "表单id不能为空") + @ApiModelProperty(value = "表单id(流程定义对应的表单id,等价于业务id)", dataType = "String") + private String formId; + + @ApiModelProperty(value = "分包项目编号", dataType = "String") + private String projectNo; + + @ApiModelProperty(value = "分包项目名称", dataType = "String") + private String projectName; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourceProject.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourceProject.java index 3b88cf1..8be4953 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourceProject.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourceProject.java @@ -44,54 +44,42 @@ @TableId("id") private Long id; - /** - * 分包项目编号 - */ @ExcelProperty("分包项目编号") - @ApiModelProperty(value = "分包项目编号", dataType = "String") + @ApiModelProperty(value = "分包项目编号(列表、更新接口参数)", dataType = "String") @TableField("project_no") private String projectNo; - /** - * 分包项目名称 - */ @ExcelProperty("分包项目名称") @ApiModelProperty(value = "分包项目名称", dataType = "String") @TableField("project_name") private String projectName; - /** - * 申请人id - */ - @ApiModelProperty(value = "申请人id", dataType = "Long") + @ApiModelProperty(hidden = true) @TableField("applicant_id") private Long applicantId; - /** - * 申请人名字 - */ + @ApiModelProperty(hidden = true) + @TableField("checker_id") + private Long checkerId; + @ExcelProperty("申请人名字") - @ApiModelProperty(value = "申请人名字", dataType = "String") + @ApiModelProperty(hidden = true) @TableField("applicant_name") private String applicantName; - /** - * 申请时间 - */ + @ExcelProperty("验收人名字") + @ApiModelProperty(hidden = true) + @TableField("checker_name") + private String checkerName; + @ApiModelProperty(value = "申请时间", dataType = "String") @TableField("applicant_time") private String applicantTime; - /** - * 预计费用 - */ @ApiModelProperty(value = "预计费用", dataType = "String") @TableField("pre_cost") private String preCost; - /** - * 分包方id - */ @ApiModelProperty(value = "分包方id", dataType = "String") @TableField("outsourcer_id") private Long outsourcerId; @@ -101,43 +89,39 @@ @TableField(exist = false) private String outsourcerName; - /** - * 分包原因-字典code */ @ApiModelProperty(value = "分包原因-字典code", dataType = "String") @NotBlank(message = "分包原因不能为空") @TableField("outsource_reason") private String outsourceReason; - /** - * 分包原因-字典value - */ @ApiModelProperty(value = "分包原因-字典value", dataType = "String") @ExcelProperty("分包原因") @TableField(exist = false) private String outsourceReasonName; - /** - * 预计开始时间 - */ @ApiModelProperty(value = "预计开始时间", dataType = "String") @ExcelProperty("预计开始时间") @TableField("pre_start_time") private String preStartTime; - /** - * 预计结束时间 - */ @ApiModelProperty(value = "预计结束时间", dataType = "String") @ExcelProperty("预计结束时间") @TableField("pre_end_time") private String preEndTime; /** - * minio存储文件名 + * 项目申请文件-minio存储文件名 */ - @ApiModelProperty(value = "minio存储文件名", dataType = "String") - @TableField("minio_file_name") - private String minioFileName; + @ApiModelProperty(value = "项目申请文件-minio存储文件名", dataType = "String") + @TableField("apply_minio_file_name") + private String applyMinioFileName; + + /** + * 项目验收文件-minio存储文件名 + */ + @ApiModelProperty(hidden = true) + @TableField("check_minio_file_name") + private String checkMinioFileName; /** * 申请审批状态 @@ -163,14 +147,14 @@ /** * 验收流程实例id */ - @ApiModelProperty(value = "流程实例id(未通过验收编辑接口必传参数)", dataType = "String") + @ApiModelProperty(hidden = true) @TableField("check_process_id") private String checkProcessId; /** * 验收结论 */ - @ApiModelProperty(value = "验收结论", dataType = "String") + @ApiModelProperty(hidden = true) @ExcelProperty("验收结论") @TableField("check_conclusion") private String checkConclusion; @@ -178,18 +162,20 @@ /** * 验收时间 */ - @ApiModelProperty(value = "验收时间", dataType = "String") + @ApiModelProperty(hidden = true) @ExcelProperty("验收时间") @TableField("check_time") private String checkTime; - /** - * 备注 - */ - @ApiModelProperty(value = "备注", dataType = "String") - @ExcelProperty("备注") - @TableField("remark") - private String remark; + @ApiModelProperty(value = "项目申请备注", dataType = "String") + @ExcelProperty("项目申请备注") + @TableField("apply_remark") + private String applyRemark; + + @ApiModelProperty(hidden = true) + @ExcelProperty("项目验收备注") + @TableField("check_remark") + private String checkRemark; @ApiModelProperty(hidden = true) @TableField("create_user") @@ -211,7 +197,7 @@ @ApiModelProperty(value = "样品&委托书列表(保存/编辑草稿接口入参使用)", dataType = "List") @TableField(exist = false) - private List dtos; + private List orderSampleList; @ApiModelProperty(value = "样品列表(详情接口出参使用)", dataType = "List") @TableField(exist = false) diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectApplyController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectApplyController.java index b7dae53..76facc2 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectApplyController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectApplyController.java @@ -11,6 +11,7 @@ import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.outsource.OutsourceProjectApprovalListRequest; import com.casic.missiles.dto.business.outsource.OutsourceProjectApprovalListResponse; +import com.casic.missiles.dto.business.outsource.OutsourceProjectListRequest; import com.casic.missiles.dto.business.outsource.OutsourceProjectSaveResponse; import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; import com.casic.missiles.enums.BusinessExceptionEnum; @@ -48,13 +49,14 @@ private IBusinessOutsourceProjectService projectService; @ApiOperation("分包项目申请审批列表(分页)") - @PostMapping("/approval/listPage") + @PostMapping("/approval/listPage") public ReturnDTO> approvalListPage(@RequestBody @Valid OutsourceProjectApprovalListRequest request, BindingResult bindingResult) throws Exception { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } DictCodeUtils.validDictCode(request); Page page = PageFactory.defaultPage(); + request.setTypeFlag(1); List responseList = projectService.projectApplyApprovalListPage(request, page); page.setRecords(responseList); return ReturnUtil.success(super.packForBT(page)); @@ -64,7 +66,7 @@ @PostMapping("/save") @ResponseBody public ReturnDTO save(@RequestBody @Valid BusinessOutsourceProject outsourceProject, BindingResult bindingResult) throws Exception { - Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getDtos()), () -> { + Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getOrderSampleList()), () -> { throw new BusinessException(BusinessExceptionEnum.SAMPLE_ORDER_IDS_NULL); }); if(bindingResult.hasErrors()){ @@ -81,7 +83,7 @@ Assert.isFalse(Objects.isNull(outsourceProject.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getDtos()), () -> { + Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getOrderSampleList()), () -> { throw new BusinessException(BusinessExceptionEnum.SAMPLE_ORDER_IDS_NULL); }); if(bindingResult.hasErrors()){ @@ -108,19 +110,9 @@ Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - return projectService.projectDelete(idDTO.getId()); + return projectService.projectApplyDelete(idDTO.getId()); } -// @ApiOperation("分包项目申请批量删除") -// @PostMapping("/batchDelete") -// @ResponseBody -// public ReturnDTO batchDelete(@RequestBody @Valid IdsDTO idsDTO) { -// Assert.isFalse(CollectionUtils.isEmpty(idsDTO.getIds()), () -> { -// throw new BusinessException(BusinessExceptionEnum.ID_NULL); -// }); -// return projectService.deleteBatchProject(idsDTO.getIds()); -// } - @ApiOperation("分包项目申请详情") @PostMapping("/detail") @ResponseBody @@ -151,6 +143,19 @@ if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return projectService.failUpdate(outsourceProject); + return projectService.projectApplyFailUpdate(outsourceProject); + } + + /** + * 查询分包项目申请审批通过列表 + */ + @ApiOperation("分包项目申请审批通过列表(分页)") + @PostMapping("/listPage") + public ReturnDTO> listPage(@RequestBody @Valid OutsourceProjectListRequest request, BindingResult bindingResult) throws Exception { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(projectService.projectListPage(request, page))); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectCheckController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectCheckController.java index f44d54c..6575ab7 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectCheckController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectCheckController.java @@ -1,10 +1,35 @@ package com.casic.missiles.controller.business; +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.BaseApprovalSubmitRequest; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.outsource.OutsourceProjectApprovalListRequest; +import com.casic.missiles.dto.business.outsource.OutsourceProjectApprovalListResponse; +import com.casic.missiles.dto.business.outsource.OutsourceProjectCheckSaveOrUpdateRequest; +import com.casic.missiles.dto.business.outsource.OutsourceProjectSaveResponse; +import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.business.BusinessOutsourceProject; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.service.business.IBusinessOutsourceProjectService; +import com.casic.missiles.utils.DictCodeUtils; import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.*; + +import javax.validation.Valid; +import java.util.List; +import java.util.Objects; /** *

@@ -19,5 +44,99 @@ @RestController @RequestMapping("/business/outsourceProject/check") public class BusinessOutsourceProjectCheckController extends ExportController { + @Autowired + private IBusinessOutsourceProjectService projectService; + @ApiOperation("分包项目验收审批列表(分页)") + @PostMapping("/approval/listPage") + public ReturnDTO> approvalListPage(@RequestBody @Valid OutsourceProjectApprovalListRequest request, BindingResult bindingResult) throws Exception { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + DictCodeUtils.validDictCode(request); + Page page = PageFactory.defaultPage(); + request.setTypeFlag(2); + List responseList = projectService.projectApplyApprovalListPage(request, page); + page.setRecords(responseList); + return ReturnUtil.success(super.packForBT(page)); + } + + @ApiOperation("分包项目验收审批保存(保存至草稿箱)") + @PostMapping("/save") + @ResponseBody + public ReturnDTO save(@RequestBody @Valid OutsourceProjectCheckSaveOrUpdateRequest request, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.saveOrUpdateProjectCheck(request); + } + + @ApiOperation("草稿箱分包项目验收编辑") + @PostMapping("/draftUpdate") + @ResponseBody + public ReturnDTO draftUpdate(@RequestBody @Valid OutsourceProjectCheckSaveOrUpdateRequest request, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.saveOrUpdateProjectCheck(request); + } + + @ApiOperation("分包项目验收提交(未调用过保存接口保存至草稿箱需先调用保存接口,再调用该接口)") + @PostMapping("/submit") + @ResponseBody + public ReturnDTO submit(@RequestBody @Valid BaseApprovalSubmitRequest request, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.submitProjectCheck(request); + } + + /** + * 只清空验收所填字段及验收审批草稿状态 + */ + @ApiOperation("分包项目验收删除(草稿删除也调用该接口)") + @PostMapping("/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return projectService.projectCheckDelete(idDTO.getId()); + } + + /** + * 复用分包项目申请详情service + */ + @ApiOperation("分包项目验收详情") + @PostMapping("/detail") + @ResponseBody + public ReturnDTO supplierDetail(@RequestBody @Valid IdDTO idDTO) throws Exception { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return projectService.projectDetail(idDTO.getId()); + } + + /** + * 清空验收所填字段及验收审批状态 + */ + @ApiOperation("分包项目验收审批操作-删除") + @PostMapping("/approval/operate/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid ApprovalDeleteRequest request, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.projectCheckApprovalDelete(request); + } + + @ApiOperation("未通过分包项目验收编辑(驳回后的分包项目验收重新编辑,仅未通过列表中的编辑按钮可调用)") + @PostMapping("/failUpdate") + @ResponseBody + public ReturnDTO failUpdate(@RequestBody @Valid OutsourceProjectCheckSaveOrUpdateRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.projectCheckFailUpdate(request); + } } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index e792441..2cc4a24 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -68,8 +68,10 @@ OUTSOURCER_SAVE_FAILED(2419, "分包方保存至草稿箱失败"), OUTSOURCER_SUBMIT_FAILED(2420, "分包方提交处理失败"), - OUTSOURCE_PROJECT_SAVE_FAILED(2421, "分包项目保存至草稿箱失败"), - OUTSOURCE_PROJECT_SUBMIT_FAILED(2422, "分包项目提交处理失败"); + OUTSOURCE_PROJECT_APPLY_SAVE_FAILED(2421, "分包项目申请保存至草稿箱失败"), + OUTSOURCE_PROJECT_APPLY_SUBMIT_FAILED(2422, "分包项目申请提交处理失败"), + OUTSOURCE_PROJECT_CHECK_SAVE_FAILED(2423, "分包项目验收保存至草稿箱失败"), + OUTSOURCE_PROJECT_CHECK_SUBMIT_FAILED(2424, "分包项目验收提交处理失败"); private Integer code; private String message; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java index a318a34..d3d5eb4 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java @@ -17,4 +17,8 @@ String CERTIFICATE_REPORT_BEAN_NAME = "certificateReportBean"; + String OUTSOURCE_PROJECT_APPLY_BEAN_NAME = "outsourceProjectApplyBean"; + + String OUTSOURCE_PROJECT_CHECK_BEAN_NAME = "outsourceProjectCheckBean"; + } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareActionStatusEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareActionStatusEnum.java index 2435309..c45da69 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareActionStatusEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareActionStatusEnum.java @@ -19,6 +19,8 @@ DEVICE_LEASE_BORROWED(LEASE_BEAN_NAME, EquipmentApplyProcessEnum.WAIT_BORROWED), CERTIFICATE_PRINT_STATUS(CERTIFICATE_BEAN_NAME, ""), CERTIFICATE_REPORT_STATUS(CERTIFICATE_REPORT_BEAN_NAME, ""), + OUTSOURCE_PROJECT_APPLY(OUTSOURCE_PROJECT_APPLY_BEAN_NAME, ""), + OUTSOURCE_PROJECT_CHECK(OUTSOURCE_PROJECT_CHECK_BEAN_NAME, ""), ACTION_STATUS_MAP(new HashMap() { { put(ApplyFromIdEnum.STANDARD_REVERT_APPROVAL, EQUIPMENT_APPLY_USE); @@ -28,12 +30,14 @@ put(ApplyFromIdEnum.DEVICE_UNUSED_APPROVAL, DEVICE_MANAGING_IDLE); put(ApplyFromIdEnum.DEVICE_SEALED_APPROVAL, DEVICE_MANAGING_SEALED); put(ApplyFromIdEnum.DEVICE_UNSEALED_APPROVAL, DEVICE_MANAGING_USE); - put(ApplyFromIdEnum.DEVICE_SCRAPPED_ROVAL, DEVICE_MANAGING_SCRAP); + put(ApplyFromIdEnum.DEVICE_SCRAP_APPROVAL, DEVICE_MANAGING_SCRAP); put(ApplyFromIdEnum.DEVICE_HANDLE_APPROVAL, DEVICE_MANAGING_MANAGEMENT); put(ApplyFromIdEnum.DEVICE_CONSUMING_APPROVAL, DEVICE_LEASE_CONSUMING); // 设备领用申请 put(ApplyFromIdEnum.DEVICE_BORROW_APPROVAL, DEVICE_LEASE_BORROWED); // 设备借用申请 put(ApplyFromIdEnum.CERTIFICATE_PRINT_APPROVAL, CERTIFICATE_PRINT_STATUS); //证书打印审批通过状态回填 put(ApplyFromIdEnum.CERTIFICATE_REPORT_APPROVAL, CERTIFICATE_REPORT_STATUS); //证书报告审批通过状态回填 + put(ApplyFromIdEnum.OUTSOURCE_PROJECT_APPLY_APPROVAL, OUTSOURCE_PROJECT_APPLY); + put(ApplyFromIdEnum.OUTSOURCE_PROJECT_CHECK_APPROVAL, OUTSOURCE_PROJECT_CHECK); } }); String actionBeanName; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java index 5d16918..61c86df 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java @@ -12,7 +12,7 @@ String DEVICE_UNUSED_APPROVAL = "sbglsbxzsq"; // 设备闲置申请 String DEVICE_SEALED_APPROVAL = "sbglsbfcsq"; // 设备封存申请 String DEVICE_UNSEALED_APPROVAL = "sbglsbqfsq"; // 设备启封申请 - String DEVICE_SCRAPPED_ROVAL = "sbglsbbfsq"; // 设备报废申请 + String DEVICE_SCRAP_APPROVAL = "sbglsbbfsq"; // 设备报废申请 String DEVICE_HANDLE_APPROVAL = "sbglsbczsq"; // 设备处置申请 String DEVICE_CONSUMING_APPROVAL = "clsblysp"; // 设备领用申请 String DEVICE_BORROW_APPROVAL = "clsbjysp"; // 设备借用申请 @@ -20,4 +20,7 @@ String DEVICE_FIX_ACCEPTANCE = "sbglsbjxbyysd"; // 设备检修保养验收单 String CERTIFICATE_PRINT_APPROVAL = "ywglzsdy"; // 证书打印通过 String CERTIFICATE_REPORT_APPROVAL = "ywglzsbg"; // 证书报告通过 + String OUTSOURCER_APPROVAL = "ywglfbfzg"; // 分包方资格 + String OUTSOURCE_PROJECT_APPLY_APPROVAL = "ywglfbxmsq"; // 分包项目申请 + String OUTSOURCE_PROJECT_CHECK_APPROVAL = "ywglfbxmys"; // 分包项目验收 } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java index bddf56f..344358a 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java @@ -7,6 +7,7 @@ import com.casic.missiles.dto.business.SampleHandOutListResponse; import com.casic.missiles.dto.business.dispatch.DeviceDispatchDTO; import com.casic.missiles.dto.business.dispatch.DeviceDispatchVO; +import com.casic.missiles.dto.business.outsource.OrderSampleDTO; import com.casic.missiles.dto.customer.sample.CustomerSampleListVO; import com.casic.missiles.model.business.BusinessOrderSampleRelation; import org.apache.ibatis.annotations.Param; @@ -32,4 +33,8 @@ int updateByOrderIdAndSampleId(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId, @Param("status") String status); CustomerSampleListVO getInterChangeSampleList(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId); + + int updateTypeBatchByOrderAndSample(@Param("orderSampleDTOS") List orderSampleDTOS); + + int updateStatusBatchByOrderAndSample(@Param("orderSampleDTOS") List orderSampleDTOS); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOutsourceProjectMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOutsourceProjectMapper.java index b1724d8..b6d6726 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOutsourceProjectMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOutsourceProjectMapper.java @@ -26,4 +26,6 @@ Long selectMaxOutsourcerNo(); BusinessOutsourceProject selectProjectById(@Param("id") Long id); + + int updateForProjectCheck(@Param("id") Long id); } diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml index 95012eb..881bbb2 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -180,4 +180,19 @@ )bosr ON bosr.sampleId=bo.id + + + UPDATE business_order_sample_relation + SET measure_type = 2 + WHERE order_id = #{item.orderId} AND sample_id = #{item.sampleId} + + + + + + UPDATE business_order_sample_relation + SET sample_status = 4 + WHERE order_id = #{item.orderId} AND sample_id = #{item.sampleId} + + diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourceProjectMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourceProjectMapper.xml index f35e05d..6c69ac9 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourceProjectMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourceProjectMapper.xml @@ -8,37 +8,43 @@ + + - + + - + + - - - id, project_no, project_name, applicant_id, applicant_name, applicant_time, pre_cost, outsourcer_id, outsource_reason, pre_start_time, pre_end_time, minio_file_name, apply_approval_status, apply_process_id, check_approval_status, check_process_id, check_conclusion, check_time, remark, create_time, update_time - - + + + UPDATE business_outsource_project + SET checker_id = null, checker_name = null, check_conclusion = null, check_minio_file_name = null, check_remark = null, check_approval_status = null + WHERE id = #{id} + diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourcerInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourcerInfoMapper.xml index a00bac6..2273d52 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourcerInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourcerInfoMapper.xml @@ -47,17 +47,11 @@ - - - - id, outsourcer_no, outsourcer_name, outsourcer_brief_name, outsourcer_size, business_size, grade, evaluation, business_content, tax_number, bank_account, bank_name, bank_account_number, postal_code, director, phone, mobile, email, website, address_country, address_province, address_city, address_area, full_address, address_country_name, address_province_name, address_city_name, address_area_name, invoice_country, invoice_province, invoice_city, invoice_area, invoice_full_address, invoice_country_name, invoice_province_name, invoice_city_name, invoice_area_name, business_scope, minio_file_name, approval_status, process_id, remark, create_user, update_user, is_del, create_time, update_time - - SELECT * FROM business_site_executive_info diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectApprovalListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectApprovalListRequest.java index b7d61d6..43e1229 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectApprovalListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectApprovalListRequest.java @@ -46,4 +46,8 @@ @ApiModelProperty(hidden = true) private Long createUserId; + + //标识是申请or验收,代码中设置 + @ApiModelProperty(hidden = true) + private Integer typeFlag; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectApprovalListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectApprovalListResponse.java index 3dc13d9..ea8bc09 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectApprovalListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectApprovalListResponse.java @@ -24,6 +24,12 @@ @ApiModelProperty(value = "申请人名字", dataType = "String") private String applicantName; + @ApiModelProperty(value = "验收人名字", dataType = "String") + private String checkerName; + + @ApiModelProperty(value = "验收时间", dataType = "String") + private String checkTime; + @ApiModelProperty(value = "分包方名称", dataType = "String") private String outsourcerName; @@ -42,8 +48,17 @@ @ApiModelProperty(value = "分包项目申请审批状态类型-字典value", dataType = "String") private String applyApprovalStatusName; - @ApiModelProperty(value = "流程实例id", dataType = "String") - private String processId; + @ApiModelProperty(value = "分包项目验收审批状态类型-字典code", dataType = "String") + private String checkApprovalStatus; + + @ApiModelProperty(value = "分包项目验收审批状态类型-字典value", dataType = "String") + private String checkApprovalStatusName; + + @ApiModelProperty(value = "分包项目申请流程实例id", dataType = "String") + private String applyProcessId; + + @ApiModelProperty(value = "分包项目验收流程实例id", dataType = "String") + private String checkProcessId; @ApiModelProperty(value = "任务id(同意、驳回等操作使用)", dataType = "String") private String taskId; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectCheckSaveOrUpdateRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectCheckSaveOrUpdateRequest.java new file mode 100644 index 0000000..9a61a8b --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectCheckSaveOrUpdateRequest.java @@ -0,0 +1,37 @@ +package com.casic.missiles.dto.business.outsource; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; + +/** + * @Description: 分包项目验收草稿箱保存/编辑请求实体 + * @Author: wangpeng + * @Date: 2023/3/29 9:03 + */ +@ApiModel +@Data +public class OutsourceProjectCheckSaveOrUpdateRequest { + @NotNull(message = "分包项目主键id不能为空") + @ApiModelProperty(value = "主键id", dataType = "Long", required = true) + private Long id; + + @NotBlank(message = "验收结论不能为空") + @ApiModelProperty(value = "验收结论", dataType = "String", required = true) + private String checkConclusion; + + @ApiModelProperty(value = "验收时间", dataType = "String", required = true) + private String checkTime; + + @ApiModelProperty(value = "项目验收文件-minio存储文件名", dataType = "String", required = true) + private String checkMinioFileName; + + @ApiModelProperty(value = "项目验收备注", dataType = "String", required = true) + private String checkRemark; + + @ApiModelProperty(value = "流程实例id(未通过验收编辑接口入参必传)", dataType = "String") + private String checkProcessId; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectListRequest.java new file mode 100644 index 0000000..c325bca --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectListRequest.java @@ -0,0 +1,26 @@ +package com.casic.missiles.dto.business.outsource; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + * @Description: 分包项目列表请求实体 + * @Author: wangpeng + * @Date: 2023/3/29 11:22 + */ +@Data +@ApiModel +public class OutsourceProjectListRequest { + @NotBlank(message = "表单id不能为空") + @ApiModelProperty(value = "表单id(流程定义对应的表单id,等价于业务id)", dataType = "String") + private String formId; + + @ApiModelProperty(value = "分包项目编号", dataType = "String") + private String projectNo; + + @ApiModelProperty(value = "分包项目名称", dataType = "String") + private String projectName; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourceProject.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourceProject.java index 3b88cf1..8be4953 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourceProject.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourceProject.java @@ -44,54 +44,42 @@ @TableId("id") private Long id; - /** - * 分包项目编号 - */ @ExcelProperty("分包项目编号") - @ApiModelProperty(value = "分包项目编号", dataType = "String") + @ApiModelProperty(value = "分包项目编号(列表、更新接口参数)", dataType = "String") @TableField("project_no") private String projectNo; - /** - * 分包项目名称 - */ @ExcelProperty("分包项目名称") @ApiModelProperty(value = "分包项目名称", dataType = "String") @TableField("project_name") private String projectName; - /** - * 申请人id - */ - @ApiModelProperty(value = "申请人id", dataType = "Long") + @ApiModelProperty(hidden = true) @TableField("applicant_id") private Long applicantId; - /** - * 申请人名字 - */ + @ApiModelProperty(hidden = true) + @TableField("checker_id") + private Long checkerId; + @ExcelProperty("申请人名字") - @ApiModelProperty(value = "申请人名字", dataType = "String") + @ApiModelProperty(hidden = true) @TableField("applicant_name") private String applicantName; - /** - * 申请时间 - */ + @ExcelProperty("验收人名字") + @ApiModelProperty(hidden = true) + @TableField("checker_name") + private String checkerName; + @ApiModelProperty(value = "申请时间", dataType = "String") @TableField("applicant_time") private String applicantTime; - /** - * 预计费用 - */ @ApiModelProperty(value = "预计费用", dataType = "String") @TableField("pre_cost") private String preCost; - /** - * 分包方id - */ @ApiModelProperty(value = "分包方id", dataType = "String") @TableField("outsourcer_id") private Long outsourcerId; @@ -101,43 +89,39 @@ @TableField(exist = false) private String outsourcerName; - /** - * 分包原因-字典code */ @ApiModelProperty(value = "分包原因-字典code", dataType = "String") @NotBlank(message = "分包原因不能为空") @TableField("outsource_reason") private String outsourceReason; - /** - * 分包原因-字典value - */ @ApiModelProperty(value = "分包原因-字典value", dataType = "String") @ExcelProperty("分包原因") @TableField(exist = false) private String outsourceReasonName; - /** - * 预计开始时间 - */ @ApiModelProperty(value = "预计开始时间", dataType = "String") @ExcelProperty("预计开始时间") @TableField("pre_start_time") private String preStartTime; - /** - * 预计结束时间 - */ @ApiModelProperty(value = "预计结束时间", dataType = "String") @ExcelProperty("预计结束时间") @TableField("pre_end_time") private String preEndTime; /** - * minio存储文件名 + * 项目申请文件-minio存储文件名 */ - @ApiModelProperty(value = "minio存储文件名", dataType = "String") - @TableField("minio_file_name") - private String minioFileName; + @ApiModelProperty(value = "项目申请文件-minio存储文件名", dataType = "String") + @TableField("apply_minio_file_name") + private String applyMinioFileName; + + /** + * 项目验收文件-minio存储文件名 + */ + @ApiModelProperty(hidden = true) + @TableField("check_minio_file_name") + private String checkMinioFileName; /** * 申请审批状态 @@ -163,14 +147,14 @@ /** * 验收流程实例id */ - @ApiModelProperty(value = "流程实例id(未通过验收编辑接口必传参数)", dataType = "String") + @ApiModelProperty(hidden = true) @TableField("check_process_id") private String checkProcessId; /** * 验收结论 */ - @ApiModelProperty(value = "验收结论", dataType = "String") + @ApiModelProperty(hidden = true) @ExcelProperty("验收结论") @TableField("check_conclusion") private String checkConclusion; @@ -178,18 +162,20 @@ /** * 验收时间 */ - @ApiModelProperty(value = "验收时间", dataType = "String") + @ApiModelProperty(hidden = true) @ExcelProperty("验收时间") @TableField("check_time") private String checkTime; - /** - * 备注 - */ - @ApiModelProperty(value = "备注", dataType = "String") - @ExcelProperty("备注") - @TableField("remark") - private String remark; + @ApiModelProperty(value = "项目申请备注", dataType = "String") + @ExcelProperty("项目申请备注") + @TableField("apply_remark") + private String applyRemark; + + @ApiModelProperty(hidden = true) + @ExcelProperty("项目验收备注") + @TableField("check_remark") + private String checkRemark; @ApiModelProperty(hidden = true) @TableField("create_user") @@ -211,7 +197,7 @@ @ApiModelProperty(value = "样品&委托书列表(保存/编辑草稿接口入参使用)", dataType = "List") @TableField(exist = false) - private List dtos; + private List orderSampleList; @ApiModelProperty(value = "样品列表(详情接口出参使用)", dataType = "List") @TableField(exist = false) diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourcerInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourcerInfo.java index 2e1da88..4c37d69 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourcerInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourcerInfo.java @@ -240,13 +240,6 @@ private String addressArea; /** - * 公司地址-详细地址 - */ - @ApiModelProperty(value = "公司地址-详细地址", dataType = "String") - @TableField("full_address") - private String fullAddress; - - /** * 公司地址-国家 */ @ApiModelProperty(value = "公司地址-国家", dataType = "String") @@ -278,6 +271,14 @@ private String addressAreaName; /** + * 公司地址-详细地址 + */ + @ExcelProperty("公司地址-详细地址") + @ApiModelProperty(value = "公司地址-详细地址", dataType = "String") + @TableField("full_address") + private String fullAddress; + + /** * 开票地址-国家 */ @ApiModelProperty(value = "开票地址-国家编码", dataType = "String") @@ -371,7 +372,8 @@ /** * 备注 */ - @ApiModelProperty(value = "公司地址-省", dataType = "String") + @ExcelProperty("备注") + @ApiModelProperty(value = "备注", dataType = "String") @TableField("remark") private String remark; @@ -380,15 +382,11 @@ private Long createUser; @ApiModelProperty(hidden = true) - @TableField("update_user") - private Long updateUser; - - @ApiModelProperty(hidden = true) @TableField("is_del") private Integer isDel; @ExcelProperty("创建时间") - @ApiModelProperty(value = "创建时间", dataType = "String") + @ApiModelProperty(value = "创建时间(列表接口返回参数)", dataType = "String") @TableField("create_time") private String createTime; diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectApplyController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectApplyController.java index b7dae53..76facc2 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectApplyController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectApplyController.java @@ -11,6 +11,7 @@ import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.outsource.OutsourceProjectApprovalListRequest; import com.casic.missiles.dto.business.outsource.OutsourceProjectApprovalListResponse; +import com.casic.missiles.dto.business.outsource.OutsourceProjectListRequest; import com.casic.missiles.dto.business.outsource.OutsourceProjectSaveResponse; import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; import com.casic.missiles.enums.BusinessExceptionEnum; @@ -48,13 +49,14 @@ private IBusinessOutsourceProjectService projectService; @ApiOperation("分包项目申请审批列表(分页)") - @PostMapping("/approval/listPage") + @PostMapping("/approval/listPage") public ReturnDTO> approvalListPage(@RequestBody @Valid OutsourceProjectApprovalListRequest request, BindingResult bindingResult) throws Exception { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } DictCodeUtils.validDictCode(request); Page page = PageFactory.defaultPage(); + request.setTypeFlag(1); List responseList = projectService.projectApplyApprovalListPage(request, page); page.setRecords(responseList); return ReturnUtil.success(super.packForBT(page)); @@ -64,7 +66,7 @@ @PostMapping("/save") @ResponseBody public ReturnDTO save(@RequestBody @Valid BusinessOutsourceProject outsourceProject, BindingResult bindingResult) throws Exception { - Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getDtos()), () -> { + Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getOrderSampleList()), () -> { throw new BusinessException(BusinessExceptionEnum.SAMPLE_ORDER_IDS_NULL); }); if(bindingResult.hasErrors()){ @@ -81,7 +83,7 @@ Assert.isFalse(Objects.isNull(outsourceProject.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getDtos()), () -> { + Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getOrderSampleList()), () -> { throw new BusinessException(BusinessExceptionEnum.SAMPLE_ORDER_IDS_NULL); }); if(bindingResult.hasErrors()){ @@ -108,19 +110,9 @@ Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - return projectService.projectDelete(idDTO.getId()); + return projectService.projectApplyDelete(idDTO.getId()); } -// @ApiOperation("分包项目申请批量删除") -// @PostMapping("/batchDelete") -// @ResponseBody -// public ReturnDTO batchDelete(@RequestBody @Valid IdsDTO idsDTO) { -// Assert.isFalse(CollectionUtils.isEmpty(idsDTO.getIds()), () -> { -// throw new BusinessException(BusinessExceptionEnum.ID_NULL); -// }); -// return projectService.deleteBatchProject(idsDTO.getIds()); -// } - @ApiOperation("分包项目申请详情") @PostMapping("/detail") @ResponseBody @@ -151,6 +143,19 @@ if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return projectService.failUpdate(outsourceProject); + return projectService.projectApplyFailUpdate(outsourceProject); + } + + /** + * 查询分包项目申请审批通过列表 + */ + @ApiOperation("分包项目申请审批通过列表(分页)") + @PostMapping("/listPage") + public ReturnDTO> listPage(@RequestBody @Valid OutsourceProjectListRequest request, BindingResult bindingResult) throws Exception { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(projectService.projectListPage(request, page))); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectCheckController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectCheckController.java index f44d54c..6575ab7 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectCheckController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectCheckController.java @@ -1,10 +1,35 @@ package com.casic.missiles.controller.business; +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.BaseApprovalSubmitRequest; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.outsource.OutsourceProjectApprovalListRequest; +import com.casic.missiles.dto.business.outsource.OutsourceProjectApprovalListResponse; +import com.casic.missiles.dto.business.outsource.OutsourceProjectCheckSaveOrUpdateRequest; +import com.casic.missiles.dto.business.outsource.OutsourceProjectSaveResponse; +import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.business.BusinessOutsourceProject; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.service.business.IBusinessOutsourceProjectService; +import com.casic.missiles.utils.DictCodeUtils; import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.*; + +import javax.validation.Valid; +import java.util.List; +import java.util.Objects; /** *

@@ -19,5 +44,99 @@ @RestController @RequestMapping("/business/outsourceProject/check") public class BusinessOutsourceProjectCheckController extends ExportController { + @Autowired + private IBusinessOutsourceProjectService projectService; + @ApiOperation("分包项目验收审批列表(分页)") + @PostMapping("/approval/listPage") + public ReturnDTO> approvalListPage(@RequestBody @Valid OutsourceProjectApprovalListRequest request, BindingResult bindingResult) throws Exception { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + DictCodeUtils.validDictCode(request); + Page page = PageFactory.defaultPage(); + request.setTypeFlag(2); + List responseList = projectService.projectApplyApprovalListPage(request, page); + page.setRecords(responseList); + return ReturnUtil.success(super.packForBT(page)); + } + + @ApiOperation("分包项目验收审批保存(保存至草稿箱)") + @PostMapping("/save") + @ResponseBody + public ReturnDTO save(@RequestBody @Valid OutsourceProjectCheckSaveOrUpdateRequest request, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.saveOrUpdateProjectCheck(request); + } + + @ApiOperation("草稿箱分包项目验收编辑") + @PostMapping("/draftUpdate") + @ResponseBody + public ReturnDTO draftUpdate(@RequestBody @Valid OutsourceProjectCheckSaveOrUpdateRequest request, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.saveOrUpdateProjectCheck(request); + } + + @ApiOperation("分包项目验收提交(未调用过保存接口保存至草稿箱需先调用保存接口,再调用该接口)") + @PostMapping("/submit") + @ResponseBody + public ReturnDTO submit(@RequestBody @Valid BaseApprovalSubmitRequest request, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.submitProjectCheck(request); + } + + /** + * 只清空验收所填字段及验收审批草稿状态 + */ + @ApiOperation("分包项目验收删除(草稿删除也调用该接口)") + @PostMapping("/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return projectService.projectCheckDelete(idDTO.getId()); + } + + /** + * 复用分包项目申请详情service + */ + @ApiOperation("分包项目验收详情") + @PostMapping("/detail") + @ResponseBody + public ReturnDTO supplierDetail(@RequestBody @Valid IdDTO idDTO) throws Exception { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return projectService.projectDetail(idDTO.getId()); + } + + /** + * 清空验收所填字段及验收审批状态 + */ + @ApiOperation("分包项目验收审批操作-删除") + @PostMapping("/approval/operate/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid ApprovalDeleteRequest request, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.projectCheckApprovalDelete(request); + } + + @ApiOperation("未通过分包项目验收编辑(驳回后的分包项目验收重新编辑,仅未通过列表中的编辑按钮可调用)") + @PostMapping("/failUpdate") + @ResponseBody + public ReturnDTO failUpdate(@RequestBody @Valid OutsourceProjectCheckSaveOrUpdateRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.projectCheckFailUpdate(request); + } } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index e792441..2cc4a24 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -68,8 +68,10 @@ OUTSOURCER_SAVE_FAILED(2419, "分包方保存至草稿箱失败"), OUTSOURCER_SUBMIT_FAILED(2420, "分包方提交处理失败"), - OUTSOURCE_PROJECT_SAVE_FAILED(2421, "分包项目保存至草稿箱失败"), - OUTSOURCE_PROJECT_SUBMIT_FAILED(2422, "分包项目提交处理失败"); + OUTSOURCE_PROJECT_APPLY_SAVE_FAILED(2421, "分包项目申请保存至草稿箱失败"), + OUTSOURCE_PROJECT_APPLY_SUBMIT_FAILED(2422, "分包项目申请提交处理失败"), + OUTSOURCE_PROJECT_CHECK_SAVE_FAILED(2423, "分包项目验收保存至草稿箱失败"), + OUTSOURCE_PROJECT_CHECK_SUBMIT_FAILED(2424, "分包项目验收提交处理失败"); private Integer code; private String message; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java index a318a34..d3d5eb4 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java @@ -17,4 +17,8 @@ String CERTIFICATE_REPORT_BEAN_NAME = "certificateReportBean"; + String OUTSOURCE_PROJECT_APPLY_BEAN_NAME = "outsourceProjectApplyBean"; + + String OUTSOURCE_PROJECT_CHECK_BEAN_NAME = "outsourceProjectCheckBean"; + } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareActionStatusEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareActionStatusEnum.java index 2435309..c45da69 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareActionStatusEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareActionStatusEnum.java @@ -19,6 +19,8 @@ DEVICE_LEASE_BORROWED(LEASE_BEAN_NAME, EquipmentApplyProcessEnum.WAIT_BORROWED), CERTIFICATE_PRINT_STATUS(CERTIFICATE_BEAN_NAME, ""), CERTIFICATE_REPORT_STATUS(CERTIFICATE_REPORT_BEAN_NAME, ""), + OUTSOURCE_PROJECT_APPLY(OUTSOURCE_PROJECT_APPLY_BEAN_NAME, ""), + OUTSOURCE_PROJECT_CHECK(OUTSOURCE_PROJECT_CHECK_BEAN_NAME, ""), ACTION_STATUS_MAP(new HashMap() { { put(ApplyFromIdEnum.STANDARD_REVERT_APPROVAL, EQUIPMENT_APPLY_USE); @@ -28,12 +30,14 @@ put(ApplyFromIdEnum.DEVICE_UNUSED_APPROVAL, DEVICE_MANAGING_IDLE); put(ApplyFromIdEnum.DEVICE_SEALED_APPROVAL, DEVICE_MANAGING_SEALED); put(ApplyFromIdEnum.DEVICE_UNSEALED_APPROVAL, DEVICE_MANAGING_USE); - put(ApplyFromIdEnum.DEVICE_SCRAPPED_ROVAL, DEVICE_MANAGING_SCRAP); + put(ApplyFromIdEnum.DEVICE_SCRAP_APPROVAL, DEVICE_MANAGING_SCRAP); put(ApplyFromIdEnum.DEVICE_HANDLE_APPROVAL, DEVICE_MANAGING_MANAGEMENT); put(ApplyFromIdEnum.DEVICE_CONSUMING_APPROVAL, DEVICE_LEASE_CONSUMING); // 设备领用申请 put(ApplyFromIdEnum.DEVICE_BORROW_APPROVAL, DEVICE_LEASE_BORROWED); // 设备借用申请 put(ApplyFromIdEnum.CERTIFICATE_PRINT_APPROVAL, CERTIFICATE_PRINT_STATUS); //证书打印审批通过状态回填 put(ApplyFromIdEnum.CERTIFICATE_REPORT_APPROVAL, CERTIFICATE_REPORT_STATUS); //证书报告审批通过状态回填 + put(ApplyFromIdEnum.OUTSOURCE_PROJECT_APPLY_APPROVAL, OUTSOURCE_PROJECT_APPLY); + put(ApplyFromIdEnum.OUTSOURCE_PROJECT_CHECK_APPROVAL, OUTSOURCE_PROJECT_CHECK); } }); String actionBeanName; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java index 5d16918..61c86df 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java @@ -12,7 +12,7 @@ String DEVICE_UNUSED_APPROVAL = "sbglsbxzsq"; // 设备闲置申请 String DEVICE_SEALED_APPROVAL = "sbglsbfcsq"; // 设备封存申请 String DEVICE_UNSEALED_APPROVAL = "sbglsbqfsq"; // 设备启封申请 - String DEVICE_SCRAPPED_ROVAL = "sbglsbbfsq"; // 设备报废申请 + String DEVICE_SCRAP_APPROVAL = "sbglsbbfsq"; // 设备报废申请 String DEVICE_HANDLE_APPROVAL = "sbglsbczsq"; // 设备处置申请 String DEVICE_CONSUMING_APPROVAL = "clsblysp"; // 设备领用申请 String DEVICE_BORROW_APPROVAL = "clsbjysp"; // 设备借用申请 @@ -20,4 +20,7 @@ String DEVICE_FIX_ACCEPTANCE = "sbglsbjxbyysd"; // 设备检修保养验收单 String CERTIFICATE_PRINT_APPROVAL = "ywglzsdy"; // 证书打印通过 String CERTIFICATE_REPORT_APPROVAL = "ywglzsbg"; // 证书报告通过 + String OUTSOURCER_APPROVAL = "ywglfbfzg"; // 分包方资格 + String OUTSOURCE_PROJECT_APPLY_APPROVAL = "ywglfbxmsq"; // 分包项目申请 + String OUTSOURCE_PROJECT_CHECK_APPROVAL = "ywglfbxmys"; // 分包项目验收 } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java index bddf56f..344358a 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java @@ -7,6 +7,7 @@ import com.casic.missiles.dto.business.SampleHandOutListResponse; import com.casic.missiles.dto.business.dispatch.DeviceDispatchDTO; import com.casic.missiles.dto.business.dispatch.DeviceDispatchVO; +import com.casic.missiles.dto.business.outsource.OrderSampleDTO; import com.casic.missiles.dto.customer.sample.CustomerSampleListVO; import com.casic.missiles.model.business.BusinessOrderSampleRelation; import org.apache.ibatis.annotations.Param; @@ -32,4 +33,8 @@ int updateByOrderIdAndSampleId(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId, @Param("status") String status); CustomerSampleListVO getInterChangeSampleList(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId); + + int updateTypeBatchByOrderAndSample(@Param("orderSampleDTOS") List orderSampleDTOS); + + int updateStatusBatchByOrderAndSample(@Param("orderSampleDTOS") List orderSampleDTOS); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOutsourceProjectMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOutsourceProjectMapper.java index b1724d8..b6d6726 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOutsourceProjectMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOutsourceProjectMapper.java @@ -26,4 +26,6 @@ Long selectMaxOutsourcerNo(); BusinessOutsourceProject selectProjectById(@Param("id") Long id); + + int updateForProjectCheck(@Param("id") Long id); } diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml index 95012eb..881bbb2 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -180,4 +180,19 @@ )bosr ON bosr.sampleId=bo.id + + + UPDATE business_order_sample_relation + SET measure_type = 2 + WHERE order_id = #{item.orderId} AND sample_id = #{item.sampleId} + + + + + + UPDATE business_order_sample_relation + SET sample_status = 4 + WHERE order_id = #{item.orderId} AND sample_id = #{item.sampleId} + + diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourceProjectMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourceProjectMapper.xml index f35e05d..6c69ac9 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourceProjectMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourceProjectMapper.xml @@ -8,37 +8,43 @@ + + - + + - + + - - - id, project_no, project_name, applicant_id, applicant_name, applicant_time, pre_cost, outsourcer_id, outsource_reason, pre_start_time, pre_end_time, minio_file_name, apply_approval_status, apply_process_id, check_approval_status, check_process_id, check_conclusion, check_time, remark, create_time, update_time - - + + + UPDATE business_outsource_project + SET checker_id = null, checker_name = null, check_conclusion = null, check_minio_file_name = null, check_remark = null, check_approval_status = null + WHERE id = #{id} + diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourcerInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourcerInfoMapper.xml index a00bac6..2273d52 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourcerInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourcerInfoMapper.xml @@ -47,17 +47,11 @@ - - - - id, outsourcer_no, outsourcer_name, outsourcer_brief_name, outsourcer_size, business_size, grade, evaluation, business_content, tax_number, bank_account, bank_name, bank_account_number, postal_code, director, phone, mobile, email, website, address_country, address_province, address_city, address_area, full_address, address_country_name, address_province_name, address_city_name, address_area_name, invoice_country, invoice_province, invoice_city, invoice_area, invoice_full_address, invoice_country_name, invoice_province_name, invoice_city_name, invoice_area_name, business_scope, minio_file_name, approval_status, process_id, remark, create_user, update_user, is_del, create_time, update_time - - SELECT * FROM business_site_executive_info diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectApprovalListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectApprovalListRequest.java index b7d61d6..43e1229 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectApprovalListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectApprovalListRequest.java @@ -46,4 +46,8 @@ @ApiModelProperty(hidden = true) private Long createUserId; + + //标识是申请or验收,代码中设置 + @ApiModelProperty(hidden = true) + private Integer typeFlag; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectApprovalListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectApprovalListResponse.java index 3dc13d9..ea8bc09 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectApprovalListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectApprovalListResponse.java @@ -24,6 +24,12 @@ @ApiModelProperty(value = "申请人名字", dataType = "String") private String applicantName; + @ApiModelProperty(value = "验收人名字", dataType = "String") + private String checkerName; + + @ApiModelProperty(value = "验收时间", dataType = "String") + private String checkTime; + @ApiModelProperty(value = "分包方名称", dataType = "String") private String outsourcerName; @@ -42,8 +48,17 @@ @ApiModelProperty(value = "分包项目申请审批状态类型-字典value", dataType = "String") private String applyApprovalStatusName; - @ApiModelProperty(value = "流程实例id", dataType = "String") - private String processId; + @ApiModelProperty(value = "分包项目验收审批状态类型-字典code", dataType = "String") + private String checkApprovalStatus; + + @ApiModelProperty(value = "分包项目验收审批状态类型-字典value", dataType = "String") + private String checkApprovalStatusName; + + @ApiModelProperty(value = "分包项目申请流程实例id", dataType = "String") + private String applyProcessId; + + @ApiModelProperty(value = "分包项目验收流程实例id", dataType = "String") + private String checkProcessId; @ApiModelProperty(value = "任务id(同意、驳回等操作使用)", dataType = "String") private String taskId; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectCheckSaveOrUpdateRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectCheckSaveOrUpdateRequest.java new file mode 100644 index 0000000..9a61a8b --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectCheckSaveOrUpdateRequest.java @@ -0,0 +1,37 @@ +package com.casic.missiles.dto.business.outsource; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; + +/** + * @Description: 分包项目验收草稿箱保存/编辑请求实体 + * @Author: wangpeng + * @Date: 2023/3/29 9:03 + */ +@ApiModel +@Data +public class OutsourceProjectCheckSaveOrUpdateRequest { + @NotNull(message = "分包项目主键id不能为空") + @ApiModelProperty(value = "主键id", dataType = "Long", required = true) + private Long id; + + @NotBlank(message = "验收结论不能为空") + @ApiModelProperty(value = "验收结论", dataType = "String", required = true) + private String checkConclusion; + + @ApiModelProperty(value = "验收时间", dataType = "String", required = true) + private String checkTime; + + @ApiModelProperty(value = "项目验收文件-minio存储文件名", dataType = "String", required = true) + private String checkMinioFileName; + + @ApiModelProperty(value = "项目验收备注", dataType = "String", required = true) + private String checkRemark; + + @ApiModelProperty(value = "流程实例id(未通过验收编辑接口入参必传)", dataType = "String") + private String checkProcessId; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectListRequest.java new file mode 100644 index 0000000..c325bca --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectListRequest.java @@ -0,0 +1,26 @@ +package com.casic.missiles.dto.business.outsource; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + * @Description: 分包项目列表请求实体 + * @Author: wangpeng + * @Date: 2023/3/29 11:22 + */ +@Data +@ApiModel +public class OutsourceProjectListRequest { + @NotBlank(message = "表单id不能为空") + @ApiModelProperty(value = "表单id(流程定义对应的表单id,等价于业务id)", dataType = "String") + private String formId; + + @ApiModelProperty(value = "分包项目编号", dataType = "String") + private String projectNo; + + @ApiModelProperty(value = "分包项目名称", dataType = "String") + private String projectName; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourceProject.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourceProject.java index 3b88cf1..8be4953 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourceProject.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourceProject.java @@ -44,54 +44,42 @@ @TableId("id") private Long id; - /** - * 分包项目编号 - */ @ExcelProperty("分包项目编号") - @ApiModelProperty(value = "分包项目编号", dataType = "String") + @ApiModelProperty(value = "分包项目编号(列表、更新接口参数)", dataType = "String") @TableField("project_no") private String projectNo; - /** - * 分包项目名称 - */ @ExcelProperty("分包项目名称") @ApiModelProperty(value = "分包项目名称", dataType = "String") @TableField("project_name") private String projectName; - /** - * 申请人id - */ - @ApiModelProperty(value = "申请人id", dataType = "Long") + @ApiModelProperty(hidden = true) @TableField("applicant_id") private Long applicantId; - /** - * 申请人名字 - */ + @ApiModelProperty(hidden = true) + @TableField("checker_id") + private Long checkerId; + @ExcelProperty("申请人名字") - @ApiModelProperty(value = "申请人名字", dataType = "String") + @ApiModelProperty(hidden = true) @TableField("applicant_name") private String applicantName; - /** - * 申请时间 - */ + @ExcelProperty("验收人名字") + @ApiModelProperty(hidden = true) + @TableField("checker_name") + private String checkerName; + @ApiModelProperty(value = "申请时间", dataType = "String") @TableField("applicant_time") private String applicantTime; - /** - * 预计费用 - */ @ApiModelProperty(value = "预计费用", dataType = "String") @TableField("pre_cost") private String preCost; - /** - * 分包方id - */ @ApiModelProperty(value = "分包方id", dataType = "String") @TableField("outsourcer_id") private Long outsourcerId; @@ -101,43 +89,39 @@ @TableField(exist = false) private String outsourcerName; - /** - * 分包原因-字典code */ @ApiModelProperty(value = "分包原因-字典code", dataType = "String") @NotBlank(message = "分包原因不能为空") @TableField("outsource_reason") private String outsourceReason; - /** - * 分包原因-字典value - */ @ApiModelProperty(value = "分包原因-字典value", dataType = "String") @ExcelProperty("分包原因") @TableField(exist = false) private String outsourceReasonName; - /** - * 预计开始时间 - */ @ApiModelProperty(value = "预计开始时间", dataType = "String") @ExcelProperty("预计开始时间") @TableField("pre_start_time") private String preStartTime; - /** - * 预计结束时间 - */ @ApiModelProperty(value = "预计结束时间", dataType = "String") @ExcelProperty("预计结束时间") @TableField("pre_end_time") private String preEndTime; /** - * minio存储文件名 + * 项目申请文件-minio存储文件名 */ - @ApiModelProperty(value = "minio存储文件名", dataType = "String") - @TableField("minio_file_name") - private String minioFileName; + @ApiModelProperty(value = "项目申请文件-minio存储文件名", dataType = "String") + @TableField("apply_minio_file_name") + private String applyMinioFileName; + + /** + * 项目验收文件-minio存储文件名 + */ + @ApiModelProperty(hidden = true) + @TableField("check_minio_file_name") + private String checkMinioFileName; /** * 申请审批状态 @@ -163,14 +147,14 @@ /** * 验收流程实例id */ - @ApiModelProperty(value = "流程实例id(未通过验收编辑接口必传参数)", dataType = "String") + @ApiModelProperty(hidden = true) @TableField("check_process_id") private String checkProcessId; /** * 验收结论 */ - @ApiModelProperty(value = "验收结论", dataType = "String") + @ApiModelProperty(hidden = true) @ExcelProperty("验收结论") @TableField("check_conclusion") private String checkConclusion; @@ -178,18 +162,20 @@ /** * 验收时间 */ - @ApiModelProperty(value = "验收时间", dataType = "String") + @ApiModelProperty(hidden = true) @ExcelProperty("验收时间") @TableField("check_time") private String checkTime; - /** - * 备注 - */ - @ApiModelProperty(value = "备注", dataType = "String") - @ExcelProperty("备注") - @TableField("remark") - private String remark; + @ApiModelProperty(value = "项目申请备注", dataType = "String") + @ExcelProperty("项目申请备注") + @TableField("apply_remark") + private String applyRemark; + + @ApiModelProperty(hidden = true) + @ExcelProperty("项目验收备注") + @TableField("check_remark") + private String checkRemark; @ApiModelProperty(hidden = true) @TableField("create_user") @@ -211,7 +197,7 @@ @ApiModelProperty(value = "样品&委托书列表(保存/编辑草稿接口入参使用)", dataType = "List") @TableField(exist = false) - private List dtos; + private List orderSampleList; @ApiModelProperty(value = "样品列表(详情接口出参使用)", dataType = "List") @TableField(exist = false) diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourcerInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourcerInfo.java index 2e1da88..4c37d69 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourcerInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourcerInfo.java @@ -240,13 +240,6 @@ private String addressArea; /** - * 公司地址-详细地址 - */ - @ApiModelProperty(value = "公司地址-详细地址", dataType = "String") - @TableField("full_address") - private String fullAddress; - - /** * 公司地址-国家 */ @ApiModelProperty(value = "公司地址-国家", dataType = "String") @@ -278,6 +271,14 @@ private String addressAreaName; /** + * 公司地址-详细地址 + */ + @ExcelProperty("公司地址-详细地址") + @ApiModelProperty(value = "公司地址-详细地址", dataType = "String") + @TableField("full_address") + private String fullAddress; + + /** * 开票地址-国家 */ @ApiModelProperty(value = "开票地址-国家编码", dataType = "String") @@ -371,7 +372,8 @@ /** * 备注 */ - @ApiModelProperty(value = "公司地址-省", dataType = "String") + @ExcelProperty("备注") + @ApiModelProperty(value = "备注", dataType = "String") @TableField("remark") private String remark; @@ -380,15 +382,11 @@ private Long createUser; @ApiModelProperty(hidden = true) - @TableField("update_user") - private Long updateUser; - - @ApiModelProperty(hidden = true) @TableField("is_del") private Integer isDel; @ExcelProperty("创建时间") - @ApiModelProperty(value = "创建时间", dataType = "String") + @ApiModelProperty(value = "创建时间(列表接口返回参数)", dataType = "String") @TableField("create_time") private String createTime; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessSiteExecutiveInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessSiteExecutiveInfo.java index d54a93a..ec99721 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessSiteExecutiveInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessSiteExecutiveInfo.java @@ -105,10 +105,6 @@ private Long createUser; @ApiModelProperty(hidden = true) - @TableField("update_user") - private Long updateUser; - - @ApiModelProperty(hidden = true) @TableField("is_del") private Integer isDel; @@ -120,5 +116,4 @@ @TableField("update_time") private String updateTime; - } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectApplyController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectApplyController.java index b7dae53..76facc2 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectApplyController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectApplyController.java @@ -11,6 +11,7 @@ import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.outsource.OutsourceProjectApprovalListRequest; import com.casic.missiles.dto.business.outsource.OutsourceProjectApprovalListResponse; +import com.casic.missiles.dto.business.outsource.OutsourceProjectListRequest; import com.casic.missiles.dto.business.outsource.OutsourceProjectSaveResponse; import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; import com.casic.missiles.enums.BusinessExceptionEnum; @@ -48,13 +49,14 @@ private IBusinessOutsourceProjectService projectService; @ApiOperation("分包项目申请审批列表(分页)") - @PostMapping("/approval/listPage") + @PostMapping("/approval/listPage") public ReturnDTO> approvalListPage(@RequestBody @Valid OutsourceProjectApprovalListRequest request, BindingResult bindingResult) throws Exception { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } DictCodeUtils.validDictCode(request); Page page = PageFactory.defaultPage(); + request.setTypeFlag(1); List responseList = projectService.projectApplyApprovalListPage(request, page); page.setRecords(responseList); return ReturnUtil.success(super.packForBT(page)); @@ -64,7 +66,7 @@ @PostMapping("/save") @ResponseBody public ReturnDTO save(@RequestBody @Valid BusinessOutsourceProject outsourceProject, BindingResult bindingResult) throws Exception { - Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getDtos()), () -> { + Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getOrderSampleList()), () -> { throw new BusinessException(BusinessExceptionEnum.SAMPLE_ORDER_IDS_NULL); }); if(bindingResult.hasErrors()){ @@ -81,7 +83,7 @@ Assert.isFalse(Objects.isNull(outsourceProject.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getDtos()), () -> { + Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getOrderSampleList()), () -> { throw new BusinessException(BusinessExceptionEnum.SAMPLE_ORDER_IDS_NULL); }); if(bindingResult.hasErrors()){ @@ -108,19 +110,9 @@ Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - return projectService.projectDelete(idDTO.getId()); + return projectService.projectApplyDelete(idDTO.getId()); } -// @ApiOperation("分包项目申请批量删除") -// @PostMapping("/batchDelete") -// @ResponseBody -// public ReturnDTO batchDelete(@RequestBody @Valid IdsDTO idsDTO) { -// Assert.isFalse(CollectionUtils.isEmpty(idsDTO.getIds()), () -> { -// throw new BusinessException(BusinessExceptionEnum.ID_NULL); -// }); -// return projectService.deleteBatchProject(idsDTO.getIds()); -// } - @ApiOperation("分包项目申请详情") @PostMapping("/detail") @ResponseBody @@ -151,6 +143,19 @@ if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return projectService.failUpdate(outsourceProject); + return projectService.projectApplyFailUpdate(outsourceProject); + } + + /** + * 查询分包项目申请审批通过列表 + */ + @ApiOperation("分包项目申请审批通过列表(分页)") + @PostMapping("/listPage") + public ReturnDTO> listPage(@RequestBody @Valid OutsourceProjectListRequest request, BindingResult bindingResult) throws Exception { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(projectService.projectListPage(request, page))); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectCheckController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectCheckController.java index f44d54c..6575ab7 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectCheckController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectCheckController.java @@ -1,10 +1,35 @@ package com.casic.missiles.controller.business; +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.BaseApprovalSubmitRequest; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.outsource.OutsourceProjectApprovalListRequest; +import com.casic.missiles.dto.business.outsource.OutsourceProjectApprovalListResponse; +import com.casic.missiles.dto.business.outsource.OutsourceProjectCheckSaveOrUpdateRequest; +import com.casic.missiles.dto.business.outsource.OutsourceProjectSaveResponse; +import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.business.BusinessOutsourceProject; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.service.business.IBusinessOutsourceProjectService; +import com.casic.missiles.utils.DictCodeUtils; import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.*; + +import javax.validation.Valid; +import java.util.List; +import java.util.Objects; /** *

@@ -19,5 +44,99 @@ @RestController @RequestMapping("/business/outsourceProject/check") public class BusinessOutsourceProjectCheckController extends ExportController { + @Autowired + private IBusinessOutsourceProjectService projectService; + @ApiOperation("分包项目验收审批列表(分页)") + @PostMapping("/approval/listPage") + public ReturnDTO> approvalListPage(@RequestBody @Valid OutsourceProjectApprovalListRequest request, BindingResult bindingResult) throws Exception { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + DictCodeUtils.validDictCode(request); + Page page = PageFactory.defaultPage(); + request.setTypeFlag(2); + List responseList = projectService.projectApplyApprovalListPage(request, page); + page.setRecords(responseList); + return ReturnUtil.success(super.packForBT(page)); + } + + @ApiOperation("分包项目验收审批保存(保存至草稿箱)") + @PostMapping("/save") + @ResponseBody + public ReturnDTO save(@RequestBody @Valid OutsourceProjectCheckSaveOrUpdateRequest request, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.saveOrUpdateProjectCheck(request); + } + + @ApiOperation("草稿箱分包项目验收编辑") + @PostMapping("/draftUpdate") + @ResponseBody + public ReturnDTO draftUpdate(@RequestBody @Valid OutsourceProjectCheckSaveOrUpdateRequest request, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.saveOrUpdateProjectCheck(request); + } + + @ApiOperation("分包项目验收提交(未调用过保存接口保存至草稿箱需先调用保存接口,再调用该接口)") + @PostMapping("/submit") + @ResponseBody + public ReturnDTO submit(@RequestBody @Valid BaseApprovalSubmitRequest request, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.submitProjectCheck(request); + } + + /** + * 只清空验收所填字段及验收审批草稿状态 + */ + @ApiOperation("分包项目验收删除(草稿删除也调用该接口)") + @PostMapping("/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return projectService.projectCheckDelete(idDTO.getId()); + } + + /** + * 复用分包项目申请详情service + */ + @ApiOperation("分包项目验收详情") + @PostMapping("/detail") + @ResponseBody + public ReturnDTO supplierDetail(@RequestBody @Valid IdDTO idDTO) throws Exception { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return projectService.projectDetail(idDTO.getId()); + } + + /** + * 清空验收所填字段及验收审批状态 + */ + @ApiOperation("分包项目验收审批操作-删除") + @PostMapping("/approval/operate/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid ApprovalDeleteRequest request, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.projectCheckApprovalDelete(request); + } + + @ApiOperation("未通过分包项目验收编辑(驳回后的分包项目验收重新编辑,仅未通过列表中的编辑按钮可调用)") + @PostMapping("/failUpdate") + @ResponseBody + public ReturnDTO failUpdate(@RequestBody @Valid OutsourceProjectCheckSaveOrUpdateRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.projectCheckFailUpdate(request); + } } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index e792441..2cc4a24 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -68,8 +68,10 @@ OUTSOURCER_SAVE_FAILED(2419, "分包方保存至草稿箱失败"), OUTSOURCER_SUBMIT_FAILED(2420, "分包方提交处理失败"), - OUTSOURCE_PROJECT_SAVE_FAILED(2421, "分包项目保存至草稿箱失败"), - OUTSOURCE_PROJECT_SUBMIT_FAILED(2422, "分包项目提交处理失败"); + OUTSOURCE_PROJECT_APPLY_SAVE_FAILED(2421, "分包项目申请保存至草稿箱失败"), + OUTSOURCE_PROJECT_APPLY_SUBMIT_FAILED(2422, "分包项目申请提交处理失败"), + OUTSOURCE_PROJECT_CHECK_SAVE_FAILED(2423, "分包项目验收保存至草稿箱失败"), + OUTSOURCE_PROJECT_CHECK_SUBMIT_FAILED(2424, "分包项目验收提交处理失败"); private Integer code; private String message; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java index a318a34..d3d5eb4 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java @@ -17,4 +17,8 @@ String CERTIFICATE_REPORT_BEAN_NAME = "certificateReportBean"; + String OUTSOURCE_PROJECT_APPLY_BEAN_NAME = "outsourceProjectApplyBean"; + + String OUTSOURCE_PROJECT_CHECK_BEAN_NAME = "outsourceProjectCheckBean"; + } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareActionStatusEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareActionStatusEnum.java index 2435309..c45da69 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareActionStatusEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareActionStatusEnum.java @@ -19,6 +19,8 @@ DEVICE_LEASE_BORROWED(LEASE_BEAN_NAME, EquipmentApplyProcessEnum.WAIT_BORROWED), CERTIFICATE_PRINT_STATUS(CERTIFICATE_BEAN_NAME, ""), CERTIFICATE_REPORT_STATUS(CERTIFICATE_REPORT_BEAN_NAME, ""), + OUTSOURCE_PROJECT_APPLY(OUTSOURCE_PROJECT_APPLY_BEAN_NAME, ""), + OUTSOURCE_PROJECT_CHECK(OUTSOURCE_PROJECT_CHECK_BEAN_NAME, ""), ACTION_STATUS_MAP(new HashMap() { { put(ApplyFromIdEnum.STANDARD_REVERT_APPROVAL, EQUIPMENT_APPLY_USE); @@ -28,12 +30,14 @@ put(ApplyFromIdEnum.DEVICE_UNUSED_APPROVAL, DEVICE_MANAGING_IDLE); put(ApplyFromIdEnum.DEVICE_SEALED_APPROVAL, DEVICE_MANAGING_SEALED); put(ApplyFromIdEnum.DEVICE_UNSEALED_APPROVAL, DEVICE_MANAGING_USE); - put(ApplyFromIdEnum.DEVICE_SCRAPPED_ROVAL, DEVICE_MANAGING_SCRAP); + put(ApplyFromIdEnum.DEVICE_SCRAP_APPROVAL, DEVICE_MANAGING_SCRAP); put(ApplyFromIdEnum.DEVICE_HANDLE_APPROVAL, DEVICE_MANAGING_MANAGEMENT); put(ApplyFromIdEnum.DEVICE_CONSUMING_APPROVAL, DEVICE_LEASE_CONSUMING); // 设备领用申请 put(ApplyFromIdEnum.DEVICE_BORROW_APPROVAL, DEVICE_LEASE_BORROWED); // 设备借用申请 put(ApplyFromIdEnum.CERTIFICATE_PRINT_APPROVAL, CERTIFICATE_PRINT_STATUS); //证书打印审批通过状态回填 put(ApplyFromIdEnum.CERTIFICATE_REPORT_APPROVAL, CERTIFICATE_REPORT_STATUS); //证书报告审批通过状态回填 + put(ApplyFromIdEnum.OUTSOURCE_PROJECT_APPLY_APPROVAL, OUTSOURCE_PROJECT_APPLY); + put(ApplyFromIdEnum.OUTSOURCE_PROJECT_CHECK_APPROVAL, OUTSOURCE_PROJECT_CHECK); } }); String actionBeanName; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java index 5d16918..61c86df 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java @@ -12,7 +12,7 @@ String DEVICE_UNUSED_APPROVAL = "sbglsbxzsq"; // 设备闲置申请 String DEVICE_SEALED_APPROVAL = "sbglsbfcsq"; // 设备封存申请 String DEVICE_UNSEALED_APPROVAL = "sbglsbqfsq"; // 设备启封申请 - String DEVICE_SCRAPPED_ROVAL = "sbglsbbfsq"; // 设备报废申请 + String DEVICE_SCRAP_APPROVAL = "sbglsbbfsq"; // 设备报废申请 String DEVICE_HANDLE_APPROVAL = "sbglsbczsq"; // 设备处置申请 String DEVICE_CONSUMING_APPROVAL = "clsblysp"; // 设备领用申请 String DEVICE_BORROW_APPROVAL = "clsbjysp"; // 设备借用申请 @@ -20,4 +20,7 @@ String DEVICE_FIX_ACCEPTANCE = "sbglsbjxbyysd"; // 设备检修保养验收单 String CERTIFICATE_PRINT_APPROVAL = "ywglzsdy"; // 证书打印通过 String CERTIFICATE_REPORT_APPROVAL = "ywglzsbg"; // 证书报告通过 + String OUTSOURCER_APPROVAL = "ywglfbfzg"; // 分包方资格 + String OUTSOURCE_PROJECT_APPLY_APPROVAL = "ywglfbxmsq"; // 分包项目申请 + String OUTSOURCE_PROJECT_CHECK_APPROVAL = "ywglfbxmys"; // 分包项目验收 } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java index bddf56f..344358a 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java @@ -7,6 +7,7 @@ import com.casic.missiles.dto.business.SampleHandOutListResponse; import com.casic.missiles.dto.business.dispatch.DeviceDispatchDTO; import com.casic.missiles.dto.business.dispatch.DeviceDispatchVO; +import com.casic.missiles.dto.business.outsource.OrderSampleDTO; import com.casic.missiles.dto.customer.sample.CustomerSampleListVO; import com.casic.missiles.model.business.BusinessOrderSampleRelation; import org.apache.ibatis.annotations.Param; @@ -32,4 +33,8 @@ int updateByOrderIdAndSampleId(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId, @Param("status") String status); CustomerSampleListVO getInterChangeSampleList(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId); + + int updateTypeBatchByOrderAndSample(@Param("orderSampleDTOS") List orderSampleDTOS); + + int updateStatusBatchByOrderAndSample(@Param("orderSampleDTOS") List orderSampleDTOS); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOutsourceProjectMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOutsourceProjectMapper.java index b1724d8..b6d6726 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOutsourceProjectMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOutsourceProjectMapper.java @@ -26,4 +26,6 @@ Long selectMaxOutsourcerNo(); BusinessOutsourceProject selectProjectById(@Param("id") Long id); + + int updateForProjectCheck(@Param("id") Long id); } diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml index 95012eb..881bbb2 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -180,4 +180,19 @@ )bosr ON bosr.sampleId=bo.id + + + UPDATE business_order_sample_relation + SET measure_type = 2 + WHERE order_id = #{item.orderId} AND sample_id = #{item.sampleId} + + + + + + UPDATE business_order_sample_relation + SET sample_status = 4 + WHERE order_id = #{item.orderId} AND sample_id = #{item.sampleId} + + diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourceProjectMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourceProjectMapper.xml index f35e05d..6c69ac9 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourceProjectMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourceProjectMapper.xml @@ -8,37 +8,43 @@ + + - + + - + + - - - id, project_no, project_name, applicant_id, applicant_name, applicant_time, pre_cost, outsourcer_id, outsource_reason, pre_start_time, pre_end_time, minio_file_name, apply_approval_status, apply_process_id, check_approval_status, check_process_id, check_conclusion, check_time, remark, create_time, update_time - - + + + UPDATE business_outsource_project + SET checker_id = null, checker_name = null, check_conclusion = null, check_minio_file_name = null, check_remark = null, check_approval_status = null + WHERE id = #{id} + diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourcerInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourcerInfoMapper.xml index a00bac6..2273d52 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourcerInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourcerInfoMapper.xml @@ -47,17 +47,11 @@ - - - - id, outsourcer_no, outsourcer_name, outsourcer_brief_name, outsourcer_size, business_size, grade, evaluation, business_content, tax_number, bank_account, bank_name, bank_account_number, postal_code, director, phone, mobile, email, website, address_country, address_province, address_city, address_area, full_address, address_country_name, address_province_name, address_city_name, address_area_name, invoice_country, invoice_province, invoice_city, invoice_area, invoice_full_address, invoice_country_name, invoice_province_name, invoice_city_name, invoice_area_name, business_scope, minio_file_name, approval_status, process_id, remark, create_user, update_user, is_del, create_time, update_time - - SELECT * FROM business_site_executive_info diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectApprovalListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectApprovalListRequest.java index b7d61d6..43e1229 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectApprovalListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectApprovalListRequest.java @@ -46,4 +46,8 @@ @ApiModelProperty(hidden = true) private Long createUserId; + + //标识是申请or验收,代码中设置 + @ApiModelProperty(hidden = true) + private Integer typeFlag; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectApprovalListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectApprovalListResponse.java index 3dc13d9..ea8bc09 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectApprovalListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectApprovalListResponse.java @@ -24,6 +24,12 @@ @ApiModelProperty(value = "申请人名字", dataType = "String") private String applicantName; + @ApiModelProperty(value = "验收人名字", dataType = "String") + private String checkerName; + + @ApiModelProperty(value = "验收时间", dataType = "String") + private String checkTime; + @ApiModelProperty(value = "分包方名称", dataType = "String") private String outsourcerName; @@ -42,8 +48,17 @@ @ApiModelProperty(value = "分包项目申请审批状态类型-字典value", dataType = "String") private String applyApprovalStatusName; - @ApiModelProperty(value = "流程实例id", dataType = "String") - private String processId; + @ApiModelProperty(value = "分包项目验收审批状态类型-字典code", dataType = "String") + private String checkApprovalStatus; + + @ApiModelProperty(value = "分包项目验收审批状态类型-字典value", dataType = "String") + private String checkApprovalStatusName; + + @ApiModelProperty(value = "分包项目申请流程实例id", dataType = "String") + private String applyProcessId; + + @ApiModelProperty(value = "分包项目验收流程实例id", dataType = "String") + private String checkProcessId; @ApiModelProperty(value = "任务id(同意、驳回等操作使用)", dataType = "String") private String taskId; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectCheckSaveOrUpdateRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectCheckSaveOrUpdateRequest.java new file mode 100644 index 0000000..9a61a8b --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectCheckSaveOrUpdateRequest.java @@ -0,0 +1,37 @@ +package com.casic.missiles.dto.business.outsource; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; + +/** + * @Description: 分包项目验收草稿箱保存/编辑请求实体 + * @Author: wangpeng + * @Date: 2023/3/29 9:03 + */ +@ApiModel +@Data +public class OutsourceProjectCheckSaveOrUpdateRequest { + @NotNull(message = "分包项目主键id不能为空") + @ApiModelProperty(value = "主键id", dataType = "Long", required = true) + private Long id; + + @NotBlank(message = "验收结论不能为空") + @ApiModelProperty(value = "验收结论", dataType = "String", required = true) + private String checkConclusion; + + @ApiModelProperty(value = "验收时间", dataType = "String", required = true) + private String checkTime; + + @ApiModelProperty(value = "项目验收文件-minio存储文件名", dataType = "String", required = true) + private String checkMinioFileName; + + @ApiModelProperty(value = "项目验收备注", dataType = "String", required = true) + private String checkRemark; + + @ApiModelProperty(value = "流程实例id(未通过验收编辑接口入参必传)", dataType = "String") + private String checkProcessId; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectListRequest.java new file mode 100644 index 0000000..c325bca --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectListRequest.java @@ -0,0 +1,26 @@ +package com.casic.missiles.dto.business.outsource; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + * @Description: 分包项目列表请求实体 + * @Author: wangpeng + * @Date: 2023/3/29 11:22 + */ +@Data +@ApiModel +public class OutsourceProjectListRequest { + @NotBlank(message = "表单id不能为空") + @ApiModelProperty(value = "表单id(流程定义对应的表单id,等价于业务id)", dataType = "String") + private String formId; + + @ApiModelProperty(value = "分包项目编号", dataType = "String") + private String projectNo; + + @ApiModelProperty(value = "分包项目名称", dataType = "String") + private String projectName; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourceProject.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourceProject.java index 3b88cf1..8be4953 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourceProject.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourceProject.java @@ -44,54 +44,42 @@ @TableId("id") private Long id; - /** - * 分包项目编号 - */ @ExcelProperty("分包项目编号") - @ApiModelProperty(value = "分包项目编号", dataType = "String") + @ApiModelProperty(value = "分包项目编号(列表、更新接口参数)", dataType = "String") @TableField("project_no") private String projectNo; - /** - * 分包项目名称 - */ @ExcelProperty("分包项目名称") @ApiModelProperty(value = "分包项目名称", dataType = "String") @TableField("project_name") private String projectName; - /** - * 申请人id - */ - @ApiModelProperty(value = "申请人id", dataType = "Long") + @ApiModelProperty(hidden = true) @TableField("applicant_id") private Long applicantId; - /** - * 申请人名字 - */ + @ApiModelProperty(hidden = true) + @TableField("checker_id") + private Long checkerId; + @ExcelProperty("申请人名字") - @ApiModelProperty(value = "申请人名字", dataType = "String") + @ApiModelProperty(hidden = true) @TableField("applicant_name") private String applicantName; - /** - * 申请时间 - */ + @ExcelProperty("验收人名字") + @ApiModelProperty(hidden = true) + @TableField("checker_name") + private String checkerName; + @ApiModelProperty(value = "申请时间", dataType = "String") @TableField("applicant_time") private String applicantTime; - /** - * 预计费用 - */ @ApiModelProperty(value = "预计费用", dataType = "String") @TableField("pre_cost") private String preCost; - /** - * 分包方id - */ @ApiModelProperty(value = "分包方id", dataType = "String") @TableField("outsourcer_id") private Long outsourcerId; @@ -101,43 +89,39 @@ @TableField(exist = false) private String outsourcerName; - /** - * 分包原因-字典code */ @ApiModelProperty(value = "分包原因-字典code", dataType = "String") @NotBlank(message = "分包原因不能为空") @TableField("outsource_reason") private String outsourceReason; - /** - * 分包原因-字典value - */ @ApiModelProperty(value = "分包原因-字典value", dataType = "String") @ExcelProperty("分包原因") @TableField(exist = false) private String outsourceReasonName; - /** - * 预计开始时间 - */ @ApiModelProperty(value = "预计开始时间", dataType = "String") @ExcelProperty("预计开始时间") @TableField("pre_start_time") private String preStartTime; - /** - * 预计结束时间 - */ @ApiModelProperty(value = "预计结束时间", dataType = "String") @ExcelProperty("预计结束时间") @TableField("pre_end_time") private String preEndTime; /** - * minio存储文件名 + * 项目申请文件-minio存储文件名 */ - @ApiModelProperty(value = "minio存储文件名", dataType = "String") - @TableField("minio_file_name") - private String minioFileName; + @ApiModelProperty(value = "项目申请文件-minio存储文件名", dataType = "String") + @TableField("apply_minio_file_name") + private String applyMinioFileName; + + /** + * 项目验收文件-minio存储文件名 + */ + @ApiModelProperty(hidden = true) + @TableField("check_minio_file_name") + private String checkMinioFileName; /** * 申请审批状态 @@ -163,14 +147,14 @@ /** * 验收流程实例id */ - @ApiModelProperty(value = "流程实例id(未通过验收编辑接口必传参数)", dataType = "String") + @ApiModelProperty(hidden = true) @TableField("check_process_id") private String checkProcessId; /** * 验收结论 */ - @ApiModelProperty(value = "验收结论", dataType = "String") + @ApiModelProperty(hidden = true) @ExcelProperty("验收结论") @TableField("check_conclusion") private String checkConclusion; @@ -178,18 +162,20 @@ /** * 验收时间 */ - @ApiModelProperty(value = "验收时间", dataType = "String") + @ApiModelProperty(hidden = true) @ExcelProperty("验收时间") @TableField("check_time") private String checkTime; - /** - * 备注 - */ - @ApiModelProperty(value = "备注", dataType = "String") - @ExcelProperty("备注") - @TableField("remark") - private String remark; + @ApiModelProperty(value = "项目申请备注", dataType = "String") + @ExcelProperty("项目申请备注") + @TableField("apply_remark") + private String applyRemark; + + @ApiModelProperty(hidden = true) + @ExcelProperty("项目验收备注") + @TableField("check_remark") + private String checkRemark; @ApiModelProperty(hidden = true) @TableField("create_user") @@ -211,7 +197,7 @@ @ApiModelProperty(value = "样品&委托书列表(保存/编辑草稿接口入参使用)", dataType = "List") @TableField(exist = false) - private List dtos; + private List orderSampleList; @ApiModelProperty(value = "样品列表(详情接口出参使用)", dataType = "List") @TableField(exist = false) diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourcerInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourcerInfo.java index 2e1da88..4c37d69 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourcerInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourcerInfo.java @@ -240,13 +240,6 @@ private String addressArea; /** - * 公司地址-详细地址 - */ - @ApiModelProperty(value = "公司地址-详细地址", dataType = "String") - @TableField("full_address") - private String fullAddress; - - /** * 公司地址-国家 */ @ApiModelProperty(value = "公司地址-国家", dataType = "String") @@ -278,6 +271,14 @@ private String addressAreaName; /** + * 公司地址-详细地址 + */ + @ExcelProperty("公司地址-详细地址") + @ApiModelProperty(value = "公司地址-详细地址", dataType = "String") + @TableField("full_address") + private String fullAddress; + + /** * 开票地址-国家 */ @ApiModelProperty(value = "开票地址-国家编码", dataType = "String") @@ -371,7 +372,8 @@ /** * 备注 */ - @ApiModelProperty(value = "公司地址-省", dataType = "String") + @ExcelProperty("备注") + @ApiModelProperty(value = "备注", dataType = "String") @TableField("remark") private String remark; @@ -380,15 +382,11 @@ private Long createUser; @ApiModelProperty(hidden = true) - @TableField("update_user") - private Long updateUser; - - @ApiModelProperty(hidden = true) @TableField("is_del") private Integer isDel; @ExcelProperty("创建时间") - @ApiModelProperty(value = "创建时间", dataType = "String") + @ApiModelProperty(value = "创建时间(列表接口返回参数)", dataType = "String") @TableField("create_time") private String createTime; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessSiteExecutiveInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessSiteExecutiveInfo.java index d54a93a..ec99721 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessSiteExecutiveInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessSiteExecutiveInfo.java @@ -105,10 +105,6 @@ private Long createUser; @ApiModelProperty(hidden = true) - @TableField("update_user") - private Long updateUser; - - @ApiModelProperty(hidden = true) @TableField("is_del") private Integer isDel; @@ -120,5 +116,4 @@ @TableField("update_time") private String updateTime; - } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java index bd4a401..b05f035 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java @@ -20,6 +20,7 @@ import com.casic.missiles.enums.business.OrderStatusEnum; import com.casic.missiles.enums.sample.CurrentSegmentEnum; import com.casic.missiles.enums.sample.SampleStatusEnum; +import com.casic.missiles.enums.system.ApprovalStatusEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.mapper.business.*; import com.casic.missiles.mapper.meter.MeterOrganizeMapper; @@ -594,6 +595,7 @@ wrapper.eq("order_id", orderId); wrapper.eq("sample_id", sampleId); wrapper.eq("measure_dept_id", deptId); + wrapper.eq("approval_status", ApprovalStatusEnum.PASSED); return wrapper; } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectApplyController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectApplyController.java index b7dae53..76facc2 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectApplyController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectApplyController.java @@ -11,6 +11,7 @@ import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.outsource.OutsourceProjectApprovalListRequest; import com.casic.missiles.dto.business.outsource.OutsourceProjectApprovalListResponse; +import com.casic.missiles.dto.business.outsource.OutsourceProjectListRequest; import com.casic.missiles.dto.business.outsource.OutsourceProjectSaveResponse; import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; import com.casic.missiles.enums.BusinessExceptionEnum; @@ -48,13 +49,14 @@ private IBusinessOutsourceProjectService projectService; @ApiOperation("分包项目申请审批列表(分页)") - @PostMapping("/approval/listPage") + @PostMapping("/approval/listPage") public ReturnDTO> approvalListPage(@RequestBody @Valid OutsourceProjectApprovalListRequest request, BindingResult bindingResult) throws Exception { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } DictCodeUtils.validDictCode(request); Page page = PageFactory.defaultPage(); + request.setTypeFlag(1); List responseList = projectService.projectApplyApprovalListPage(request, page); page.setRecords(responseList); return ReturnUtil.success(super.packForBT(page)); @@ -64,7 +66,7 @@ @PostMapping("/save") @ResponseBody public ReturnDTO save(@RequestBody @Valid BusinessOutsourceProject outsourceProject, BindingResult bindingResult) throws Exception { - Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getDtos()), () -> { + Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getOrderSampleList()), () -> { throw new BusinessException(BusinessExceptionEnum.SAMPLE_ORDER_IDS_NULL); }); if(bindingResult.hasErrors()){ @@ -81,7 +83,7 @@ Assert.isFalse(Objects.isNull(outsourceProject.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getDtos()), () -> { + Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getOrderSampleList()), () -> { throw new BusinessException(BusinessExceptionEnum.SAMPLE_ORDER_IDS_NULL); }); if(bindingResult.hasErrors()){ @@ -108,19 +110,9 @@ Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - return projectService.projectDelete(idDTO.getId()); + return projectService.projectApplyDelete(idDTO.getId()); } -// @ApiOperation("分包项目申请批量删除") -// @PostMapping("/batchDelete") -// @ResponseBody -// public ReturnDTO batchDelete(@RequestBody @Valid IdsDTO idsDTO) { -// Assert.isFalse(CollectionUtils.isEmpty(idsDTO.getIds()), () -> { -// throw new BusinessException(BusinessExceptionEnum.ID_NULL); -// }); -// return projectService.deleteBatchProject(idsDTO.getIds()); -// } - @ApiOperation("分包项目申请详情") @PostMapping("/detail") @ResponseBody @@ -151,6 +143,19 @@ if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return projectService.failUpdate(outsourceProject); + return projectService.projectApplyFailUpdate(outsourceProject); + } + + /** + * 查询分包项目申请审批通过列表 + */ + @ApiOperation("分包项目申请审批通过列表(分页)") + @PostMapping("/listPage") + public ReturnDTO> listPage(@RequestBody @Valid OutsourceProjectListRequest request, BindingResult bindingResult) throws Exception { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(projectService.projectListPage(request, page))); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectCheckController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectCheckController.java index f44d54c..6575ab7 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectCheckController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectCheckController.java @@ -1,10 +1,35 @@ package com.casic.missiles.controller.business; +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.BaseApprovalSubmitRequest; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.outsource.OutsourceProjectApprovalListRequest; +import com.casic.missiles.dto.business.outsource.OutsourceProjectApprovalListResponse; +import com.casic.missiles.dto.business.outsource.OutsourceProjectCheckSaveOrUpdateRequest; +import com.casic.missiles.dto.business.outsource.OutsourceProjectSaveResponse; +import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.business.BusinessOutsourceProject; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.service.business.IBusinessOutsourceProjectService; +import com.casic.missiles.utils.DictCodeUtils; import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.*; + +import javax.validation.Valid; +import java.util.List; +import java.util.Objects; /** *

@@ -19,5 +44,99 @@ @RestController @RequestMapping("/business/outsourceProject/check") public class BusinessOutsourceProjectCheckController extends ExportController { + @Autowired + private IBusinessOutsourceProjectService projectService; + @ApiOperation("分包项目验收审批列表(分页)") + @PostMapping("/approval/listPage") + public ReturnDTO> approvalListPage(@RequestBody @Valid OutsourceProjectApprovalListRequest request, BindingResult bindingResult) throws Exception { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + DictCodeUtils.validDictCode(request); + Page page = PageFactory.defaultPage(); + request.setTypeFlag(2); + List responseList = projectService.projectApplyApprovalListPage(request, page); + page.setRecords(responseList); + return ReturnUtil.success(super.packForBT(page)); + } + + @ApiOperation("分包项目验收审批保存(保存至草稿箱)") + @PostMapping("/save") + @ResponseBody + public ReturnDTO save(@RequestBody @Valid OutsourceProjectCheckSaveOrUpdateRequest request, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.saveOrUpdateProjectCheck(request); + } + + @ApiOperation("草稿箱分包项目验收编辑") + @PostMapping("/draftUpdate") + @ResponseBody + public ReturnDTO draftUpdate(@RequestBody @Valid OutsourceProjectCheckSaveOrUpdateRequest request, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.saveOrUpdateProjectCheck(request); + } + + @ApiOperation("分包项目验收提交(未调用过保存接口保存至草稿箱需先调用保存接口,再调用该接口)") + @PostMapping("/submit") + @ResponseBody + public ReturnDTO submit(@RequestBody @Valid BaseApprovalSubmitRequest request, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.submitProjectCheck(request); + } + + /** + * 只清空验收所填字段及验收审批草稿状态 + */ + @ApiOperation("分包项目验收删除(草稿删除也调用该接口)") + @PostMapping("/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return projectService.projectCheckDelete(idDTO.getId()); + } + + /** + * 复用分包项目申请详情service + */ + @ApiOperation("分包项目验收详情") + @PostMapping("/detail") + @ResponseBody + public ReturnDTO supplierDetail(@RequestBody @Valid IdDTO idDTO) throws Exception { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return projectService.projectDetail(idDTO.getId()); + } + + /** + * 清空验收所填字段及验收审批状态 + */ + @ApiOperation("分包项目验收审批操作-删除") + @PostMapping("/approval/operate/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid ApprovalDeleteRequest request, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.projectCheckApprovalDelete(request); + } + + @ApiOperation("未通过分包项目验收编辑(驳回后的分包项目验收重新编辑,仅未通过列表中的编辑按钮可调用)") + @PostMapping("/failUpdate") + @ResponseBody + public ReturnDTO failUpdate(@RequestBody @Valid OutsourceProjectCheckSaveOrUpdateRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.projectCheckFailUpdate(request); + } } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index e792441..2cc4a24 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -68,8 +68,10 @@ OUTSOURCER_SAVE_FAILED(2419, "分包方保存至草稿箱失败"), OUTSOURCER_SUBMIT_FAILED(2420, "分包方提交处理失败"), - OUTSOURCE_PROJECT_SAVE_FAILED(2421, "分包项目保存至草稿箱失败"), - OUTSOURCE_PROJECT_SUBMIT_FAILED(2422, "分包项目提交处理失败"); + OUTSOURCE_PROJECT_APPLY_SAVE_FAILED(2421, "分包项目申请保存至草稿箱失败"), + OUTSOURCE_PROJECT_APPLY_SUBMIT_FAILED(2422, "分包项目申请提交处理失败"), + OUTSOURCE_PROJECT_CHECK_SAVE_FAILED(2423, "分包项目验收保存至草稿箱失败"), + OUTSOURCE_PROJECT_CHECK_SUBMIT_FAILED(2424, "分包项目验收提交处理失败"); private Integer code; private String message; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java index a318a34..d3d5eb4 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java @@ -17,4 +17,8 @@ String CERTIFICATE_REPORT_BEAN_NAME = "certificateReportBean"; + String OUTSOURCE_PROJECT_APPLY_BEAN_NAME = "outsourceProjectApplyBean"; + + String OUTSOURCE_PROJECT_CHECK_BEAN_NAME = "outsourceProjectCheckBean"; + } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareActionStatusEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareActionStatusEnum.java index 2435309..c45da69 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareActionStatusEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareActionStatusEnum.java @@ -19,6 +19,8 @@ DEVICE_LEASE_BORROWED(LEASE_BEAN_NAME, EquipmentApplyProcessEnum.WAIT_BORROWED), CERTIFICATE_PRINT_STATUS(CERTIFICATE_BEAN_NAME, ""), CERTIFICATE_REPORT_STATUS(CERTIFICATE_REPORT_BEAN_NAME, ""), + OUTSOURCE_PROJECT_APPLY(OUTSOURCE_PROJECT_APPLY_BEAN_NAME, ""), + OUTSOURCE_PROJECT_CHECK(OUTSOURCE_PROJECT_CHECK_BEAN_NAME, ""), ACTION_STATUS_MAP(new HashMap() { { put(ApplyFromIdEnum.STANDARD_REVERT_APPROVAL, EQUIPMENT_APPLY_USE); @@ -28,12 +30,14 @@ put(ApplyFromIdEnum.DEVICE_UNUSED_APPROVAL, DEVICE_MANAGING_IDLE); put(ApplyFromIdEnum.DEVICE_SEALED_APPROVAL, DEVICE_MANAGING_SEALED); put(ApplyFromIdEnum.DEVICE_UNSEALED_APPROVAL, DEVICE_MANAGING_USE); - put(ApplyFromIdEnum.DEVICE_SCRAPPED_ROVAL, DEVICE_MANAGING_SCRAP); + put(ApplyFromIdEnum.DEVICE_SCRAP_APPROVAL, DEVICE_MANAGING_SCRAP); put(ApplyFromIdEnum.DEVICE_HANDLE_APPROVAL, DEVICE_MANAGING_MANAGEMENT); put(ApplyFromIdEnum.DEVICE_CONSUMING_APPROVAL, DEVICE_LEASE_CONSUMING); // 设备领用申请 put(ApplyFromIdEnum.DEVICE_BORROW_APPROVAL, DEVICE_LEASE_BORROWED); // 设备借用申请 put(ApplyFromIdEnum.CERTIFICATE_PRINT_APPROVAL, CERTIFICATE_PRINT_STATUS); //证书打印审批通过状态回填 put(ApplyFromIdEnum.CERTIFICATE_REPORT_APPROVAL, CERTIFICATE_REPORT_STATUS); //证书报告审批通过状态回填 + put(ApplyFromIdEnum.OUTSOURCE_PROJECT_APPLY_APPROVAL, OUTSOURCE_PROJECT_APPLY); + put(ApplyFromIdEnum.OUTSOURCE_PROJECT_CHECK_APPROVAL, OUTSOURCE_PROJECT_CHECK); } }); String actionBeanName; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java index 5d16918..61c86df 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java @@ -12,7 +12,7 @@ String DEVICE_UNUSED_APPROVAL = "sbglsbxzsq"; // 设备闲置申请 String DEVICE_SEALED_APPROVAL = "sbglsbfcsq"; // 设备封存申请 String DEVICE_UNSEALED_APPROVAL = "sbglsbqfsq"; // 设备启封申请 - String DEVICE_SCRAPPED_ROVAL = "sbglsbbfsq"; // 设备报废申请 + String DEVICE_SCRAP_APPROVAL = "sbglsbbfsq"; // 设备报废申请 String DEVICE_HANDLE_APPROVAL = "sbglsbczsq"; // 设备处置申请 String DEVICE_CONSUMING_APPROVAL = "clsblysp"; // 设备领用申请 String DEVICE_BORROW_APPROVAL = "clsbjysp"; // 设备借用申请 @@ -20,4 +20,7 @@ String DEVICE_FIX_ACCEPTANCE = "sbglsbjxbyysd"; // 设备检修保养验收单 String CERTIFICATE_PRINT_APPROVAL = "ywglzsdy"; // 证书打印通过 String CERTIFICATE_REPORT_APPROVAL = "ywglzsbg"; // 证书报告通过 + String OUTSOURCER_APPROVAL = "ywglfbfzg"; // 分包方资格 + String OUTSOURCE_PROJECT_APPLY_APPROVAL = "ywglfbxmsq"; // 分包项目申请 + String OUTSOURCE_PROJECT_CHECK_APPROVAL = "ywglfbxmys"; // 分包项目验收 } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java index bddf56f..344358a 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java @@ -7,6 +7,7 @@ import com.casic.missiles.dto.business.SampleHandOutListResponse; import com.casic.missiles.dto.business.dispatch.DeviceDispatchDTO; import com.casic.missiles.dto.business.dispatch.DeviceDispatchVO; +import com.casic.missiles.dto.business.outsource.OrderSampleDTO; import com.casic.missiles.dto.customer.sample.CustomerSampleListVO; import com.casic.missiles.model.business.BusinessOrderSampleRelation; import org.apache.ibatis.annotations.Param; @@ -32,4 +33,8 @@ int updateByOrderIdAndSampleId(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId, @Param("status") String status); CustomerSampleListVO getInterChangeSampleList(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId); + + int updateTypeBatchByOrderAndSample(@Param("orderSampleDTOS") List orderSampleDTOS); + + int updateStatusBatchByOrderAndSample(@Param("orderSampleDTOS") List orderSampleDTOS); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOutsourceProjectMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOutsourceProjectMapper.java index b1724d8..b6d6726 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOutsourceProjectMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOutsourceProjectMapper.java @@ -26,4 +26,6 @@ Long selectMaxOutsourcerNo(); BusinessOutsourceProject selectProjectById(@Param("id") Long id); + + int updateForProjectCheck(@Param("id") Long id); } diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml index 95012eb..881bbb2 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -180,4 +180,19 @@ )bosr ON bosr.sampleId=bo.id + + + UPDATE business_order_sample_relation + SET measure_type = 2 + WHERE order_id = #{item.orderId} AND sample_id = #{item.sampleId} + + + + + + UPDATE business_order_sample_relation + SET sample_status = 4 + WHERE order_id = #{item.orderId} AND sample_id = #{item.sampleId} + + diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourceProjectMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourceProjectMapper.xml index f35e05d..6c69ac9 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourceProjectMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourceProjectMapper.xml @@ -8,37 +8,43 @@ + + - + + - + + - - - id, project_no, project_name, applicant_id, applicant_name, applicant_time, pre_cost, outsourcer_id, outsource_reason, pre_start_time, pre_end_time, minio_file_name, apply_approval_status, apply_process_id, check_approval_status, check_process_id, check_conclusion, check_time, remark, create_time, update_time - - + + + UPDATE business_outsource_project + SET checker_id = null, checker_name = null, check_conclusion = null, check_minio_file_name = null, check_remark = null, check_approval_status = null + WHERE id = #{id} + diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourcerInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourcerInfoMapper.xml index a00bac6..2273d52 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourcerInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourcerInfoMapper.xml @@ -47,17 +47,11 @@ - - - - id, outsourcer_no, outsourcer_name, outsourcer_brief_name, outsourcer_size, business_size, grade, evaluation, business_content, tax_number, bank_account, bank_name, bank_account_number, postal_code, director, phone, mobile, email, website, address_country, address_province, address_city, address_area, full_address, address_country_name, address_province_name, address_city_name, address_area_name, invoice_country, invoice_province, invoice_city, invoice_area, invoice_full_address, invoice_country_name, invoice_province_name, invoice_city_name, invoice_area_name, business_scope, minio_file_name, approval_status, process_id, remark, create_user, update_user, is_del, create_time, update_time - - SELECT * FROM business_site_executive_info diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectApprovalListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectApprovalListRequest.java index b7d61d6..43e1229 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectApprovalListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectApprovalListRequest.java @@ -46,4 +46,8 @@ @ApiModelProperty(hidden = true) private Long createUserId; + + //标识是申请or验收,代码中设置 + @ApiModelProperty(hidden = true) + private Integer typeFlag; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectApprovalListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectApprovalListResponse.java index 3dc13d9..ea8bc09 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectApprovalListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectApprovalListResponse.java @@ -24,6 +24,12 @@ @ApiModelProperty(value = "申请人名字", dataType = "String") private String applicantName; + @ApiModelProperty(value = "验收人名字", dataType = "String") + private String checkerName; + + @ApiModelProperty(value = "验收时间", dataType = "String") + private String checkTime; + @ApiModelProperty(value = "分包方名称", dataType = "String") private String outsourcerName; @@ -42,8 +48,17 @@ @ApiModelProperty(value = "分包项目申请审批状态类型-字典value", dataType = "String") private String applyApprovalStatusName; - @ApiModelProperty(value = "流程实例id", dataType = "String") - private String processId; + @ApiModelProperty(value = "分包项目验收审批状态类型-字典code", dataType = "String") + private String checkApprovalStatus; + + @ApiModelProperty(value = "分包项目验收审批状态类型-字典value", dataType = "String") + private String checkApprovalStatusName; + + @ApiModelProperty(value = "分包项目申请流程实例id", dataType = "String") + private String applyProcessId; + + @ApiModelProperty(value = "分包项目验收流程实例id", dataType = "String") + private String checkProcessId; @ApiModelProperty(value = "任务id(同意、驳回等操作使用)", dataType = "String") private String taskId; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectCheckSaveOrUpdateRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectCheckSaveOrUpdateRequest.java new file mode 100644 index 0000000..9a61a8b --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectCheckSaveOrUpdateRequest.java @@ -0,0 +1,37 @@ +package com.casic.missiles.dto.business.outsource; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; + +/** + * @Description: 分包项目验收草稿箱保存/编辑请求实体 + * @Author: wangpeng + * @Date: 2023/3/29 9:03 + */ +@ApiModel +@Data +public class OutsourceProjectCheckSaveOrUpdateRequest { + @NotNull(message = "分包项目主键id不能为空") + @ApiModelProperty(value = "主键id", dataType = "Long", required = true) + private Long id; + + @NotBlank(message = "验收结论不能为空") + @ApiModelProperty(value = "验收结论", dataType = "String", required = true) + private String checkConclusion; + + @ApiModelProperty(value = "验收时间", dataType = "String", required = true) + private String checkTime; + + @ApiModelProperty(value = "项目验收文件-minio存储文件名", dataType = "String", required = true) + private String checkMinioFileName; + + @ApiModelProperty(value = "项目验收备注", dataType = "String", required = true) + private String checkRemark; + + @ApiModelProperty(value = "流程实例id(未通过验收编辑接口入参必传)", dataType = "String") + private String checkProcessId; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectListRequest.java new file mode 100644 index 0000000..c325bca --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectListRequest.java @@ -0,0 +1,26 @@ +package com.casic.missiles.dto.business.outsource; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + * @Description: 分包项目列表请求实体 + * @Author: wangpeng + * @Date: 2023/3/29 11:22 + */ +@Data +@ApiModel +public class OutsourceProjectListRequest { + @NotBlank(message = "表单id不能为空") + @ApiModelProperty(value = "表单id(流程定义对应的表单id,等价于业务id)", dataType = "String") + private String formId; + + @ApiModelProperty(value = "分包项目编号", dataType = "String") + private String projectNo; + + @ApiModelProperty(value = "分包项目名称", dataType = "String") + private String projectName; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourceProject.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourceProject.java index 3b88cf1..8be4953 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourceProject.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourceProject.java @@ -44,54 +44,42 @@ @TableId("id") private Long id; - /** - * 分包项目编号 - */ @ExcelProperty("分包项目编号") - @ApiModelProperty(value = "分包项目编号", dataType = "String") + @ApiModelProperty(value = "分包项目编号(列表、更新接口参数)", dataType = "String") @TableField("project_no") private String projectNo; - /** - * 分包项目名称 - */ @ExcelProperty("分包项目名称") @ApiModelProperty(value = "分包项目名称", dataType = "String") @TableField("project_name") private String projectName; - /** - * 申请人id - */ - @ApiModelProperty(value = "申请人id", dataType = "Long") + @ApiModelProperty(hidden = true) @TableField("applicant_id") private Long applicantId; - /** - * 申请人名字 - */ + @ApiModelProperty(hidden = true) + @TableField("checker_id") + private Long checkerId; + @ExcelProperty("申请人名字") - @ApiModelProperty(value = "申请人名字", dataType = "String") + @ApiModelProperty(hidden = true) @TableField("applicant_name") private String applicantName; - /** - * 申请时间 - */ + @ExcelProperty("验收人名字") + @ApiModelProperty(hidden = true) + @TableField("checker_name") + private String checkerName; + @ApiModelProperty(value = "申请时间", dataType = "String") @TableField("applicant_time") private String applicantTime; - /** - * 预计费用 - */ @ApiModelProperty(value = "预计费用", dataType = "String") @TableField("pre_cost") private String preCost; - /** - * 分包方id - */ @ApiModelProperty(value = "分包方id", dataType = "String") @TableField("outsourcer_id") private Long outsourcerId; @@ -101,43 +89,39 @@ @TableField(exist = false) private String outsourcerName; - /** - * 分包原因-字典code */ @ApiModelProperty(value = "分包原因-字典code", dataType = "String") @NotBlank(message = "分包原因不能为空") @TableField("outsource_reason") private String outsourceReason; - /** - * 分包原因-字典value - */ @ApiModelProperty(value = "分包原因-字典value", dataType = "String") @ExcelProperty("分包原因") @TableField(exist = false) private String outsourceReasonName; - /** - * 预计开始时间 - */ @ApiModelProperty(value = "预计开始时间", dataType = "String") @ExcelProperty("预计开始时间") @TableField("pre_start_time") private String preStartTime; - /** - * 预计结束时间 - */ @ApiModelProperty(value = "预计结束时间", dataType = "String") @ExcelProperty("预计结束时间") @TableField("pre_end_time") private String preEndTime; /** - * minio存储文件名 + * 项目申请文件-minio存储文件名 */ - @ApiModelProperty(value = "minio存储文件名", dataType = "String") - @TableField("minio_file_name") - private String minioFileName; + @ApiModelProperty(value = "项目申请文件-minio存储文件名", dataType = "String") + @TableField("apply_minio_file_name") + private String applyMinioFileName; + + /** + * 项目验收文件-minio存储文件名 + */ + @ApiModelProperty(hidden = true) + @TableField("check_minio_file_name") + private String checkMinioFileName; /** * 申请审批状态 @@ -163,14 +147,14 @@ /** * 验收流程实例id */ - @ApiModelProperty(value = "流程实例id(未通过验收编辑接口必传参数)", dataType = "String") + @ApiModelProperty(hidden = true) @TableField("check_process_id") private String checkProcessId; /** * 验收结论 */ - @ApiModelProperty(value = "验收结论", dataType = "String") + @ApiModelProperty(hidden = true) @ExcelProperty("验收结论") @TableField("check_conclusion") private String checkConclusion; @@ -178,18 +162,20 @@ /** * 验收时间 */ - @ApiModelProperty(value = "验收时间", dataType = "String") + @ApiModelProperty(hidden = true) @ExcelProperty("验收时间") @TableField("check_time") private String checkTime; - /** - * 备注 - */ - @ApiModelProperty(value = "备注", dataType = "String") - @ExcelProperty("备注") - @TableField("remark") - private String remark; + @ApiModelProperty(value = "项目申请备注", dataType = "String") + @ExcelProperty("项目申请备注") + @TableField("apply_remark") + private String applyRemark; + + @ApiModelProperty(hidden = true) + @ExcelProperty("项目验收备注") + @TableField("check_remark") + private String checkRemark; @ApiModelProperty(hidden = true) @TableField("create_user") @@ -211,7 +197,7 @@ @ApiModelProperty(value = "样品&委托书列表(保存/编辑草稿接口入参使用)", dataType = "List") @TableField(exist = false) - private List dtos; + private List orderSampleList; @ApiModelProperty(value = "样品列表(详情接口出参使用)", dataType = "List") @TableField(exist = false) diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourcerInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourcerInfo.java index 2e1da88..4c37d69 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourcerInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourcerInfo.java @@ -240,13 +240,6 @@ private String addressArea; /** - * 公司地址-详细地址 - */ - @ApiModelProperty(value = "公司地址-详细地址", dataType = "String") - @TableField("full_address") - private String fullAddress; - - /** * 公司地址-国家 */ @ApiModelProperty(value = "公司地址-国家", dataType = "String") @@ -278,6 +271,14 @@ private String addressAreaName; /** + * 公司地址-详细地址 + */ + @ExcelProperty("公司地址-详细地址") + @ApiModelProperty(value = "公司地址-详细地址", dataType = "String") + @TableField("full_address") + private String fullAddress; + + /** * 开票地址-国家 */ @ApiModelProperty(value = "开票地址-国家编码", dataType = "String") @@ -371,7 +372,8 @@ /** * 备注 */ - @ApiModelProperty(value = "公司地址-省", dataType = "String") + @ExcelProperty("备注") + @ApiModelProperty(value = "备注", dataType = "String") @TableField("remark") private String remark; @@ -380,15 +382,11 @@ private Long createUser; @ApiModelProperty(hidden = true) - @TableField("update_user") - private Long updateUser; - - @ApiModelProperty(hidden = true) @TableField("is_del") private Integer isDel; @ExcelProperty("创建时间") - @ApiModelProperty(value = "创建时间", dataType = "String") + @ApiModelProperty(value = "创建时间(列表接口返回参数)", dataType = "String") @TableField("create_time") private String createTime; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessSiteExecutiveInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessSiteExecutiveInfo.java index d54a93a..ec99721 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessSiteExecutiveInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessSiteExecutiveInfo.java @@ -105,10 +105,6 @@ private Long createUser; @ApiModelProperty(hidden = true) - @TableField("update_user") - private Long updateUser; - - @ApiModelProperty(hidden = true) @TableField("is_del") private Integer isDel; @@ -120,5 +116,4 @@ @TableField("update_time") private String updateTime; - } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java index bd4a401..b05f035 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java @@ -20,6 +20,7 @@ import com.casic.missiles.enums.business.OrderStatusEnum; import com.casic.missiles.enums.sample.CurrentSegmentEnum; import com.casic.missiles.enums.sample.SampleStatusEnum; +import com.casic.missiles.enums.system.ApprovalStatusEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.mapper.business.*; import com.casic.missiles.mapper.meter.MeterOrganizeMapper; @@ -594,6 +595,7 @@ wrapper.eq("order_id", orderId); wrapper.eq("sample_id", sampleId); wrapper.eq("measure_dept_id", deptId); + wrapper.eq("approval_status", ApprovalStatusEnum.PASSED); return wrapper; } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOutsourceProjectServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOutsourceProjectServiceImpl.java index f9d060f..86f037e 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOutsourceProjectServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOutsourceProjectServiceImpl.java @@ -10,10 +10,7 @@ import com.casic.missiles.dto.BaseApprovalSubmitRequest; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; -import com.casic.missiles.dto.business.outsource.OrderSampleResponseDTO; -import com.casic.missiles.dto.business.outsource.OutsourceProjectApprovalListRequest; -import com.casic.missiles.dto.business.outsource.OutsourceProjectApprovalListResponse; -import com.casic.missiles.dto.business.outsource.OutsourceProjectSaveResponse; +import com.casic.missiles.dto.business.outsource.*; import com.casic.missiles.dto.flowable.AllApproveDTO; import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; import com.casic.missiles.dto.flowable.ToBeApprovedDTO; @@ -101,9 +98,11 @@ throw new BusinessException(BusinessExceptionEnum.LOGIN_USER_ACQUIRE_FAILED); }); outsourceProject.setCreateUser(ShiroKit.getUser().getId()); //登录者用户id + outsourceProject.setApplicantId(ShiroKit.getUser().getId()); //登录者用户id + outsourceProject.setApplicantName(ShiroKit.getUser().getName()); //登录者用户名 int insertFlag = projectMapper.insert(outsourceProject); Assert.isFalse(insertFlag <= 0, () -> { - throw new BusinessException(BusinessExceptionEnum.OUTSOURCE_PROJECT_SAVE_FAILED); + throw new BusinessException(BusinessExceptionEnum.OUTSOURCE_PROJECT_APPLY_SAVE_FAILED); }); //保存关联样品 saveBatchRelation(outsourceProject); @@ -151,13 +150,14 @@ outsourceProject.setApplyProcessId(processInstance.getId()); int row = projectMapper.updateById(outsourceProject); if (row <= 0) { - throw new BusinessException(BusinessExceptionEnum.OUTSOURCE_PROJECT_SUBMIT_FAILED); + throw new BusinessException(BusinessExceptionEnum.OUTSOURCE_PROJECT_APPLY_SUBMIT_FAILED); } return ReturnUtil.success(); } @Override - public ReturnDTO projectDelete(Long id) { + @Transactional + public ReturnDTO projectApplyDelete(Long id) { if (projectMapper.deleteById(id) > 0) { //关联样品删除 QueryWrapper wrapper = new QueryWrapper<>(); @@ -192,7 +192,7 @@ @Override @Transactional - public ReturnDTO failUpdate(BusinessOutsourceProject outsourceProject) { + public ReturnDTO projectApplyFailUpdate(BusinessOutsourceProject outsourceProject) { AuthUser user = ShiroKit.getUser(); Assert.isFalse(Objects.isNull(user), () -> { throw new BusinessException(BusinessExceptionEnum.LOGIN_USER_ACQUIRE_FAILED); @@ -208,12 +208,125 @@ return ReturnUtil.success(); } throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); + } + @Override + public Page projectListPage(OutsourceProjectListRequest request, Page page) { + QueryWrapper wrapper = getWrapper(request); + Page projectPage = projectMapper.selectPage(page, wrapper); + return projectPage; + } + + private QueryWrapper getWrapper(OutsourceProjectListRequest request) { + //flowable中已通过状态的业务id列表 + List passedList = baseApprovalService.getPassedList(request.getFormId()); + QueryWrapper wrapper = new QueryWrapper<>(); + //无审批通过则返回空数据 + if (CollectionUtils.isEmpty(passedList)) { + wrapper.eq("id", 12344321); + return wrapper; + } + wrapper.like(StringUtils.isNotBlank(request.getProjectNo()), "project_no", request.getProjectNo()); + wrapper.like(StringUtils.isNotBlank(request.getProjectName()), "project_name", request.getProjectName()); + //验收状态若是草稿或空则可以被选择进行验收 + wrapper.eq("check_approval_status", ApprovalStatusEnum.DRAFT).or().isNull("check_approval_status"); + wrapper.in("id", passedList); + wrapper.orderByDesc("create_time"); + return wrapper; + } + + @Override + public ReturnDTO saveOrUpdateProjectCheck(OutsourceProjectCheckSaveOrUpdateRequest request) { + BusinessOutsourceProject outsourceProject = projectMapper.selectById(request.getId()); + outsourceProject.setCheckApprovalStatus(ApprovalStatusEnum.DRAFT); //草稿箱状态 + Assert.isFalse(Objects.isNull(ShiroKit.getUser()), () -> { + throw new BusinessException(BusinessExceptionEnum.LOGIN_USER_ACQUIRE_FAILED); + }); + //验收的数据是已通过申请的数据,只做更新即可 + outsourceProject.setCheckerId(ShiroKit.getUser().getId()); //登录者用户id + outsourceProject.setCheckerName(ShiroKit.getUser().getName()); //登录者用户名 + outsourceProject.setCheckConclusion(request.getCheckConclusion()); + outsourceProject.setCheckTime(request.getCheckTime()); + outsourceProject.setCheckMinioFileName(request.getCheckMinioFileName()); + outsourceProject.setCheckRemark(request.getCheckRemark()); + int updateFlag = projectMapper.updateById(outsourceProject); + Assert.isFalse(updateFlag <= 0, () -> { + throw new BusinessException(BusinessExceptionEnum.OUTSOURCE_PROJECT_CHECK_SAVE_FAILED); + }); + OutsourceProjectSaveResponse saveResponse = new OutsourceProjectSaveResponse(); + saveResponse.setId(outsourceProject.getId()); + saveResponse.setProjectNo(outsourceProject.getProjectNo()); + return ReturnUtil.success(saveResponse); + } + + @Override + @Transactional + public ReturnDTO submitProjectCheck(BaseApprovalSubmitRequest request) { + //已取消后的提交需先删除原有实例 + if (StringUtils.isNotEmpty(request.getProcessId())){ + runtimeService.updateBusinessStatus(request.getProcessId(), ApprovalStatusEnum.DELETED); + runtimeService.deleteProcessInstance(request.getProcessId(), "删除"); + } + //1.根据表单id获取流程定义id + //2.根据流程定义id启动流程实例 + String formId = request.getFormId(); + ReturnDTO returnDTO = baseApprovalService.processSubmit(formId, request.getId()); + if (ResponseData.DEFAULT_SUCCESS_CODE != returnDTO.getCode()) { + return returnDTO; + } + ProcessInstance processInstance = (ProcessInstance) returnDTO.getData(); + + BusinessOutsourceProject outsourceProject = new BusinessOutsourceProject(); + outsourceProject.setId(request.getId()); + outsourceProject.setCheckApprovalStatus(ApprovalStatusEnum.UN_DRAFT); //非草稿状态 + outsourceProject.setCheckProcessId(processInstance.getId()); + int row = projectMapper.updateById(outsourceProject); + if (row <= 0) { + throw new BusinessException(BusinessExceptionEnum.OUTSOURCE_PROJECT_CHECK_SUBMIT_FAILED); + } + return ReturnUtil.success(); + } + + @Override + public ReturnDTO projectCheckDelete(Long id) { + int updateFlag = projectMapper.updateForProjectCheck(id); + if(updateFlag > 0){ + return ReturnUtil.success(); + } + throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); + } + + @Override + public ReturnDTO projectCheckApprovalDelete(ApprovalDeleteRequest request) { + ReturnDTO returnDTO = approvalOperateService.delete(request); + if (ResponseData.DEFAULT_SUCCESS_CODE == returnDTO.getCode()) { + //清空验收所填字段及验收审批状态 + int updateFlag = projectMapper.updateForProjectCheck(request.getId()); + if(updateFlag > 0){ + return ReturnUtil.success(); + } + } + throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); + } + + @Override + @Transactional + public ReturnDTO projectCheckFailUpdate(OutsourceProjectCheckSaveOrUpdateRequest request) { + AuthUser user = ShiroKit.getUser(); + Assert.isFalse(Objects.isNull(user), () -> { + throw new BusinessException(BusinessExceptionEnum.LOGIN_USER_ACQUIRE_FAILED); + }); + BusinessOutsourceProject outsourceProject = ConvertUtils.sourceToTarget(request, BusinessOutsourceProject.class); + if (projectMapper.updateById(outsourceProject) > 0) { + baseApprovalService.failUpdate(request.getCheckProcessId()); + return ReturnUtil.success(); + } + throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); } private boolean saveBatchRelation(BusinessOutsourceProject outsourceProject) { List relationList = new ArrayList<>(); - outsourceProject.getDtos().forEach(dto -> { + outsourceProject.getOrderSampleList().forEach(dto -> { BusinessOutsourceProjectSampleRelation relation = new BusinessOutsourceProjectSampleRelation(); relation.setProjectId(outsourceProject.getId()); relation.setSampleId(dto.getSampleId()); diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectApplyController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectApplyController.java index b7dae53..76facc2 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectApplyController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectApplyController.java @@ -11,6 +11,7 @@ import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.outsource.OutsourceProjectApprovalListRequest; import com.casic.missiles.dto.business.outsource.OutsourceProjectApprovalListResponse; +import com.casic.missiles.dto.business.outsource.OutsourceProjectListRequest; import com.casic.missiles.dto.business.outsource.OutsourceProjectSaveResponse; import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; import com.casic.missiles.enums.BusinessExceptionEnum; @@ -48,13 +49,14 @@ private IBusinessOutsourceProjectService projectService; @ApiOperation("分包项目申请审批列表(分页)") - @PostMapping("/approval/listPage") + @PostMapping("/approval/listPage") public ReturnDTO> approvalListPage(@RequestBody @Valid OutsourceProjectApprovalListRequest request, BindingResult bindingResult) throws Exception { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } DictCodeUtils.validDictCode(request); Page page = PageFactory.defaultPage(); + request.setTypeFlag(1); List responseList = projectService.projectApplyApprovalListPage(request, page); page.setRecords(responseList); return ReturnUtil.success(super.packForBT(page)); @@ -64,7 +66,7 @@ @PostMapping("/save") @ResponseBody public ReturnDTO save(@RequestBody @Valid BusinessOutsourceProject outsourceProject, BindingResult bindingResult) throws Exception { - Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getDtos()), () -> { + Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getOrderSampleList()), () -> { throw new BusinessException(BusinessExceptionEnum.SAMPLE_ORDER_IDS_NULL); }); if(bindingResult.hasErrors()){ @@ -81,7 +83,7 @@ Assert.isFalse(Objects.isNull(outsourceProject.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getDtos()), () -> { + Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getOrderSampleList()), () -> { throw new BusinessException(BusinessExceptionEnum.SAMPLE_ORDER_IDS_NULL); }); if(bindingResult.hasErrors()){ @@ -108,19 +110,9 @@ Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - return projectService.projectDelete(idDTO.getId()); + return projectService.projectApplyDelete(idDTO.getId()); } -// @ApiOperation("分包项目申请批量删除") -// @PostMapping("/batchDelete") -// @ResponseBody -// public ReturnDTO batchDelete(@RequestBody @Valid IdsDTO idsDTO) { -// Assert.isFalse(CollectionUtils.isEmpty(idsDTO.getIds()), () -> { -// throw new BusinessException(BusinessExceptionEnum.ID_NULL); -// }); -// return projectService.deleteBatchProject(idsDTO.getIds()); -// } - @ApiOperation("分包项目申请详情") @PostMapping("/detail") @ResponseBody @@ -151,6 +143,19 @@ if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return projectService.failUpdate(outsourceProject); + return projectService.projectApplyFailUpdate(outsourceProject); + } + + /** + * 查询分包项目申请审批通过列表 + */ + @ApiOperation("分包项目申请审批通过列表(分页)") + @PostMapping("/listPage") + public ReturnDTO> listPage(@RequestBody @Valid OutsourceProjectListRequest request, BindingResult bindingResult) throws Exception { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(projectService.projectListPage(request, page))); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectCheckController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectCheckController.java index f44d54c..6575ab7 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectCheckController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectCheckController.java @@ -1,10 +1,35 @@ package com.casic.missiles.controller.business; +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.BaseApprovalSubmitRequest; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.outsource.OutsourceProjectApprovalListRequest; +import com.casic.missiles.dto.business.outsource.OutsourceProjectApprovalListResponse; +import com.casic.missiles.dto.business.outsource.OutsourceProjectCheckSaveOrUpdateRequest; +import com.casic.missiles.dto.business.outsource.OutsourceProjectSaveResponse; +import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.business.BusinessOutsourceProject; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.service.business.IBusinessOutsourceProjectService; +import com.casic.missiles.utils.DictCodeUtils; import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.*; + +import javax.validation.Valid; +import java.util.List; +import java.util.Objects; /** *

@@ -19,5 +44,99 @@ @RestController @RequestMapping("/business/outsourceProject/check") public class BusinessOutsourceProjectCheckController extends ExportController { + @Autowired + private IBusinessOutsourceProjectService projectService; + @ApiOperation("分包项目验收审批列表(分页)") + @PostMapping("/approval/listPage") + public ReturnDTO> approvalListPage(@RequestBody @Valid OutsourceProjectApprovalListRequest request, BindingResult bindingResult) throws Exception { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + DictCodeUtils.validDictCode(request); + Page page = PageFactory.defaultPage(); + request.setTypeFlag(2); + List responseList = projectService.projectApplyApprovalListPage(request, page); + page.setRecords(responseList); + return ReturnUtil.success(super.packForBT(page)); + } + + @ApiOperation("分包项目验收审批保存(保存至草稿箱)") + @PostMapping("/save") + @ResponseBody + public ReturnDTO save(@RequestBody @Valid OutsourceProjectCheckSaveOrUpdateRequest request, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.saveOrUpdateProjectCheck(request); + } + + @ApiOperation("草稿箱分包项目验收编辑") + @PostMapping("/draftUpdate") + @ResponseBody + public ReturnDTO draftUpdate(@RequestBody @Valid OutsourceProjectCheckSaveOrUpdateRequest request, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.saveOrUpdateProjectCheck(request); + } + + @ApiOperation("分包项目验收提交(未调用过保存接口保存至草稿箱需先调用保存接口,再调用该接口)") + @PostMapping("/submit") + @ResponseBody + public ReturnDTO submit(@RequestBody @Valid BaseApprovalSubmitRequest request, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.submitProjectCheck(request); + } + + /** + * 只清空验收所填字段及验收审批草稿状态 + */ + @ApiOperation("分包项目验收删除(草稿删除也调用该接口)") + @PostMapping("/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return projectService.projectCheckDelete(idDTO.getId()); + } + + /** + * 复用分包项目申请详情service + */ + @ApiOperation("分包项目验收详情") + @PostMapping("/detail") + @ResponseBody + public ReturnDTO supplierDetail(@RequestBody @Valid IdDTO idDTO) throws Exception { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return projectService.projectDetail(idDTO.getId()); + } + + /** + * 清空验收所填字段及验收审批状态 + */ + @ApiOperation("分包项目验收审批操作-删除") + @PostMapping("/approval/operate/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid ApprovalDeleteRequest request, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.projectCheckApprovalDelete(request); + } + + @ApiOperation("未通过分包项目验收编辑(驳回后的分包项目验收重新编辑,仅未通过列表中的编辑按钮可调用)") + @PostMapping("/failUpdate") + @ResponseBody + public ReturnDTO failUpdate(@RequestBody @Valid OutsourceProjectCheckSaveOrUpdateRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.projectCheckFailUpdate(request); + } } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index e792441..2cc4a24 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -68,8 +68,10 @@ OUTSOURCER_SAVE_FAILED(2419, "分包方保存至草稿箱失败"), OUTSOURCER_SUBMIT_FAILED(2420, "分包方提交处理失败"), - OUTSOURCE_PROJECT_SAVE_FAILED(2421, "分包项目保存至草稿箱失败"), - OUTSOURCE_PROJECT_SUBMIT_FAILED(2422, "分包项目提交处理失败"); + OUTSOURCE_PROJECT_APPLY_SAVE_FAILED(2421, "分包项目申请保存至草稿箱失败"), + OUTSOURCE_PROJECT_APPLY_SUBMIT_FAILED(2422, "分包项目申请提交处理失败"), + OUTSOURCE_PROJECT_CHECK_SAVE_FAILED(2423, "分包项目验收保存至草稿箱失败"), + OUTSOURCE_PROJECT_CHECK_SUBMIT_FAILED(2424, "分包项目验收提交处理失败"); private Integer code; private String message; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java index a318a34..d3d5eb4 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java @@ -17,4 +17,8 @@ String CERTIFICATE_REPORT_BEAN_NAME = "certificateReportBean"; + String OUTSOURCE_PROJECT_APPLY_BEAN_NAME = "outsourceProjectApplyBean"; + + String OUTSOURCE_PROJECT_CHECK_BEAN_NAME = "outsourceProjectCheckBean"; + } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareActionStatusEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareActionStatusEnum.java index 2435309..c45da69 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareActionStatusEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareActionStatusEnum.java @@ -19,6 +19,8 @@ DEVICE_LEASE_BORROWED(LEASE_BEAN_NAME, EquipmentApplyProcessEnum.WAIT_BORROWED), CERTIFICATE_PRINT_STATUS(CERTIFICATE_BEAN_NAME, ""), CERTIFICATE_REPORT_STATUS(CERTIFICATE_REPORT_BEAN_NAME, ""), + OUTSOURCE_PROJECT_APPLY(OUTSOURCE_PROJECT_APPLY_BEAN_NAME, ""), + OUTSOURCE_PROJECT_CHECK(OUTSOURCE_PROJECT_CHECK_BEAN_NAME, ""), ACTION_STATUS_MAP(new HashMap() { { put(ApplyFromIdEnum.STANDARD_REVERT_APPROVAL, EQUIPMENT_APPLY_USE); @@ -28,12 +30,14 @@ put(ApplyFromIdEnum.DEVICE_UNUSED_APPROVAL, DEVICE_MANAGING_IDLE); put(ApplyFromIdEnum.DEVICE_SEALED_APPROVAL, DEVICE_MANAGING_SEALED); put(ApplyFromIdEnum.DEVICE_UNSEALED_APPROVAL, DEVICE_MANAGING_USE); - put(ApplyFromIdEnum.DEVICE_SCRAPPED_ROVAL, DEVICE_MANAGING_SCRAP); + put(ApplyFromIdEnum.DEVICE_SCRAP_APPROVAL, DEVICE_MANAGING_SCRAP); put(ApplyFromIdEnum.DEVICE_HANDLE_APPROVAL, DEVICE_MANAGING_MANAGEMENT); put(ApplyFromIdEnum.DEVICE_CONSUMING_APPROVAL, DEVICE_LEASE_CONSUMING); // 设备领用申请 put(ApplyFromIdEnum.DEVICE_BORROW_APPROVAL, DEVICE_LEASE_BORROWED); // 设备借用申请 put(ApplyFromIdEnum.CERTIFICATE_PRINT_APPROVAL, CERTIFICATE_PRINT_STATUS); //证书打印审批通过状态回填 put(ApplyFromIdEnum.CERTIFICATE_REPORT_APPROVAL, CERTIFICATE_REPORT_STATUS); //证书报告审批通过状态回填 + put(ApplyFromIdEnum.OUTSOURCE_PROJECT_APPLY_APPROVAL, OUTSOURCE_PROJECT_APPLY); + put(ApplyFromIdEnum.OUTSOURCE_PROJECT_CHECK_APPROVAL, OUTSOURCE_PROJECT_CHECK); } }); String actionBeanName; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java index 5d16918..61c86df 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java @@ -12,7 +12,7 @@ String DEVICE_UNUSED_APPROVAL = "sbglsbxzsq"; // 设备闲置申请 String DEVICE_SEALED_APPROVAL = "sbglsbfcsq"; // 设备封存申请 String DEVICE_UNSEALED_APPROVAL = "sbglsbqfsq"; // 设备启封申请 - String DEVICE_SCRAPPED_ROVAL = "sbglsbbfsq"; // 设备报废申请 + String DEVICE_SCRAP_APPROVAL = "sbglsbbfsq"; // 设备报废申请 String DEVICE_HANDLE_APPROVAL = "sbglsbczsq"; // 设备处置申请 String DEVICE_CONSUMING_APPROVAL = "clsblysp"; // 设备领用申请 String DEVICE_BORROW_APPROVAL = "clsbjysp"; // 设备借用申请 @@ -20,4 +20,7 @@ String DEVICE_FIX_ACCEPTANCE = "sbglsbjxbyysd"; // 设备检修保养验收单 String CERTIFICATE_PRINT_APPROVAL = "ywglzsdy"; // 证书打印通过 String CERTIFICATE_REPORT_APPROVAL = "ywglzsbg"; // 证书报告通过 + String OUTSOURCER_APPROVAL = "ywglfbfzg"; // 分包方资格 + String OUTSOURCE_PROJECT_APPLY_APPROVAL = "ywglfbxmsq"; // 分包项目申请 + String OUTSOURCE_PROJECT_CHECK_APPROVAL = "ywglfbxmys"; // 分包项目验收 } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java index bddf56f..344358a 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java @@ -7,6 +7,7 @@ import com.casic.missiles.dto.business.SampleHandOutListResponse; import com.casic.missiles.dto.business.dispatch.DeviceDispatchDTO; import com.casic.missiles.dto.business.dispatch.DeviceDispatchVO; +import com.casic.missiles.dto.business.outsource.OrderSampleDTO; import com.casic.missiles.dto.customer.sample.CustomerSampleListVO; import com.casic.missiles.model.business.BusinessOrderSampleRelation; import org.apache.ibatis.annotations.Param; @@ -32,4 +33,8 @@ int updateByOrderIdAndSampleId(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId, @Param("status") String status); CustomerSampleListVO getInterChangeSampleList(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId); + + int updateTypeBatchByOrderAndSample(@Param("orderSampleDTOS") List orderSampleDTOS); + + int updateStatusBatchByOrderAndSample(@Param("orderSampleDTOS") List orderSampleDTOS); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOutsourceProjectMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOutsourceProjectMapper.java index b1724d8..b6d6726 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOutsourceProjectMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOutsourceProjectMapper.java @@ -26,4 +26,6 @@ Long selectMaxOutsourcerNo(); BusinessOutsourceProject selectProjectById(@Param("id") Long id); + + int updateForProjectCheck(@Param("id") Long id); } diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml index 95012eb..881bbb2 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -180,4 +180,19 @@ )bosr ON bosr.sampleId=bo.id + + + UPDATE business_order_sample_relation + SET measure_type = 2 + WHERE order_id = #{item.orderId} AND sample_id = #{item.sampleId} + + + + + + UPDATE business_order_sample_relation + SET sample_status = 4 + WHERE order_id = #{item.orderId} AND sample_id = #{item.sampleId} + + diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourceProjectMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourceProjectMapper.xml index f35e05d..6c69ac9 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourceProjectMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourceProjectMapper.xml @@ -8,37 +8,43 @@ + + - + + - + + - - - id, project_no, project_name, applicant_id, applicant_name, applicant_time, pre_cost, outsourcer_id, outsource_reason, pre_start_time, pre_end_time, minio_file_name, apply_approval_status, apply_process_id, check_approval_status, check_process_id, check_conclusion, check_time, remark, create_time, update_time - - + + + UPDATE business_outsource_project + SET checker_id = null, checker_name = null, check_conclusion = null, check_minio_file_name = null, check_remark = null, check_approval_status = null + WHERE id = #{id} + diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourcerInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourcerInfoMapper.xml index a00bac6..2273d52 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourcerInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourcerInfoMapper.xml @@ -47,17 +47,11 @@ - - - - id, outsourcer_no, outsourcer_name, outsourcer_brief_name, outsourcer_size, business_size, grade, evaluation, business_content, tax_number, bank_account, bank_name, bank_account_number, postal_code, director, phone, mobile, email, website, address_country, address_province, address_city, address_area, full_address, address_country_name, address_province_name, address_city_name, address_area_name, invoice_country, invoice_province, invoice_city, invoice_area, invoice_full_address, invoice_country_name, invoice_province_name, invoice_city_name, invoice_area_name, business_scope, minio_file_name, approval_status, process_id, remark, create_user, update_user, is_del, create_time, update_time - - SELECT * FROM business_site_executive_info diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectApprovalListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectApprovalListRequest.java index b7d61d6..43e1229 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectApprovalListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectApprovalListRequest.java @@ -46,4 +46,8 @@ @ApiModelProperty(hidden = true) private Long createUserId; + + //标识是申请or验收,代码中设置 + @ApiModelProperty(hidden = true) + private Integer typeFlag; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectApprovalListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectApprovalListResponse.java index 3dc13d9..ea8bc09 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectApprovalListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectApprovalListResponse.java @@ -24,6 +24,12 @@ @ApiModelProperty(value = "申请人名字", dataType = "String") private String applicantName; + @ApiModelProperty(value = "验收人名字", dataType = "String") + private String checkerName; + + @ApiModelProperty(value = "验收时间", dataType = "String") + private String checkTime; + @ApiModelProperty(value = "分包方名称", dataType = "String") private String outsourcerName; @@ -42,8 +48,17 @@ @ApiModelProperty(value = "分包项目申请审批状态类型-字典value", dataType = "String") private String applyApprovalStatusName; - @ApiModelProperty(value = "流程实例id", dataType = "String") - private String processId; + @ApiModelProperty(value = "分包项目验收审批状态类型-字典code", dataType = "String") + private String checkApprovalStatus; + + @ApiModelProperty(value = "分包项目验收审批状态类型-字典value", dataType = "String") + private String checkApprovalStatusName; + + @ApiModelProperty(value = "分包项目申请流程实例id", dataType = "String") + private String applyProcessId; + + @ApiModelProperty(value = "分包项目验收流程实例id", dataType = "String") + private String checkProcessId; @ApiModelProperty(value = "任务id(同意、驳回等操作使用)", dataType = "String") private String taskId; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectCheckSaveOrUpdateRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectCheckSaveOrUpdateRequest.java new file mode 100644 index 0000000..9a61a8b --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectCheckSaveOrUpdateRequest.java @@ -0,0 +1,37 @@ +package com.casic.missiles.dto.business.outsource; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; + +/** + * @Description: 分包项目验收草稿箱保存/编辑请求实体 + * @Author: wangpeng + * @Date: 2023/3/29 9:03 + */ +@ApiModel +@Data +public class OutsourceProjectCheckSaveOrUpdateRequest { + @NotNull(message = "分包项目主键id不能为空") + @ApiModelProperty(value = "主键id", dataType = "Long", required = true) + private Long id; + + @NotBlank(message = "验收结论不能为空") + @ApiModelProperty(value = "验收结论", dataType = "String", required = true) + private String checkConclusion; + + @ApiModelProperty(value = "验收时间", dataType = "String", required = true) + private String checkTime; + + @ApiModelProperty(value = "项目验收文件-minio存储文件名", dataType = "String", required = true) + private String checkMinioFileName; + + @ApiModelProperty(value = "项目验收备注", dataType = "String", required = true) + private String checkRemark; + + @ApiModelProperty(value = "流程实例id(未通过验收编辑接口入参必传)", dataType = "String") + private String checkProcessId; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectListRequest.java new file mode 100644 index 0000000..c325bca --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectListRequest.java @@ -0,0 +1,26 @@ +package com.casic.missiles.dto.business.outsource; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + * @Description: 分包项目列表请求实体 + * @Author: wangpeng + * @Date: 2023/3/29 11:22 + */ +@Data +@ApiModel +public class OutsourceProjectListRequest { + @NotBlank(message = "表单id不能为空") + @ApiModelProperty(value = "表单id(流程定义对应的表单id,等价于业务id)", dataType = "String") + private String formId; + + @ApiModelProperty(value = "分包项目编号", dataType = "String") + private String projectNo; + + @ApiModelProperty(value = "分包项目名称", dataType = "String") + private String projectName; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourceProject.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourceProject.java index 3b88cf1..8be4953 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourceProject.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourceProject.java @@ -44,54 +44,42 @@ @TableId("id") private Long id; - /** - * 分包项目编号 - */ @ExcelProperty("分包项目编号") - @ApiModelProperty(value = "分包项目编号", dataType = "String") + @ApiModelProperty(value = "分包项目编号(列表、更新接口参数)", dataType = "String") @TableField("project_no") private String projectNo; - /** - * 分包项目名称 - */ @ExcelProperty("分包项目名称") @ApiModelProperty(value = "分包项目名称", dataType = "String") @TableField("project_name") private String projectName; - /** - * 申请人id - */ - @ApiModelProperty(value = "申请人id", dataType = "Long") + @ApiModelProperty(hidden = true) @TableField("applicant_id") private Long applicantId; - /** - * 申请人名字 - */ + @ApiModelProperty(hidden = true) + @TableField("checker_id") + private Long checkerId; + @ExcelProperty("申请人名字") - @ApiModelProperty(value = "申请人名字", dataType = "String") + @ApiModelProperty(hidden = true) @TableField("applicant_name") private String applicantName; - /** - * 申请时间 - */ + @ExcelProperty("验收人名字") + @ApiModelProperty(hidden = true) + @TableField("checker_name") + private String checkerName; + @ApiModelProperty(value = "申请时间", dataType = "String") @TableField("applicant_time") private String applicantTime; - /** - * 预计费用 - */ @ApiModelProperty(value = "预计费用", dataType = "String") @TableField("pre_cost") private String preCost; - /** - * 分包方id - */ @ApiModelProperty(value = "分包方id", dataType = "String") @TableField("outsourcer_id") private Long outsourcerId; @@ -101,43 +89,39 @@ @TableField(exist = false) private String outsourcerName; - /** - * 分包原因-字典code */ @ApiModelProperty(value = "分包原因-字典code", dataType = "String") @NotBlank(message = "分包原因不能为空") @TableField("outsource_reason") private String outsourceReason; - /** - * 分包原因-字典value - */ @ApiModelProperty(value = "分包原因-字典value", dataType = "String") @ExcelProperty("分包原因") @TableField(exist = false) private String outsourceReasonName; - /** - * 预计开始时间 - */ @ApiModelProperty(value = "预计开始时间", dataType = "String") @ExcelProperty("预计开始时间") @TableField("pre_start_time") private String preStartTime; - /** - * 预计结束时间 - */ @ApiModelProperty(value = "预计结束时间", dataType = "String") @ExcelProperty("预计结束时间") @TableField("pre_end_time") private String preEndTime; /** - * minio存储文件名 + * 项目申请文件-minio存储文件名 */ - @ApiModelProperty(value = "minio存储文件名", dataType = "String") - @TableField("minio_file_name") - private String minioFileName; + @ApiModelProperty(value = "项目申请文件-minio存储文件名", dataType = "String") + @TableField("apply_minio_file_name") + private String applyMinioFileName; + + /** + * 项目验收文件-minio存储文件名 + */ + @ApiModelProperty(hidden = true) + @TableField("check_minio_file_name") + private String checkMinioFileName; /** * 申请审批状态 @@ -163,14 +147,14 @@ /** * 验收流程实例id */ - @ApiModelProperty(value = "流程实例id(未通过验收编辑接口必传参数)", dataType = "String") + @ApiModelProperty(hidden = true) @TableField("check_process_id") private String checkProcessId; /** * 验收结论 */ - @ApiModelProperty(value = "验收结论", dataType = "String") + @ApiModelProperty(hidden = true) @ExcelProperty("验收结论") @TableField("check_conclusion") private String checkConclusion; @@ -178,18 +162,20 @@ /** * 验收时间 */ - @ApiModelProperty(value = "验收时间", dataType = "String") + @ApiModelProperty(hidden = true) @ExcelProperty("验收时间") @TableField("check_time") private String checkTime; - /** - * 备注 - */ - @ApiModelProperty(value = "备注", dataType = "String") - @ExcelProperty("备注") - @TableField("remark") - private String remark; + @ApiModelProperty(value = "项目申请备注", dataType = "String") + @ExcelProperty("项目申请备注") + @TableField("apply_remark") + private String applyRemark; + + @ApiModelProperty(hidden = true) + @ExcelProperty("项目验收备注") + @TableField("check_remark") + private String checkRemark; @ApiModelProperty(hidden = true) @TableField("create_user") @@ -211,7 +197,7 @@ @ApiModelProperty(value = "样品&委托书列表(保存/编辑草稿接口入参使用)", dataType = "List") @TableField(exist = false) - private List dtos; + private List orderSampleList; @ApiModelProperty(value = "样品列表(详情接口出参使用)", dataType = "List") @TableField(exist = false) diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourcerInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourcerInfo.java index 2e1da88..4c37d69 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourcerInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourcerInfo.java @@ -240,13 +240,6 @@ private String addressArea; /** - * 公司地址-详细地址 - */ - @ApiModelProperty(value = "公司地址-详细地址", dataType = "String") - @TableField("full_address") - private String fullAddress; - - /** * 公司地址-国家 */ @ApiModelProperty(value = "公司地址-国家", dataType = "String") @@ -278,6 +271,14 @@ private String addressAreaName; /** + * 公司地址-详细地址 + */ + @ExcelProperty("公司地址-详细地址") + @ApiModelProperty(value = "公司地址-详细地址", dataType = "String") + @TableField("full_address") + private String fullAddress; + + /** * 开票地址-国家 */ @ApiModelProperty(value = "开票地址-国家编码", dataType = "String") @@ -371,7 +372,8 @@ /** * 备注 */ - @ApiModelProperty(value = "公司地址-省", dataType = "String") + @ExcelProperty("备注") + @ApiModelProperty(value = "备注", dataType = "String") @TableField("remark") private String remark; @@ -380,15 +382,11 @@ private Long createUser; @ApiModelProperty(hidden = true) - @TableField("update_user") - private Long updateUser; - - @ApiModelProperty(hidden = true) @TableField("is_del") private Integer isDel; @ExcelProperty("创建时间") - @ApiModelProperty(value = "创建时间", dataType = "String") + @ApiModelProperty(value = "创建时间(列表接口返回参数)", dataType = "String") @TableField("create_time") private String createTime; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessSiteExecutiveInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessSiteExecutiveInfo.java index d54a93a..ec99721 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessSiteExecutiveInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessSiteExecutiveInfo.java @@ -105,10 +105,6 @@ private Long createUser; @ApiModelProperty(hidden = true) - @TableField("update_user") - private Long updateUser; - - @ApiModelProperty(hidden = true) @TableField("is_del") private Integer isDel; @@ -120,5 +116,4 @@ @TableField("update_time") private String updateTime; - } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java index bd4a401..b05f035 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java @@ -20,6 +20,7 @@ import com.casic.missiles.enums.business.OrderStatusEnum; import com.casic.missiles.enums.sample.CurrentSegmentEnum; import com.casic.missiles.enums.sample.SampleStatusEnum; +import com.casic.missiles.enums.system.ApprovalStatusEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.mapper.business.*; import com.casic.missiles.mapper.meter.MeterOrganizeMapper; @@ -594,6 +595,7 @@ wrapper.eq("order_id", orderId); wrapper.eq("sample_id", sampleId); wrapper.eq("measure_dept_id", deptId); + wrapper.eq("approval_status", ApprovalStatusEnum.PASSED); return wrapper; } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOutsourceProjectServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOutsourceProjectServiceImpl.java index f9d060f..86f037e 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOutsourceProjectServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOutsourceProjectServiceImpl.java @@ -10,10 +10,7 @@ import com.casic.missiles.dto.BaseApprovalSubmitRequest; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; -import com.casic.missiles.dto.business.outsource.OrderSampleResponseDTO; -import com.casic.missiles.dto.business.outsource.OutsourceProjectApprovalListRequest; -import com.casic.missiles.dto.business.outsource.OutsourceProjectApprovalListResponse; -import com.casic.missiles.dto.business.outsource.OutsourceProjectSaveResponse; +import com.casic.missiles.dto.business.outsource.*; import com.casic.missiles.dto.flowable.AllApproveDTO; import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; import com.casic.missiles.dto.flowable.ToBeApprovedDTO; @@ -101,9 +98,11 @@ throw new BusinessException(BusinessExceptionEnum.LOGIN_USER_ACQUIRE_FAILED); }); outsourceProject.setCreateUser(ShiroKit.getUser().getId()); //登录者用户id + outsourceProject.setApplicantId(ShiroKit.getUser().getId()); //登录者用户id + outsourceProject.setApplicantName(ShiroKit.getUser().getName()); //登录者用户名 int insertFlag = projectMapper.insert(outsourceProject); Assert.isFalse(insertFlag <= 0, () -> { - throw new BusinessException(BusinessExceptionEnum.OUTSOURCE_PROJECT_SAVE_FAILED); + throw new BusinessException(BusinessExceptionEnum.OUTSOURCE_PROJECT_APPLY_SAVE_FAILED); }); //保存关联样品 saveBatchRelation(outsourceProject); @@ -151,13 +150,14 @@ outsourceProject.setApplyProcessId(processInstance.getId()); int row = projectMapper.updateById(outsourceProject); if (row <= 0) { - throw new BusinessException(BusinessExceptionEnum.OUTSOURCE_PROJECT_SUBMIT_FAILED); + throw new BusinessException(BusinessExceptionEnum.OUTSOURCE_PROJECT_APPLY_SUBMIT_FAILED); } return ReturnUtil.success(); } @Override - public ReturnDTO projectDelete(Long id) { + @Transactional + public ReturnDTO projectApplyDelete(Long id) { if (projectMapper.deleteById(id) > 0) { //关联样品删除 QueryWrapper wrapper = new QueryWrapper<>(); @@ -192,7 +192,7 @@ @Override @Transactional - public ReturnDTO failUpdate(BusinessOutsourceProject outsourceProject) { + public ReturnDTO projectApplyFailUpdate(BusinessOutsourceProject outsourceProject) { AuthUser user = ShiroKit.getUser(); Assert.isFalse(Objects.isNull(user), () -> { throw new BusinessException(BusinessExceptionEnum.LOGIN_USER_ACQUIRE_FAILED); @@ -208,12 +208,125 @@ return ReturnUtil.success(); } throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); + } + @Override + public Page projectListPage(OutsourceProjectListRequest request, Page page) { + QueryWrapper wrapper = getWrapper(request); + Page projectPage = projectMapper.selectPage(page, wrapper); + return projectPage; + } + + private QueryWrapper getWrapper(OutsourceProjectListRequest request) { + //flowable中已通过状态的业务id列表 + List passedList = baseApprovalService.getPassedList(request.getFormId()); + QueryWrapper wrapper = new QueryWrapper<>(); + //无审批通过则返回空数据 + if (CollectionUtils.isEmpty(passedList)) { + wrapper.eq("id", 12344321); + return wrapper; + } + wrapper.like(StringUtils.isNotBlank(request.getProjectNo()), "project_no", request.getProjectNo()); + wrapper.like(StringUtils.isNotBlank(request.getProjectName()), "project_name", request.getProjectName()); + //验收状态若是草稿或空则可以被选择进行验收 + wrapper.eq("check_approval_status", ApprovalStatusEnum.DRAFT).or().isNull("check_approval_status"); + wrapper.in("id", passedList); + wrapper.orderByDesc("create_time"); + return wrapper; + } + + @Override + public ReturnDTO saveOrUpdateProjectCheck(OutsourceProjectCheckSaveOrUpdateRequest request) { + BusinessOutsourceProject outsourceProject = projectMapper.selectById(request.getId()); + outsourceProject.setCheckApprovalStatus(ApprovalStatusEnum.DRAFT); //草稿箱状态 + Assert.isFalse(Objects.isNull(ShiroKit.getUser()), () -> { + throw new BusinessException(BusinessExceptionEnum.LOGIN_USER_ACQUIRE_FAILED); + }); + //验收的数据是已通过申请的数据,只做更新即可 + outsourceProject.setCheckerId(ShiroKit.getUser().getId()); //登录者用户id + outsourceProject.setCheckerName(ShiroKit.getUser().getName()); //登录者用户名 + outsourceProject.setCheckConclusion(request.getCheckConclusion()); + outsourceProject.setCheckTime(request.getCheckTime()); + outsourceProject.setCheckMinioFileName(request.getCheckMinioFileName()); + outsourceProject.setCheckRemark(request.getCheckRemark()); + int updateFlag = projectMapper.updateById(outsourceProject); + Assert.isFalse(updateFlag <= 0, () -> { + throw new BusinessException(BusinessExceptionEnum.OUTSOURCE_PROJECT_CHECK_SAVE_FAILED); + }); + OutsourceProjectSaveResponse saveResponse = new OutsourceProjectSaveResponse(); + saveResponse.setId(outsourceProject.getId()); + saveResponse.setProjectNo(outsourceProject.getProjectNo()); + return ReturnUtil.success(saveResponse); + } + + @Override + @Transactional + public ReturnDTO submitProjectCheck(BaseApprovalSubmitRequest request) { + //已取消后的提交需先删除原有实例 + if (StringUtils.isNotEmpty(request.getProcessId())){ + runtimeService.updateBusinessStatus(request.getProcessId(), ApprovalStatusEnum.DELETED); + runtimeService.deleteProcessInstance(request.getProcessId(), "删除"); + } + //1.根据表单id获取流程定义id + //2.根据流程定义id启动流程实例 + String formId = request.getFormId(); + ReturnDTO returnDTO = baseApprovalService.processSubmit(formId, request.getId()); + if (ResponseData.DEFAULT_SUCCESS_CODE != returnDTO.getCode()) { + return returnDTO; + } + ProcessInstance processInstance = (ProcessInstance) returnDTO.getData(); + + BusinessOutsourceProject outsourceProject = new BusinessOutsourceProject(); + outsourceProject.setId(request.getId()); + outsourceProject.setCheckApprovalStatus(ApprovalStatusEnum.UN_DRAFT); //非草稿状态 + outsourceProject.setCheckProcessId(processInstance.getId()); + int row = projectMapper.updateById(outsourceProject); + if (row <= 0) { + throw new BusinessException(BusinessExceptionEnum.OUTSOURCE_PROJECT_CHECK_SUBMIT_FAILED); + } + return ReturnUtil.success(); + } + + @Override + public ReturnDTO projectCheckDelete(Long id) { + int updateFlag = projectMapper.updateForProjectCheck(id); + if(updateFlag > 0){ + return ReturnUtil.success(); + } + throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); + } + + @Override + public ReturnDTO projectCheckApprovalDelete(ApprovalDeleteRequest request) { + ReturnDTO returnDTO = approvalOperateService.delete(request); + if (ResponseData.DEFAULT_SUCCESS_CODE == returnDTO.getCode()) { + //清空验收所填字段及验收审批状态 + int updateFlag = projectMapper.updateForProjectCheck(request.getId()); + if(updateFlag > 0){ + return ReturnUtil.success(); + } + } + throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); + } + + @Override + @Transactional + public ReturnDTO projectCheckFailUpdate(OutsourceProjectCheckSaveOrUpdateRequest request) { + AuthUser user = ShiroKit.getUser(); + Assert.isFalse(Objects.isNull(user), () -> { + throw new BusinessException(BusinessExceptionEnum.LOGIN_USER_ACQUIRE_FAILED); + }); + BusinessOutsourceProject outsourceProject = ConvertUtils.sourceToTarget(request, BusinessOutsourceProject.class); + if (projectMapper.updateById(outsourceProject) > 0) { + baseApprovalService.failUpdate(request.getCheckProcessId()); + return ReturnUtil.success(); + } + throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); } private boolean saveBatchRelation(BusinessOutsourceProject outsourceProject) { List relationList = new ArrayList<>(); - outsourceProject.getDtos().forEach(dto -> { + outsourceProject.getOrderSampleList().forEach(dto -> { BusinessOutsourceProjectSampleRelation relation = new BusinessOutsourceProjectSampleRelation(); relation.setProjectId(outsourceProject.getId()); relation.setSampleId(dto.getSampleId()); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessOutsourceProjectService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessOutsourceProjectService.java index ba6238f..8950b4c 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessOutsourceProjectService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessOutsourceProjectService.java @@ -4,9 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.dto.BaseApprovalSubmitRequest; import com.casic.missiles.dto.ReturnDTO; -import com.casic.missiles.dto.business.outsource.OutsourceProjectApprovalListRequest; -import com.casic.missiles.dto.business.outsource.OutsourceProjectApprovalListResponse; -import com.casic.missiles.dto.business.outsource.OutsourceProjectSaveResponse; +import com.casic.missiles.dto.business.outsource.*; import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; import com.casic.missiles.model.business.BusinessOutsourceProject; @@ -30,11 +28,23 @@ ReturnDTO submitProjectApply(BaseApprovalSubmitRequest request); - ReturnDTO projectDelete(Long id); + ReturnDTO projectApplyDelete(Long id); ReturnDTO projectDetail(Long id) throws Exception; ReturnDTO projectApplyApprovalDelete(ApprovalDeleteRequest request); - ReturnDTO failUpdate(BusinessOutsourceProject outsourceProject); + ReturnDTO projectApplyFailUpdate(BusinessOutsourceProject outsourceProject); + + Page projectListPage(OutsourceProjectListRequest request, Page page); + + ReturnDTO saveOrUpdateProjectCheck(OutsourceProjectCheckSaveOrUpdateRequest request); + + ReturnDTO submitProjectCheck(BaseApprovalSubmitRequest request); + + ReturnDTO projectCheckDelete(Long id); + + ReturnDTO projectCheckApprovalDelete(ApprovalDeleteRequest request); + + ReturnDTO projectCheckFailUpdate(OutsourceProjectCheckSaveOrUpdateRequest request); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectApplyController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectApplyController.java index b7dae53..76facc2 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectApplyController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectApplyController.java @@ -11,6 +11,7 @@ import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.outsource.OutsourceProjectApprovalListRequest; import com.casic.missiles.dto.business.outsource.OutsourceProjectApprovalListResponse; +import com.casic.missiles.dto.business.outsource.OutsourceProjectListRequest; import com.casic.missiles.dto.business.outsource.OutsourceProjectSaveResponse; import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; import com.casic.missiles.enums.BusinessExceptionEnum; @@ -48,13 +49,14 @@ private IBusinessOutsourceProjectService projectService; @ApiOperation("分包项目申请审批列表(分页)") - @PostMapping("/approval/listPage") + @PostMapping("/approval/listPage") public ReturnDTO> approvalListPage(@RequestBody @Valid OutsourceProjectApprovalListRequest request, BindingResult bindingResult) throws Exception { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } DictCodeUtils.validDictCode(request); Page page = PageFactory.defaultPage(); + request.setTypeFlag(1); List responseList = projectService.projectApplyApprovalListPage(request, page); page.setRecords(responseList); return ReturnUtil.success(super.packForBT(page)); @@ -64,7 +66,7 @@ @PostMapping("/save") @ResponseBody public ReturnDTO save(@RequestBody @Valid BusinessOutsourceProject outsourceProject, BindingResult bindingResult) throws Exception { - Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getDtos()), () -> { + Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getOrderSampleList()), () -> { throw new BusinessException(BusinessExceptionEnum.SAMPLE_ORDER_IDS_NULL); }); if(bindingResult.hasErrors()){ @@ -81,7 +83,7 @@ Assert.isFalse(Objects.isNull(outsourceProject.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getDtos()), () -> { + Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getOrderSampleList()), () -> { throw new BusinessException(BusinessExceptionEnum.SAMPLE_ORDER_IDS_NULL); }); if(bindingResult.hasErrors()){ @@ -108,19 +110,9 @@ Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - return projectService.projectDelete(idDTO.getId()); + return projectService.projectApplyDelete(idDTO.getId()); } -// @ApiOperation("分包项目申请批量删除") -// @PostMapping("/batchDelete") -// @ResponseBody -// public ReturnDTO batchDelete(@RequestBody @Valid IdsDTO idsDTO) { -// Assert.isFalse(CollectionUtils.isEmpty(idsDTO.getIds()), () -> { -// throw new BusinessException(BusinessExceptionEnum.ID_NULL); -// }); -// return projectService.deleteBatchProject(idsDTO.getIds()); -// } - @ApiOperation("分包项目申请详情") @PostMapping("/detail") @ResponseBody @@ -151,6 +143,19 @@ if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return projectService.failUpdate(outsourceProject); + return projectService.projectApplyFailUpdate(outsourceProject); + } + + /** + * 查询分包项目申请审批通过列表 + */ + @ApiOperation("分包项目申请审批通过列表(分页)") + @PostMapping("/listPage") + public ReturnDTO> listPage(@RequestBody @Valid OutsourceProjectListRequest request, BindingResult bindingResult) throws Exception { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(projectService.projectListPage(request, page))); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectCheckController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectCheckController.java index f44d54c..6575ab7 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectCheckController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectCheckController.java @@ -1,10 +1,35 @@ package com.casic.missiles.controller.business; +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.BaseApprovalSubmitRequest; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.outsource.OutsourceProjectApprovalListRequest; +import com.casic.missiles.dto.business.outsource.OutsourceProjectApprovalListResponse; +import com.casic.missiles.dto.business.outsource.OutsourceProjectCheckSaveOrUpdateRequest; +import com.casic.missiles.dto.business.outsource.OutsourceProjectSaveResponse; +import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.business.BusinessOutsourceProject; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.service.business.IBusinessOutsourceProjectService; +import com.casic.missiles.utils.DictCodeUtils; import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.*; + +import javax.validation.Valid; +import java.util.List; +import java.util.Objects; /** *

@@ -19,5 +44,99 @@ @RestController @RequestMapping("/business/outsourceProject/check") public class BusinessOutsourceProjectCheckController extends ExportController { + @Autowired + private IBusinessOutsourceProjectService projectService; + @ApiOperation("分包项目验收审批列表(分页)") + @PostMapping("/approval/listPage") + public ReturnDTO> approvalListPage(@RequestBody @Valid OutsourceProjectApprovalListRequest request, BindingResult bindingResult) throws Exception { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + DictCodeUtils.validDictCode(request); + Page page = PageFactory.defaultPage(); + request.setTypeFlag(2); + List responseList = projectService.projectApplyApprovalListPage(request, page); + page.setRecords(responseList); + return ReturnUtil.success(super.packForBT(page)); + } + + @ApiOperation("分包项目验收审批保存(保存至草稿箱)") + @PostMapping("/save") + @ResponseBody + public ReturnDTO save(@RequestBody @Valid OutsourceProjectCheckSaveOrUpdateRequest request, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.saveOrUpdateProjectCheck(request); + } + + @ApiOperation("草稿箱分包项目验收编辑") + @PostMapping("/draftUpdate") + @ResponseBody + public ReturnDTO draftUpdate(@RequestBody @Valid OutsourceProjectCheckSaveOrUpdateRequest request, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.saveOrUpdateProjectCheck(request); + } + + @ApiOperation("分包项目验收提交(未调用过保存接口保存至草稿箱需先调用保存接口,再调用该接口)") + @PostMapping("/submit") + @ResponseBody + public ReturnDTO submit(@RequestBody @Valid BaseApprovalSubmitRequest request, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.submitProjectCheck(request); + } + + /** + * 只清空验收所填字段及验收审批草稿状态 + */ + @ApiOperation("分包项目验收删除(草稿删除也调用该接口)") + @PostMapping("/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return projectService.projectCheckDelete(idDTO.getId()); + } + + /** + * 复用分包项目申请详情service + */ + @ApiOperation("分包项目验收详情") + @PostMapping("/detail") + @ResponseBody + public ReturnDTO supplierDetail(@RequestBody @Valid IdDTO idDTO) throws Exception { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return projectService.projectDetail(idDTO.getId()); + } + + /** + * 清空验收所填字段及验收审批状态 + */ + @ApiOperation("分包项目验收审批操作-删除") + @PostMapping("/approval/operate/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid ApprovalDeleteRequest request, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.projectCheckApprovalDelete(request); + } + + @ApiOperation("未通过分包项目验收编辑(驳回后的分包项目验收重新编辑,仅未通过列表中的编辑按钮可调用)") + @PostMapping("/failUpdate") + @ResponseBody + public ReturnDTO failUpdate(@RequestBody @Valid OutsourceProjectCheckSaveOrUpdateRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.projectCheckFailUpdate(request); + } } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index e792441..2cc4a24 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -68,8 +68,10 @@ OUTSOURCER_SAVE_FAILED(2419, "分包方保存至草稿箱失败"), OUTSOURCER_SUBMIT_FAILED(2420, "分包方提交处理失败"), - OUTSOURCE_PROJECT_SAVE_FAILED(2421, "分包项目保存至草稿箱失败"), - OUTSOURCE_PROJECT_SUBMIT_FAILED(2422, "分包项目提交处理失败"); + OUTSOURCE_PROJECT_APPLY_SAVE_FAILED(2421, "分包项目申请保存至草稿箱失败"), + OUTSOURCE_PROJECT_APPLY_SUBMIT_FAILED(2422, "分包项目申请提交处理失败"), + OUTSOURCE_PROJECT_CHECK_SAVE_FAILED(2423, "分包项目验收保存至草稿箱失败"), + OUTSOURCE_PROJECT_CHECK_SUBMIT_FAILED(2424, "分包项目验收提交处理失败"); private Integer code; private String message; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java index a318a34..d3d5eb4 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java @@ -17,4 +17,8 @@ String CERTIFICATE_REPORT_BEAN_NAME = "certificateReportBean"; + String OUTSOURCE_PROJECT_APPLY_BEAN_NAME = "outsourceProjectApplyBean"; + + String OUTSOURCE_PROJECT_CHECK_BEAN_NAME = "outsourceProjectCheckBean"; + } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareActionStatusEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareActionStatusEnum.java index 2435309..c45da69 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareActionStatusEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareActionStatusEnum.java @@ -19,6 +19,8 @@ DEVICE_LEASE_BORROWED(LEASE_BEAN_NAME, EquipmentApplyProcessEnum.WAIT_BORROWED), CERTIFICATE_PRINT_STATUS(CERTIFICATE_BEAN_NAME, ""), CERTIFICATE_REPORT_STATUS(CERTIFICATE_REPORT_BEAN_NAME, ""), + OUTSOURCE_PROJECT_APPLY(OUTSOURCE_PROJECT_APPLY_BEAN_NAME, ""), + OUTSOURCE_PROJECT_CHECK(OUTSOURCE_PROJECT_CHECK_BEAN_NAME, ""), ACTION_STATUS_MAP(new HashMap() { { put(ApplyFromIdEnum.STANDARD_REVERT_APPROVAL, EQUIPMENT_APPLY_USE); @@ -28,12 +30,14 @@ put(ApplyFromIdEnum.DEVICE_UNUSED_APPROVAL, DEVICE_MANAGING_IDLE); put(ApplyFromIdEnum.DEVICE_SEALED_APPROVAL, DEVICE_MANAGING_SEALED); put(ApplyFromIdEnum.DEVICE_UNSEALED_APPROVAL, DEVICE_MANAGING_USE); - put(ApplyFromIdEnum.DEVICE_SCRAPPED_ROVAL, DEVICE_MANAGING_SCRAP); + put(ApplyFromIdEnum.DEVICE_SCRAP_APPROVAL, DEVICE_MANAGING_SCRAP); put(ApplyFromIdEnum.DEVICE_HANDLE_APPROVAL, DEVICE_MANAGING_MANAGEMENT); put(ApplyFromIdEnum.DEVICE_CONSUMING_APPROVAL, DEVICE_LEASE_CONSUMING); // 设备领用申请 put(ApplyFromIdEnum.DEVICE_BORROW_APPROVAL, DEVICE_LEASE_BORROWED); // 设备借用申请 put(ApplyFromIdEnum.CERTIFICATE_PRINT_APPROVAL, CERTIFICATE_PRINT_STATUS); //证书打印审批通过状态回填 put(ApplyFromIdEnum.CERTIFICATE_REPORT_APPROVAL, CERTIFICATE_REPORT_STATUS); //证书报告审批通过状态回填 + put(ApplyFromIdEnum.OUTSOURCE_PROJECT_APPLY_APPROVAL, OUTSOURCE_PROJECT_APPLY); + put(ApplyFromIdEnum.OUTSOURCE_PROJECT_CHECK_APPROVAL, OUTSOURCE_PROJECT_CHECK); } }); String actionBeanName; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java index 5d16918..61c86df 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java @@ -12,7 +12,7 @@ String DEVICE_UNUSED_APPROVAL = "sbglsbxzsq"; // 设备闲置申请 String DEVICE_SEALED_APPROVAL = "sbglsbfcsq"; // 设备封存申请 String DEVICE_UNSEALED_APPROVAL = "sbglsbqfsq"; // 设备启封申请 - String DEVICE_SCRAPPED_ROVAL = "sbglsbbfsq"; // 设备报废申请 + String DEVICE_SCRAP_APPROVAL = "sbglsbbfsq"; // 设备报废申请 String DEVICE_HANDLE_APPROVAL = "sbglsbczsq"; // 设备处置申请 String DEVICE_CONSUMING_APPROVAL = "clsblysp"; // 设备领用申请 String DEVICE_BORROW_APPROVAL = "clsbjysp"; // 设备借用申请 @@ -20,4 +20,7 @@ String DEVICE_FIX_ACCEPTANCE = "sbglsbjxbyysd"; // 设备检修保养验收单 String CERTIFICATE_PRINT_APPROVAL = "ywglzsdy"; // 证书打印通过 String CERTIFICATE_REPORT_APPROVAL = "ywglzsbg"; // 证书报告通过 + String OUTSOURCER_APPROVAL = "ywglfbfzg"; // 分包方资格 + String OUTSOURCE_PROJECT_APPLY_APPROVAL = "ywglfbxmsq"; // 分包项目申请 + String OUTSOURCE_PROJECT_CHECK_APPROVAL = "ywglfbxmys"; // 分包项目验收 } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java index bddf56f..344358a 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java @@ -7,6 +7,7 @@ import com.casic.missiles.dto.business.SampleHandOutListResponse; import com.casic.missiles.dto.business.dispatch.DeviceDispatchDTO; import com.casic.missiles.dto.business.dispatch.DeviceDispatchVO; +import com.casic.missiles.dto.business.outsource.OrderSampleDTO; import com.casic.missiles.dto.customer.sample.CustomerSampleListVO; import com.casic.missiles.model.business.BusinessOrderSampleRelation; import org.apache.ibatis.annotations.Param; @@ -32,4 +33,8 @@ int updateByOrderIdAndSampleId(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId, @Param("status") String status); CustomerSampleListVO getInterChangeSampleList(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId); + + int updateTypeBatchByOrderAndSample(@Param("orderSampleDTOS") List orderSampleDTOS); + + int updateStatusBatchByOrderAndSample(@Param("orderSampleDTOS") List orderSampleDTOS); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOutsourceProjectMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOutsourceProjectMapper.java index b1724d8..b6d6726 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOutsourceProjectMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOutsourceProjectMapper.java @@ -26,4 +26,6 @@ Long selectMaxOutsourcerNo(); BusinessOutsourceProject selectProjectById(@Param("id") Long id); + + int updateForProjectCheck(@Param("id") Long id); } diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml index 95012eb..881bbb2 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -180,4 +180,19 @@ )bosr ON bosr.sampleId=bo.id + + + UPDATE business_order_sample_relation + SET measure_type = 2 + WHERE order_id = #{item.orderId} AND sample_id = #{item.sampleId} + + + + + + UPDATE business_order_sample_relation + SET sample_status = 4 + WHERE order_id = #{item.orderId} AND sample_id = #{item.sampleId} + + diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourceProjectMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourceProjectMapper.xml index f35e05d..6c69ac9 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourceProjectMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourceProjectMapper.xml @@ -8,37 +8,43 @@ + + - + + - + + - - - id, project_no, project_name, applicant_id, applicant_name, applicant_time, pre_cost, outsourcer_id, outsource_reason, pre_start_time, pre_end_time, minio_file_name, apply_approval_status, apply_process_id, check_approval_status, check_process_id, check_conclusion, check_time, remark, create_time, update_time - - + + + UPDATE business_outsource_project + SET checker_id = null, checker_name = null, check_conclusion = null, check_minio_file_name = null, check_remark = null, check_approval_status = null + WHERE id = #{id} + diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourcerInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourcerInfoMapper.xml index a00bac6..2273d52 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourcerInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourcerInfoMapper.xml @@ -47,17 +47,11 @@ - - - - id, outsourcer_no, outsourcer_name, outsourcer_brief_name, outsourcer_size, business_size, grade, evaluation, business_content, tax_number, bank_account, bank_name, bank_account_number, postal_code, director, phone, mobile, email, website, address_country, address_province, address_city, address_area, full_address, address_country_name, address_province_name, address_city_name, address_area_name, invoice_country, invoice_province, invoice_city, invoice_area, invoice_full_address, invoice_country_name, invoice_province_name, invoice_city_name, invoice_area_name, business_scope, minio_file_name, approval_status, process_id, remark, create_user, update_user, is_del, create_time, update_time - - SELECT * FROM business_site_executive_info diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectApprovalListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectApprovalListRequest.java index b7d61d6..43e1229 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectApprovalListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectApprovalListRequest.java @@ -46,4 +46,8 @@ @ApiModelProperty(hidden = true) private Long createUserId; + + //标识是申请or验收,代码中设置 + @ApiModelProperty(hidden = true) + private Integer typeFlag; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectApprovalListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectApprovalListResponse.java index 3dc13d9..ea8bc09 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectApprovalListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectApprovalListResponse.java @@ -24,6 +24,12 @@ @ApiModelProperty(value = "申请人名字", dataType = "String") private String applicantName; + @ApiModelProperty(value = "验收人名字", dataType = "String") + private String checkerName; + + @ApiModelProperty(value = "验收时间", dataType = "String") + private String checkTime; + @ApiModelProperty(value = "分包方名称", dataType = "String") private String outsourcerName; @@ -42,8 +48,17 @@ @ApiModelProperty(value = "分包项目申请审批状态类型-字典value", dataType = "String") private String applyApprovalStatusName; - @ApiModelProperty(value = "流程实例id", dataType = "String") - private String processId; + @ApiModelProperty(value = "分包项目验收审批状态类型-字典code", dataType = "String") + private String checkApprovalStatus; + + @ApiModelProperty(value = "分包项目验收审批状态类型-字典value", dataType = "String") + private String checkApprovalStatusName; + + @ApiModelProperty(value = "分包项目申请流程实例id", dataType = "String") + private String applyProcessId; + + @ApiModelProperty(value = "分包项目验收流程实例id", dataType = "String") + private String checkProcessId; @ApiModelProperty(value = "任务id(同意、驳回等操作使用)", dataType = "String") private String taskId; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectCheckSaveOrUpdateRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectCheckSaveOrUpdateRequest.java new file mode 100644 index 0000000..9a61a8b --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectCheckSaveOrUpdateRequest.java @@ -0,0 +1,37 @@ +package com.casic.missiles.dto.business.outsource; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; + +/** + * @Description: 分包项目验收草稿箱保存/编辑请求实体 + * @Author: wangpeng + * @Date: 2023/3/29 9:03 + */ +@ApiModel +@Data +public class OutsourceProjectCheckSaveOrUpdateRequest { + @NotNull(message = "分包项目主键id不能为空") + @ApiModelProperty(value = "主键id", dataType = "Long", required = true) + private Long id; + + @NotBlank(message = "验收结论不能为空") + @ApiModelProperty(value = "验收结论", dataType = "String", required = true) + private String checkConclusion; + + @ApiModelProperty(value = "验收时间", dataType = "String", required = true) + private String checkTime; + + @ApiModelProperty(value = "项目验收文件-minio存储文件名", dataType = "String", required = true) + private String checkMinioFileName; + + @ApiModelProperty(value = "项目验收备注", dataType = "String", required = true) + private String checkRemark; + + @ApiModelProperty(value = "流程实例id(未通过验收编辑接口入参必传)", dataType = "String") + private String checkProcessId; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectListRequest.java new file mode 100644 index 0000000..c325bca --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectListRequest.java @@ -0,0 +1,26 @@ +package com.casic.missiles.dto.business.outsource; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + * @Description: 分包项目列表请求实体 + * @Author: wangpeng + * @Date: 2023/3/29 11:22 + */ +@Data +@ApiModel +public class OutsourceProjectListRequest { + @NotBlank(message = "表单id不能为空") + @ApiModelProperty(value = "表单id(流程定义对应的表单id,等价于业务id)", dataType = "String") + private String formId; + + @ApiModelProperty(value = "分包项目编号", dataType = "String") + private String projectNo; + + @ApiModelProperty(value = "分包项目名称", dataType = "String") + private String projectName; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourceProject.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourceProject.java index 3b88cf1..8be4953 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourceProject.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourceProject.java @@ -44,54 +44,42 @@ @TableId("id") private Long id; - /** - * 分包项目编号 - */ @ExcelProperty("分包项目编号") - @ApiModelProperty(value = "分包项目编号", dataType = "String") + @ApiModelProperty(value = "分包项目编号(列表、更新接口参数)", dataType = "String") @TableField("project_no") private String projectNo; - /** - * 分包项目名称 - */ @ExcelProperty("分包项目名称") @ApiModelProperty(value = "分包项目名称", dataType = "String") @TableField("project_name") private String projectName; - /** - * 申请人id - */ - @ApiModelProperty(value = "申请人id", dataType = "Long") + @ApiModelProperty(hidden = true) @TableField("applicant_id") private Long applicantId; - /** - * 申请人名字 - */ + @ApiModelProperty(hidden = true) + @TableField("checker_id") + private Long checkerId; + @ExcelProperty("申请人名字") - @ApiModelProperty(value = "申请人名字", dataType = "String") + @ApiModelProperty(hidden = true) @TableField("applicant_name") private String applicantName; - /** - * 申请时间 - */ + @ExcelProperty("验收人名字") + @ApiModelProperty(hidden = true) + @TableField("checker_name") + private String checkerName; + @ApiModelProperty(value = "申请时间", dataType = "String") @TableField("applicant_time") private String applicantTime; - /** - * 预计费用 - */ @ApiModelProperty(value = "预计费用", dataType = "String") @TableField("pre_cost") private String preCost; - /** - * 分包方id - */ @ApiModelProperty(value = "分包方id", dataType = "String") @TableField("outsourcer_id") private Long outsourcerId; @@ -101,43 +89,39 @@ @TableField(exist = false) private String outsourcerName; - /** - * 分包原因-字典code */ @ApiModelProperty(value = "分包原因-字典code", dataType = "String") @NotBlank(message = "分包原因不能为空") @TableField("outsource_reason") private String outsourceReason; - /** - * 分包原因-字典value - */ @ApiModelProperty(value = "分包原因-字典value", dataType = "String") @ExcelProperty("分包原因") @TableField(exist = false) private String outsourceReasonName; - /** - * 预计开始时间 - */ @ApiModelProperty(value = "预计开始时间", dataType = "String") @ExcelProperty("预计开始时间") @TableField("pre_start_time") private String preStartTime; - /** - * 预计结束时间 - */ @ApiModelProperty(value = "预计结束时间", dataType = "String") @ExcelProperty("预计结束时间") @TableField("pre_end_time") private String preEndTime; /** - * minio存储文件名 + * 项目申请文件-minio存储文件名 */ - @ApiModelProperty(value = "minio存储文件名", dataType = "String") - @TableField("minio_file_name") - private String minioFileName; + @ApiModelProperty(value = "项目申请文件-minio存储文件名", dataType = "String") + @TableField("apply_minio_file_name") + private String applyMinioFileName; + + /** + * 项目验收文件-minio存储文件名 + */ + @ApiModelProperty(hidden = true) + @TableField("check_minio_file_name") + private String checkMinioFileName; /** * 申请审批状态 @@ -163,14 +147,14 @@ /** * 验收流程实例id */ - @ApiModelProperty(value = "流程实例id(未通过验收编辑接口必传参数)", dataType = "String") + @ApiModelProperty(hidden = true) @TableField("check_process_id") private String checkProcessId; /** * 验收结论 */ - @ApiModelProperty(value = "验收结论", dataType = "String") + @ApiModelProperty(hidden = true) @ExcelProperty("验收结论") @TableField("check_conclusion") private String checkConclusion; @@ -178,18 +162,20 @@ /** * 验收时间 */ - @ApiModelProperty(value = "验收时间", dataType = "String") + @ApiModelProperty(hidden = true) @ExcelProperty("验收时间") @TableField("check_time") private String checkTime; - /** - * 备注 - */ - @ApiModelProperty(value = "备注", dataType = "String") - @ExcelProperty("备注") - @TableField("remark") - private String remark; + @ApiModelProperty(value = "项目申请备注", dataType = "String") + @ExcelProperty("项目申请备注") + @TableField("apply_remark") + private String applyRemark; + + @ApiModelProperty(hidden = true) + @ExcelProperty("项目验收备注") + @TableField("check_remark") + private String checkRemark; @ApiModelProperty(hidden = true) @TableField("create_user") @@ -211,7 +197,7 @@ @ApiModelProperty(value = "样品&委托书列表(保存/编辑草稿接口入参使用)", dataType = "List") @TableField(exist = false) - private List dtos; + private List orderSampleList; @ApiModelProperty(value = "样品列表(详情接口出参使用)", dataType = "List") @TableField(exist = false) diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourcerInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourcerInfo.java index 2e1da88..4c37d69 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourcerInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourcerInfo.java @@ -240,13 +240,6 @@ private String addressArea; /** - * 公司地址-详细地址 - */ - @ApiModelProperty(value = "公司地址-详细地址", dataType = "String") - @TableField("full_address") - private String fullAddress; - - /** * 公司地址-国家 */ @ApiModelProperty(value = "公司地址-国家", dataType = "String") @@ -278,6 +271,14 @@ private String addressAreaName; /** + * 公司地址-详细地址 + */ + @ExcelProperty("公司地址-详细地址") + @ApiModelProperty(value = "公司地址-详细地址", dataType = "String") + @TableField("full_address") + private String fullAddress; + + /** * 开票地址-国家 */ @ApiModelProperty(value = "开票地址-国家编码", dataType = "String") @@ -371,7 +372,8 @@ /** * 备注 */ - @ApiModelProperty(value = "公司地址-省", dataType = "String") + @ExcelProperty("备注") + @ApiModelProperty(value = "备注", dataType = "String") @TableField("remark") private String remark; @@ -380,15 +382,11 @@ private Long createUser; @ApiModelProperty(hidden = true) - @TableField("update_user") - private Long updateUser; - - @ApiModelProperty(hidden = true) @TableField("is_del") private Integer isDel; @ExcelProperty("创建时间") - @ApiModelProperty(value = "创建时间", dataType = "String") + @ApiModelProperty(value = "创建时间(列表接口返回参数)", dataType = "String") @TableField("create_time") private String createTime; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessSiteExecutiveInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessSiteExecutiveInfo.java index d54a93a..ec99721 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessSiteExecutiveInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessSiteExecutiveInfo.java @@ -105,10 +105,6 @@ private Long createUser; @ApiModelProperty(hidden = true) - @TableField("update_user") - private Long updateUser; - - @ApiModelProperty(hidden = true) @TableField("is_del") private Integer isDel; @@ -120,5 +116,4 @@ @TableField("update_time") private String updateTime; - } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java index bd4a401..b05f035 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java @@ -20,6 +20,7 @@ import com.casic.missiles.enums.business.OrderStatusEnum; import com.casic.missiles.enums.sample.CurrentSegmentEnum; import com.casic.missiles.enums.sample.SampleStatusEnum; +import com.casic.missiles.enums.system.ApprovalStatusEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.mapper.business.*; import com.casic.missiles.mapper.meter.MeterOrganizeMapper; @@ -594,6 +595,7 @@ wrapper.eq("order_id", orderId); wrapper.eq("sample_id", sampleId); wrapper.eq("measure_dept_id", deptId); + wrapper.eq("approval_status", ApprovalStatusEnum.PASSED); return wrapper; } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOutsourceProjectServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOutsourceProjectServiceImpl.java index f9d060f..86f037e 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOutsourceProjectServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOutsourceProjectServiceImpl.java @@ -10,10 +10,7 @@ import com.casic.missiles.dto.BaseApprovalSubmitRequest; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; -import com.casic.missiles.dto.business.outsource.OrderSampleResponseDTO; -import com.casic.missiles.dto.business.outsource.OutsourceProjectApprovalListRequest; -import com.casic.missiles.dto.business.outsource.OutsourceProjectApprovalListResponse; -import com.casic.missiles.dto.business.outsource.OutsourceProjectSaveResponse; +import com.casic.missiles.dto.business.outsource.*; import com.casic.missiles.dto.flowable.AllApproveDTO; import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; import com.casic.missiles.dto.flowable.ToBeApprovedDTO; @@ -101,9 +98,11 @@ throw new BusinessException(BusinessExceptionEnum.LOGIN_USER_ACQUIRE_FAILED); }); outsourceProject.setCreateUser(ShiroKit.getUser().getId()); //登录者用户id + outsourceProject.setApplicantId(ShiroKit.getUser().getId()); //登录者用户id + outsourceProject.setApplicantName(ShiroKit.getUser().getName()); //登录者用户名 int insertFlag = projectMapper.insert(outsourceProject); Assert.isFalse(insertFlag <= 0, () -> { - throw new BusinessException(BusinessExceptionEnum.OUTSOURCE_PROJECT_SAVE_FAILED); + throw new BusinessException(BusinessExceptionEnum.OUTSOURCE_PROJECT_APPLY_SAVE_FAILED); }); //保存关联样品 saveBatchRelation(outsourceProject); @@ -151,13 +150,14 @@ outsourceProject.setApplyProcessId(processInstance.getId()); int row = projectMapper.updateById(outsourceProject); if (row <= 0) { - throw new BusinessException(BusinessExceptionEnum.OUTSOURCE_PROJECT_SUBMIT_FAILED); + throw new BusinessException(BusinessExceptionEnum.OUTSOURCE_PROJECT_APPLY_SUBMIT_FAILED); } return ReturnUtil.success(); } @Override - public ReturnDTO projectDelete(Long id) { + @Transactional + public ReturnDTO projectApplyDelete(Long id) { if (projectMapper.deleteById(id) > 0) { //关联样品删除 QueryWrapper wrapper = new QueryWrapper<>(); @@ -192,7 +192,7 @@ @Override @Transactional - public ReturnDTO failUpdate(BusinessOutsourceProject outsourceProject) { + public ReturnDTO projectApplyFailUpdate(BusinessOutsourceProject outsourceProject) { AuthUser user = ShiroKit.getUser(); Assert.isFalse(Objects.isNull(user), () -> { throw new BusinessException(BusinessExceptionEnum.LOGIN_USER_ACQUIRE_FAILED); @@ -208,12 +208,125 @@ return ReturnUtil.success(); } throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); + } + @Override + public Page projectListPage(OutsourceProjectListRequest request, Page page) { + QueryWrapper wrapper = getWrapper(request); + Page projectPage = projectMapper.selectPage(page, wrapper); + return projectPage; + } + + private QueryWrapper getWrapper(OutsourceProjectListRequest request) { + //flowable中已通过状态的业务id列表 + List passedList = baseApprovalService.getPassedList(request.getFormId()); + QueryWrapper wrapper = new QueryWrapper<>(); + //无审批通过则返回空数据 + if (CollectionUtils.isEmpty(passedList)) { + wrapper.eq("id", 12344321); + return wrapper; + } + wrapper.like(StringUtils.isNotBlank(request.getProjectNo()), "project_no", request.getProjectNo()); + wrapper.like(StringUtils.isNotBlank(request.getProjectName()), "project_name", request.getProjectName()); + //验收状态若是草稿或空则可以被选择进行验收 + wrapper.eq("check_approval_status", ApprovalStatusEnum.DRAFT).or().isNull("check_approval_status"); + wrapper.in("id", passedList); + wrapper.orderByDesc("create_time"); + return wrapper; + } + + @Override + public ReturnDTO saveOrUpdateProjectCheck(OutsourceProjectCheckSaveOrUpdateRequest request) { + BusinessOutsourceProject outsourceProject = projectMapper.selectById(request.getId()); + outsourceProject.setCheckApprovalStatus(ApprovalStatusEnum.DRAFT); //草稿箱状态 + Assert.isFalse(Objects.isNull(ShiroKit.getUser()), () -> { + throw new BusinessException(BusinessExceptionEnum.LOGIN_USER_ACQUIRE_FAILED); + }); + //验收的数据是已通过申请的数据,只做更新即可 + outsourceProject.setCheckerId(ShiroKit.getUser().getId()); //登录者用户id + outsourceProject.setCheckerName(ShiroKit.getUser().getName()); //登录者用户名 + outsourceProject.setCheckConclusion(request.getCheckConclusion()); + outsourceProject.setCheckTime(request.getCheckTime()); + outsourceProject.setCheckMinioFileName(request.getCheckMinioFileName()); + outsourceProject.setCheckRemark(request.getCheckRemark()); + int updateFlag = projectMapper.updateById(outsourceProject); + Assert.isFalse(updateFlag <= 0, () -> { + throw new BusinessException(BusinessExceptionEnum.OUTSOURCE_PROJECT_CHECK_SAVE_FAILED); + }); + OutsourceProjectSaveResponse saveResponse = new OutsourceProjectSaveResponse(); + saveResponse.setId(outsourceProject.getId()); + saveResponse.setProjectNo(outsourceProject.getProjectNo()); + return ReturnUtil.success(saveResponse); + } + + @Override + @Transactional + public ReturnDTO submitProjectCheck(BaseApprovalSubmitRequest request) { + //已取消后的提交需先删除原有实例 + if (StringUtils.isNotEmpty(request.getProcessId())){ + runtimeService.updateBusinessStatus(request.getProcessId(), ApprovalStatusEnum.DELETED); + runtimeService.deleteProcessInstance(request.getProcessId(), "删除"); + } + //1.根据表单id获取流程定义id + //2.根据流程定义id启动流程实例 + String formId = request.getFormId(); + ReturnDTO returnDTO = baseApprovalService.processSubmit(formId, request.getId()); + if (ResponseData.DEFAULT_SUCCESS_CODE != returnDTO.getCode()) { + return returnDTO; + } + ProcessInstance processInstance = (ProcessInstance) returnDTO.getData(); + + BusinessOutsourceProject outsourceProject = new BusinessOutsourceProject(); + outsourceProject.setId(request.getId()); + outsourceProject.setCheckApprovalStatus(ApprovalStatusEnum.UN_DRAFT); //非草稿状态 + outsourceProject.setCheckProcessId(processInstance.getId()); + int row = projectMapper.updateById(outsourceProject); + if (row <= 0) { + throw new BusinessException(BusinessExceptionEnum.OUTSOURCE_PROJECT_CHECK_SUBMIT_FAILED); + } + return ReturnUtil.success(); + } + + @Override + public ReturnDTO projectCheckDelete(Long id) { + int updateFlag = projectMapper.updateForProjectCheck(id); + if(updateFlag > 0){ + return ReturnUtil.success(); + } + throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); + } + + @Override + public ReturnDTO projectCheckApprovalDelete(ApprovalDeleteRequest request) { + ReturnDTO returnDTO = approvalOperateService.delete(request); + if (ResponseData.DEFAULT_SUCCESS_CODE == returnDTO.getCode()) { + //清空验收所填字段及验收审批状态 + int updateFlag = projectMapper.updateForProjectCheck(request.getId()); + if(updateFlag > 0){ + return ReturnUtil.success(); + } + } + throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); + } + + @Override + @Transactional + public ReturnDTO projectCheckFailUpdate(OutsourceProjectCheckSaveOrUpdateRequest request) { + AuthUser user = ShiroKit.getUser(); + Assert.isFalse(Objects.isNull(user), () -> { + throw new BusinessException(BusinessExceptionEnum.LOGIN_USER_ACQUIRE_FAILED); + }); + BusinessOutsourceProject outsourceProject = ConvertUtils.sourceToTarget(request, BusinessOutsourceProject.class); + if (projectMapper.updateById(outsourceProject) > 0) { + baseApprovalService.failUpdate(request.getCheckProcessId()); + return ReturnUtil.success(); + } + throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); } private boolean saveBatchRelation(BusinessOutsourceProject outsourceProject) { List relationList = new ArrayList<>(); - outsourceProject.getDtos().forEach(dto -> { + outsourceProject.getOrderSampleList().forEach(dto -> { BusinessOutsourceProjectSampleRelation relation = new BusinessOutsourceProjectSampleRelation(); relation.setProjectId(outsourceProject.getId()); relation.setSampleId(dto.getSampleId()); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessOutsourceProjectService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessOutsourceProjectService.java index ba6238f..8950b4c 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessOutsourceProjectService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessOutsourceProjectService.java @@ -4,9 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.dto.BaseApprovalSubmitRequest; import com.casic.missiles.dto.ReturnDTO; -import com.casic.missiles.dto.business.outsource.OutsourceProjectApprovalListRequest; -import com.casic.missiles.dto.business.outsource.OutsourceProjectApprovalListResponse; -import com.casic.missiles.dto.business.outsource.OutsourceProjectSaveResponse; +import com.casic.missiles.dto.business.outsource.*; import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; import com.casic.missiles.model.business.BusinessOutsourceProject; @@ -30,11 +28,23 @@ ReturnDTO submitProjectApply(BaseApprovalSubmitRequest request); - ReturnDTO projectDelete(Long id); + ReturnDTO projectApplyDelete(Long id); ReturnDTO projectDetail(Long id) throws Exception; ReturnDTO projectApplyApprovalDelete(ApprovalDeleteRequest request); - ReturnDTO failUpdate(BusinessOutsourceProject outsourceProject); + ReturnDTO projectApplyFailUpdate(BusinessOutsourceProject outsourceProject); + + Page projectListPage(OutsourceProjectListRequest request, Page page); + + ReturnDTO saveOrUpdateProjectCheck(OutsourceProjectCheckSaveOrUpdateRequest request); + + ReturnDTO submitProjectCheck(BaseApprovalSubmitRequest request); + + ReturnDTO projectCheckDelete(Long id); + + ReturnDTO projectCheckApprovalDelete(ApprovalDeleteRequest request); + + ReturnDTO projectCheckFailUpdate(OutsourceProjectCheckSaveOrUpdateRequest request); } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/OutsourceProjectApplyEventPostProcessor.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/OutsourceProjectApplyEventPostProcessor.java new file mode 100644 index 0000000..bdf7a64 --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/OutsourceProjectApplyEventPostProcessor.java @@ -0,0 +1,67 @@ +package com.casic.missiles.service.listeners.processor; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.casic.missiles.dto.business.outsource.OrderSampleDTO; +import com.casic.missiles.dto.flowable.NotifyEventStatusDTO; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.business.MeasureTypeEnum; +import com.casic.missiles.enums.notifyevent.ActionStatusBeanEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.mapper.business.BusinessOrderSampleRelationMapper; +import com.casic.missiles.mapper.business.BusinessOutsourceProjectSampleRelationMapper; +import com.casic.missiles.mapper.customer.CustomerSampleMapper; +import com.casic.missiles.model.business.BusinessOutsourceProjectSampleRelation; +import com.casic.missiles.model.customer.CustomerSampleInfo; +import com.casic.missiles.service.listeners.NotifyEventPostProcessor; +import com.casic.missiles.utils.ConvertUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; + +/** + * @Description: 分包项目申请审批通过处理 + * 分包项目申请通过后更新样品检定方式为外包(关联表和样品库表都更新) + * @Author: wangpeng + * @Date: 2023/3/29 14:28 + */ +@Service(ActionStatusBeanEnum.OUTSOURCE_PROJECT_APPLY_BEAN_NAME) +public class OutsourceProjectApplyEventPostProcessor implements NotifyEventPostProcessor { + @Autowired + private BusinessOutsourceProjectSampleRelationMapper projectSampleRelationMapper; + @Autowired + private BusinessOrderSampleRelationMapper orderSampleRelationMapper; + @Autowired + private CustomerSampleMapper sampleMapper; + + @Override + public void doHandleNotifyEvent(NotifyEventStatusDTO notifyEventStatusDTO) { + Long id = Long.valueOf(notifyEventStatusDTO.getId()); + Assert.isFalse(Objects.isNull(id), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + //查询分包项目&样品关联表得到委托书id、样品id,按委托书、样品id更新委托书&样品关联表和样品表检定方式为外包 + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("project_id", id); + List outsourceProjectSampleRelations = projectSampleRelationMapper.selectList(wrapper); + if(CollectionUtils.isEmpty(outsourceProjectSampleRelations)){ + return; + } + List orderSampleDTOS = ConvertUtils.sourceToTarget(outsourceProjectSampleRelations, OrderSampleDTO.class); + int updateBatchFlag = orderSampleRelationMapper.updateTypeBatchByOrderAndSample(orderSampleDTOS); + CustomerSampleInfo sampleInfo = new CustomerSampleInfo(); + sampleInfo.setMeasureType(MeasureTypeEnum.OTHERS_UNDERTAKE); + QueryWrapper updateWrapper = new QueryWrapper<>(); + List sampleIds = outsourceProjectSampleRelations.stream().map(BusinessOutsourceProjectSampleRelation::getSampleId).collect(Collectors.toList()); + updateWrapper.in("id", sampleIds); + int updateFlag = sampleMapper.update(sampleInfo, updateWrapper); + if (updateBatchFlag <= 0 || updateFlag <= 0) { + throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); + } + } + +} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectApplyController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectApplyController.java index b7dae53..76facc2 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectApplyController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectApplyController.java @@ -11,6 +11,7 @@ import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.business.outsource.OutsourceProjectApprovalListRequest; import com.casic.missiles.dto.business.outsource.OutsourceProjectApprovalListResponse; +import com.casic.missiles.dto.business.outsource.OutsourceProjectListRequest; import com.casic.missiles.dto.business.outsource.OutsourceProjectSaveResponse; import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; import com.casic.missiles.enums.BusinessExceptionEnum; @@ -48,13 +49,14 @@ private IBusinessOutsourceProjectService projectService; @ApiOperation("分包项目申请审批列表(分页)") - @PostMapping("/approval/listPage") + @PostMapping("/approval/listPage") public ReturnDTO> approvalListPage(@RequestBody @Valid OutsourceProjectApprovalListRequest request, BindingResult bindingResult) throws Exception { if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } DictCodeUtils.validDictCode(request); Page page = PageFactory.defaultPage(); + request.setTypeFlag(1); List responseList = projectService.projectApplyApprovalListPage(request, page); page.setRecords(responseList); return ReturnUtil.success(super.packForBT(page)); @@ -64,7 +66,7 @@ @PostMapping("/save") @ResponseBody public ReturnDTO save(@RequestBody @Valid BusinessOutsourceProject outsourceProject, BindingResult bindingResult) throws Exception { - Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getDtos()), () -> { + Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getOrderSampleList()), () -> { throw new BusinessException(BusinessExceptionEnum.SAMPLE_ORDER_IDS_NULL); }); if(bindingResult.hasErrors()){ @@ -81,7 +83,7 @@ Assert.isFalse(Objects.isNull(outsourceProject.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getDtos()), () -> { + Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getOrderSampleList()), () -> { throw new BusinessException(BusinessExceptionEnum.SAMPLE_ORDER_IDS_NULL); }); if(bindingResult.hasErrors()){ @@ -108,19 +110,9 @@ Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { throw new BusinessException(BusinessExceptionEnum.ID_NULL); }); - return projectService.projectDelete(idDTO.getId()); + return projectService.projectApplyDelete(idDTO.getId()); } -// @ApiOperation("分包项目申请批量删除") -// @PostMapping("/batchDelete") -// @ResponseBody -// public ReturnDTO batchDelete(@RequestBody @Valid IdsDTO idsDTO) { -// Assert.isFalse(CollectionUtils.isEmpty(idsDTO.getIds()), () -> { -// throw new BusinessException(BusinessExceptionEnum.ID_NULL); -// }); -// return projectService.deleteBatchProject(idsDTO.getIds()); -// } - @ApiOperation("分包项目申请详情") @PostMapping("/detail") @ResponseBody @@ -151,6 +143,19 @@ if (bindingResult.hasErrors()) { throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); } - return projectService.failUpdate(outsourceProject); + return projectService.projectApplyFailUpdate(outsourceProject); + } + + /** + * 查询分包项目申请审批通过列表 + */ + @ApiOperation("分包项目申请审批通过列表(分页)") + @PostMapping("/listPage") + public ReturnDTO> listPage(@RequestBody @Valid OutsourceProjectListRequest request, BindingResult bindingResult) throws Exception { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + Page page = PageFactory.defaultPage(); + return ReturnUtil.success(super.packForBT(projectService.projectListPage(request, page))); } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectCheckController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectCheckController.java index f44d54c..6575ab7 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectCheckController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectCheckController.java @@ -1,10 +1,35 @@ package com.casic.missiles.controller.business; +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.casic.missiles.core.base.controller.ExportController; +import com.casic.missiles.core.page.PageFactory; +import com.casic.missiles.core.page.PageInfoBT; +import com.casic.missiles.dto.BaseApprovalSubmitRequest; +import com.casic.missiles.dto.IdDTO; +import com.casic.missiles.dto.ReturnDTO; +import com.casic.missiles.dto.ReturnUtil; +import com.casic.missiles.dto.business.outsource.OutsourceProjectApprovalListRequest; +import com.casic.missiles.dto.business.outsource.OutsourceProjectApprovalListResponse; +import com.casic.missiles.dto.business.outsource.OutsourceProjectCheckSaveOrUpdateRequest; +import com.casic.missiles.dto.business.outsource.OutsourceProjectSaveResponse; +import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.model.business.BusinessOutsourceProject; +import com.casic.missiles.model.exception.enums.CoreExceptionEnum; +import com.casic.missiles.service.business.IBusinessOutsourceProjectService; +import com.casic.missiles.utils.DictCodeUtils; import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.BindingResult; +import org.springframework.web.bind.annotation.*; + +import javax.validation.Valid; +import java.util.List; +import java.util.Objects; /** *

@@ -19,5 +44,99 @@ @RestController @RequestMapping("/business/outsourceProject/check") public class BusinessOutsourceProjectCheckController extends ExportController { + @Autowired + private IBusinessOutsourceProjectService projectService; + @ApiOperation("分包项目验收审批列表(分页)") + @PostMapping("/approval/listPage") + public ReturnDTO> approvalListPage(@RequestBody @Valid OutsourceProjectApprovalListRequest request, BindingResult bindingResult) throws Exception { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + DictCodeUtils.validDictCode(request); + Page page = PageFactory.defaultPage(); + request.setTypeFlag(2); + List responseList = projectService.projectApplyApprovalListPage(request, page); + page.setRecords(responseList); + return ReturnUtil.success(super.packForBT(page)); + } + + @ApiOperation("分包项目验收审批保存(保存至草稿箱)") + @PostMapping("/save") + @ResponseBody + public ReturnDTO save(@RequestBody @Valid OutsourceProjectCheckSaveOrUpdateRequest request, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.saveOrUpdateProjectCheck(request); + } + + @ApiOperation("草稿箱分包项目验收编辑") + @PostMapping("/draftUpdate") + @ResponseBody + public ReturnDTO draftUpdate(@RequestBody @Valid OutsourceProjectCheckSaveOrUpdateRequest request, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.saveOrUpdateProjectCheck(request); + } + + @ApiOperation("分包项目验收提交(未调用过保存接口保存至草稿箱需先调用保存接口,再调用该接口)") + @PostMapping("/submit") + @ResponseBody + public ReturnDTO submit(@RequestBody @Valid BaseApprovalSubmitRequest request, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.submitProjectCheck(request); + } + + /** + * 只清空验收所填字段及验收审批草稿状态 + */ + @ApiOperation("分包项目验收删除(草稿删除也调用该接口)") + @PostMapping("/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid IdDTO idDTO) { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return projectService.projectCheckDelete(idDTO.getId()); + } + + /** + * 复用分包项目申请详情service + */ + @ApiOperation("分包项目验收详情") + @PostMapping("/detail") + @ResponseBody + public ReturnDTO supplierDetail(@RequestBody @Valid IdDTO idDTO) throws Exception { + Assert.isFalse(Objects.isNull(idDTO.getId()), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + return projectService.projectDetail(idDTO.getId()); + } + + /** + * 清空验收所填字段及验收审批状态 + */ + @ApiOperation("分包项目验收审批操作-删除") + @PostMapping("/approval/operate/delete") + @ResponseBody + public ReturnDTO delete(@RequestBody @Valid ApprovalDeleteRequest request, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.projectCheckApprovalDelete(request); + } + + @ApiOperation("未通过分包项目验收编辑(驳回后的分包项目验收重新编辑,仅未通过列表中的编辑按钮可调用)") + @PostMapping("/failUpdate") + @ResponseBody + public ReturnDTO failUpdate(@RequestBody @Valid OutsourceProjectCheckSaveOrUpdateRequest request, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return projectService.projectCheckFailUpdate(request); + } } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java index e792441..2cc4a24 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/BusinessExceptionEnum.java @@ -68,8 +68,10 @@ OUTSOURCER_SAVE_FAILED(2419, "分包方保存至草稿箱失败"), OUTSOURCER_SUBMIT_FAILED(2420, "分包方提交处理失败"), - OUTSOURCE_PROJECT_SAVE_FAILED(2421, "分包项目保存至草稿箱失败"), - OUTSOURCE_PROJECT_SUBMIT_FAILED(2422, "分包项目提交处理失败"); + OUTSOURCE_PROJECT_APPLY_SAVE_FAILED(2421, "分包项目申请保存至草稿箱失败"), + OUTSOURCE_PROJECT_APPLY_SUBMIT_FAILED(2422, "分包项目申请提交处理失败"), + OUTSOURCE_PROJECT_CHECK_SAVE_FAILED(2423, "分包项目验收保存至草稿箱失败"), + OUTSOURCE_PROJECT_CHECK_SUBMIT_FAILED(2424, "分包项目验收提交处理失败"); private Integer code; private String message; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java index a318a34..d3d5eb4 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/ActionStatusBeanEnum.java @@ -17,4 +17,8 @@ String CERTIFICATE_REPORT_BEAN_NAME = "certificateReportBean"; + String OUTSOURCE_PROJECT_APPLY_BEAN_NAME = "outsourceProjectApplyBean"; + + String OUTSOURCE_PROJECT_CHECK_BEAN_NAME = "outsourceProjectCheckBean"; + } diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareActionStatusEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareActionStatusEnum.java index 2435309..c45da69 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareActionStatusEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/notifyevent/AwareActionStatusEnum.java @@ -19,6 +19,8 @@ DEVICE_LEASE_BORROWED(LEASE_BEAN_NAME, EquipmentApplyProcessEnum.WAIT_BORROWED), CERTIFICATE_PRINT_STATUS(CERTIFICATE_BEAN_NAME, ""), CERTIFICATE_REPORT_STATUS(CERTIFICATE_REPORT_BEAN_NAME, ""), + OUTSOURCE_PROJECT_APPLY(OUTSOURCE_PROJECT_APPLY_BEAN_NAME, ""), + OUTSOURCE_PROJECT_CHECK(OUTSOURCE_PROJECT_CHECK_BEAN_NAME, ""), ACTION_STATUS_MAP(new HashMap() { { put(ApplyFromIdEnum.STANDARD_REVERT_APPROVAL, EQUIPMENT_APPLY_USE); @@ -28,12 +30,14 @@ put(ApplyFromIdEnum.DEVICE_UNUSED_APPROVAL, DEVICE_MANAGING_IDLE); put(ApplyFromIdEnum.DEVICE_SEALED_APPROVAL, DEVICE_MANAGING_SEALED); put(ApplyFromIdEnum.DEVICE_UNSEALED_APPROVAL, DEVICE_MANAGING_USE); - put(ApplyFromIdEnum.DEVICE_SCRAPPED_ROVAL, DEVICE_MANAGING_SCRAP); + put(ApplyFromIdEnum.DEVICE_SCRAP_APPROVAL, DEVICE_MANAGING_SCRAP); put(ApplyFromIdEnum.DEVICE_HANDLE_APPROVAL, DEVICE_MANAGING_MANAGEMENT); put(ApplyFromIdEnum.DEVICE_CONSUMING_APPROVAL, DEVICE_LEASE_CONSUMING); // 设备领用申请 put(ApplyFromIdEnum.DEVICE_BORROW_APPROVAL, DEVICE_LEASE_BORROWED); // 设备借用申请 put(ApplyFromIdEnum.CERTIFICATE_PRINT_APPROVAL, CERTIFICATE_PRINT_STATUS); //证书打印审批通过状态回填 put(ApplyFromIdEnum.CERTIFICATE_REPORT_APPROVAL, CERTIFICATE_REPORT_STATUS); //证书报告审批通过状态回填 + put(ApplyFromIdEnum.OUTSOURCE_PROJECT_APPLY_APPROVAL, OUTSOURCE_PROJECT_APPLY); + put(ApplyFromIdEnum.OUTSOURCE_PROJECT_CHECK_APPROVAL, OUTSOURCE_PROJECT_CHECK); } }); String actionBeanName; diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java index 5d16918..61c86df 100644 --- a/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java +++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/system/ApplyFromIdEnum.java @@ -12,7 +12,7 @@ String DEVICE_UNUSED_APPROVAL = "sbglsbxzsq"; // 设备闲置申请 String DEVICE_SEALED_APPROVAL = "sbglsbfcsq"; // 设备封存申请 String DEVICE_UNSEALED_APPROVAL = "sbglsbqfsq"; // 设备启封申请 - String DEVICE_SCRAPPED_ROVAL = "sbglsbbfsq"; // 设备报废申请 + String DEVICE_SCRAP_APPROVAL = "sbglsbbfsq"; // 设备报废申请 String DEVICE_HANDLE_APPROVAL = "sbglsbczsq"; // 设备处置申请 String DEVICE_CONSUMING_APPROVAL = "clsblysp"; // 设备领用申请 String DEVICE_BORROW_APPROVAL = "clsbjysp"; // 设备借用申请 @@ -20,4 +20,7 @@ String DEVICE_FIX_ACCEPTANCE = "sbglsbjxbyysd"; // 设备检修保养验收单 String CERTIFICATE_PRINT_APPROVAL = "ywglzsdy"; // 证书打印通过 String CERTIFICATE_REPORT_APPROVAL = "ywglzsbg"; // 证书报告通过 + String OUTSOURCER_APPROVAL = "ywglfbfzg"; // 分包方资格 + String OUTSOURCE_PROJECT_APPLY_APPROVAL = "ywglfbxmsq"; // 分包项目申请 + String OUTSOURCE_PROJECT_CHECK_APPROVAL = "ywglfbxmys"; // 分包项目验收 } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java index bddf56f..344358a 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java @@ -7,6 +7,7 @@ import com.casic.missiles.dto.business.SampleHandOutListResponse; import com.casic.missiles.dto.business.dispatch.DeviceDispatchDTO; import com.casic.missiles.dto.business.dispatch.DeviceDispatchVO; +import com.casic.missiles.dto.business.outsource.OrderSampleDTO; import com.casic.missiles.dto.customer.sample.CustomerSampleListVO; import com.casic.missiles.model.business.BusinessOrderSampleRelation; import org.apache.ibatis.annotations.Param; @@ -32,4 +33,8 @@ int updateByOrderIdAndSampleId(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId, @Param("status") String status); CustomerSampleListVO getInterChangeSampleList(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId); + + int updateTypeBatchByOrderAndSample(@Param("orderSampleDTOS") List orderSampleDTOS); + + int updateStatusBatchByOrderAndSample(@Param("orderSampleDTOS") List orderSampleDTOS); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOutsourceProjectMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOutsourceProjectMapper.java index b1724d8..b6d6726 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOutsourceProjectMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOutsourceProjectMapper.java @@ -26,4 +26,6 @@ Long selectMaxOutsourcerNo(); BusinessOutsourceProject selectProjectById(@Param("id") Long id); + + int updateForProjectCheck(@Param("id") Long id); } diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml index 95012eb..881bbb2 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -180,4 +180,19 @@ )bosr ON bosr.sampleId=bo.id + + + UPDATE business_order_sample_relation + SET measure_type = 2 + WHERE order_id = #{item.orderId} AND sample_id = #{item.sampleId} + + + + + + UPDATE business_order_sample_relation + SET sample_status = 4 + WHERE order_id = #{item.orderId} AND sample_id = #{item.sampleId} + + diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourceProjectMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourceProjectMapper.xml index f35e05d..6c69ac9 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourceProjectMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourceProjectMapper.xml @@ -8,37 +8,43 @@ + + - + + - + + - - - id, project_no, project_name, applicant_id, applicant_name, applicant_time, pre_cost, outsourcer_id, outsource_reason, pre_start_time, pre_end_time, minio_file_name, apply_approval_status, apply_process_id, check_approval_status, check_process_id, check_conclusion, check_time, remark, create_time, update_time - - + + + UPDATE business_outsource_project + SET checker_id = null, checker_name = null, check_conclusion = null, check_minio_file_name = null, check_remark = null, check_approval_status = null + WHERE id = #{id} + diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourcerInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourcerInfoMapper.xml index a00bac6..2273d52 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourcerInfoMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourcerInfoMapper.xml @@ -47,17 +47,11 @@ - - - - id, outsourcer_no, outsourcer_name, outsourcer_brief_name, outsourcer_size, business_size, grade, evaluation, business_content, tax_number, bank_account, bank_name, bank_account_number, postal_code, director, phone, mobile, email, website, address_country, address_province, address_city, address_area, full_address, address_country_name, address_province_name, address_city_name, address_area_name, invoice_country, invoice_province, invoice_city, invoice_area, invoice_full_address, invoice_country_name, invoice_province_name, invoice_city_name, invoice_area_name, business_scope, minio_file_name, approval_status, process_id, remark, create_user, update_user, is_del, create_time, update_time - - SELECT * FROM business_site_executive_info diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectApprovalListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectApprovalListRequest.java index b7d61d6..43e1229 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectApprovalListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectApprovalListRequest.java @@ -46,4 +46,8 @@ @ApiModelProperty(hidden = true) private Long createUserId; + + //标识是申请or验收,代码中设置 + @ApiModelProperty(hidden = true) + private Integer typeFlag; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectApprovalListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectApprovalListResponse.java index 3dc13d9..ea8bc09 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectApprovalListResponse.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectApprovalListResponse.java @@ -24,6 +24,12 @@ @ApiModelProperty(value = "申请人名字", dataType = "String") private String applicantName; + @ApiModelProperty(value = "验收人名字", dataType = "String") + private String checkerName; + + @ApiModelProperty(value = "验收时间", dataType = "String") + private String checkTime; + @ApiModelProperty(value = "分包方名称", dataType = "String") private String outsourcerName; @@ -42,8 +48,17 @@ @ApiModelProperty(value = "分包项目申请审批状态类型-字典value", dataType = "String") private String applyApprovalStatusName; - @ApiModelProperty(value = "流程实例id", dataType = "String") - private String processId; + @ApiModelProperty(value = "分包项目验收审批状态类型-字典code", dataType = "String") + private String checkApprovalStatus; + + @ApiModelProperty(value = "分包项目验收审批状态类型-字典value", dataType = "String") + private String checkApprovalStatusName; + + @ApiModelProperty(value = "分包项目申请流程实例id", dataType = "String") + private String applyProcessId; + + @ApiModelProperty(value = "分包项目验收流程实例id", dataType = "String") + private String checkProcessId; @ApiModelProperty(value = "任务id(同意、驳回等操作使用)", dataType = "String") private String taskId; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectCheckSaveOrUpdateRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectCheckSaveOrUpdateRequest.java new file mode 100644 index 0000000..9a61a8b --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectCheckSaveOrUpdateRequest.java @@ -0,0 +1,37 @@ +package com.casic.missiles.dto.business.outsource; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; + +/** + * @Description: 分包项目验收草稿箱保存/编辑请求实体 + * @Author: wangpeng + * @Date: 2023/3/29 9:03 + */ +@ApiModel +@Data +public class OutsourceProjectCheckSaveOrUpdateRequest { + @NotNull(message = "分包项目主键id不能为空") + @ApiModelProperty(value = "主键id", dataType = "Long", required = true) + private Long id; + + @NotBlank(message = "验收结论不能为空") + @ApiModelProperty(value = "验收结论", dataType = "String", required = true) + private String checkConclusion; + + @ApiModelProperty(value = "验收时间", dataType = "String", required = true) + private String checkTime; + + @ApiModelProperty(value = "项目验收文件-minio存储文件名", dataType = "String", required = true) + private String checkMinioFileName; + + @ApiModelProperty(value = "项目验收备注", dataType = "String", required = true) + private String checkRemark; + + @ApiModelProperty(value = "流程实例id(未通过验收编辑接口入参必传)", dataType = "String") + private String checkProcessId; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectListRequest.java new file mode 100644 index 0000000..c325bca --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OutsourceProjectListRequest.java @@ -0,0 +1,26 @@ +package com.casic.missiles.dto.business.outsource; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + * @Description: 分包项目列表请求实体 + * @Author: wangpeng + * @Date: 2023/3/29 11:22 + */ +@Data +@ApiModel +public class OutsourceProjectListRequest { + @NotBlank(message = "表单id不能为空") + @ApiModelProperty(value = "表单id(流程定义对应的表单id,等价于业务id)", dataType = "String") + private String formId; + + @ApiModelProperty(value = "分包项目编号", dataType = "String") + private String projectNo; + + @ApiModelProperty(value = "分包项目名称", dataType = "String") + private String projectName; +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourceProject.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourceProject.java index 3b88cf1..8be4953 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourceProject.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourceProject.java @@ -44,54 +44,42 @@ @TableId("id") private Long id; - /** - * 分包项目编号 - */ @ExcelProperty("分包项目编号") - @ApiModelProperty(value = "分包项目编号", dataType = "String") + @ApiModelProperty(value = "分包项目编号(列表、更新接口参数)", dataType = "String") @TableField("project_no") private String projectNo; - /** - * 分包项目名称 - */ @ExcelProperty("分包项目名称") @ApiModelProperty(value = "分包项目名称", dataType = "String") @TableField("project_name") private String projectName; - /** - * 申请人id - */ - @ApiModelProperty(value = "申请人id", dataType = "Long") + @ApiModelProperty(hidden = true) @TableField("applicant_id") private Long applicantId; - /** - * 申请人名字 - */ + @ApiModelProperty(hidden = true) + @TableField("checker_id") + private Long checkerId; + @ExcelProperty("申请人名字") - @ApiModelProperty(value = "申请人名字", dataType = "String") + @ApiModelProperty(hidden = true) @TableField("applicant_name") private String applicantName; - /** - * 申请时间 - */ + @ExcelProperty("验收人名字") + @ApiModelProperty(hidden = true) + @TableField("checker_name") + private String checkerName; + @ApiModelProperty(value = "申请时间", dataType = "String") @TableField("applicant_time") private String applicantTime; - /** - * 预计费用 - */ @ApiModelProperty(value = "预计费用", dataType = "String") @TableField("pre_cost") private String preCost; - /** - * 分包方id - */ @ApiModelProperty(value = "分包方id", dataType = "String") @TableField("outsourcer_id") private Long outsourcerId; @@ -101,43 +89,39 @@ @TableField(exist = false) private String outsourcerName; - /** - * 分包原因-字典code */ @ApiModelProperty(value = "分包原因-字典code", dataType = "String") @NotBlank(message = "分包原因不能为空") @TableField("outsource_reason") private String outsourceReason; - /** - * 分包原因-字典value - */ @ApiModelProperty(value = "分包原因-字典value", dataType = "String") @ExcelProperty("分包原因") @TableField(exist = false) private String outsourceReasonName; - /** - * 预计开始时间 - */ @ApiModelProperty(value = "预计开始时间", dataType = "String") @ExcelProperty("预计开始时间") @TableField("pre_start_time") private String preStartTime; - /** - * 预计结束时间 - */ @ApiModelProperty(value = "预计结束时间", dataType = "String") @ExcelProperty("预计结束时间") @TableField("pre_end_time") private String preEndTime; /** - * minio存储文件名 + * 项目申请文件-minio存储文件名 */ - @ApiModelProperty(value = "minio存储文件名", dataType = "String") - @TableField("minio_file_name") - private String minioFileName; + @ApiModelProperty(value = "项目申请文件-minio存储文件名", dataType = "String") + @TableField("apply_minio_file_name") + private String applyMinioFileName; + + /** + * 项目验收文件-minio存储文件名 + */ + @ApiModelProperty(hidden = true) + @TableField("check_minio_file_name") + private String checkMinioFileName; /** * 申请审批状态 @@ -163,14 +147,14 @@ /** * 验收流程实例id */ - @ApiModelProperty(value = "流程实例id(未通过验收编辑接口必传参数)", dataType = "String") + @ApiModelProperty(hidden = true) @TableField("check_process_id") private String checkProcessId; /** * 验收结论 */ - @ApiModelProperty(value = "验收结论", dataType = "String") + @ApiModelProperty(hidden = true) @ExcelProperty("验收结论") @TableField("check_conclusion") private String checkConclusion; @@ -178,18 +162,20 @@ /** * 验收时间 */ - @ApiModelProperty(value = "验收时间", dataType = "String") + @ApiModelProperty(hidden = true) @ExcelProperty("验收时间") @TableField("check_time") private String checkTime; - /** - * 备注 - */ - @ApiModelProperty(value = "备注", dataType = "String") - @ExcelProperty("备注") - @TableField("remark") - private String remark; + @ApiModelProperty(value = "项目申请备注", dataType = "String") + @ExcelProperty("项目申请备注") + @TableField("apply_remark") + private String applyRemark; + + @ApiModelProperty(hidden = true) + @ExcelProperty("项目验收备注") + @TableField("check_remark") + private String checkRemark; @ApiModelProperty(hidden = true) @TableField("create_user") @@ -211,7 +197,7 @@ @ApiModelProperty(value = "样品&委托书列表(保存/编辑草稿接口入参使用)", dataType = "List") @TableField(exist = false) - private List dtos; + private List orderSampleList; @ApiModelProperty(value = "样品列表(详情接口出参使用)", dataType = "List") @TableField(exist = false) diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourcerInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourcerInfo.java index 2e1da88..4c37d69 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourcerInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourcerInfo.java @@ -240,13 +240,6 @@ private String addressArea; /** - * 公司地址-详细地址 - */ - @ApiModelProperty(value = "公司地址-详细地址", dataType = "String") - @TableField("full_address") - private String fullAddress; - - /** * 公司地址-国家 */ @ApiModelProperty(value = "公司地址-国家", dataType = "String") @@ -278,6 +271,14 @@ private String addressAreaName; /** + * 公司地址-详细地址 + */ + @ExcelProperty("公司地址-详细地址") + @ApiModelProperty(value = "公司地址-详细地址", dataType = "String") + @TableField("full_address") + private String fullAddress; + + /** * 开票地址-国家 */ @ApiModelProperty(value = "开票地址-国家编码", dataType = "String") @@ -371,7 +372,8 @@ /** * 备注 */ - @ApiModelProperty(value = "公司地址-省", dataType = "String") + @ExcelProperty("备注") + @ApiModelProperty(value = "备注", dataType = "String") @TableField("remark") private String remark; @@ -380,15 +382,11 @@ private Long createUser; @ApiModelProperty(hidden = true) - @TableField("update_user") - private Long updateUser; - - @ApiModelProperty(hidden = true) @TableField("is_del") private Integer isDel; @ExcelProperty("创建时间") - @ApiModelProperty(value = "创建时间", dataType = "String") + @ApiModelProperty(value = "创建时间(列表接口返回参数)", dataType = "String") @TableField("create_time") private String createTime; diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessSiteExecutiveInfo.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessSiteExecutiveInfo.java index d54a93a..ec99721 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessSiteExecutiveInfo.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessSiteExecutiveInfo.java @@ -105,10 +105,6 @@ private Long createUser; @ApiModelProperty(hidden = true) - @TableField("update_user") - private Long updateUser; - - @ApiModelProperty(hidden = true) @TableField("is_del") private Integer isDel; @@ -120,5 +116,4 @@ @TableField("update_time") private String updateTime; - } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java index bd4a401..b05f035 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java @@ -20,6 +20,7 @@ import com.casic.missiles.enums.business.OrderStatusEnum; import com.casic.missiles.enums.sample.CurrentSegmentEnum; import com.casic.missiles.enums.sample.SampleStatusEnum; +import com.casic.missiles.enums.system.ApprovalStatusEnum; import com.casic.missiles.exception.BusinessException; import com.casic.missiles.mapper.business.*; import com.casic.missiles.mapper.meter.MeterOrganizeMapper; @@ -594,6 +595,7 @@ wrapper.eq("order_id", orderId); wrapper.eq("sample_id", sampleId); wrapper.eq("measure_dept_id", deptId); + wrapper.eq("approval_status", ApprovalStatusEnum.PASSED); return wrapper; } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOutsourceProjectServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOutsourceProjectServiceImpl.java index f9d060f..86f037e 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOutsourceProjectServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOutsourceProjectServiceImpl.java @@ -10,10 +10,7 @@ import com.casic.missiles.dto.BaseApprovalSubmitRequest; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; -import com.casic.missiles.dto.business.outsource.OrderSampleResponseDTO; -import com.casic.missiles.dto.business.outsource.OutsourceProjectApprovalListRequest; -import com.casic.missiles.dto.business.outsource.OutsourceProjectApprovalListResponse; -import com.casic.missiles.dto.business.outsource.OutsourceProjectSaveResponse; +import com.casic.missiles.dto.business.outsource.*; import com.casic.missiles.dto.flowable.AllApproveDTO; import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; import com.casic.missiles.dto.flowable.ToBeApprovedDTO; @@ -101,9 +98,11 @@ throw new BusinessException(BusinessExceptionEnum.LOGIN_USER_ACQUIRE_FAILED); }); outsourceProject.setCreateUser(ShiroKit.getUser().getId()); //登录者用户id + outsourceProject.setApplicantId(ShiroKit.getUser().getId()); //登录者用户id + outsourceProject.setApplicantName(ShiroKit.getUser().getName()); //登录者用户名 int insertFlag = projectMapper.insert(outsourceProject); Assert.isFalse(insertFlag <= 0, () -> { - throw new BusinessException(BusinessExceptionEnum.OUTSOURCE_PROJECT_SAVE_FAILED); + throw new BusinessException(BusinessExceptionEnum.OUTSOURCE_PROJECT_APPLY_SAVE_FAILED); }); //保存关联样品 saveBatchRelation(outsourceProject); @@ -151,13 +150,14 @@ outsourceProject.setApplyProcessId(processInstance.getId()); int row = projectMapper.updateById(outsourceProject); if (row <= 0) { - throw new BusinessException(BusinessExceptionEnum.OUTSOURCE_PROJECT_SUBMIT_FAILED); + throw new BusinessException(BusinessExceptionEnum.OUTSOURCE_PROJECT_APPLY_SUBMIT_FAILED); } return ReturnUtil.success(); } @Override - public ReturnDTO projectDelete(Long id) { + @Transactional + public ReturnDTO projectApplyDelete(Long id) { if (projectMapper.deleteById(id) > 0) { //关联样品删除 QueryWrapper wrapper = new QueryWrapper<>(); @@ -192,7 +192,7 @@ @Override @Transactional - public ReturnDTO failUpdate(BusinessOutsourceProject outsourceProject) { + public ReturnDTO projectApplyFailUpdate(BusinessOutsourceProject outsourceProject) { AuthUser user = ShiroKit.getUser(); Assert.isFalse(Objects.isNull(user), () -> { throw new BusinessException(BusinessExceptionEnum.LOGIN_USER_ACQUIRE_FAILED); @@ -208,12 +208,125 @@ return ReturnUtil.success(); } throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); + } + @Override + public Page projectListPage(OutsourceProjectListRequest request, Page page) { + QueryWrapper wrapper = getWrapper(request); + Page projectPage = projectMapper.selectPage(page, wrapper); + return projectPage; + } + + private QueryWrapper getWrapper(OutsourceProjectListRequest request) { + //flowable中已通过状态的业务id列表 + List passedList = baseApprovalService.getPassedList(request.getFormId()); + QueryWrapper wrapper = new QueryWrapper<>(); + //无审批通过则返回空数据 + if (CollectionUtils.isEmpty(passedList)) { + wrapper.eq("id", 12344321); + return wrapper; + } + wrapper.like(StringUtils.isNotBlank(request.getProjectNo()), "project_no", request.getProjectNo()); + wrapper.like(StringUtils.isNotBlank(request.getProjectName()), "project_name", request.getProjectName()); + //验收状态若是草稿或空则可以被选择进行验收 + wrapper.eq("check_approval_status", ApprovalStatusEnum.DRAFT).or().isNull("check_approval_status"); + wrapper.in("id", passedList); + wrapper.orderByDesc("create_time"); + return wrapper; + } + + @Override + public ReturnDTO saveOrUpdateProjectCheck(OutsourceProjectCheckSaveOrUpdateRequest request) { + BusinessOutsourceProject outsourceProject = projectMapper.selectById(request.getId()); + outsourceProject.setCheckApprovalStatus(ApprovalStatusEnum.DRAFT); //草稿箱状态 + Assert.isFalse(Objects.isNull(ShiroKit.getUser()), () -> { + throw new BusinessException(BusinessExceptionEnum.LOGIN_USER_ACQUIRE_FAILED); + }); + //验收的数据是已通过申请的数据,只做更新即可 + outsourceProject.setCheckerId(ShiroKit.getUser().getId()); //登录者用户id + outsourceProject.setCheckerName(ShiroKit.getUser().getName()); //登录者用户名 + outsourceProject.setCheckConclusion(request.getCheckConclusion()); + outsourceProject.setCheckTime(request.getCheckTime()); + outsourceProject.setCheckMinioFileName(request.getCheckMinioFileName()); + outsourceProject.setCheckRemark(request.getCheckRemark()); + int updateFlag = projectMapper.updateById(outsourceProject); + Assert.isFalse(updateFlag <= 0, () -> { + throw new BusinessException(BusinessExceptionEnum.OUTSOURCE_PROJECT_CHECK_SAVE_FAILED); + }); + OutsourceProjectSaveResponse saveResponse = new OutsourceProjectSaveResponse(); + saveResponse.setId(outsourceProject.getId()); + saveResponse.setProjectNo(outsourceProject.getProjectNo()); + return ReturnUtil.success(saveResponse); + } + + @Override + @Transactional + public ReturnDTO submitProjectCheck(BaseApprovalSubmitRequest request) { + //已取消后的提交需先删除原有实例 + if (StringUtils.isNotEmpty(request.getProcessId())){ + runtimeService.updateBusinessStatus(request.getProcessId(), ApprovalStatusEnum.DELETED); + runtimeService.deleteProcessInstance(request.getProcessId(), "删除"); + } + //1.根据表单id获取流程定义id + //2.根据流程定义id启动流程实例 + String formId = request.getFormId(); + ReturnDTO returnDTO = baseApprovalService.processSubmit(formId, request.getId()); + if (ResponseData.DEFAULT_SUCCESS_CODE != returnDTO.getCode()) { + return returnDTO; + } + ProcessInstance processInstance = (ProcessInstance) returnDTO.getData(); + + BusinessOutsourceProject outsourceProject = new BusinessOutsourceProject(); + outsourceProject.setId(request.getId()); + outsourceProject.setCheckApprovalStatus(ApprovalStatusEnum.UN_DRAFT); //非草稿状态 + outsourceProject.setCheckProcessId(processInstance.getId()); + int row = projectMapper.updateById(outsourceProject); + if (row <= 0) { + throw new BusinessException(BusinessExceptionEnum.OUTSOURCE_PROJECT_CHECK_SUBMIT_FAILED); + } + return ReturnUtil.success(); + } + + @Override + public ReturnDTO projectCheckDelete(Long id) { + int updateFlag = projectMapper.updateForProjectCheck(id); + if(updateFlag > 0){ + return ReturnUtil.success(); + } + throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); + } + + @Override + public ReturnDTO projectCheckApprovalDelete(ApprovalDeleteRequest request) { + ReturnDTO returnDTO = approvalOperateService.delete(request); + if (ResponseData.DEFAULT_SUCCESS_CODE == returnDTO.getCode()) { + //清空验收所填字段及验收审批状态 + int updateFlag = projectMapper.updateForProjectCheck(request.getId()); + if(updateFlag > 0){ + return ReturnUtil.success(); + } + } + throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); + } + + @Override + @Transactional + public ReturnDTO projectCheckFailUpdate(OutsourceProjectCheckSaveOrUpdateRequest request) { + AuthUser user = ShiroKit.getUser(); + Assert.isFalse(Objects.isNull(user), () -> { + throw new BusinessException(BusinessExceptionEnum.LOGIN_USER_ACQUIRE_FAILED); + }); + BusinessOutsourceProject outsourceProject = ConvertUtils.sourceToTarget(request, BusinessOutsourceProject.class); + if (projectMapper.updateById(outsourceProject) > 0) { + baseApprovalService.failUpdate(request.getCheckProcessId()); + return ReturnUtil.success(); + } + throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); } private boolean saveBatchRelation(BusinessOutsourceProject outsourceProject) { List relationList = new ArrayList<>(); - outsourceProject.getDtos().forEach(dto -> { + outsourceProject.getOrderSampleList().forEach(dto -> { BusinessOutsourceProjectSampleRelation relation = new BusinessOutsourceProjectSampleRelation(); relation.setProjectId(outsourceProject.getId()); relation.setSampleId(dto.getSampleId()); diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessOutsourceProjectService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessOutsourceProjectService.java index ba6238f..8950b4c 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessOutsourceProjectService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessOutsourceProjectService.java @@ -4,9 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.casic.missiles.dto.BaseApprovalSubmitRequest; import com.casic.missiles.dto.ReturnDTO; -import com.casic.missiles.dto.business.outsource.OutsourceProjectApprovalListRequest; -import com.casic.missiles.dto.business.outsource.OutsourceProjectApprovalListResponse; -import com.casic.missiles.dto.business.outsource.OutsourceProjectSaveResponse; +import com.casic.missiles.dto.business.outsource.*; import com.casic.missiles.dto.flowable.ApprovalDeleteRequest; import com.casic.missiles.model.business.BusinessOutsourceProject; @@ -30,11 +28,23 @@ ReturnDTO submitProjectApply(BaseApprovalSubmitRequest request); - ReturnDTO projectDelete(Long id); + ReturnDTO projectApplyDelete(Long id); ReturnDTO projectDetail(Long id) throws Exception; ReturnDTO projectApplyApprovalDelete(ApprovalDeleteRequest request); - ReturnDTO failUpdate(BusinessOutsourceProject outsourceProject); + ReturnDTO projectApplyFailUpdate(BusinessOutsourceProject outsourceProject); + + Page projectListPage(OutsourceProjectListRequest request, Page page); + + ReturnDTO saveOrUpdateProjectCheck(OutsourceProjectCheckSaveOrUpdateRequest request); + + ReturnDTO submitProjectCheck(BaseApprovalSubmitRequest request); + + ReturnDTO projectCheckDelete(Long id); + + ReturnDTO projectCheckApprovalDelete(ApprovalDeleteRequest request); + + ReturnDTO projectCheckFailUpdate(OutsourceProjectCheckSaveOrUpdateRequest request); } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/OutsourceProjectApplyEventPostProcessor.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/OutsourceProjectApplyEventPostProcessor.java new file mode 100644 index 0000000..bdf7a64 --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/OutsourceProjectApplyEventPostProcessor.java @@ -0,0 +1,67 @@ +package com.casic.missiles.service.listeners.processor; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.casic.missiles.dto.business.outsource.OrderSampleDTO; +import com.casic.missiles.dto.flowable.NotifyEventStatusDTO; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.business.MeasureTypeEnum; +import com.casic.missiles.enums.notifyevent.ActionStatusBeanEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.mapper.business.BusinessOrderSampleRelationMapper; +import com.casic.missiles.mapper.business.BusinessOutsourceProjectSampleRelationMapper; +import com.casic.missiles.mapper.customer.CustomerSampleMapper; +import com.casic.missiles.model.business.BusinessOutsourceProjectSampleRelation; +import com.casic.missiles.model.customer.CustomerSampleInfo; +import com.casic.missiles.service.listeners.NotifyEventPostProcessor; +import com.casic.missiles.utils.ConvertUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; + +/** + * @Description: 分包项目申请审批通过处理 + * 分包项目申请通过后更新样品检定方式为外包(关联表和样品库表都更新) + * @Author: wangpeng + * @Date: 2023/3/29 14:28 + */ +@Service(ActionStatusBeanEnum.OUTSOURCE_PROJECT_APPLY_BEAN_NAME) +public class OutsourceProjectApplyEventPostProcessor implements NotifyEventPostProcessor { + @Autowired + private BusinessOutsourceProjectSampleRelationMapper projectSampleRelationMapper; + @Autowired + private BusinessOrderSampleRelationMapper orderSampleRelationMapper; + @Autowired + private CustomerSampleMapper sampleMapper; + + @Override + public void doHandleNotifyEvent(NotifyEventStatusDTO notifyEventStatusDTO) { + Long id = Long.valueOf(notifyEventStatusDTO.getId()); + Assert.isFalse(Objects.isNull(id), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + //查询分包项目&样品关联表得到委托书id、样品id,按委托书、样品id更新委托书&样品关联表和样品表检定方式为外包 + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("project_id", id); + List outsourceProjectSampleRelations = projectSampleRelationMapper.selectList(wrapper); + if(CollectionUtils.isEmpty(outsourceProjectSampleRelations)){ + return; + } + List orderSampleDTOS = ConvertUtils.sourceToTarget(outsourceProjectSampleRelations, OrderSampleDTO.class); + int updateBatchFlag = orderSampleRelationMapper.updateTypeBatchByOrderAndSample(orderSampleDTOS); + CustomerSampleInfo sampleInfo = new CustomerSampleInfo(); + sampleInfo.setMeasureType(MeasureTypeEnum.OTHERS_UNDERTAKE); + QueryWrapper updateWrapper = new QueryWrapper<>(); + List sampleIds = outsourceProjectSampleRelations.stream().map(BusinessOutsourceProjectSampleRelation::getSampleId).collect(Collectors.toList()); + updateWrapper.in("id", sampleIds); + int updateFlag = sampleMapper.update(sampleInfo, updateWrapper); + if (updateBatchFlag <= 0 || updateFlag <= 0) { + throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); + } + } + +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/OutsourceProjectCheckEventPostProcessor.java b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/OutsourceProjectCheckEventPostProcessor.java new file mode 100644 index 0000000..e1ec83a --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/listeners/processor/OutsourceProjectCheckEventPostProcessor.java @@ -0,0 +1,55 @@ +package com.casic.missiles.service.listeners.processor; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.casic.missiles.dto.business.outsource.OrderSampleDTO; +import com.casic.missiles.dto.flowable.NotifyEventStatusDTO; +import com.casic.missiles.enums.BusinessExceptionEnum; +import com.casic.missiles.enums.notifyevent.ActionStatusBeanEnum; +import com.casic.missiles.exception.BusinessException; +import com.casic.missiles.mapper.business.BusinessOrderSampleRelationMapper; +import com.casic.missiles.mapper.business.BusinessOutsourceProjectSampleRelationMapper; +import com.casic.missiles.model.business.BusinessOutsourceProjectSampleRelation; +import com.casic.missiles.service.listeners.NotifyEventPostProcessor; +import com.casic.missiles.utils.ConvertUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; + +import java.util.List; +import java.util.Objects; + +/** + * @Description: 分包项目验收审批通过处理 + * 分包项目验收通过后更新所有样品状态为检测完 + * @Author: wangpeng + * @Date: 2023/3/29 16:21 + */ +@Service(ActionStatusBeanEnum.OUTSOURCE_PROJECT_CHECK_BEAN_NAME) +public class OutsourceProjectCheckEventPostProcessor implements NotifyEventPostProcessor { + @Autowired + private BusinessOutsourceProjectSampleRelationMapper projectSampleRelationMapper; + @Autowired + private BusinessOrderSampleRelationMapper orderSampleRelationMapper; + + @Override + public void doHandleNotifyEvent(NotifyEventStatusDTO notifyEventStatusDTO) { + Long id = Long.valueOf(notifyEventStatusDTO.getId()); + Assert.isFalse(Objects.isNull(id), () -> { + throw new BusinessException(BusinessExceptionEnum.ID_NULL); + }); + //查询分包项目&样品关联表得到委托书id、样品id,按委托书、样品id更新委托书&样品关联表样品状态为检测完 + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("project_id", id); + List outsourceProjectSampleRelations = projectSampleRelationMapper.selectList(wrapper); + if(CollectionUtils.isEmpty(outsourceProjectSampleRelations)){ + return; + } + List orderSampleDTOS = ConvertUtils.sourceToTarget(outsourceProjectSampleRelations, OrderSampleDTO.class); + int updateFlag = orderSampleRelationMapper.updateStatusBatchByOrderAndSample(orderSampleDTOS); + if (updateFlag <= 0) { + throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED); + } + } + +}