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.approvalDelete(request);
- }
-
- @ApiOperation("未通过分包项目编辑(驳回后的分包项目重新编辑,仅未通过列表中的编辑按钮可调用)")
- @PostMapping("/failUpdate")
- @ResponseBody
- public ReturnDTO failUpdate(@RequestBody @Valid BusinessOutsourceProject outsourceProject, BindingResult bindingResult) {
- Assert.isFalse(Objects.isNull(outsourceProject.getId()), () -> {
- throw new BusinessException(BusinessExceptionEnum.ID_NULL);
- });
- if (bindingResult.hasErrors()) {
- throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
- }
- return projectService.failUpdate(outsourceProject);
- }
-}
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 394626e..e792441 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
@@ -15,6 +15,7 @@
TRAIN_LOG_ID_NULL(2400, "培训记录主键不能为空"),
ORGANIZE_ID_NULL(2400, "计量组织主键不能为空"),
PROCESS_ID_NULL(2400, "流程实例id不能为空"),
+ SAMPLE_ORDER_IDS_NULL(2400, "样品&委托书列表不能为空"),
EDUCATION_NOT_EXISTENCE(2300, "导入文化程度不存在;"),
TECHNOLOGY_JOB_NOT_EXISTENCE(2300, "导入技术职位不存在;"),
ADMINISTRATION_JOB_NOT_EXISTENCE(2300, "导入行政职务不存在;"),
diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOutsourceProjectSampleRelationMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOutsourceProjectSampleRelationMapper.java
index 092011b..732e30b 100644
--- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOutsourceProjectSampleRelationMapper.java
+++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOutsourceProjectSampleRelationMapper.java
@@ -1,7 +1,11 @@
package com.casic.missiles.mapper.business;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.casic.missiles.dto.business.outsource.OrderSampleResponseDTO;
import com.casic.missiles.model.business.BusinessOutsourceProjectSampleRelation;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
/**
*
@@ -13,4 +17,5 @@
*/
public interface BusinessOutsourceProjectSampleRelationMapper extends BaseMapper {
+ List selectSampleList(@Param("projectId") Long projectId);
}
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
new file mode 100644
index 0000000..b7dae53
--- /dev/null
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectApplyController.java
@@ -0,0 +1,156 @@
+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.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.beans.factory.annotation.Autowired;
+import org.springframework.util.CollectionUtils;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ *
+ * 分包项目表 前端控制器
+ *
+ *
+ * @author wangpeng
+ * @since 2023-03-25
+ */
+@Api(tags = "分包管理接口-分包项目申请")
+@Slf4j
+@RestController
+@RequestMapping("/business/outsourceProject/apply")
+public class BusinessOutsourceProjectApplyController 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();
+ List responseList = projectService.projectApplyApprovalListPage(request, page);
+ page.setRecords(responseList);
+ return ReturnUtil.success(super.packForBT(page));
+ }
+
+ @ApiOperation("分包项目申请审批保存(保存至草稿箱)")
+ @PostMapping("/save")
+ @ResponseBody
+ public ReturnDTO save(@RequestBody @Valid BusinessOutsourceProject outsourceProject, BindingResult bindingResult) throws Exception {
+ Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getDtos()), () -> {
+ throw new BusinessException(BusinessExceptionEnum.SAMPLE_ORDER_IDS_NULL);
+ });
+ if(bindingResult.hasErrors()){
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ DictCodeUtils.validDictCode(outsourceProject);
+ return projectService.saveProjectApply(outsourceProject);
+ }
+
+ @ApiOperation("草稿箱分包项目申请编辑")
+ @PostMapping("/draftUpdate")
+ @ResponseBody
+ public ReturnDTO draftUpdate(@RequestBody @Valid BusinessOutsourceProject outsourceProject, BindingResult bindingResult) throws Exception {
+ Assert.isFalse(Objects.isNull(outsourceProject.getId()), () -> {
+ throw new BusinessException(BusinessExceptionEnum.ID_NULL);
+ });
+ Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getDtos()), () -> {
+ throw new BusinessException(BusinessExceptionEnum.SAMPLE_ORDER_IDS_NULL);
+ });
+ if(bindingResult.hasErrors()){
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ DictCodeUtils.validDictCode(outsourceProject);
+ return projectService.projectApplyDraftUpdate(outsourceProject);
+ }
+
+ @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.submitProjectApply(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.projectDelete(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
+ 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.projectApplyApprovalDelete(request);
+ }
+
+ @ApiOperation("未通过分包项目申请编辑(驳回后的分包项目申请重新编辑,仅未通过列表中的编辑按钮可调用)")
+ @PostMapping("/failUpdate")
+ @ResponseBody
+ public ReturnDTO failUpdate(@RequestBody @Valid BusinessOutsourceProject outsourceProject, BindingResult bindingResult) {
+ Assert.isFalse(Objects.isNull(outsourceProject.getId()), () -> {
+ throw new BusinessException(BusinessExceptionEnum.ID_NULL);
+ });
+ if (bindingResult.hasErrors()) {
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ return projectService.failUpdate(outsourceProject);
+ }
+}
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
new file mode 100644
index 0000000..f44d54c
--- /dev/null
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectCheckController.java
@@ -0,0 +1,23 @@
+package com.casic.missiles.controller.business;
+
+import com.casic.missiles.core.base.controller.ExportController;
+import io.swagger.annotations.Api;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ *
+ * 分包项目表 前端控制器
+ *
+ *
+ * @author wangpeng
+ * @since 2023-03-25
+ */
+@Api(tags = "分包管理接口-分包项目验收")
+@Slf4j
+@RestController
+@RequestMapping("/business/outsourceProject/check")
+public class BusinessOutsourceProjectCheckController extends ExportController {
+
+}
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectController.java
deleted file mode 100644
index 0c4aa69..0000000
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectController.java
+++ /dev/null
@@ -1,149 +0,0 @@
-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.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.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;
-
-/**
- *
- * 分包项目表 前端控制器
- *
- *
- * @author wangpeng
- * @since 2023-03-25
- */
-@Api(tags = "分包管理接口-分包项目申请")
-@Slf4j
-@RestController
-@RequestMapping("/business/outsourceProject")
-public class BusinessOutsourceProjectController extends ExportController {
- @Autowired
- private IBusinessOutsourceProjectService projectService;
-
- @ApiOperation("分包项目审批列表(分页)")
- @PostMapping("/approval/listPage")
- public ReturnDTO> outsourcerApprovalListPage(@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();
- List responseList = projectService.projectApprovalListPage(request, page);
- page.setRecords(responseList);
- return ReturnUtil.success(super.packForBT(page));
- }
-
- @ApiOperation("分包项目审批保存(保存至草稿箱)")
- @PostMapping("/save")
- @ResponseBody
- public ReturnDTO save(@RequestBody @Valid BusinessOutsourceProject outsourceProject, BindingResult bindingResult) throws Exception {
- if(bindingResult.hasErrors()){
- throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
- }
- DictCodeUtils.validDictCode(outsourceProject);
- return projectService.saveProject(outsourceProject);
- }
-
- @ApiOperation("草稿箱分包项目编辑")
- @PostMapping("/draftUpdate")
- @ResponseBody
- public ReturnDTO draftUpdate(@RequestBody @Valid BusinessOutsourceProject outsourceProject, BindingResult bindingResult) throws Exception {
- Assert.isFalse(Objects.isNull(outsourceProject.getId()), () -> {
- throw new BusinessException(BusinessExceptionEnum.ID_NULL);
- });
- if(bindingResult.hasErrors()){
- throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
- }
- DictCodeUtils.validDictCode(outsourceProject);
- return projectService.draftUpdate(outsourceProject);
- }
-
- @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.submitProject(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.deleteProject(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
- 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.approvalDelete(request);
- }
-
- @ApiOperation("未通过分包项目编辑(驳回后的分包项目重新编辑,仅未通过列表中的编辑按钮可调用)")
- @PostMapping("/failUpdate")
- @ResponseBody
- public ReturnDTO failUpdate(@RequestBody @Valid BusinessOutsourceProject outsourceProject, BindingResult bindingResult) {
- Assert.isFalse(Objects.isNull(outsourceProject.getId()), () -> {
- throw new BusinessException(BusinessExceptionEnum.ID_NULL);
- });
- if (bindingResult.hasErrors()) {
- throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
- }
- return projectService.failUpdate(outsourceProject);
- }
-}
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 394626e..e792441 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
@@ -15,6 +15,7 @@
TRAIN_LOG_ID_NULL(2400, "培训记录主键不能为空"),
ORGANIZE_ID_NULL(2400, "计量组织主键不能为空"),
PROCESS_ID_NULL(2400, "流程实例id不能为空"),
+ SAMPLE_ORDER_IDS_NULL(2400, "样品&委托书列表不能为空"),
EDUCATION_NOT_EXISTENCE(2300, "导入文化程度不存在;"),
TECHNOLOGY_JOB_NOT_EXISTENCE(2300, "导入技术职位不存在;"),
ADMINISTRATION_JOB_NOT_EXISTENCE(2300, "导入行政职务不存在;"),
diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOutsourceProjectSampleRelationMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOutsourceProjectSampleRelationMapper.java
index 092011b..732e30b 100644
--- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOutsourceProjectSampleRelationMapper.java
+++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOutsourceProjectSampleRelationMapper.java
@@ -1,7 +1,11 @@
package com.casic.missiles.mapper.business;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.casic.missiles.dto.business.outsource.OrderSampleResponseDTO;
import com.casic.missiles.model.business.BusinessOutsourceProjectSampleRelation;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
/**
*
@@ -13,4 +17,5 @@
*/
public interface BusinessOutsourceProjectSampleRelationMapper extends BaseMapper {
+ List selectSampleList(@Param("projectId") Long projectId);
}
diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourceProjectSampleRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourceProjectSampleRelationMapper.xml
index 5ac4463..1e6b3d3 100644
--- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourceProjectSampleRelationMapper.xml
+++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourceProjectSampleRelationMapper.xml
@@ -7,6 +7,7 @@
+
@@ -16,4 +17,11 @@
id, project_id, sample_id, create_time, update_time
+
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
new file mode 100644
index 0000000..b7dae53
--- /dev/null
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectApplyController.java
@@ -0,0 +1,156 @@
+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.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.beans.factory.annotation.Autowired;
+import org.springframework.util.CollectionUtils;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ *
+ * 分包项目表 前端控制器
+ *
+ *
+ * @author wangpeng
+ * @since 2023-03-25
+ */
+@Api(tags = "分包管理接口-分包项目申请")
+@Slf4j
+@RestController
+@RequestMapping("/business/outsourceProject/apply")
+public class BusinessOutsourceProjectApplyController 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();
+ List responseList = projectService.projectApplyApprovalListPage(request, page);
+ page.setRecords(responseList);
+ return ReturnUtil.success(super.packForBT(page));
+ }
+
+ @ApiOperation("分包项目申请审批保存(保存至草稿箱)")
+ @PostMapping("/save")
+ @ResponseBody
+ public ReturnDTO save(@RequestBody @Valid BusinessOutsourceProject outsourceProject, BindingResult bindingResult) throws Exception {
+ Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getDtos()), () -> {
+ throw new BusinessException(BusinessExceptionEnum.SAMPLE_ORDER_IDS_NULL);
+ });
+ if(bindingResult.hasErrors()){
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ DictCodeUtils.validDictCode(outsourceProject);
+ return projectService.saveProjectApply(outsourceProject);
+ }
+
+ @ApiOperation("草稿箱分包项目申请编辑")
+ @PostMapping("/draftUpdate")
+ @ResponseBody
+ public ReturnDTO draftUpdate(@RequestBody @Valid BusinessOutsourceProject outsourceProject, BindingResult bindingResult) throws Exception {
+ Assert.isFalse(Objects.isNull(outsourceProject.getId()), () -> {
+ throw new BusinessException(BusinessExceptionEnum.ID_NULL);
+ });
+ Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getDtos()), () -> {
+ throw new BusinessException(BusinessExceptionEnum.SAMPLE_ORDER_IDS_NULL);
+ });
+ if(bindingResult.hasErrors()){
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ DictCodeUtils.validDictCode(outsourceProject);
+ return projectService.projectApplyDraftUpdate(outsourceProject);
+ }
+
+ @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.submitProjectApply(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.projectDelete(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
+ 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.projectApplyApprovalDelete(request);
+ }
+
+ @ApiOperation("未通过分包项目申请编辑(驳回后的分包项目申请重新编辑,仅未通过列表中的编辑按钮可调用)")
+ @PostMapping("/failUpdate")
+ @ResponseBody
+ public ReturnDTO failUpdate(@RequestBody @Valid BusinessOutsourceProject outsourceProject, BindingResult bindingResult) {
+ Assert.isFalse(Objects.isNull(outsourceProject.getId()), () -> {
+ throw new BusinessException(BusinessExceptionEnum.ID_NULL);
+ });
+ if (bindingResult.hasErrors()) {
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ return projectService.failUpdate(outsourceProject);
+ }
+}
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
new file mode 100644
index 0000000..f44d54c
--- /dev/null
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectCheckController.java
@@ -0,0 +1,23 @@
+package com.casic.missiles.controller.business;
+
+import com.casic.missiles.core.base.controller.ExportController;
+import io.swagger.annotations.Api;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ *
+ * 分包项目表 前端控制器
+ *
+ *
+ * @author wangpeng
+ * @since 2023-03-25
+ */
+@Api(tags = "分包管理接口-分包项目验收")
+@Slf4j
+@RestController
+@RequestMapping("/business/outsourceProject/check")
+public class BusinessOutsourceProjectCheckController extends ExportController {
+
+}
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectController.java
deleted file mode 100644
index 0c4aa69..0000000
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectController.java
+++ /dev/null
@@ -1,149 +0,0 @@
-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.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.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;
-
-/**
- *
- * 分包项目表 前端控制器
- *
- *
- * @author wangpeng
- * @since 2023-03-25
- */
-@Api(tags = "分包管理接口-分包项目申请")
-@Slf4j
-@RestController
-@RequestMapping("/business/outsourceProject")
-public class BusinessOutsourceProjectController extends ExportController {
- @Autowired
- private IBusinessOutsourceProjectService projectService;
-
- @ApiOperation("分包项目审批列表(分页)")
- @PostMapping("/approval/listPage")
- public ReturnDTO> outsourcerApprovalListPage(@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();
- List responseList = projectService.projectApprovalListPage(request, page);
- page.setRecords(responseList);
- return ReturnUtil.success(super.packForBT(page));
- }
-
- @ApiOperation("分包项目审批保存(保存至草稿箱)")
- @PostMapping("/save")
- @ResponseBody
- public ReturnDTO save(@RequestBody @Valid BusinessOutsourceProject outsourceProject, BindingResult bindingResult) throws Exception {
- if(bindingResult.hasErrors()){
- throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
- }
- DictCodeUtils.validDictCode(outsourceProject);
- return projectService.saveProject(outsourceProject);
- }
-
- @ApiOperation("草稿箱分包项目编辑")
- @PostMapping("/draftUpdate")
- @ResponseBody
- public ReturnDTO draftUpdate(@RequestBody @Valid BusinessOutsourceProject outsourceProject, BindingResult bindingResult) throws Exception {
- Assert.isFalse(Objects.isNull(outsourceProject.getId()), () -> {
- throw new BusinessException(BusinessExceptionEnum.ID_NULL);
- });
- if(bindingResult.hasErrors()){
- throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
- }
- DictCodeUtils.validDictCode(outsourceProject);
- return projectService.draftUpdate(outsourceProject);
- }
-
- @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.submitProject(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.deleteProject(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
- 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.approvalDelete(request);
- }
-
- @ApiOperation("未通过分包项目编辑(驳回后的分包项目重新编辑,仅未通过列表中的编辑按钮可调用)")
- @PostMapping("/failUpdate")
- @ResponseBody
- public ReturnDTO failUpdate(@RequestBody @Valid BusinessOutsourceProject outsourceProject, BindingResult bindingResult) {
- Assert.isFalse(Objects.isNull(outsourceProject.getId()), () -> {
- throw new BusinessException(BusinessExceptionEnum.ID_NULL);
- });
- if (bindingResult.hasErrors()) {
- throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
- }
- return projectService.failUpdate(outsourceProject);
- }
-}
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 394626e..e792441 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
@@ -15,6 +15,7 @@
TRAIN_LOG_ID_NULL(2400, "培训记录主键不能为空"),
ORGANIZE_ID_NULL(2400, "计量组织主键不能为空"),
PROCESS_ID_NULL(2400, "流程实例id不能为空"),
+ SAMPLE_ORDER_IDS_NULL(2400, "样品&委托书列表不能为空"),
EDUCATION_NOT_EXISTENCE(2300, "导入文化程度不存在;"),
TECHNOLOGY_JOB_NOT_EXISTENCE(2300, "导入技术职位不存在;"),
ADMINISTRATION_JOB_NOT_EXISTENCE(2300, "导入行政职务不存在;"),
diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOutsourceProjectSampleRelationMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOutsourceProjectSampleRelationMapper.java
index 092011b..732e30b 100644
--- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOutsourceProjectSampleRelationMapper.java
+++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOutsourceProjectSampleRelationMapper.java
@@ -1,7 +1,11 @@
package com.casic.missiles.mapper.business;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.casic.missiles.dto.business.outsource.OrderSampleResponseDTO;
import com.casic.missiles.model.business.BusinessOutsourceProjectSampleRelation;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
/**
*
@@ -13,4 +17,5 @@
*/
public interface BusinessOutsourceProjectSampleRelationMapper extends BaseMapper {
+ List selectSampleList(@Param("projectId") Long projectId);
}
diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourceProjectSampleRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourceProjectSampleRelationMapper.xml
index 5ac4463..1e6b3d3 100644
--- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourceProjectSampleRelationMapper.xml
+++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourceProjectSampleRelationMapper.xml
@@ -7,6 +7,7 @@
+
@@ -16,4 +17,11 @@
id, project_id, sample_id, create_time, update_time
+
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OrderSampleDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OrderSampleDTO.java
new file mode 100644
index 0000000..6bb77de
--- /dev/null
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OrderSampleDTO.java
@@ -0,0 +1,19 @@
+package com.casic.missiles.dto.business.outsource;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @Description: 分包项目中样品委托书入参
+ * @Author: wangpeng
+ * @Date: 2023/3/28 17:14
+ */
+@ApiModel
+@Data
+public class OrderSampleDTO {
+ @ApiModelProperty(value = "样品id", dataType = "Long", required = true)
+ private Long sampleId;
+ @ApiModelProperty(value = "委托书id", dataType = "Long", required = true)
+ private Long orderId;
+}
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
new file mode 100644
index 0000000..b7dae53
--- /dev/null
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectApplyController.java
@@ -0,0 +1,156 @@
+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.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.beans.factory.annotation.Autowired;
+import org.springframework.util.CollectionUtils;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ *
+ * 分包项目表 前端控制器
+ *
+ *
+ * @author wangpeng
+ * @since 2023-03-25
+ */
+@Api(tags = "分包管理接口-分包项目申请")
+@Slf4j
+@RestController
+@RequestMapping("/business/outsourceProject/apply")
+public class BusinessOutsourceProjectApplyController 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();
+ List responseList = projectService.projectApplyApprovalListPage(request, page);
+ page.setRecords(responseList);
+ return ReturnUtil.success(super.packForBT(page));
+ }
+
+ @ApiOperation("分包项目申请审批保存(保存至草稿箱)")
+ @PostMapping("/save")
+ @ResponseBody
+ public ReturnDTO save(@RequestBody @Valid BusinessOutsourceProject outsourceProject, BindingResult bindingResult) throws Exception {
+ Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getDtos()), () -> {
+ throw new BusinessException(BusinessExceptionEnum.SAMPLE_ORDER_IDS_NULL);
+ });
+ if(bindingResult.hasErrors()){
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ DictCodeUtils.validDictCode(outsourceProject);
+ return projectService.saveProjectApply(outsourceProject);
+ }
+
+ @ApiOperation("草稿箱分包项目申请编辑")
+ @PostMapping("/draftUpdate")
+ @ResponseBody
+ public ReturnDTO draftUpdate(@RequestBody @Valid BusinessOutsourceProject outsourceProject, BindingResult bindingResult) throws Exception {
+ Assert.isFalse(Objects.isNull(outsourceProject.getId()), () -> {
+ throw new BusinessException(BusinessExceptionEnum.ID_NULL);
+ });
+ Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getDtos()), () -> {
+ throw new BusinessException(BusinessExceptionEnum.SAMPLE_ORDER_IDS_NULL);
+ });
+ if(bindingResult.hasErrors()){
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ DictCodeUtils.validDictCode(outsourceProject);
+ return projectService.projectApplyDraftUpdate(outsourceProject);
+ }
+
+ @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.submitProjectApply(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.projectDelete(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
+ 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.projectApplyApprovalDelete(request);
+ }
+
+ @ApiOperation("未通过分包项目申请编辑(驳回后的分包项目申请重新编辑,仅未通过列表中的编辑按钮可调用)")
+ @PostMapping("/failUpdate")
+ @ResponseBody
+ public ReturnDTO failUpdate(@RequestBody @Valid BusinessOutsourceProject outsourceProject, BindingResult bindingResult) {
+ Assert.isFalse(Objects.isNull(outsourceProject.getId()), () -> {
+ throw new BusinessException(BusinessExceptionEnum.ID_NULL);
+ });
+ if (bindingResult.hasErrors()) {
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ return projectService.failUpdate(outsourceProject);
+ }
+}
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
new file mode 100644
index 0000000..f44d54c
--- /dev/null
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectCheckController.java
@@ -0,0 +1,23 @@
+package com.casic.missiles.controller.business;
+
+import com.casic.missiles.core.base.controller.ExportController;
+import io.swagger.annotations.Api;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ *
+ * 分包项目表 前端控制器
+ *
+ *
+ * @author wangpeng
+ * @since 2023-03-25
+ */
+@Api(tags = "分包管理接口-分包项目验收")
+@Slf4j
+@RestController
+@RequestMapping("/business/outsourceProject/check")
+public class BusinessOutsourceProjectCheckController extends ExportController {
+
+}
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectController.java
deleted file mode 100644
index 0c4aa69..0000000
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectController.java
+++ /dev/null
@@ -1,149 +0,0 @@
-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.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.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;
-
-/**
- *
- * 分包项目表 前端控制器
- *
- *
- * @author wangpeng
- * @since 2023-03-25
- */
-@Api(tags = "分包管理接口-分包项目申请")
-@Slf4j
-@RestController
-@RequestMapping("/business/outsourceProject")
-public class BusinessOutsourceProjectController extends ExportController {
- @Autowired
- private IBusinessOutsourceProjectService projectService;
-
- @ApiOperation("分包项目审批列表(分页)")
- @PostMapping("/approval/listPage")
- public ReturnDTO> outsourcerApprovalListPage(@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();
- List responseList = projectService.projectApprovalListPage(request, page);
- page.setRecords(responseList);
- return ReturnUtil.success(super.packForBT(page));
- }
-
- @ApiOperation("分包项目审批保存(保存至草稿箱)")
- @PostMapping("/save")
- @ResponseBody
- public ReturnDTO save(@RequestBody @Valid BusinessOutsourceProject outsourceProject, BindingResult bindingResult) throws Exception {
- if(bindingResult.hasErrors()){
- throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
- }
- DictCodeUtils.validDictCode(outsourceProject);
- return projectService.saveProject(outsourceProject);
- }
-
- @ApiOperation("草稿箱分包项目编辑")
- @PostMapping("/draftUpdate")
- @ResponseBody
- public ReturnDTO draftUpdate(@RequestBody @Valid BusinessOutsourceProject outsourceProject, BindingResult bindingResult) throws Exception {
- Assert.isFalse(Objects.isNull(outsourceProject.getId()), () -> {
- throw new BusinessException(BusinessExceptionEnum.ID_NULL);
- });
- if(bindingResult.hasErrors()){
- throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
- }
- DictCodeUtils.validDictCode(outsourceProject);
- return projectService.draftUpdate(outsourceProject);
- }
-
- @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.submitProject(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.deleteProject(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
- 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.approvalDelete(request);
- }
-
- @ApiOperation("未通过分包项目编辑(驳回后的分包项目重新编辑,仅未通过列表中的编辑按钮可调用)")
- @PostMapping("/failUpdate")
- @ResponseBody
- public ReturnDTO failUpdate(@RequestBody @Valid BusinessOutsourceProject outsourceProject, BindingResult bindingResult) {
- Assert.isFalse(Objects.isNull(outsourceProject.getId()), () -> {
- throw new BusinessException(BusinessExceptionEnum.ID_NULL);
- });
- if (bindingResult.hasErrors()) {
- throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
- }
- return projectService.failUpdate(outsourceProject);
- }
-}
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 394626e..e792441 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
@@ -15,6 +15,7 @@
TRAIN_LOG_ID_NULL(2400, "培训记录主键不能为空"),
ORGANIZE_ID_NULL(2400, "计量组织主键不能为空"),
PROCESS_ID_NULL(2400, "流程实例id不能为空"),
+ SAMPLE_ORDER_IDS_NULL(2400, "样品&委托书列表不能为空"),
EDUCATION_NOT_EXISTENCE(2300, "导入文化程度不存在;"),
TECHNOLOGY_JOB_NOT_EXISTENCE(2300, "导入技术职位不存在;"),
ADMINISTRATION_JOB_NOT_EXISTENCE(2300, "导入行政职务不存在;"),
diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOutsourceProjectSampleRelationMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOutsourceProjectSampleRelationMapper.java
index 092011b..732e30b 100644
--- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOutsourceProjectSampleRelationMapper.java
+++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOutsourceProjectSampleRelationMapper.java
@@ -1,7 +1,11 @@
package com.casic.missiles.mapper.business;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.casic.missiles.dto.business.outsource.OrderSampleResponseDTO;
import com.casic.missiles.model.business.BusinessOutsourceProjectSampleRelation;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
/**
*
@@ -13,4 +17,5 @@
*/
public interface BusinessOutsourceProjectSampleRelationMapper extends BaseMapper {
+ List selectSampleList(@Param("projectId") Long projectId);
}
diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourceProjectSampleRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourceProjectSampleRelationMapper.xml
index 5ac4463..1e6b3d3 100644
--- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourceProjectSampleRelationMapper.xml
+++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourceProjectSampleRelationMapper.xml
@@ -7,6 +7,7 @@
+
@@ -16,4 +17,11 @@
id, project_id, sample_id, create_time, update_time
+
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OrderSampleDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OrderSampleDTO.java
new file mode 100644
index 0000000..6bb77de
--- /dev/null
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OrderSampleDTO.java
@@ -0,0 +1,19 @@
+package com.casic.missiles.dto.business.outsource;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @Description: 分包项目中样品委托书入参
+ * @Author: wangpeng
+ * @Date: 2023/3/28 17:14
+ */
+@ApiModel
+@Data
+public class OrderSampleDTO {
+ @ApiModelProperty(value = "样品id", dataType = "Long", required = true)
+ private Long sampleId;
+ @ApiModelProperty(value = "委托书id", dataType = "Long", required = true)
+ private Long orderId;
+}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OrderSampleResponseDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OrderSampleResponseDTO.java
new file mode 100644
index 0000000..a934ce3
--- /dev/null
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OrderSampleResponseDTO.java
@@ -0,0 +1,28 @@
+package com.casic.missiles.dto.business.outsource;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel
+public class OrderSampleResponseDTO {
+ @ApiModelProperty(value = "样品编号", dataType = "String")
+ private String sampleNo;
+
+ @ApiModelProperty(value = "样品名称", dataType = "String")
+ private String sampleName;
+
+ @ApiModelProperty(value = "型号", dataType = "String")
+ private String sampleModel;
+
+ @ApiModelProperty(value = "出厂编号", dataType = "String")
+ private String manufacturingNo;
+
+ @ApiModelProperty(value = "委托方名称", dataType = "String")
+ private String customerName;
+
+ @ApiModelProperty(value = "委托书编号", dataType = "String")
+ private String orderCode;
+
+}
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
new file mode 100644
index 0000000..b7dae53
--- /dev/null
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectApplyController.java
@@ -0,0 +1,156 @@
+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.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.beans.factory.annotation.Autowired;
+import org.springframework.util.CollectionUtils;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ *
+ * 分包项目表 前端控制器
+ *
+ *
+ * @author wangpeng
+ * @since 2023-03-25
+ */
+@Api(tags = "分包管理接口-分包项目申请")
+@Slf4j
+@RestController
+@RequestMapping("/business/outsourceProject/apply")
+public class BusinessOutsourceProjectApplyController 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();
+ List responseList = projectService.projectApplyApprovalListPage(request, page);
+ page.setRecords(responseList);
+ return ReturnUtil.success(super.packForBT(page));
+ }
+
+ @ApiOperation("分包项目申请审批保存(保存至草稿箱)")
+ @PostMapping("/save")
+ @ResponseBody
+ public ReturnDTO save(@RequestBody @Valid BusinessOutsourceProject outsourceProject, BindingResult bindingResult) throws Exception {
+ Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getDtos()), () -> {
+ throw new BusinessException(BusinessExceptionEnum.SAMPLE_ORDER_IDS_NULL);
+ });
+ if(bindingResult.hasErrors()){
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ DictCodeUtils.validDictCode(outsourceProject);
+ return projectService.saveProjectApply(outsourceProject);
+ }
+
+ @ApiOperation("草稿箱分包项目申请编辑")
+ @PostMapping("/draftUpdate")
+ @ResponseBody
+ public ReturnDTO draftUpdate(@RequestBody @Valid BusinessOutsourceProject outsourceProject, BindingResult bindingResult) throws Exception {
+ Assert.isFalse(Objects.isNull(outsourceProject.getId()), () -> {
+ throw new BusinessException(BusinessExceptionEnum.ID_NULL);
+ });
+ Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getDtos()), () -> {
+ throw new BusinessException(BusinessExceptionEnum.SAMPLE_ORDER_IDS_NULL);
+ });
+ if(bindingResult.hasErrors()){
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ DictCodeUtils.validDictCode(outsourceProject);
+ return projectService.projectApplyDraftUpdate(outsourceProject);
+ }
+
+ @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.submitProjectApply(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.projectDelete(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
+ 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.projectApplyApprovalDelete(request);
+ }
+
+ @ApiOperation("未通过分包项目申请编辑(驳回后的分包项目申请重新编辑,仅未通过列表中的编辑按钮可调用)")
+ @PostMapping("/failUpdate")
+ @ResponseBody
+ public ReturnDTO failUpdate(@RequestBody @Valid BusinessOutsourceProject outsourceProject, BindingResult bindingResult) {
+ Assert.isFalse(Objects.isNull(outsourceProject.getId()), () -> {
+ throw new BusinessException(BusinessExceptionEnum.ID_NULL);
+ });
+ if (bindingResult.hasErrors()) {
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ return projectService.failUpdate(outsourceProject);
+ }
+}
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
new file mode 100644
index 0000000..f44d54c
--- /dev/null
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectCheckController.java
@@ -0,0 +1,23 @@
+package com.casic.missiles.controller.business;
+
+import com.casic.missiles.core.base.controller.ExportController;
+import io.swagger.annotations.Api;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ *
+ * 分包项目表 前端控制器
+ *
+ *
+ * @author wangpeng
+ * @since 2023-03-25
+ */
+@Api(tags = "分包管理接口-分包项目验收")
+@Slf4j
+@RestController
+@RequestMapping("/business/outsourceProject/check")
+public class BusinessOutsourceProjectCheckController extends ExportController {
+
+}
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectController.java
deleted file mode 100644
index 0c4aa69..0000000
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectController.java
+++ /dev/null
@@ -1,149 +0,0 @@
-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.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.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;
-
-/**
- *
- * 分包项目表 前端控制器
- *
- *
- * @author wangpeng
- * @since 2023-03-25
- */
-@Api(tags = "分包管理接口-分包项目申请")
-@Slf4j
-@RestController
-@RequestMapping("/business/outsourceProject")
-public class BusinessOutsourceProjectController extends ExportController {
- @Autowired
- private IBusinessOutsourceProjectService projectService;
-
- @ApiOperation("分包项目审批列表(分页)")
- @PostMapping("/approval/listPage")
- public ReturnDTO> outsourcerApprovalListPage(@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();
- List responseList = projectService.projectApprovalListPage(request, page);
- page.setRecords(responseList);
- return ReturnUtil.success(super.packForBT(page));
- }
-
- @ApiOperation("分包项目审批保存(保存至草稿箱)")
- @PostMapping("/save")
- @ResponseBody
- public ReturnDTO save(@RequestBody @Valid BusinessOutsourceProject outsourceProject, BindingResult bindingResult) throws Exception {
- if(bindingResult.hasErrors()){
- throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
- }
- DictCodeUtils.validDictCode(outsourceProject);
- return projectService.saveProject(outsourceProject);
- }
-
- @ApiOperation("草稿箱分包项目编辑")
- @PostMapping("/draftUpdate")
- @ResponseBody
- public ReturnDTO draftUpdate(@RequestBody @Valid BusinessOutsourceProject outsourceProject, BindingResult bindingResult) throws Exception {
- Assert.isFalse(Objects.isNull(outsourceProject.getId()), () -> {
- throw new BusinessException(BusinessExceptionEnum.ID_NULL);
- });
- if(bindingResult.hasErrors()){
- throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
- }
- DictCodeUtils.validDictCode(outsourceProject);
- return projectService.draftUpdate(outsourceProject);
- }
-
- @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.submitProject(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.deleteProject(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
- 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.approvalDelete(request);
- }
-
- @ApiOperation("未通过分包项目编辑(驳回后的分包项目重新编辑,仅未通过列表中的编辑按钮可调用)")
- @PostMapping("/failUpdate")
- @ResponseBody
- public ReturnDTO failUpdate(@RequestBody @Valid BusinessOutsourceProject outsourceProject, BindingResult bindingResult) {
- Assert.isFalse(Objects.isNull(outsourceProject.getId()), () -> {
- throw new BusinessException(BusinessExceptionEnum.ID_NULL);
- });
- if (bindingResult.hasErrors()) {
- throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
- }
- return projectService.failUpdate(outsourceProject);
- }
-}
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 394626e..e792441 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
@@ -15,6 +15,7 @@
TRAIN_LOG_ID_NULL(2400, "培训记录主键不能为空"),
ORGANIZE_ID_NULL(2400, "计量组织主键不能为空"),
PROCESS_ID_NULL(2400, "流程实例id不能为空"),
+ SAMPLE_ORDER_IDS_NULL(2400, "样品&委托书列表不能为空"),
EDUCATION_NOT_EXISTENCE(2300, "导入文化程度不存在;"),
TECHNOLOGY_JOB_NOT_EXISTENCE(2300, "导入技术职位不存在;"),
ADMINISTRATION_JOB_NOT_EXISTENCE(2300, "导入行政职务不存在;"),
diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOutsourceProjectSampleRelationMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOutsourceProjectSampleRelationMapper.java
index 092011b..732e30b 100644
--- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOutsourceProjectSampleRelationMapper.java
+++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOutsourceProjectSampleRelationMapper.java
@@ -1,7 +1,11 @@
package com.casic.missiles.mapper.business;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.casic.missiles.dto.business.outsource.OrderSampleResponseDTO;
import com.casic.missiles.model.business.BusinessOutsourceProjectSampleRelation;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
/**
*
@@ -13,4 +17,5 @@
*/
public interface BusinessOutsourceProjectSampleRelationMapper extends BaseMapper {
+ List selectSampleList(@Param("projectId") Long projectId);
}
diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourceProjectSampleRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourceProjectSampleRelationMapper.xml
index 5ac4463..1e6b3d3 100644
--- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourceProjectSampleRelationMapper.xml
+++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourceProjectSampleRelationMapper.xml
@@ -7,6 +7,7 @@
+
@@ -16,4 +17,11 @@
id, project_id, sample_id, create_time, update_time
+
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OrderSampleDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OrderSampleDTO.java
new file mode 100644
index 0000000..6bb77de
--- /dev/null
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OrderSampleDTO.java
@@ -0,0 +1,19 @@
+package com.casic.missiles.dto.business.outsource;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @Description: 分包项目中样品委托书入参
+ * @Author: wangpeng
+ * @Date: 2023/3/28 17:14
+ */
+@ApiModel
+@Data
+public class OrderSampleDTO {
+ @ApiModelProperty(value = "样品id", dataType = "Long", required = true)
+ private Long sampleId;
+ @ApiModelProperty(value = "委托书id", dataType = "Long", required = true)
+ private Long orderId;
+}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OrderSampleResponseDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OrderSampleResponseDTO.java
new file mode 100644
index 0000000..a934ce3
--- /dev/null
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OrderSampleResponseDTO.java
@@ -0,0 +1,28 @@
+package com.casic.missiles.dto.business.outsource;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel
+public class OrderSampleResponseDTO {
+ @ApiModelProperty(value = "样品编号", dataType = "String")
+ private String sampleNo;
+
+ @ApiModelProperty(value = "样品名称", dataType = "String")
+ private String sampleName;
+
+ @ApiModelProperty(value = "型号", dataType = "String")
+ private String sampleModel;
+
+ @ApiModelProperty(value = "出厂编号", dataType = "String")
+ private String manufacturingNo;
+
+ @ApiModelProperty(value = "委托方名称", dataType = "String")
+ private String customerName;
+
+ @ApiModelProperty(value = "委托书编号", dataType = "String")
+ private String orderCode;
+
+}
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 1084a81..3b88cf1 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
@@ -10,12 +10,15 @@
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
+import com.casic.missiles.dto.business.outsource.OrderSampleDTO;
+import com.casic.missiles.dto.business.outsource.OrderSampleResponseDTO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
+import java.util.List;
/**
*
@@ -206,5 +209,11 @@
@TableField("update_time")
private String updateTime;
+ @ApiModelProperty(value = "样品&委托书列表(保存/编辑草稿接口入参使用)", dataType = "List")
+ @TableField(exist = false)
+ private List dtos;
+ @ApiModelProperty(value = "样品列表(详情接口出参使用)", dataType = "List")
+ @TableField(exist = false)
+ private List sampleList;
}
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
new file mode 100644
index 0000000..b7dae53
--- /dev/null
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectApplyController.java
@@ -0,0 +1,156 @@
+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.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.beans.factory.annotation.Autowired;
+import org.springframework.util.CollectionUtils;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ *
+ * 分包项目表 前端控制器
+ *
+ *
+ * @author wangpeng
+ * @since 2023-03-25
+ */
+@Api(tags = "分包管理接口-分包项目申请")
+@Slf4j
+@RestController
+@RequestMapping("/business/outsourceProject/apply")
+public class BusinessOutsourceProjectApplyController 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();
+ List responseList = projectService.projectApplyApprovalListPage(request, page);
+ page.setRecords(responseList);
+ return ReturnUtil.success(super.packForBT(page));
+ }
+
+ @ApiOperation("分包项目申请审批保存(保存至草稿箱)")
+ @PostMapping("/save")
+ @ResponseBody
+ public ReturnDTO save(@RequestBody @Valid BusinessOutsourceProject outsourceProject, BindingResult bindingResult) throws Exception {
+ Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getDtos()), () -> {
+ throw new BusinessException(BusinessExceptionEnum.SAMPLE_ORDER_IDS_NULL);
+ });
+ if(bindingResult.hasErrors()){
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ DictCodeUtils.validDictCode(outsourceProject);
+ return projectService.saveProjectApply(outsourceProject);
+ }
+
+ @ApiOperation("草稿箱分包项目申请编辑")
+ @PostMapping("/draftUpdate")
+ @ResponseBody
+ public ReturnDTO draftUpdate(@RequestBody @Valid BusinessOutsourceProject outsourceProject, BindingResult bindingResult) throws Exception {
+ Assert.isFalse(Objects.isNull(outsourceProject.getId()), () -> {
+ throw new BusinessException(BusinessExceptionEnum.ID_NULL);
+ });
+ Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getDtos()), () -> {
+ throw new BusinessException(BusinessExceptionEnum.SAMPLE_ORDER_IDS_NULL);
+ });
+ if(bindingResult.hasErrors()){
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ DictCodeUtils.validDictCode(outsourceProject);
+ return projectService.projectApplyDraftUpdate(outsourceProject);
+ }
+
+ @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.submitProjectApply(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.projectDelete(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
+ 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.projectApplyApprovalDelete(request);
+ }
+
+ @ApiOperation("未通过分包项目申请编辑(驳回后的分包项目申请重新编辑,仅未通过列表中的编辑按钮可调用)")
+ @PostMapping("/failUpdate")
+ @ResponseBody
+ public ReturnDTO failUpdate(@RequestBody @Valid BusinessOutsourceProject outsourceProject, BindingResult bindingResult) {
+ Assert.isFalse(Objects.isNull(outsourceProject.getId()), () -> {
+ throw new BusinessException(BusinessExceptionEnum.ID_NULL);
+ });
+ if (bindingResult.hasErrors()) {
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ return projectService.failUpdate(outsourceProject);
+ }
+}
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
new file mode 100644
index 0000000..f44d54c
--- /dev/null
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectCheckController.java
@@ -0,0 +1,23 @@
+package com.casic.missiles.controller.business;
+
+import com.casic.missiles.core.base.controller.ExportController;
+import io.swagger.annotations.Api;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ *
+ * 分包项目表 前端控制器
+ *
+ *
+ * @author wangpeng
+ * @since 2023-03-25
+ */
+@Api(tags = "分包管理接口-分包项目验收")
+@Slf4j
+@RestController
+@RequestMapping("/business/outsourceProject/check")
+public class BusinessOutsourceProjectCheckController extends ExportController {
+
+}
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectController.java
deleted file mode 100644
index 0c4aa69..0000000
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectController.java
+++ /dev/null
@@ -1,149 +0,0 @@
-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.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.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;
-
-/**
- *
- * 分包项目表 前端控制器
- *
- *
- * @author wangpeng
- * @since 2023-03-25
- */
-@Api(tags = "分包管理接口-分包项目申请")
-@Slf4j
-@RestController
-@RequestMapping("/business/outsourceProject")
-public class BusinessOutsourceProjectController extends ExportController {
- @Autowired
- private IBusinessOutsourceProjectService projectService;
-
- @ApiOperation("分包项目审批列表(分页)")
- @PostMapping("/approval/listPage")
- public ReturnDTO> outsourcerApprovalListPage(@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();
- List responseList = projectService.projectApprovalListPage(request, page);
- page.setRecords(responseList);
- return ReturnUtil.success(super.packForBT(page));
- }
-
- @ApiOperation("分包项目审批保存(保存至草稿箱)")
- @PostMapping("/save")
- @ResponseBody
- public ReturnDTO save(@RequestBody @Valid BusinessOutsourceProject outsourceProject, BindingResult bindingResult) throws Exception {
- if(bindingResult.hasErrors()){
- throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
- }
- DictCodeUtils.validDictCode(outsourceProject);
- return projectService.saveProject(outsourceProject);
- }
-
- @ApiOperation("草稿箱分包项目编辑")
- @PostMapping("/draftUpdate")
- @ResponseBody
- public ReturnDTO draftUpdate(@RequestBody @Valid BusinessOutsourceProject outsourceProject, BindingResult bindingResult) throws Exception {
- Assert.isFalse(Objects.isNull(outsourceProject.getId()), () -> {
- throw new BusinessException(BusinessExceptionEnum.ID_NULL);
- });
- if(bindingResult.hasErrors()){
- throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
- }
- DictCodeUtils.validDictCode(outsourceProject);
- return projectService.draftUpdate(outsourceProject);
- }
-
- @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.submitProject(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.deleteProject(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
- 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.approvalDelete(request);
- }
-
- @ApiOperation("未通过分包项目编辑(驳回后的分包项目重新编辑,仅未通过列表中的编辑按钮可调用)")
- @PostMapping("/failUpdate")
- @ResponseBody
- public ReturnDTO failUpdate(@RequestBody @Valid BusinessOutsourceProject outsourceProject, BindingResult bindingResult) {
- Assert.isFalse(Objects.isNull(outsourceProject.getId()), () -> {
- throw new BusinessException(BusinessExceptionEnum.ID_NULL);
- });
- if (bindingResult.hasErrors()) {
- throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
- }
- return projectService.failUpdate(outsourceProject);
- }
-}
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 394626e..e792441 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
@@ -15,6 +15,7 @@
TRAIN_LOG_ID_NULL(2400, "培训记录主键不能为空"),
ORGANIZE_ID_NULL(2400, "计量组织主键不能为空"),
PROCESS_ID_NULL(2400, "流程实例id不能为空"),
+ SAMPLE_ORDER_IDS_NULL(2400, "样品&委托书列表不能为空"),
EDUCATION_NOT_EXISTENCE(2300, "导入文化程度不存在;"),
TECHNOLOGY_JOB_NOT_EXISTENCE(2300, "导入技术职位不存在;"),
ADMINISTRATION_JOB_NOT_EXISTENCE(2300, "导入行政职务不存在;"),
diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOutsourceProjectSampleRelationMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOutsourceProjectSampleRelationMapper.java
index 092011b..732e30b 100644
--- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOutsourceProjectSampleRelationMapper.java
+++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOutsourceProjectSampleRelationMapper.java
@@ -1,7 +1,11 @@
package com.casic.missiles.mapper.business;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.casic.missiles.dto.business.outsource.OrderSampleResponseDTO;
import com.casic.missiles.model.business.BusinessOutsourceProjectSampleRelation;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
/**
*
@@ -13,4 +17,5 @@
*/
public interface BusinessOutsourceProjectSampleRelationMapper extends BaseMapper {
+ List selectSampleList(@Param("projectId") Long projectId);
}
diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourceProjectSampleRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourceProjectSampleRelationMapper.xml
index 5ac4463..1e6b3d3 100644
--- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourceProjectSampleRelationMapper.xml
+++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourceProjectSampleRelationMapper.xml
@@ -7,6 +7,7 @@
+
@@ -16,4 +17,11 @@
id, project_id, sample_id, create_time, update_time
+
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OrderSampleDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OrderSampleDTO.java
new file mode 100644
index 0000000..6bb77de
--- /dev/null
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OrderSampleDTO.java
@@ -0,0 +1,19 @@
+package com.casic.missiles.dto.business.outsource;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @Description: 分包项目中样品委托书入参
+ * @Author: wangpeng
+ * @Date: 2023/3/28 17:14
+ */
+@ApiModel
+@Data
+public class OrderSampleDTO {
+ @ApiModelProperty(value = "样品id", dataType = "Long", required = true)
+ private Long sampleId;
+ @ApiModelProperty(value = "委托书id", dataType = "Long", required = true)
+ private Long orderId;
+}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OrderSampleResponseDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OrderSampleResponseDTO.java
new file mode 100644
index 0000000..a934ce3
--- /dev/null
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OrderSampleResponseDTO.java
@@ -0,0 +1,28 @@
+package com.casic.missiles.dto.business.outsource;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel
+public class OrderSampleResponseDTO {
+ @ApiModelProperty(value = "样品编号", dataType = "String")
+ private String sampleNo;
+
+ @ApiModelProperty(value = "样品名称", dataType = "String")
+ private String sampleName;
+
+ @ApiModelProperty(value = "型号", dataType = "String")
+ private String sampleModel;
+
+ @ApiModelProperty(value = "出厂编号", dataType = "String")
+ private String manufacturingNo;
+
+ @ApiModelProperty(value = "委托方名称", dataType = "String")
+ private String customerName;
+
+ @ApiModelProperty(value = "委托书编号", dataType = "String")
+ private String orderCode;
+
+}
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 1084a81..3b88cf1 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
@@ -10,12 +10,15 @@
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
+import com.casic.missiles.dto.business.outsource.OrderSampleDTO;
+import com.casic.missiles.dto.business.outsource.OrderSampleResponseDTO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
+import java.util.List;
/**
*
@@ -206,5 +209,11 @@
@TableField("update_time")
private String updateTime;
+ @ApiModelProperty(value = "样品&委托书列表(保存/编辑草稿接口入参使用)", dataType = "List")
+ @TableField(exist = false)
+ private List dtos;
+ @ApiModelProperty(value = "样品列表(详情接口出参使用)", dataType = "List")
+ @TableField(exist = false)
+ private List sampleList;
}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourceProjectSampleRelation.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourceProjectSampleRelation.java
index b4dfce8..0e55240 100644
--- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourceProjectSampleRelation.java
+++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourceProjectSampleRelation.java
@@ -37,6 +37,12 @@
private Long sampleId;
/**
+ * 委托书id
+ */
+ @TableField("order_id")
+ private Long orderId;
+
+ /**
* 创建时间
*/
@TableField("create_time")
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
new file mode 100644
index 0000000..b7dae53
--- /dev/null
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectApplyController.java
@@ -0,0 +1,156 @@
+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.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.beans.factory.annotation.Autowired;
+import org.springframework.util.CollectionUtils;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ *
+ * 分包项目表 前端控制器
+ *
+ *
+ * @author wangpeng
+ * @since 2023-03-25
+ */
+@Api(tags = "分包管理接口-分包项目申请")
+@Slf4j
+@RestController
+@RequestMapping("/business/outsourceProject/apply")
+public class BusinessOutsourceProjectApplyController 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();
+ List responseList = projectService.projectApplyApprovalListPage(request, page);
+ page.setRecords(responseList);
+ return ReturnUtil.success(super.packForBT(page));
+ }
+
+ @ApiOperation("分包项目申请审批保存(保存至草稿箱)")
+ @PostMapping("/save")
+ @ResponseBody
+ public ReturnDTO save(@RequestBody @Valid BusinessOutsourceProject outsourceProject, BindingResult bindingResult) throws Exception {
+ Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getDtos()), () -> {
+ throw new BusinessException(BusinessExceptionEnum.SAMPLE_ORDER_IDS_NULL);
+ });
+ if(bindingResult.hasErrors()){
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ DictCodeUtils.validDictCode(outsourceProject);
+ return projectService.saveProjectApply(outsourceProject);
+ }
+
+ @ApiOperation("草稿箱分包项目申请编辑")
+ @PostMapping("/draftUpdate")
+ @ResponseBody
+ public ReturnDTO draftUpdate(@RequestBody @Valid BusinessOutsourceProject outsourceProject, BindingResult bindingResult) throws Exception {
+ Assert.isFalse(Objects.isNull(outsourceProject.getId()), () -> {
+ throw new BusinessException(BusinessExceptionEnum.ID_NULL);
+ });
+ Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getDtos()), () -> {
+ throw new BusinessException(BusinessExceptionEnum.SAMPLE_ORDER_IDS_NULL);
+ });
+ if(bindingResult.hasErrors()){
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ DictCodeUtils.validDictCode(outsourceProject);
+ return projectService.projectApplyDraftUpdate(outsourceProject);
+ }
+
+ @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.submitProjectApply(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.projectDelete(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
+ 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.projectApplyApprovalDelete(request);
+ }
+
+ @ApiOperation("未通过分包项目申请编辑(驳回后的分包项目申请重新编辑,仅未通过列表中的编辑按钮可调用)")
+ @PostMapping("/failUpdate")
+ @ResponseBody
+ public ReturnDTO failUpdate(@RequestBody @Valid BusinessOutsourceProject outsourceProject, BindingResult bindingResult) {
+ Assert.isFalse(Objects.isNull(outsourceProject.getId()), () -> {
+ throw new BusinessException(BusinessExceptionEnum.ID_NULL);
+ });
+ if (bindingResult.hasErrors()) {
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ return projectService.failUpdate(outsourceProject);
+ }
+}
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
new file mode 100644
index 0000000..f44d54c
--- /dev/null
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectCheckController.java
@@ -0,0 +1,23 @@
+package com.casic.missiles.controller.business;
+
+import com.casic.missiles.core.base.controller.ExportController;
+import io.swagger.annotations.Api;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ *
+ * 分包项目表 前端控制器
+ *
+ *
+ * @author wangpeng
+ * @since 2023-03-25
+ */
+@Api(tags = "分包管理接口-分包项目验收")
+@Slf4j
+@RestController
+@RequestMapping("/business/outsourceProject/check")
+public class BusinessOutsourceProjectCheckController extends ExportController {
+
+}
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectController.java
deleted file mode 100644
index 0c4aa69..0000000
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectController.java
+++ /dev/null
@@ -1,149 +0,0 @@
-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.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.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;
-
-/**
- *
- * 分包项目表 前端控制器
- *
- *
- * @author wangpeng
- * @since 2023-03-25
- */
-@Api(tags = "分包管理接口-分包项目申请")
-@Slf4j
-@RestController
-@RequestMapping("/business/outsourceProject")
-public class BusinessOutsourceProjectController extends ExportController {
- @Autowired
- private IBusinessOutsourceProjectService projectService;
-
- @ApiOperation("分包项目审批列表(分页)")
- @PostMapping("/approval/listPage")
- public ReturnDTO> outsourcerApprovalListPage(@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();
- List responseList = projectService.projectApprovalListPage(request, page);
- page.setRecords(responseList);
- return ReturnUtil.success(super.packForBT(page));
- }
-
- @ApiOperation("分包项目审批保存(保存至草稿箱)")
- @PostMapping("/save")
- @ResponseBody
- public ReturnDTO save(@RequestBody @Valid BusinessOutsourceProject outsourceProject, BindingResult bindingResult) throws Exception {
- if(bindingResult.hasErrors()){
- throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
- }
- DictCodeUtils.validDictCode(outsourceProject);
- return projectService.saveProject(outsourceProject);
- }
-
- @ApiOperation("草稿箱分包项目编辑")
- @PostMapping("/draftUpdate")
- @ResponseBody
- public ReturnDTO draftUpdate(@RequestBody @Valid BusinessOutsourceProject outsourceProject, BindingResult bindingResult) throws Exception {
- Assert.isFalse(Objects.isNull(outsourceProject.getId()), () -> {
- throw new BusinessException(BusinessExceptionEnum.ID_NULL);
- });
- if(bindingResult.hasErrors()){
- throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
- }
- DictCodeUtils.validDictCode(outsourceProject);
- return projectService.draftUpdate(outsourceProject);
- }
-
- @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.submitProject(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.deleteProject(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
- 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.approvalDelete(request);
- }
-
- @ApiOperation("未通过分包项目编辑(驳回后的分包项目重新编辑,仅未通过列表中的编辑按钮可调用)")
- @PostMapping("/failUpdate")
- @ResponseBody
- public ReturnDTO failUpdate(@RequestBody @Valid BusinessOutsourceProject outsourceProject, BindingResult bindingResult) {
- Assert.isFalse(Objects.isNull(outsourceProject.getId()), () -> {
- throw new BusinessException(BusinessExceptionEnum.ID_NULL);
- });
- if (bindingResult.hasErrors()) {
- throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
- }
- return projectService.failUpdate(outsourceProject);
- }
-}
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 394626e..e792441 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
@@ -15,6 +15,7 @@
TRAIN_LOG_ID_NULL(2400, "培训记录主键不能为空"),
ORGANIZE_ID_NULL(2400, "计量组织主键不能为空"),
PROCESS_ID_NULL(2400, "流程实例id不能为空"),
+ SAMPLE_ORDER_IDS_NULL(2400, "样品&委托书列表不能为空"),
EDUCATION_NOT_EXISTENCE(2300, "导入文化程度不存在;"),
TECHNOLOGY_JOB_NOT_EXISTENCE(2300, "导入技术职位不存在;"),
ADMINISTRATION_JOB_NOT_EXISTENCE(2300, "导入行政职务不存在;"),
diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOutsourceProjectSampleRelationMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOutsourceProjectSampleRelationMapper.java
index 092011b..732e30b 100644
--- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOutsourceProjectSampleRelationMapper.java
+++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOutsourceProjectSampleRelationMapper.java
@@ -1,7 +1,11 @@
package com.casic.missiles.mapper.business;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.casic.missiles.dto.business.outsource.OrderSampleResponseDTO;
import com.casic.missiles.model.business.BusinessOutsourceProjectSampleRelation;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
/**
*
@@ -13,4 +17,5 @@
*/
public interface BusinessOutsourceProjectSampleRelationMapper extends BaseMapper {
+ List selectSampleList(@Param("projectId") Long projectId);
}
diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourceProjectSampleRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourceProjectSampleRelationMapper.xml
index 5ac4463..1e6b3d3 100644
--- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourceProjectSampleRelationMapper.xml
+++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourceProjectSampleRelationMapper.xml
@@ -7,6 +7,7 @@
+
@@ -16,4 +17,11 @@
id, project_id, sample_id, create_time, update_time
+
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OrderSampleDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OrderSampleDTO.java
new file mode 100644
index 0000000..6bb77de
--- /dev/null
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OrderSampleDTO.java
@@ -0,0 +1,19 @@
+package com.casic.missiles.dto.business.outsource;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @Description: 分包项目中样品委托书入参
+ * @Author: wangpeng
+ * @Date: 2023/3/28 17:14
+ */
+@ApiModel
+@Data
+public class OrderSampleDTO {
+ @ApiModelProperty(value = "样品id", dataType = "Long", required = true)
+ private Long sampleId;
+ @ApiModelProperty(value = "委托书id", dataType = "Long", required = true)
+ private Long orderId;
+}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OrderSampleResponseDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OrderSampleResponseDTO.java
new file mode 100644
index 0000000..a934ce3
--- /dev/null
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OrderSampleResponseDTO.java
@@ -0,0 +1,28 @@
+package com.casic.missiles.dto.business.outsource;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel
+public class OrderSampleResponseDTO {
+ @ApiModelProperty(value = "样品编号", dataType = "String")
+ private String sampleNo;
+
+ @ApiModelProperty(value = "样品名称", dataType = "String")
+ private String sampleName;
+
+ @ApiModelProperty(value = "型号", dataType = "String")
+ private String sampleModel;
+
+ @ApiModelProperty(value = "出厂编号", dataType = "String")
+ private String manufacturingNo;
+
+ @ApiModelProperty(value = "委托方名称", dataType = "String")
+ private String customerName;
+
+ @ApiModelProperty(value = "委托书编号", dataType = "String")
+ private String orderCode;
+
+}
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 1084a81..3b88cf1 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
@@ -10,12 +10,15 @@
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
+import com.casic.missiles.dto.business.outsource.OrderSampleDTO;
+import com.casic.missiles.dto.business.outsource.OrderSampleResponseDTO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
+import java.util.List;
/**
*
@@ -206,5 +209,11 @@
@TableField("update_time")
private String updateTime;
+ @ApiModelProperty(value = "样品&委托书列表(保存/编辑草稿接口入参使用)", dataType = "List")
+ @TableField(exist = false)
+ private List dtos;
+ @ApiModelProperty(value = "样品列表(详情接口出参使用)", dataType = "List")
+ @TableField(exist = false)
+ private List sampleList;
}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourceProjectSampleRelation.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourceProjectSampleRelation.java
index b4dfce8..0e55240 100644
--- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourceProjectSampleRelation.java
+++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourceProjectSampleRelation.java
@@ -37,6 +37,12 @@
private Long sampleId;
/**
+ * 委托书id
+ */
+ @TableField("order_id")
+ private Long orderId;
+
+ /**
* 创建时间
*/
@TableField("create_time")
diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOutsourceProjectSampleRelationServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOutsourceProjectSampleRelationServiceImpl.java
index 05f32a5..85ac8d6 100644
--- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOutsourceProjectSampleRelationServiceImpl.java
+++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOutsourceProjectSampleRelationServiceImpl.java
@@ -1,11 +1,15 @@
package com.casic.missiles.service.Impl.business;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.casic.missiles.dto.business.outsource.OrderSampleResponseDTO;
import com.casic.missiles.mapper.business.BusinessOutsourceProjectSampleRelationMapper;
import com.casic.missiles.model.business.BusinessOutsourceProjectSampleRelation;
import com.casic.missiles.service.business.IBusinessOutsourceProjectSampleRelationService;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import java.util.List;
+
/**
*
* 分包项目-样品关联表 服务实现类
@@ -16,5 +20,11 @@
*/
@Service
public class BusinessOutsourceProjectSampleRelationServiceImpl extends ServiceImpl implements IBusinessOutsourceProjectSampleRelationService {
+ @Autowired
+ private BusinessOutsourceProjectSampleRelationMapper relationMapper;
+ @Override
+ public List selectSampleList(Long projectId) {
+ return relationMapper.selectSampleList(projectId);
+ }
}
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
new file mode 100644
index 0000000..b7dae53
--- /dev/null
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectApplyController.java
@@ -0,0 +1,156 @@
+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.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.beans.factory.annotation.Autowired;
+import org.springframework.util.CollectionUtils;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ *
+ * 分包项目表 前端控制器
+ *
+ *
+ * @author wangpeng
+ * @since 2023-03-25
+ */
+@Api(tags = "分包管理接口-分包项目申请")
+@Slf4j
+@RestController
+@RequestMapping("/business/outsourceProject/apply")
+public class BusinessOutsourceProjectApplyController 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();
+ List responseList = projectService.projectApplyApprovalListPage(request, page);
+ page.setRecords(responseList);
+ return ReturnUtil.success(super.packForBT(page));
+ }
+
+ @ApiOperation("分包项目申请审批保存(保存至草稿箱)")
+ @PostMapping("/save")
+ @ResponseBody
+ public ReturnDTO save(@RequestBody @Valid BusinessOutsourceProject outsourceProject, BindingResult bindingResult) throws Exception {
+ Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getDtos()), () -> {
+ throw new BusinessException(BusinessExceptionEnum.SAMPLE_ORDER_IDS_NULL);
+ });
+ if(bindingResult.hasErrors()){
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ DictCodeUtils.validDictCode(outsourceProject);
+ return projectService.saveProjectApply(outsourceProject);
+ }
+
+ @ApiOperation("草稿箱分包项目申请编辑")
+ @PostMapping("/draftUpdate")
+ @ResponseBody
+ public ReturnDTO draftUpdate(@RequestBody @Valid BusinessOutsourceProject outsourceProject, BindingResult bindingResult) throws Exception {
+ Assert.isFalse(Objects.isNull(outsourceProject.getId()), () -> {
+ throw new BusinessException(BusinessExceptionEnum.ID_NULL);
+ });
+ Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getDtos()), () -> {
+ throw new BusinessException(BusinessExceptionEnum.SAMPLE_ORDER_IDS_NULL);
+ });
+ if(bindingResult.hasErrors()){
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ DictCodeUtils.validDictCode(outsourceProject);
+ return projectService.projectApplyDraftUpdate(outsourceProject);
+ }
+
+ @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.submitProjectApply(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.projectDelete(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
+ 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.projectApplyApprovalDelete(request);
+ }
+
+ @ApiOperation("未通过分包项目申请编辑(驳回后的分包项目申请重新编辑,仅未通过列表中的编辑按钮可调用)")
+ @PostMapping("/failUpdate")
+ @ResponseBody
+ public ReturnDTO failUpdate(@RequestBody @Valid BusinessOutsourceProject outsourceProject, BindingResult bindingResult) {
+ Assert.isFalse(Objects.isNull(outsourceProject.getId()), () -> {
+ throw new BusinessException(BusinessExceptionEnum.ID_NULL);
+ });
+ if (bindingResult.hasErrors()) {
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ return projectService.failUpdate(outsourceProject);
+ }
+}
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
new file mode 100644
index 0000000..f44d54c
--- /dev/null
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectCheckController.java
@@ -0,0 +1,23 @@
+package com.casic.missiles.controller.business;
+
+import com.casic.missiles.core.base.controller.ExportController;
+import io.swagger.annotations.Api;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ *
+ * 分包项目表 前端控制器
+ *
+ *
+ * @author wangpeng
+ * @since 2023-03-25
+ */
+@Api(tags = "分包管理接口-分包项目验收")
+@Slf4j
+@RestController
+@RequestMapping("/business/outsourceProject/check")
+public class BusinessOutsourceProjectCheckController extends ExportController {
+
+}
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectController.java
deleted file mode 100644
index 0c4aa69..0000000
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectController.java
+++ /dev/null
@@ -1,149 +0,0 @@
-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.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.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;
-
-/**
- *
- * 分包项目表 前端控制器
- *
- *
- * @author wangpeng
- * @since 2023-03-25
- */
-@Api(tags = "分包管理接口-分包项目申请")
-@Slf4j
-@RestController
-@RequestMapping("/business/outsourceProject")
-public class BusinessOutsourceProjectController extends ExportController {
- @Autowired
- private IBusinessOutsourceProjectService projectService;
-
- @ApiOperation("分包项目审批列表(分页)")
- @PostMapping("/approval/listPage")
- public ReturnDTO> outsourcerApprovalListPage(@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();
- List responseList = projectService.projectApprovalListPage(request, page);
- page.setRecords(responseList);
- return ReturnUtil.success(super.packForBT(page));
- }
-
- @ApiOperation("分包项目审批保存(保存至草稿箱)")
- @PostMapping("/save")
- @ResponseBody
- public ReturnDTO save(@RequestBody @Valid BusinessOutsourceProject outsourceProject, BindingResult bindingResult) throws Exception {
- if(bindingResult.hasErrors()){
- throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
- }
- DictCodeUtils.validDictCode(outsourceProject);
- return projectService.saveProject(outsourceProject);
- }
-
- @ApiOperation("草稿箱分包项目编辑")
- @PostMapping("/draftUpdate")
- @ResponseBody
- public ReturnDTO draftUpdate(@RequestBody @Valid BusinessOutsourceProject outsourceProject, BindingResult bindingResult) throws Exception {
- Assert.isFalse(Objects.isNull(outsourceProject.getId()), () -> {
- throw new BusinessException(BusinessExceptionEnum.ID_NULL);
- });
- if(bindingResult.hasErrors()){
- throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
- }
- DictCodeUtils.validDictCode(outsourceProject);
- return projectService.draftUpdate(outsourceProject);
- }
-
- @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.submitProject(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.deleteProject(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
- 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.approvalDelete(request);
- }
-
- @ApiOperation("未通过分包项目编辑(驳回后的分包项目重新编辑,仅未通过列表中的编辑按钮可调用)")
- @PostMapping("/failUpdate")
- @ResponseBody
- public ReturnDTO failUpdate(@RequestBody @Valid BusinessOutsourceProject outsourceProject, BindingResult bindingResult) {
- Assert.isFalse(Objects.isNull(outsourceProject.getId()), () -> {
- throw new BusinessException(BusinessExceptionEnum.ID_NULL);
- });
- if (bindingResult.hasErrors()) {
- throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
- }
- return projectService.failUpdate(outsourceProject);
- }
-}
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 394626e..e792441 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
@@ -15,6 +15,7 @@
TRAIN_LOG_ID_NULL(2400, "培训记录主键不能为空"),
ORGANIZE_ID_NULL(2400, "计量组织主键不能为空"),
PROCESS_ID_NULL(2400, "流程实例id不能为空"),
+ SAMPLE_ORDER_IDS_NULL(2400, "样品&委托书列表不能为空"),
EDUCATION_NOT_EXISTENCE(2300, "导入文化程度不存在;"),
TECHNOLOGY_JOB_NOT_EXISTENCE(2300, "导入技术职位不存在;"),
ADMINISTRATION_JOB_NOT_EXISTENCE(2300, "导入行政职务不存在;"),
diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOutsourceProjectSampleRelationMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOutsourceProjectSampleRelationMapper.java
index 092011b..732e30b 100644
--- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOutsourceProjectSampleRelationMapper.java
+++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOutsourceProjectSampleRelationMapper.java
@@ -1,7 +1,11 @@
package com.casic.missiles.mapper.business;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.casic.missiles.dto.business.outsource.OrderSampleResponseDTO;
import com.casic.missiles.model.business.BusinessOutsourceProjectSampleRelation;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
/**
*
@@ -13,4 +17,5 @@
*/
public interface BusinessOutsourceProjectSampleRelationMapper extends BaseMapper {
+ List selectSampleList(@Param("projectId") Long projectId);
}
diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourceProjectSampleRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourceProjectSampleRelationMapper.xml
index 5ac4463..1e6b3d3 100644
--- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourceProjectSampleRelationMapper.xml
+++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourceProjectSampleRelationMapper.xml
@@ -7,6 +7,7 @@
+
@@ -16,4 +17,11 @@
id, project_id, sample_id, create_time, update_time
+
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OrderSampleDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OrderSampleDTO.java
new file mode 100644
index 0000000..6bb77de
--- /dev/null
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OrderSampleDTO.java
@@ -0,0 +1,19 @@
+package com.casic.missiles.dto.business.outsource;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @Description: 分包项目中样品委托书入参
+ * @Author: wangpeng
+ * @Date: 2023/3/28 17:14
+ */
+@ApiModel
+@Data
+public class OrderSampleDTO {
+ @ApiModelProperty(value = "样品id", dataType = "Long", required = true)
+ private Long sampleId;
+ @ApiModelProperty(value = "委托书id", dataType = "Long", required = true)
+ private Long orderId;
+}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OrderSampleResponseDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OrderSampleResponseDTO.java
new file mode 100644
index 0000000..a934ce3
--- /dev/null
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OrderSampleResponseDTO.java
@@ -0,0 +1,28 @@
+package com.casic.missiles.dto.business.outsource;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel
+public class OrderSampleResponseDTO {
+ @ApiModelProperty(value = "样品编号", dataType = "String")
+ private String sampleNo;
+
+ @ApiModelProperty(value = "样品名称", dataType = "String")
+ private String sampleName;
+
+ @ApiModelProperty(value = "型号", dataType = "String")
+ private String sampleModel;
+
+ @ApiModelProperty(value = "出厂编号", dataType = "String")
+ private String manufacturingNo;
+
+ @ApiModelProperty(value = "委托方名称", dataType = "String")
+ private String customerName;
+
+ @ApiModelProperty(value = "委托书编号", dataType = "String")
+ private String orderCode;
+
+}
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 1084a81..3b88cf1 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
@@ -10,12 +10,15 @@
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
+import com.casic.missiles.dto.business.outsource.OrderSampleDTO;
+import com.casic.missiles.dto.business.outsource.OrderSampleResponseDTO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
+import java.util.List;
/**
*
@@ -206,5 +209,11 @@
@TableField("update_time")
private String updateTime;
+ @ApiModelProperty(value = "样品&委托书列表(保存/编辑草稿接口入参使用)", dataType = "List")
+ @TableField(exist = false)
+ private List dtos;
+ @ApiModelProperty(value = "样品列表(详情接口出参使用)", dataType = "List")
+ @TableField(exist = false)
+ private List sampleList;
}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourceProjectSampleRelation.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourceProjectSampleRelation.java
index b4dfce8..0e55240 100644
--- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourceProjectSampleRelation.java
+++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourceProjectSampleRelation.java
@@ -37,6 +37,12 @@
private Long sampleId;
/**
+ * 委托书id
+ */
+ @TableField("order_id")
+ private Long orderId;
+
+ /**
* 创建时间
*/
@TableField("create_time")
diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOutsourceProjectSampleRelationServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOutsourceProjectSampleRelationServiceImpl.java
index 05f32a5..85ac8d6 100644
--- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOutsourceProjectSampleRelationServiceImpl.java
+++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOutsourceProjectSampleRelationServiceImpl.java
@@ -1,11 +1,15 @@
package com.casic.missiles.service.Impl.business;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.casic.missiles.dto.business.outsource.OrderSampleResponseDTO;
import com.casic.missiles.mapper.business.BusinessOutsourceProjectSampleRelationMapper;
import com.casic.missiles.model.business.BusinessOutsourceProjectSampleRelation;
import com.casic.missiles.service.business.IBusinessOutsourceProjectSampleRelationService;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import java.util.List;
+
/**
*
* 分包项目-样品关联表 服务实现类
@@ -16,5 +20,11 @@
*/
@Service
public class BusinessOutsourceProjectSampleRelationServiceImpl extends ServiceImpl implements IBusinessOutsourceProjectSampleRelationService {
+ @Autowired
+ private BusinessOutsourceProjectSampleRelationMapper relationMapper;
+ @Override
+ public List selectSampleList(Long projectId) {
+ return relationMapper.selectSampleList(projectId);
+ }
}
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 ca870c1..f9d060f 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
@@ -1,6 +1,7 @@
package com.casic.missiles.service.Impl.business;
import cn.hutool.core.lang.Assert;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.casic.missiles.core.application.service.AbstractDictService;
@@ -9,6 +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;
@@ -21,9 +23,12 @@
import com.casic.missiles.enums.system.ApprovalStatusEnum;
import com.casic.missiles.exception.BusinessException;
import com.casic.missiles.mapper.business.BusinessOutsourceProjectMapper;
+import com.casic.missiles.mapper.business.BusinessOutsourceProjectSampleRelationMapper;
import com.casic.missiles.model.business.BusinessOutsourceProject;
+import com.casic.missiles.model.business.BusinessOutsourceProjectSampleRelation;
import com.casic.missiles.model.response.ResponseData;
import com.casic.missiles.service.IBaseApprovalService;
+import com.casic.missiles.service.business.IBusinessOutsourceProjectSampleRelationService;
import com.casic.missiles.service.business.IBusinessOutsourceProjectService;
import com.casic.missiles.service.flowable.ApprovalOperateService;
import com.casic.missiles.utils.ConvertUtils;
@@ -55,6 +60,10 @@
private IBaseApprovalService baseApprovalService;
@Autowired
private BusinessOutsourceProjectMapper projectMapper;
+ @Autowired
+ private BusinessOutsourceProjectSampleRelationMapper projectSampleRelationMapper;
+ @Autowired
+ private IBusinessOutsourceProjectSampleRelationService projectSampleRelationService;
@Resource
private AbstractDictService dictService;
@Resource
@@ -63,7 +72,7 @@
private ApprovalOperateService approvalOperateService;
@Override
- public List projectApprovalListPage(OutsourceProjectApprovalListRequest request, Page page) throws Exception {
+ public List projectApplyApprovalListPage(OutsourceProjectApprovalListRequest request, Page page) throws Exception {
AuthUser user = ShiroKit.getUser();
Assert.isFalse(Objects.isNull(user), () -> {
throw new BusinessException(BusinessExceptionEnum.LOGIN_USER_ACQUIRE_FAILED);
@@ -81,7 +90,8 @@
}
@Override
- public ReturnDTO saveProject(BusinessOutsourceProject outsourceProject) {
+ @Transactional
+ public ReturnDTO saveProjectApply(BusinessOutsourceProject outsourceProject) {
//生成编号
Long maxNo = projectMapper.selectMaxOutsourcerNo();
String projectNo = NumberGeneratorUtil.getContactNo(PrefixCodeEnum.OUTSOURCE_PROJECT_PREFIX, maxNo);
@@ -95,6 +105,8 @@
Assert.isFalse(insertFlag <= 0, () -> {
throw new BusinessException(BusinessExceptionEnum.OUTSOURCE_PROJECT_SAVE_FAILED);
});
+ //保存关联样品
+ saveBatchRelation(outsourceProject);
OutsourceProjectSaveResponse saveResponse = new OutsourceProjectSaveResponse();
saveResponse.setId(outsourceProject.getId());
saveResponse.setProjectNo(projectNo);
@@ -103,9 +115,14 @@
@Override
@Transactional
- public ReturnDTO draftUpdate(BusinessOutsourceProject outsourceProject) {
+ public ReturnDTO projectApplyDraftUpdate(BusinessOutsourceProject outsourceProject) {
int updateFlag = projectMapper.updateById(outsourceProject);
if (updateFlag > 0) {
+ //关联样品编辑
+ QueryWrapper wrapper = new QueryWrapper<>();
+ wrapper.eq("project_id", outsourceProject.getId());
+ projectSampleRelationService.remove(wrapper);
+ saveBatchRelation(outsourceProject);
return ReturnUtil.success();
}
throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED);
@@ -113,7 +130,7 @@
@Override
@Transactional
- public ReturnDTO submitProject(BaseApprovalSubmitRequest request) {
+ public ReturnDTO submitProjectApply(BaseApprovalSubmitRequest request) {
//已取消后的提交需先删除原有实例
if (StringUtils.isNotEmpty(request.getProcessId())){
runtimeService.updateBusinessStatus(request.getProcessId(), ApprovalStatusEnum.DELETED);
@@ -140,8 +157,12 @@
}
@Override
- public ReturnDTO deleteProject(Long id) {
+ public ReturnDTO projectDelete(Long id) {
if (projectMapper.deleteById(id) > 0) {
+ //关联样品删除
+ QueryWrapper wrapper = new QueryWrapper<>();
+ wrapper.eq("project_id", id);
+ projectSampleRelationService.remove(wrapper);
return ReturnUtil.success();
}
throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED);
@@ -151,11 +172,14 @@
public ReturnDTO projectDetail(Long id) throws Exception {
BusinessOutsourceProject detailResponse = projectMapper.selectProjectById(id);
DictCodeUtils.convertDictCodeToName(detailResponse);
+ //关联样品查询
+ List sampleList = projectSampleRelationService.selectSampleList(id);
+ detailResponse.setSampleList(sampleList);
return ReturnUtil.success(detailResponse);
}
@Override
- public ReturnDTO approvalDelete(ApprovalDeleteRequest request) {
+ public ReturnDTO projectApplyApprovalDelete(ApprovalDeleteRequest request) {
ReturnDTO returnDTO = approvalOperateService.delete(request);
if (ResponseData.DEFAULT_SUCCESS_CODE == returnDTO.getCode()) {
//本地删除
@@ -174,6 +198,12 @@
throw new BusinessException(BusinessExceptionEnum.LOGIN_USER_ACQUIRE_FAILED);
});
if (projectMapper.updateById(outsourceProject) > 0) {
+ //关联样品编辑
+ QueryWrapper wrapper = new QueryWrapper<>();
+ wrapper.eq("project_id", outsourceProject.getId());
+ projectSampleRelationService.remove(wrapper);
+ saveBatchRelation(outsourceProject);
+
baseApprovalService.failUpdate(outsourceProject.getApplyProcessId());
return ReturnUtil.success();
}
@@ -181,6 +211,18 @@
}
+ private boolean saveBatchRelation(BusinessOutsourceProject outsourceProject) {
+ List relationList = new ArrayList<>();
+ outsourceProject.getDtos().forEach(dto -> {
+ BusinessOutsourceProjectSampleRelation relation = new BusinessOutsourceProjectSampleRelation();
+ relation.setProjectId(outsourceProject.getId());
+ relation.setSampleId(dto.getSampleId());
+ relation.setOrderId(dto.getOrderId());
+ relationList.add(relation);
+ });
+ return projectSampleRelationService.saveBatch(relationList);
+ }
+
private List handleApprovalStatus(Page page, OutsourceProjectApprovalListRequest request) {
List approvalList = new ArrayList<>();
List businessKeys = new ArrayList<>();
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
new file mode 100644
index 0000000..b7dae53
--- /dev/null
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectApplyController.java
@@ -0,0 +1,156 @@
+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.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.beans.factory.annotation.Autowired;
+import org.springframework.util.CollectionUtils;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ *
+ * 分包项目表 前端控制器
+ *
+ *
+ * @author wangpeng
+ * @since 2023-03-25
+ */
+@Api(tags = "分包管理接口-分包项目申请")
+@Slf4j
+@RestController
+@RequestMapping("/business/outsourceProject/apply")
+public class BusinessOutsourceProjectApplyController 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();
+ List responseList = projectService.projectApplyApprovalListPage(request, page);
+ page.setRecords(responseList);
+ return ReturnUtil.success(super.packForBT(page));
+ }
+
+ @ApiOperation("分包项目申请审批保存(保存至草稿箱)")
+ @PostMapping("/save")
+ @ResponseBody
+ public ReturnDTO save(@RequestBody @Valid BusinessOutsourceProject outsourceProject, BindingResult bindingResult) throws Exception {
+ Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getDtos()), () -> {
+ throw new BusinessException(BusinessExceptionEnum.SAMPLE_ORDER_IDS_NULL);
+ });
+ if(bindingResult.hasErrors()){
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ DictCodeUtils.validDictCode(outsourceProject);
+ return projectService.saveProjectApply(outsourceProject);
+ }
+
+ @ApiOperation("草稿箱分包项目申请编辑")
+ @PostMapping("/draftUpdate")
+ @ResponseBody
+ public ReturnDTO draftUpdate(@RequestBody @Valid BusinessOutsourceProject outsourceProject, BindingResult bindingResult) throws Exception {
+ Assert.isFalse(Objects.isNull(outsourceProject.getId()), () -> {
+ throw new BusinessException(BusinessExceptionEnum.ID_NULL);
+ });
+ Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getDtos()), () -> {
+ throw new BusinessException(BusinessExceptionEnum.SAMPLE_ORDER_IDS_NULL);
+ });
+ if(bindingResult.hasErrors()){
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ DictCodeUtils.validDictCode(outsourceProject);
+ return projectService.projectApplyDraftUpdate(outsourceProject);
+ }
+
+ @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.submitProjectApply(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.projectDelete(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
+ 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.projectApplyApprovalDelete(request);
+ }
+
+ @ApiOperation("未通过分包项目申请编辑(驳回后的分包项目申请重新编辑,仅未通过列表中的编辑按钮可调用)")
+ @PostMapping("/failUpdate")
+ @ResponseBody
+ public ReturnDTO failUpdate(@RequestBody @Valid BusinessOutsourceProject outsourceProject, BindingResult bindingResult) {
+ Assert.isFalse(Objects.isNull(outsourceProject.getId()), () -> {
+ throw new BusinessException(BusinessExceptionEnum.ID_NULL);
+ });
+ if (bindingResult.hasErrors()) {
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ return projectService.failUpdate(outsourceProject);
+ }
+}
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
new file mode 100644
index 0000000..f44d54c
--- /dev/null
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectCheckController.java
@@ -0,0 +1,23 @@
+package com.casic.missiles.controller.business;
+
+import com.casic.missiles.core.base.controller.ExportController;
+import io.swagger.annotations.Api;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ *
+ * 分包项目表 前端控制器
+ *
+ *
+ * @author wangpeng
+ * @since 2023-03-25
+ */
+@Api(tags = "分包管理接口-分包项目验收")
+@Slf4j
+@RestController
+@RequestMapping("/business/outsourceProject/check")
+public class BusinessOutsourceProjectCheckController extends ExportController {
+
+}
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectController.java
deleted file mode 100644
index 0c4aa69..0000000
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectController.java
+++ /dev/null
@@ -1,149 +0,0 @@
-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.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.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;
-
-/**
- *
- * 分包项目表 前端控制器
- *
- *
- * @author wangpeng
- * @since 2023-03-25
- */
-@Api(tags = "分包管理接口-分包项目申请")
-@Slf4j
-@RestController
-@RequestMapping("/business/outsourceProject")
-public class BusinessOutsourceProjectController extends ExportController {
- @Autowired
- private IBusinessOutsourceProjectService projectService;
-
- @ApiOperation("分包项目审批列表(分页)")
- @PostMapping("/approval/listPage")
- public ReturnDTO> outsourcerApprovalListPage(@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();
- List responseList = projectService.projectApprovalListPage(request, page);
- page.setRecords(responseList);
- return ReturnUtil.success(super.packForBT(page));
- }
-
- @ApiOperation("分包项目审批保存(保存至草稿箱)")
- @PostMapping("/save")
- @ResponseBody
- public ReturnDTO save(@RequestBody @Valid BusinessOutsourceProject outsourceProject, BindingResult bindingResult) throws Exception {
- if(bindingResult.hasErrors()){
- throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
- }
- DictCodeUtils.validDictCode(outsourceProject);
- return projectService.saveProject(outsourceProject);
- }
-
- @ApiOperation("草稿箱分包项目编辑")
- @PostMapping("/draftUpdate")
- @ResponseBody
- public ReturnDTO draftUpdate(@RequestBody @Valid BusinessOutsourceProject outsourceProject, BindingResult bindingResult) throws Exception {
- Assert.isFalse(Objects.isNull(outsourceProject.getId()), () -> {
- throw new BusinessException(BusinessExceptionEnum.ID_NULL);
- });
- if(bindingResult.hasErrors()){
- throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
- }
- DictCodeUtils.validDictCode(outsourceProject);
- return projectService.draftUpdate(outsourceProject);
- }
-
- @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.submitProject(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.deleteProject(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
- 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.approvalDelete(request);
- }
-
- @ApiOperation("未通过分包项目编辑(驳回后的分包项目重新编辑,仅未通过列表中的编辑按钮可调用)")
- @PostMapping("/failUpdate")
- @ResponseBody
- public ReturnDTO failUpdate(@RequestBody @Valid BusinessOutsourceProject outsourceProject, BindingResult bindingResult) {
- Assert.isFalse(Objects.isNull(outsourceProject.getId()), () -> {
- throw new BusinessException(BusinessExceptionEnum.ID_NULL);
- });
- if (bindingResult.hasErrors()) {
- throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
- }
- return projectService.failUpdate(outsourceProject);
- }
-}
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 394626e..e792441 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
@@ -15,6 +15,7 @@
TRAIN_LOG_ID_NULL(2400, "培训记录主键不能为空"),
ORGANIZE_ID_NULL(2400, "计量组织主键不能为空"),
PROCESS_ID_NULL(2400, "流程实例id不能为空"),
+ SAMPLE_ORDER_IDS_NULL(2400, "样品&委托书列表不能为空"),
EDUCATION_NOT_EXISTENCE(2300, "导入文化程度不存在;"),
TECHNOLOGY_JOB_NOT_EXISTENCE(2300, "导入技术职位不存在;"),
ADMINISTRATION_JOB_NOT_EXISTENCE(2300, "导入行政职务不存在;"),
diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOutsourceProjectSampleRelationMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOutsourceProjectSampleRelationMapper.java
index 092011b..732e30b 100644
--- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOutsourceProjectSampleRelationMapper.java
+++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOutsourceProjectSampleRelationMapper.java
@@ -1,7 +1,11 @@
package com.casic.missiles.mapper.business;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.casic.missiles.dto.business.outsource.OrderSampleResponseDTO;
import com.casic.missiles.model.business.BusinessOutsourceProjectSampleRelation;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
/**
*
@@ -13,4 +17,5 @@
*/
public interface BusinessOutsourceProjectSampleRelationMapper extends BaseMapper {
+ List selectSampleList(@Param("projectId") Long projectId);
}
diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourceProjectSampleRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourceProjectSampleRelationMapper.xml
index 5ac4463..1e6b3d3 100644
--- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourceProjectSampleRelationMapper.xml
+++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourceProjectSampleRelationMapper.xml
@@ -7,6 +7,7 @@
+
@@ -16,4 +17,11 @@
id, project_id, sample_id, create_time, update_time
+
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OrderSampleDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OrderSampleDTO.java
new file mode 100644
index 0000000..6bb77de
--- /dev/null
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OrderSampleDTO.java
@@ -0,0 +1,19 @@
+package com.casic.missiles.dto.business.outsource;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @Description: 分包项目中样品委托书入参
+ * @Author: wangpeng
+ * @Date: 2023/3/28 17:14
+ */
+@ApiModel
+@Data
+public class OrderSampleDTO {
+ @ApiModelProperty(value = "样品id", dataType = "Long", required = true)
+ private Long sampleId;
+ @ApiModelProperty(value = "委托书id", dataType = "Long", required = true)
+ private Long orderId;
+}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OrderSampleResponseDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OrderSampleResponseDTO.java
new file mode 100644
index 0000000..a934ce3
--- /dev/null
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OrderSampleResponseDTO.java
@@ -0,0 +1,28 @@
+package com.casic.missiles.dto.business.outsource;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel
+public class OrderSampleResponseDTO {
+ @ApiModelProperty(value = "样品编号", dataType = "String")
+ private String sampleNo;
+
+ @ApiModelProperty(value = "样品名称", dataType = "String")
+ private String sampleName;
+
+ @ApiModelProperty(value = "型号", dataType = "String")
+ private String sampleModel;
+
+ @ApiModelProperty(value = "出厂编号", dataType = "String")
+ private String manufacturingNo;
+
+ @ApiModelProperty(value = "委托方名称", dataType = "String")
+ private String customerName;
+
+ @ApiModelProperty(value = "委托书编号", dataType = "String")
+ private String orderCode;
+
+}
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 1084a81..3b88cf1 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
@@ -10,12 +10,15 @@
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
+import com.casic.missiles.dto.business.outsource.OrderSampleDTO;
+import com.casic.missiles.dto.business.outsource.OrderSampleResponseDTO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
+import java.util.List;
/**
*
@@ -206,5 +209,11 @@
@TableField("update_time")
private String updateTime;
+ @ApiModelProperty(value = "样品&委托书列表(保存/编辑草稿接口入参使用)", dataType = "List")
+ @TableField(exist = false)
+ private List dtos;
+ @ApiModelProperty(value = "样品列表(详情接口出参使用)", dataType = "List")
+ @TableField(exist = false)
+ private List sampleList;
}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourceProjectSampleRelation.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourceProjectSampleRelation.java
index b4dfce8..0e55240 100644
--- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourceProjectSampleRelation.java
+++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourceProjectSampleRelation.java
@@ -37,6 +37,12 @@
private Long sampleId;
/**
+ * 委托书id
+ */
+ @TableField("order_id")
+ private Long orderId;
+
+ /**
* 创建时间
*/
@TableField("create_time")
diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOutsourceProjectSampleRelationServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOutsourceProjectSampleRelationServiceImpl.java
index 05f32a5..85ac8d6 100644
--- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOutsourceProjectSampleRelationServiceImpl.java
+++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOutsourceProjectSampleRelationServiceImpl.java
@@ -1,11 +1,15 @@
package com.casic.missiles.service.Impl.business;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.casic.missiles.dto.business.outsource.OrderSampleResponseDTO;
import com.casic.missiles.mapper.business.BusinessOutsourceProjectSampleRelationMapper;
import com.casic.missiles.model.business.BusinessOutsourceProjectSampleRelation;
import com.casic.missiles.service.business.IBusinessOutsourceProjectSampleRelationService;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import java.util.List;
+
/**
*
* 分包项目-样品关联表 服务实现类
@@ -16,5 +20,11 @@
*/
@Service
public class BusinessOutsourceProjectSampleRelationServiceImpl extends ServiceImpl implements IBusinessOutsourceProjectSampleRelationService {
+ @Autowired
+ private BusinessOutsourceProjectSampleRelationMapper relationMapper;
+ @Override
+ public List selectSampleList(Long projectId) {
+ return relationMapper.selectSampleList(projectId);
+ }
}
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 ca870c1..f9d060f 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
@@ -1,6 +1,7 @@
package com.casic.missiles.service.Impl.business;
import cn.hutool.core.lang.Assert;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.casic.missiles.core.application.service.AbstractDictService;
@@ -9,6 +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;
@@ -21,9 +23,12 @@
import com.casic.missiles.enums.system.ApprovalStatusEnum;
import com.casic.missiles.exception.BusinessException;
import com.casic.missiles.mapper.business.BusinessOutsourceProjectMapper;
+import com.casic.missiles.mapper.business.BusinessOutsourceProjectSampleRelationMapper;
import com.casic.missiles.model.business.BusinessOutsourceProject;
+import com.casic.missiles.model.business.BusinessOutsourceProjectSampleRelation;
import com.casic.missiles.model.response.ResponseData;
import com.casic.missiles.service.IBaseApprovalService;
+import com.casic.missiles.service.business.IBusinessOutsourceProjectSampleRelationService;
import com.casic.missiles.service.business.IBusinessOutsourceProjectService;
import com.casic.missiles.service.flowable.ApprovalOperateService;
import com.casic.missiles.utils.ConvertUtils;
@@ -55,6 +60,10 @@
private IBaseApprovalService baseApprovalService;
@Autowired
private BusinessOutsourceProjectMapper projectMapper;
+ @Autowired
+ private BusinessOutsourceProjectSampleRelationMapper projectSampleRelationMapper;
+ @Autowired
+ private IBusinessOutsourceProjectSampleRelationService projectSampleRelationService;
@Resource
private AbstractDictService dictService;
@Resource
@@ -63,7 +72,7 @@
private ApprovalOperateService approvalOperateService;
@Override
- public List projectApprovalListPage(OutsourceProjectApprovalListRequest request, Page page) throws Exception {
+ public List projectApplyApprovalListPage(OutsourceProjectApprovalListRequest request, Page page) throws Exception {
AuthUser user = ShiroKit.getUser();
Assert.isFalse(Objects.isNull(user), () -> {
throw new BusinessException(BusinessExceptionEnum.LOGIN_USER_ACQUIRE_FAILED);
@@ -81,7 +90,8 @@
}
@Override
- public ReturnDTO saveProject(BusinessOutsourceProject outsourceProject) {
+ @Transactional
+ public ReturnDTO saveProjectApply(BusinessOutsourceProject outsourceProject) {
//生成编号
Long maxNo = projectMapper.selectMaxOutsourcerNo();
String projectNo = NumberGeneratorUtil.getContactNo(PrefixCodeEnum.OUTSOURCE_PROJECT_PREFIX, maxNo);
@@ -95,6 +105,8 @@
Assert.isFalse(insertFlag <= 0, () -> {
throw new BusinessException(BusinessExceptionEnum.OUTSOURCE_PROJECT_SAVE_FAILED);
});
+ //保存关联样品
+ saveBatchRelation(outsourceProject);
OutsourceProjectSaveResponse saveResponse = new OutsourceProjectSaveResponse();
saveResponse.setId(outsourceProject.getId());
saveResponse.setProjectNo(projectNo);
@@ -103,9 +115,14 @@
@Override
@Transactional
- public ReturnDTO draftUpdate(BusinessOutsourceProject outsourceProject) {
+ public ReturnDTO projectApplyDraftUpdate(BusinessOutsourceProject outsourceProject) {
int updateFlag = projectMapper.updateById(outsourceProject);
if (updateFlag > 0) {
+ //关联样品编辑
+ QueryWrapper wrapper = new QueryWrapper<>();
+ wrapper.eq("project_id", outsourceProject.getId());
+ projectSampleRelationService.remove(wrapper);
+ saveBatchRelation(outsourceProject);
return ReturnUtil.success();
}
throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED);
@@ -113,7 +130,7 @@
@Override
@Transactional
- public ReturnDTO submitProject(BaseApprovalSubmitRequest request) {
+ public ReturnDTO submitProjectApply(BaseApprovalSubmitRequest request) {
//已取消后的提交需先删除原有实例
if (StringUtils.isNotEmpty(request.getProcessId())){
runtimeService.updateBusinessStatus(request.getProcessId(), ApprovalStatusEnum.DELETED);
@@ -140,8 +157,12 @@
}
@Override
- public ReturnDTO deleteProject(Long id) {
+ public ReturnDTO projectDelete(Long id) {
if (projectMapper.deleteById(id) > 0) {
+ //关联样品删除
+ QueryWrapper wrapper = new QueryWrapper<>();
+ wrapper.eq("project_id", id);
+ projectSampleRelationService.remove(wrapper);
return ReturnUtil.success();
}
throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED);
@@ -151,11 +172,14 @@
public ReturnDTO projectDetail(Long id) throws Exception {
BusinessOutsourceProject detailResponse = projectMapper.selectProjectById(id);
DictCodeUtils.convertDictCodeToName(detailResponse);
+ //关联样品查询
+ List sampleList = projectSampleRelationService.selectSampleList(id);
+ detailResponse.setSampleList(sampleList);
return ReturnUtil.success(detailResponse);
}
@Override
- public ReturnDTO approvalDelete(ApprovalDeleteRequest request) {
+ public ReturnDTO projectApplyApprovalDelete(ApprovalDeleteRequest request) {
ReturnDTO returnDTO = approvalOperateService.delete(request);
if (ResponseData.DEFAULT_SUCCESS_CODE == returnDTO.getCode()) {
//本地删除
@@ -174,6 +198,12 @@
throw new BusinessException(BusinessExceptionEnum.LOGIN_USER_ACQUIRE_FAILED);
});
if (projectMapper.updateById(outsourceProject) > 0) {
+ //关联样品编辑
+ QueryWrapper wrapper = new QueryWrapper<>();
+ wrapper.eq("project_id", outsourceProject.getId());
+ projectSampleRelationService.remove(wrapper);
+ saveBatchRelation(outsourceProject);
+
baseApprovalService.failUpdate(outsourceProject.getApplyProcessId());
return ReturnUtil.success();
}
@@ -181,6 +211,18 @@
}
+ private boolean saveBatchRelation(BusinessOutsourceProject outsourceProject) {
+ List relationList = new ArrayList<>();
+ outsourceProject.getDtos().forEach(dto -> {
+ BusinessOutsourceProjectSampleRelation relation = new BusinessOutsourceProjectSampleRelation();
+ relation.setProjectId(outsourceProject.getId());
+ relation.setSampleId(dto.getSampleId());
+ relation.setOrderId(dto.getOrderId());
+ relationList.add(relation);
+ });
+ return projectSampleRelationService.saveBatch(relationList);
+ }
+
private List handleApprovalStatus(Page page, OutsourceProjectApprovalListRequest request) {
List approvalList = new ArrayList<>();
List businessKeys = new ArrayList<>();
diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessOutsourceProjectSampleRelationService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessOutsourceProjectSampleRelationService.java
index bacc4d9..e455218 100644
--- a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessOutsourceProjectSampleRelationService.java
+++ b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessOutsourceProjectSampleRelationService.java
@@ -1,8 +1,11 @@
package com.casic.missiles.service.business;
import com.baomidou.mybatisplus.extension.service.IService;
+import com.casic.missiles.dto.business.outsource.OrderSampleResponseDTO;
import com.casic.missiles.model.business.BusinessOutsourceProjectSampleRelation;
+import java.util.List;
+
/**
*
* 分包项目-样品关联表 服务类
@@ -13,4 +16,5 @@
*/
public interface IBusinessOutsourceProjectSampleRelationService extends IService {
+ List selectSampleList(Long projectId);
}
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
new file mode 100644
index 0000000..b7dae53
--- /dev/null
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectApplyController.java
@@ -0,0 +1,156 @@
+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.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.beans.factory.annotation.Autowired;
+import org.springframework.util.CollectionUtils;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ *
+ * 分包项目表 前端控制器
+ *
+ *
+ * @author wangpeng
+ * @since 2023-03-25
+ */
+@Api(tags = "分包管理接口-分包项目申请")
+@Slf4j
+@RestController
+@RequestMapping("/business/outsourceProject/apply")
+public class BusinessOutsourceProjectApplyController 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();
+ List responseList = projectService.projectApplyApprovalListPage(request, page);
+ page.setRecords(responseList);
+ return ReturnUtil.success(super.packForBT(page));
+ }
+
+ @ApiOperation("分包项目申请审批保存(保存至草稿箱)")
+ @PostMapping("/save")
+ @ResponseBody
+ public ReturnDTO save(@RequestBody @Valid BusinessOutsourceProject outsourceProject, BindingResult bindingResult) throws Exception {
+ Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getDtos()), () -> {
+ throw new BusinessException(BusinessExceptionEnum.SAMPLE_ORDER_IDS_NULL);
+ });
+ if(bindingResult.hasErrors()){
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ DictCodeUtils.validDictCode(outsourceProject);
+ return projectService.saveProjectApply(outsourceProject);
+ }
+
+ @ApiOperation("草稿箱分包项目申请编辑")
+ @PostMapping("/draftUpdate")
+ @ResponseBody
+ public ReturnDTO draftUpdate(@RequestBody @Valid BusinessOutsourceProject outsourceProject, BindingResult bindingResult) throws Exception {
+ Assert.isFalse(Objects.isNull(outsourceProject.getId()), () -> {
+ throw new BusinessException(BusinessExceptionEnum.ID_NULL);
+ });
+ Assert.isFalse(CollectionUtils.isEmpty(outsourceProject.getDtos()), () -> {
+ throw new BusinessException(BusinessExceptionEnum.SAMPLE_ORDER_IDS_NULL);
+ });
+ if(bindingResult.hasErrors()){
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ DictCodeUtils.validDictCode(outsourceProject);
+ return projectService.projectApplyDraftUpdate(outsourceProject);
+ }
+
+ @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.submitProjectApply(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.projectDelete(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
+ 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.projectApplyApprovalDelete(request);
+ }
+
+ @ApiOperation("未通过分包项目申请编辑(驳回后的分包项目申请重新编辑,仅未通过列表中的编辑按钮可调用)")
+ @PostMapping("/failUpdate")
+ @ResponseBody
+ public ReturnDTO failUpdate(@RequestBody @Valid BusinessOutsourceProject outsourceProject, BindingResult bindingResult) {
+ Assert.isFalse(Objects.isNull(outsourceProject.getId()), () -> {
+ throw new BusinessException(BusinessExceptionEnum.ID_NULL);
+ });
+ if (bindingResult.hasErrors()) {
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ return projectService.failUpdate(outsourceProject);
+ }
+}
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
new file mode 100644
index 0000000..f44d54c
--- /dev/null
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectCheckController.java
@@ -0,0 +1,23 @@
+package com.casic.missiles.controller.business;
+
+import com.casic.missiles.core.base.controller.ExportController;
+import io.swagger.annotations.Api;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ *
+ * 分包项目表 前端控制器
+ *
+ *
+ * @author wangpeng
+ * @since 2023-03-25
+ */
+@Api(tags = "分包管理接口-分包项目验收")
+@Slf4j
+@RestController
+@RequestMapping("/business/outsourceProject/check")
+public class BusinessOutsourceProjectCheckController extends ExportController {
+
+}
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectController.java
deleted file mode 100644
index 0c4aa69..0000000
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessOutsourceProjectController.java
+++ /dev/null
@@ -1,149 +0,0 @@
-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.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.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;
-
-/**
- *
- * 分包项目表 前端控制器
- *
- *
- * @author wangpeng
- * @since 2023-03-25
- */
-@Api(tags = "分包管理接口-分包项目申请")
-@Slf4j
-@RestController
-@RequestMapping("/business/outsourceProject")
-public class BusinessOutsourceProjectController extends ExportController {
- @Autowired
- private IBusinessOutsourceProjectService projectService;
-
- @ApiOperation("分包项目审批列表(分页)")
- @PostMapping("/approval/listPage")
- public ReturnDTO> outsourcerApprovalListPage(@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();
- List responseList = projectService.projectApprovalListPage(request, page);
- page.setRecords(responseList);
- return ReturnUtil.success(super.packForBT(page));
- }
-
- @ApiOperation("分包项目审批保存(保存至草稿箱)")
- @PostMapping("/save")
- @ResponseBody
- public ReturnDTO save(@RequestBody @Valid BusinessOutsourceProject outsourceProject, BindingResult bindingResult) throws Exception {
- if(bindingResult.hasErrors()){
- throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
- }
- DictCodeUtils.validDictCode(outsourceProject);
- return projectService.saveProject(outsourceProject);
- }
-
- @ApiOperation("草稿箱分包项目编辑")
- @PostMapping("/draftUpdate")
- @ResponseBody
- public ReturnDTO draftUpdate(@RequestBody @Valid BusinessOutsourceProject outsourceProject, BindingResult bindingResult) throws Exception {
- Assert.isFalse(Objects.isNull(outsourceProject.getId()), () -> {
- throw new BusinessException(BusinessExceptionEnum.ID_NULL);
- });
- if(bindingResult.hasErrors()){
- throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
- }
- DictCodeUtils.validDictCode(outsourceProject);
- return projectService.draftUpdate(outsourceProject);
- }
-
- @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.submitProject(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.deleteProject(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
- 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.approvalDelete(request);
- }
-
- @ApiOperation("未通过分包项目编辑(驳回后的分包项目重新编辑,仅未通过列表中的编辑按钮可调用)")
- @PostMapping("/failUpdate")
- @ResponseBody
- public ReturnDTO failUpdate(@RequestBody @Valid BusinessOutsourceProject outsourceProject, BindingResult bindingResult) {
- Assert.isFalse(Objects.isNull(outsourceProject.getId()), () -> {
- throw new BusinessException(BusinessExceptionEnum.ID_NULL);
- });
- if (bindingResult.hasErrors()) {
- throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
- }
- return projectService.failUpdate(outsourceProject);
- }
-}
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 394626e..e792441 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
@@ -15,6 +15,7 @@
TRAIN_LOG_ID_NULL(2400, "培训记录主键不能为空"),
ORGANIZE_ID_NULL(2400, "计量组织主键不能为空"),
PROCESS_ID_NULL(2400, "流程实例id不能为空"),
+ SAMPLE_ORDER_IDS_NULL(2400, "样品&委托书列表不能为空"),
EDUCATION_NOT_EXISTENCE(2300, "导入文化程度不存在;"),
TECHNOLOGY_JOB_NOT_EXISTENCE(2300, "导入技术职位不存在;"),
ADMINISTRATION_JOB_NOT_EXISTENCE(2300, "导入行政职务不存在;"),
diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOutsourceProjectSampleRelationMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOutsourceProjectSampleRelationMapper.java
index 092011b..732e30b 100644
--- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOutsourceProjectSampleRelationMapper.java
+++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOutsourceProjectSampleRelationMapper.java
@@ -1,7 +1,11 @@
package com.casic.missiles.mapper.business;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.casic.missiles.dto.business.outsource.OrderSampleResponseDTO;
import com.casic.missiles.model.business.BusinessOutsourceProjectSampleRelation;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
/**
*
@@ -13,4 +17,5 @@
*/
public interface BusinessOutsourceProjectSampleRelationMapper extends BaseMapper {
+ List selectSampleList(@Param("projectId") Long projectId);
}
diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourceProjectSampleRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourceProjectSampleRelationMapper.xml
index 5ac4463..1e6b3d3 100644
--- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourceProjectSampleRelationMapper.xml
+++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOutsourceProjectSampleRelationMapper.xml
@@ -7,6 +7,7 @@
+
@@ -16,4 +17,11 @@
id, project_id, sample_id, create_time, update_time
+
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OrderSampleDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OrderSampleDTO.java
new file mode 100644
index 0000000..6bb77de
--- /dev/null
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OrderSampleDTO.java
@@ -0,0 +1,19 @@
+package com.casic.missiles.dto.business.outsource;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @Description: 分包项目中样品委托书入参
+ * @Author: wangpeng
+ * @Date: 2023/3/28 17:14
+ */
+@ApiModel
+@Data
+public class OrderSampleDTO {
+ @ApiModelProperty(value = "样品id", dataType = "Long", required = true)
+ private Long sampleId;
+ @ApiModelProperty(value = "委托书id", dataType = "Long", required = true)
+ private Long orderId;
+}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OrderSampleResponseDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OrderSampleResponseDTO.java
new file mode 100644
index 0000000..a934ce3
--- /dev/null
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/outsource/OrderSampleResponseDTO.java
@@ -0,0 +1,28 @@
+package com.casic.missiles.dto.business.outsource;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel
+public class OrderSampleResponseDTO {
+ @ApiModelProperty(value = "样品编号", dataType = "String")
+ private String sampleNo;
+
+ @ApiModelProperty(value = "样品名称", dataType = "String")
+ private String sampleName;
+
+ @ApiModelProperty(value = "型号", dataType = "String")
+ private String sampleModel;
+
+ @ApiModelProperty(value = "出厂编号", dataType = "String")
+ private String manufacturingNo;
+
+ @ApiModelProperty(value = "委托方名称", dataType = "String")
+ private String customerName;
+
+ @ApiModelProperty(value = "委托书编号", dataType = "String")
+ private String orderCode;
+
+}
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 1084a81..3b88cf1 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
@@ -10,12 +10,15 @@
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
+import com.casic.missiles.dto.business.outsource.OrderSampleDTO;
+import com.casic.missiles.dto.business.outsource.OrderSampleResponseDTO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
+import java.util.List;
/**
*
@@ -206,5 +209,11 @@
@TableField("update_time")
private String updateTime;
+ @ApiModelProperty(value = "样品&委托书列表(保存/编辑草稿接口入参使用)", dataType = "List")
+ @TableField(exist = false)
+ private List dtos;
+ @ApiModelProperty(value = "样品列表(详情接口出参使用)", dataType = "List")
+ @TableField(exist = false)
+ private List sampleList;
}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourceProjectSampleRelation.java b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourceProjectSampleRelation.java
index b4dfce8..0e55240 100644
--- a/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourceProjectSampleRelation.java
+++ b/casic-metering-model/src/main/java/com/casic/missiles/model/business/BusinessOutsourceProjectSampleRelation.java
@@ -37,6 +37,12 @@
private Long sampleId;
/**
+ * 委托书id
+ */
+ @TableField("order_id")
+ private Long orderId;
+
+ /**
* 创建时间
*/
@TableField("create_time")
diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOutsourceProjectSampleRelationServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOutsourceProjectSampleRelationServiceImpl.java
index 05f32a5..85ac8d6 100644
--- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOutsourceProjectSampleRelationServiceImpl.java
+++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessOutsourceProjectSampleRelationServiceImpl.java
@@ -1,11 +1,15 @@
package com.casic.missiles.service.Impl.business;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.casic.missiles.dto.business.outsource.OrderSampleResponseDTO;
import com.casic.missiles.mapper.business.BusinessOutsourceProjectSampleRelationMapper;
import com.casic.missiles.model.business.BusinessOutsourceProjectSampleRelation;
import com.casic.missiles.service.business.IBusinessOutsourceProjectSampleRelationService;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import java.util.List;
+
/**
*
* 分包项目-样品关联表 服务实现类
@@ -16,5 +20,11 @@
*/
@Service
public class BusinessOutsourceProjectSampleRelationServiceImpl extends ServiceImpl implements IBusinessOutsourceProjectSampleRelationService {
+ @Autowired
+ private BusinessOutsourceProjectSampleRelationMapper relationMapper;
+ @Override
+ public List selectSampleList(Long projectId) {
+ return relationMapper.selectSampleList(projectId);
+ }
}
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 ca870c1..f9d060f 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
@@ -1,6 +1,7 @@
package com.casic.missiles.service.Impl.business;
import cn.hutool.core.lang.Assert;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.casic.missiles.core.application.service.AbstractDictService;
@@ -9,6 +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;
@@ -21,9 +23,12 @@
import com.casic.missiles.enums.system.ApprovalStatusEnum;
import com.casic.missiles.exception.BusinessException;
import com.casic.missiles.mapper.business.BusinessOutsourceProjectMapper;
+import com.casic.missiles.mapper.business.BusinessOutsourceProjectSampleRelationMapper;
import com.casic.missiles.model.business.BusinessOutsourceProject;
+import com.casic.missiles.model.business.BusinessOutsourceProjectSampleRelation;
import com.casic.missiles.model.response.ResponseData;
import com.casic.missiles.service.IBaseApprovalService;
+import com.casic.missiles.service.business.IBusinessOutsourceProjectSampleRelationService;
import com.casic.missiles.service.business.IBusinessOutsourceProjectService;
import com.casic.missiles.service.flowable.ApprovalOperateService;
import com.casic.missiles.utils.ConvertUtils;
@@ -55,6 +60,10 @@
private IBaseApprovalService baseApprovalService;
@Autowired
private BusinessOutsourceProjectMapper projectMapper;
+ @Autowired
+ private BusinessOutsourceProjectSampleRelationMapper projectSampleRelationMapper;
+ @Autowired
+ private IBusinessOutsourceProjectSampleRelationService projectSampleRelationService;
@Resource
private AbstractDictService dictService;
@Resource
@@ -63,7 +72,7 @@
private ApprovalOperateService approvalOperateService;
@Override
- public List projectApprovalListPage(OutsourceProjectApprovalListRequest request, Page page) throws Exception {
+ public List projectApplyApprovalListPage(OutsourceProjectApprovalListRequest request, Page page) throws Exception {
AuthUser user = ShiroKit.getUser();
Assert.isFalse(Objects.isNull(user), () -> {
throw new BusinessException(BusinessExceptionEnum.LOGIN_USER_ACQUIRE_FAILED);
@@ -81,7 +90,8 @@
}
@Override
- public ReturnDTO saveProject(BusinessOutsourceProject outsourceProject) {
+ @Transactional
+ public ReturnDTO saveProjectApply(BusinessOutsourceProject outsourceProject) {
//生成编号
Long maxNo = projectMapper.selectMaxOutsourcerNo();
String projectNo = NumberGeneratorUtil.getContactNo(PrefixCodeEnum.OUTSOURCE_PROJECT_PREFIX, maxNo);
@@ -95,6 +105,8 @@
Assert.isFalse(insertFlag <= 0, () -> {
throw new BusinessException(BusinessExceptionEnum.OUTSOURCE_PROJECT_SAVE_FAILED);
});
+ //保存关联样品
+ saveBatchRelation(outsourceProject);
OutsourceProjectSaveResponse saveResponse = new OutsourceProjectSaveResponse();
saveResponse.setId(outsourceProject.getId());
saveResponse.setProjectNo(projectNo);
@@ -103,9 +115,14 @@
@Override
@Transactional
- public ReturnDTO draftUpdate(BusinessOutsourceProject outsourceProject) {
+ public ReturnDTO projectApplyDraftUpdate(BusinessOutsourceProject outsourceProject) {
int updateFlag = projectMapper.updateById(outsourceProject);
if (updateFlag > 0) {
+ //关联样品编辑
+ QueryWrapper wrapper = new QueryWrapper<>();
+ wrapper.eq("project_id", outsourceProject.getId());
+ projectSampleRelationService.remove(wrapper);
+ saveBatchRelation(outsourceProject);
return ReturnUtil.success();
}
throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED);
@@ -113,7 +130,7 @@
@Override
@Transactional
- public ReturnDTO submitProject(BaseApprovalSubmitRequest request) {
+ public ReturnDTO submitProjectApply(BaseApprovalSubmitRequest request) {
//已取消后的提交需先删除原有实例
if (StringUtils.isNotEmpty(request.getProcessId())){
runtimeService.updateBusinessStatus(request.getProcessId(), ApprovalStatusEnum.DELETED);
@@ -140,8 +157,12 @@
}
@Override
- public ReturnDTO deleteProject(Long id) {
+ public ReturnDTO projectDelete(Long id) {
if (projectMapper.deleteById(id) > 0) {
+ //关联样品删除
+ QueryWrapper wrapper = new QueryWrapper<>();
+ wrapper.eq("project_id", id);
+ projectSampleRelationService.remove(wrapper);
return ReturnUtil.success();
}
throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED);
@@ -151,11 +172,14 @@
public ReturnDTO projectDetail(Long id) throws Exception {
BusinessOutsourceProject detailResponse = projectMapper.selectProjectById(id);
DictCodeUtils.convertDictCodeToName(detailResponse);
+ //关联样品查询
+ List sampleList = projectSampleRelationService.selectSampleList(id);
+ detailResponse.setSampleList(sampleList);
return ReturnUtil.success(detailResponse);
}
@Override
- public ReturnDTO approvalDelete(ApprovalDeleteRequest request) {
+ public ReturnDTO projectApplyApprovalDelete(ApprovalDeleteRequest request) {
ReturnDTO returnDTO = approvalOperateService.delete(request);
if (ResponseData.DEFAULT_SUCCESS_CODE == returnDTO.getCode()) {
//本地删除
@@ -174,6 +198,12 @@
throw new BusinessException(BusinessExceptionEnum.LOGIN_USER_ACQUIRE_FAILED);
});
if (projectMapper.updateById(outsourceProject) > 0) {
+ //关联样品编辑
+ QueryWrapper wrapper = new QueryWrapper<>();
+ wrapper.eq("project_id", outsourceProject.getId());
+ projectSampleRelationService.remove(wrapper);
+ saveBatchRelation(outsourceProject);
+
baseApprovalService.failUpdate(outsourceProject.getApplyProcessId());
return ReturnUtil.success();
}
@@ -181,6 +211,18 @@
}
+ private boolean saveBatchRelation(BusinessOutsourceProject outsourceProject) {
+ List relationList = new ArrayList<>();
+ outsourceProject.getDtos().forEach(dto -> {
+ BusinessOutsourceProjectSampleRelation relation = new BusinessOutsourceProjectSampleRelation();
+ relation.setProjectId(outsourceProject.getId());
+ relation.setSampleId(dto.getSampleId());
+ relation.setOrderId(dto.getOrderId());
+ relationList.add(relation);
+ });
+ return projectSampleRelationService.saveBatch(relationList);
+ }
+
private List handleApprovalStatus(Page page, OutsourceProjectApprovalListRequest request) {
List approvalList = new ArrayList<>();
List businessKeys = new ArrayList<>();
diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessOutsourceProjectSampleRelationService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessOutsourceProjectSampleRelationService.java
index bacc4d9..e455218 100644
--- a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessOutsourceProjectSampleRelationService.java
+++ b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessOutsourceProjectSampleRelationService.java
@@ -1,8 +1,11 @@
package com.casic.missiles.service.business;
import com.baomidou.mybatisplus.extension.service.IService;
+import com.casic.missiles.dto.business.outsource.OrderSampleResponseDTO;
import com.casic.missiles.model.business.BusinessOutsourceProjectSampleRelation;
+import java.util.List;
+
/**
*
* 分包项目-样品关联表 服务类
@@ -13,4 +16,5 @@
*/
public interface IBusinessOutsourceProjectSampleRelationService extends IService {
+ List selectSampleList(Long projectId);
}
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 cf97666..ba6238f 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
@@ -22,19 +22,19 @@
*/
public interface IBusinessOutsourceProjectService extends IService {
- List projectApprovalListPage(OutsourceProjectApprovalListRequest request, Page page) throws Exception;
+ List projectApplyApprovalListPage(OutsourceProjectApprovalListRequest request, Page page) throws Exception;
- ReturnDTO saveProject(BusinessOutsourceProject outsourceProject);
+ ReturnDTO saveProjectApply(BusinessOutsourceProject outsourceProject);
- ReturnDTO draftUpdate(BusinessOutsourceProject outsourceProject);
+ ReturnDTO projectApplyDraftUpdate(BusinessOutsourceProject outsourceProject);
- ReturnDTO submitProject(BaseApprovalSubmitRequest request);
+ ReturnDTO submitProjectApply(BaseApprovalSubmitRequest request);
- ReturnDTO deleteProject(Long id);
+ ReturnDTO projectDelete(Long id);
ReturnDTO projectDetail(Long id) throws Exception;
- ReturnDTO approvalDelete(ApprovalDeleteRequest request);
+ ReturnDTO projectApplyApprovalDelete(ApprovalDeleteRequest request);
ReturnDTO failUpdate(BusinessOutsourceProject outsourceProject);
}