diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessLabExecutiveInfoController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessLabExecutiveInfoController.java
index c14c3be..aa330f9 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessLabExecutiveInfoController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessLabExecutiveInfoController.java
@@ -7,6 +7,7 @@
import com.casic.missiles.dto.ReturnDTO;
import com.casic.missiles.dto.ReturnUtil;
import com.casic.missiles.dto.business.*;
+import com.casic.missiles.enums.ExportEnum;
import com.casic.missiles.exception.BusinessException;
import com.casic.missiles.model.exception.enums.CoreExceptionEnum;
import com.casic.missiles.service.business.IBusinessLabExecutiveInfoService;
@@ -25,9 +26,9 @@
*
* 业务管理-实验室检定信息记录表(用于流程中的实验室分配及后续检定过程查询) 前端控制器
* 样品状态(任务收发&任务分发使用,委托书和样品关联表中的状态):
- * 1:待收入;2:待分发;3:检测中;4:检测完成;5:待归还;6:已归还;7:无需检测;8:已超期
+ * 1:待收入;2:待分发;3:检测中;4:检测完成;5:待归还;6:已归还;7:无需检测;8:已超期
* 实验室检定状态(实验室检测使用,实验室检定信息记录表中的状态):
- * 1:待分配(负责人);2:待检测(检定人);3:检测完成;4:退回;5:终止(已收入中点击终止更新实验室中待分配和待检测的的状态为已终止)
+ * 1:待分配(负责人);2:待检测(检定人);3:检测完成;4:退回;5:终止(已收入中点击终止更新实验室中待分配和待检测的的状态为已终止)
*
*
* @author wangpeng
@@ -135,7 +136,7 @@
@ApiOperation("实验室检测-我的检测-检定人扫描收入(待检测->检测中)")
@PostMapping("/myExecutive/receive")
@ResponseBody
- public ReturnDTO sampleReceive(@RequestBody @Valid List requestList, BindingResult bindingResult) {
+ public ReturnDTO sampleReceive(@RequestBody @Valid List requestList, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
}
@@ -148,7 +149,7 @@
@ApiOperation("实验室检测-负责人/检定人扫描检完(检测中->检测完)")
@PostMapping("/myExecutive/complete")
@ResponseBody
- public ReturnDTO sampleExecutiveComplete(@RequestBody @Valid List requestList, BindingResult bindingResult) {
+ public ReturnDTO sampleExecutiveComplete(@RequestBody @Valid List requestList, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
}
@@ -158,25 +159,49 @@
/**
* 实验室检测-部门检测/我的检测 编辑(只能修改应出具证书)
*/
+ @ApiOperation("实验室检测-部门检测/我的检测 编辑(只能修改应出具证书)")
+ @PostMapping("/executive/update")
+ @ResponseBody
+ public ReturnDTO updateExecutive(@RequestBody @Valid UpdateExecutiveRequest request, BindingResult bindingResult) {
+ if (bindingResult.hasErrors()) {
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ return labExecutiveInfoService.updateExecutive(request);
+ }
/**
* 实验室检测-部门检测/我的检测 详情
*/
+ @ApiOperation("实验室检测-部门检测/我的检测 详情")
+ @PostMapping("/executive/detail")
+ @ResponseBody
+ public ReturnDTO executiveDetail(@RequestBody @Valid ExecutiveDetailRequest request, BindingResult bindingResult) throws Exception {
+ if (bindingResult.hasErrors()) {
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ return ReturnUtil.success(labExecutiveInfoService.executiveDetail(request));
+ }
/**
* 实验室检测-部门检测/我的检测 退回(待检测/检测中->退回)
- * 退回后会将下一个要执行的实验室检测状态更新为待分配,将后面的实验室顺序变更为连续(都进行减1,)
- * 可能出现最后一个检测的实验室退回,这样的情况是否需要把样品状态改为检测完,还是等分发员再增加实验室或增加个分发员点击完成的按钮
+ * 退回后会将下一个要执行的实验室检测状态更新为待分配,将后面的实验室顺序变更为连续(都进行减1)
+ * 最后一个检测的实验室退回,等分发员再增加实验室或设备收发中的已收入直接手动点击完成
*/
-
-
-
+ @ApiOperation("实验室检测-部门检测/我的检测 退回(待检测/检测中->退回)")
+ @PostMapping("/executive/sendBack")
+ @ResponseBody
+ public ReturnDTO executiveSendBack(@RequestBody @Valid ExecutiveSendBackRequest request, BindingResult bindingResult) {
+ if (bindingResult.hasErrors()) {
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ return labExecutiveInfoService.sampleExecutiveSendBack(request);
+ }
/**
* 分发员编辑实验室检测列表
*/
@ApiOperation("分发员编辑实验室检测列表")
- @PostMapping("/handOut/updateExecutiveList")
+ @PostMapping("/handOut/updateList")
@ResponseBody
public ReturnDTO updateExecutiveList(@RequestBody @Valid UpdateExecutiveListRequest request, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
@@ -185,9 +210,23 @@
return labExecutiveInfoService.updateExecutiveList(request);
}
-
/**
- * 各列表导出
+ * 各状态列表导出
*/
+ @ApiOperation("任务分发-各状态列表导出")
+ @PostMapping("/handOut/listExport")
+ @ResponseBody
+ public void export(@RequestBody @Valid SampleHandOutListRequest request, BindingResult bindingResult) throws Exception {
+ if (bindingResult.hasErrors()) {
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ Page page = PageFactory.defaultPage();
+ page.setCurrent(1);
+ page.setSearchCount(false);
+ page.setSize(Integer.MAX_VALUE);
+ Page responsePage = labExecutiveInfoService.handOutListPage(page, request);
+ List list = responsePage.getRecords();
+ super.exportExcel(SampleHandOutListResponse.class, list, ExportEnum.HANDOUT_EXPORT.getSheetName());
+ }
}
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessLabExecutiveInfoController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessLabExecutiveInfoController.java
index c14c3be..aa330f9 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessLabExecutiveInfoController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessLabExecutiveInfoController.java
@@ -7,6 +7,7 @@
import com.casic.missiles.dto.ReturnDTO;
import com.casic.missiles.dto.ReturnUtil;
import com.casic.missiles.dto.business.*;
+import com.casic.missiles.enums.ExportEnum;
import com.casic.missiles.exception.BusinessException;
import com.casic.missiles.model.exception.enums.CoreExceptionEnum;
import com.casic.missiles.service.business.IBusinessLabExecutiveInfoService;
@@ -25,9 +26,9 @@
*
* 业务管理-实验室检定信息记录表(用于流程中的实验室分配及后续检定过程查询) 前端控制器
* 样品状态(任务收发&任务分发使用,委托书和样品关联表中的状态):
- * 1:待收入;2:待分发;3:检测中;4:检测完成;5:待归还;6:已归还;7:无需检测;8:已超期
+ * 1:待收入;2:待分发;3:检测中;4:检测完成;5:待归还;6:已归还;7:无需检测;8:已超期
* 实验室检定状态(实验室检测使用,实验室检定信息记录表中的状态):
- * 1:待分配(负责人);2:待检测(检定人);3:检测完成;4:退回;5:终止(已收入中点击终止更新实验室中待分配和待检测的的状态为已终止)
+ * 1:待分配(负责人);2:待检测(检定人);3:检测完成;4:退回;5:终止(已收入中点击终止更新实验室中待分配和待检测的的状态为已终止)
*
*
* @author wangpeng
@@ -135,7 +136,7 @@
@ApiOperation("实验室检测-我的检测-检定人扫描收入(待检测->检测中)")
@PostMapping("/myExecutive/receive")
@ResponseBody
- public ReturnDTO sampleReceive(@RequestBody @Valid List requestList, BindingResult bindingResult) {
+ public ReturnDTO sampleReceive(@RequestBody @Valid List requestList, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
}
@@ -148,7 +149,7 @@
@ApiOperation("实验室检测-负责人/检定人扫描检完(检测中->检测完)")
@PostMapping("/myExecutive/complete")
@ResponseBody
- public ReturnDTO sampleExecutiveComplete(@RequestBody @Valid List requestList, BindingResult bindingResult) {
+ public ReturnDTO sampleExecutiveComplete(@RequestBody @Valid List requestList, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
}
@@ -158,25 +159,49 @@
/**
* 实验室检测-部门检测/我的检测 编辑(只能修改应出具证书)
*/
+ @ApiOperation("实验室检测-部门检测/我的检测 编辑(只能修改应出具证书)")
+ @PostMapping("/executive/update")
+ @ResponseBody
+ public ReturnDTO updateExecutive(@RequestBody @Valid UpdateExecutiveRequest request, BindingResult bindingResult) {
+ if (bindingResult.hasErrors()) {
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ return labExecutiveInfoService.updateExecutive(request);
+ }
/**
* 实验室检测-部门检测/我的检测 详情
*/
+ @ApiOperation("实验室检测-部门检测/我的检测 详情")
+ @PostMapping("/executive/detail")
+ @ResponseBody
+ public ReturnDTO executiveDetail(@RequestBody @Valid ExecutiveDetailRequest request, BindingResult bindingResult) throws Exception {
+ if (bindingResult.hasErrors()) {
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ return ReturnUtil.success(labExecutiveInfoService.executiveDetail(request));
+ }
/**
* 实验室检测-部门检测/我的检测 退回(待检测/检测中->退回)
- * 退回后会将下一个要执行的实验室检测状态更新为待分配,将后面的实验室顺序变更为连续(都进行减1,)
- * 可能出现最后一个检测的实验室退回,这样的情况是否需要把样品状态改为检测完,还是等分发员再增加实验室或增加个分发员点击完成的按钮
+ * 退回后会将下一个要执行的实验室检测状态更新为待分配,将后面的实验室顺序变更为连续(都进行减1)
+ * 最后一个检测的实验室退回,等分发员再增加实验室或设备收发中的已收入直接手动点击完成
*/
-
-
-
+ @ApiOperation("实验室检测-部门检测/我的检测 退回(待检测/检测中->退回)")
+ @PostMapping("/executive/sendBack")
+ @ResponseBody
+ public ReturnDTO executiveSendBack(@RequestBody @Valid ExecutiveSendBackRequest request, BindingResult bindingResult) {
+ if (bindingResult.hasErrors()) {
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ return labExecutiveInfoService.sampleExecutiveSendBack(request);
+ }
/**
* 分发员编辑实验室检测列表
*/
@ApiOperation("分发员编辑实验室检测列表")
- @PostMapping("/handOut/updateExecutiveList")
+ @PostMapping("/handOut/updateList")
@ResponseBody
public ReturnDTO updateExecutiveList(@RequestBody @Valid UpdateExecutiveListRequest request, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
@@ -185,9 +210,23 @@
return labExecutiveInfoService.updateExecutiveList(request);
}
-
/**
- * 各列表导出
+ * 各状态列表导出
*/
+ @ApiOperation("任务分发-各状态列表导出")
+ @PostMapping("/handOut/listExport")
+ @ResponseBody
+ public void export(@RequestBody @Valid SampleHandOutListRequest request, BindingResult bindingResult) throws Exception {
+ if (bindingResult.hasErrors()) {
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ Page page = PageFactory.defaultPage();
+ page.setCurrent(1);
+ page.setSearchCount(false);
+ page.setSize(Integer.MAX_VALUE);
+ Page responsePage = labExecutiveInfoService.handOutListPage(page, request);
+ List list = responsePage.getRecords();
+ super.exportExcel(SampleHandOutListResponse.class, list, ExportEnum.HANDOUT_EXPORT.getSheetName());
+ }
}
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java
index 9637b3a..7f8c1e7 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java
@@ -79,7 +79,7 @@
@ApiOperation("文件导出")
@PostMapping("/listExport")
@ResponseBody
- public void export(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) throws IOException {
+ public void export(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) throws IOException {
if (bindingResult.hasErrors()) {
throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
}
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessLabExecutiveInfoController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessLabExecutiveInfoController.java
index c14c3be..aa330f9 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessLabExecutiveInfoController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessLabExecutiveInfoController.java
@@ -7,6 +7,7 @@
import com.casic.missiles.dto.ReturnDTO;
import com.casic.missiles.dto.ReturnUtil;
import com.casic.missiles.dto.business.*;
+import com.casic.missiles.enums.ExportEnum;
import com.casic.missiles.exception.BusinessException;
import com.casic.missiles.model.exception.enums.CoreExceptionEnum;
import com.casic.missiles.service.business.IBusinessLabExecutiveInfoService;
@@ -25,9 +26,9 @@
*
* 业务管理-实验室检定信息记录表(用于流程中的实验室分配及后续检定过程查询) 前端控制器
* 样品状态(任务收发&任务分发使用,委托书和样品关联表中的状态):
- * 1:待收入;2:待分发;3:检测中;4:检测完成;5:待归还;6:已归还;7:无需检测;8:已超期
+ * 1:待收入;2:待分发;3:检测中;4:检测完成;5:待归还;6:已归还;7:无需检测;8:已超期
* 实验室检定状态(实验室检测使用,实验室检定信息记录表中的状态):
- * 1:待分配(负责人);2:待检测(检定人);3:检测完成;4:退回;5:终止(已收入中点击终止更新实验室中待分配和待检测的的状态为已终止)
+ * 1:待分配(负责人);2:待检测(检定人);3:检测完成;4:退回;5:终止(已收入中点击终止更新实验室中待分配和待检测的的状态为已终止)
*
*
* @author wangpeng
@@ -135,7 +136,7 @@
@ApiOperation("实验室检测-我的检测-检定人扫描收入(待检测->检测中)")
@PostMapping("/myExecutive/receive")
@ResponseBody
- public ReturnDTO sampleReceive(@RequestBody @Valid List requestList, BindingResult bindingResult) {
+ public ReturnDTO sampleReceive(@RequestBody @Valid List requestList, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
}
@@ -148,7 +149,7 @@
@ApiOperation("实验室检测-负责人/检定人扫描检完(检测中->检测完)")
@PostMapping("/myExecutive/complete")
@ResponseBody
- public ReturnDTO sampleExecutiveComplete(@RequestBody @Valid List requestList, BindingResult bindingResult) {
+ public ReturnDTO sampleExecutiveComplete(@RequestBody @Valid List requestList, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
}
@@ -158,25 +159,49 @@
/**
* 实验室检测-部门检测/我的检测 编辑(只能修改应出具证书)
*/
+ @ApiOperation("实验室检测-部门检测/我的检测 编辑(只能修改应出具证书)")
+ @PostMapping("/executive/update")
+ @ResponseBody
+ public ReturnDTO updateExecutive(@RequestBody @Valid UpdateExecutiveRequest request, BindingResult bindingResult) {
+ if (bindingResult.hasErrors()) {
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ return labExecutiveInfoService.updateExecutive(request);
+ }
/**
* 实验室检测-部门检测/我的检测 详情
*/
+ @ApiOperation("实验室检测-部门检测/我的检测 详情")
+ @PostMapping("/executive/detail")
+ @ResponseBody
+ public ReturnDTO executiveDetail(@RequestBody @Valid ExecutiveDetailRequest request, BindingResult bindingResult) throws Exception {
+ if (bindingResult.hasErrors()) {
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ return ReturnUtil.success(labExecutiveInfoService.executiveDetail(request));
+ }
/**
* 实验室检测-部门检测/我的检测 退回(待检测/检测中->退回)
- * 退回后会将下一个要执行的实验室检测状态更新为待分配,将后面的实验室顺序变更为连续(都进行减1,)
- * 可能出现最后一个检测的实验室退回,这样的情况是否需要把样品状态改为检测完,还是等分发员再增加实验室或增加个分发员点击完成的按钮
+ * 退回后会将下一个要执行的实验室检测状态更新为待分配,将后面的实验室顺序变更为连续(都进行减1)
+ * 最后一个检测的实验室退回,等分发员再增加实验室或设备收发中的已收入直接手动点击完成
*/
-
-
-
+ @ApiOperation("实验室检测-部门检测/我的检测 退回(待检测/检测中->退回)")
+ @PostMapping("/executive/sendBack")
+ @ResponseBody
+ public ReturnDTO executiveSendBack(@RequestBody @Valid ExecutiveSendBackRequest request, BindingResult bindingResult) {
+ if (bindingResult.hasErrors()) {
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ return labExecutiveInfoService.sampleExecutiveSendBack(request);
+ }
/**
* 分发员编辑实验室检测列表
*/
@ApiOperation("分发员编辑实验室检测列表")
- @PostMapping("/handOut/updateExecutiveList")
+ @PostMapping("/handOut/updateList")
@ResponseBody
public ReturnDTO updateExecutiveList(@RequestBody @Valid UpdateExecutiveListRequest request, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
@@ -185,9 +210,23 @@
return labExecutiveInfoService.updateExecutiveList(request);
}
-
/**
- * 各列表导出
+ * 各状态列表导出
*/
+ @ApiOperation("任务分发-各状态列表导出")
+ @PostMapping("/handOut/listExport")
+ @ResponseBody
+ public void export(@RequestBody @Valid SampleHandOutListRequest request, BindingResult bindingResult) throws Exception {
+ if (bindingResult.hasErrors()) {
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ Page page = PageFactory.defaultPage();
+ page.setCurrent(1);
+ page.setSearchCount(false);
+ page.setSize(Integer.MAX_VALUE);
+ Page responsePage = labExecutiveInfoService.handOutListPage(page, request);
+ List list = responsePage.getRecords();
+ super.exportExcel(SampleHandOutListResponse.class, list, ExportEnum.HANDOUT_EXPORT.getSheetName());
+ }
}
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java
index 9637b3a..7f8c1e7 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java
@@ -79,7 +79,7 @@
@ApiOperation("文件导出")
@PostMapping("/listExport")
@ResponseBody
- public void export(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) throws IOException {
+ public void export(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) throws IOException {
if (bindingResult.hasErrors()) {
throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
}
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 9e3d9fd..0c1cf2d 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
@@ -53,7 +53,9 @@
HANDLE_FAILED(500, "操作失败"),
QRCODE_FAILED(2409, "二维码生成失败"),
RECEIVE_SAMPLE_NOT_EXIST(2410, "待检测中不存在扫描收入的样品"),
- COMPLETE_SAMPLE_NOT_EXIST(2411, "检测中不存在扫描收入的样品");
+ COMPLETE_SAMPLE_NOT_EXIST(2411, "检测中不存在扫描收入的样品"),
+ CANNOT_CHANGE_MEASURE_INFO(2412, "无法更改非当前登录用户的检测信息"),
+ NON_EXIST_ORDER_OR_SAMPLE(2413, "不存在该委托单或该委托单下的样品");
private Integer code;
private String message;
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessLabExecutiveInfoController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessLabExecutiveInfoController.java
index c14c3be..aa330f9 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessLabExecutiveInfoController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessLabExecutiveInfoController.java
@@ -7,6 +7,7 @@
import com.casic.missiles.dto.ReturnDTO;
import com.casic.missiles.dto.ReturnUtil;
import com.casic.missiles.dto.business.*;
+import com.casic.missiles.enums.ExportEnum;
import com.casic.missiles.exception.BusinessException;
import com.casic.missiles.model.exception.enums.CoreExceptionEnum;
import com.casic.missiles.service.business.IBusinessLabExecutiveInfoService;
@@ -25,9 +26,9 @@
*
* 业务管理-实验室检定信息记录表(用于流程中的实验室分配及后续检定过程查询) 前端控制器
* 样品状态(任务收发&任务分发使用,委托书和样品关联表中的状态):
- * 1:待收入;2:待分发;3:检测中;4:检测完成;5:待归还;6:已归还;7:无需检测;8:已超期
+ * 1:待收入;2:待分发;3:检测中;4:检测完成;5:待归还;6:已归还;7:无需检测;8:已超期
* 实验室检定状态(实验室检测使用,实验室检定信息记录表中的状态):
- * 1:待分配(负责人);2:待检测(检定人);3:检测完成;4:退回;5:终止(已收入中点击终止更新实验室中待分配和待检测的的状态为已终止)
+ * 1:待分配(负责人);2:待检测(检定人);3:检测完成;4:退回;5:终止(已收入中点击终止更新实验室中待分配和待检测的的状态为已终止)
*
*
* @author wangpeng
@@ -135,7 +136,7 @@
@ApiOperation("实验室检测-我的检测-检定人扫描收入(待检测->检测中)")
@PostMapping("/myExecutive/receive")
@ResponseBody
- public ReturnDTO sampleReceive(@RequestBody @Valid List requestList, BindingResult bindingResult) {
+ public ReturnDTO sampleReceive(@RequestBody @Valid List requestList, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
}
@@ -148,7 +149,7 @@
@ApiOperation("实验室检测-负责人/检定人扫描检完(检测中->检测完)")
@PostMapping("/myExecutive/complete")
@ResponseBody
- public ReturnDTO sampleExecutiveComplete(@RequestBody @Valid List requestList, BindingResult bindingResult) {
+ public ReturnDTO sampleExecutiveComplete(@RequestBody @Valid List requestList, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
}
@@ -158,25 +159,49 @@
/**
* 实验室检测-部门检测/我的检测 编辑(只能修改应出具证书)
*/
+ @ApiOperation("实验室检测-部门检测/我的检测 编辑(只能修改应出具证书)")
+ @PostMapping("/executive/update")
+ @ResponseBody
+ public ReturnDTO updateExecutive(@RequestBody @Valid UpdateExecutiveRequest request, BindingResult bindingResult) {
+ if (bindingResult.hasErrors()) {
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ return labExecutiveInfoService.updateExecutive(request);
+ }
/**
* 实验室检测-部门检测/我的检测 详情
*/
+ @ApiOperation("实验室检测-部门检测/我的检测 详情")
+ @PostMapping("/executive/detail")
+ @ResponseBody
+ public ReturnDTO executiveDetail(@RequestBody @Valid ExecutiveDetailRequest request, BindingResult bindingResult) throws Exception {
+ if (bindingResult.hasErrors()) {
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ return ReturnUtil.success(labExecutiveInfoService.executiveDetail(request));
+ }
/**
* 实验室检测-部门检测/我的检测 退回(待检测/检测中->退回)
- * 退回后会将下一个要执行的实验室检测状态更新为待分配,将后面的实验室顺序变更为连续(都进行减1,)
- * 可能出现最后一个检测的实验室退回,这样的情况是否需要把样品状态改为检测完,还是等分发员再增加实验室或增加个分发员点击完成的按钮
+ * 退回后会将下一个要执行的实验室检测状态更新为待分配,将后面的实验室顺序变更为连续(都进行减1)
+ * 最后一个检测的实验室退回,等分发员再增加实验室或设备收发中的已收入直接手动点击完成
*/
-
-
-
+ @ApiOperation("实验室检测-部门检测/我的检测 退回(待检测/检测中->退回)")
+ @PostMapping("/executive/sendBack")
+ @ResponseBody
+ public ReturnDTO executiveSendBack(@RequestBody @Valid ExecutiveSendBackRequest request, BindingResult bindingResult) {
+ if (bindingResult.hasErrors()) {
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ return labExecutiveInfoService.sampleExecutiveSendBack(request);
+ }
/**
* 分发员编辑实验室检测列表
*/
@ApiOperation("分发员编辑实验室检测列表")
- @PostMapping("/handOut/updateExecutiveList")
+ @PostMapping("/handOut/updateList")
@ResponseBody
public ReturnDTO updateExecutiveList(@RequestBody @Valid UpdateExecutiveListRequest request, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
@@ -185,9 +210,23 @@
return labExecutiveInfoService.updateExecutiveList(request);
}
-
/**
- * 各列表导出
+ * 各状态列表导出
*/
+ @ApiOperation("任务分发-各状态列表导出")
+ @PostMapping("/handOut/listExport")
+ @ResponseBody
+ public void export(@RequestBody @Valid SampleHandOutListRequest request, BindingResult bindingResult) throws Exception {
+ if (bindingResult.hasErrors()) {
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ Page page = PageFactory.defaultPage();
+ page.setCurrent(1);
+ page.setSearchCount(false);
+ page.setSize(Integer.MAX_VALUE);
+ Page responsePage = labExecutiveInfoService.handOutListPage(page, request);
+ List list = responsePage.getRecords();
+ super.exportExcel(SampleHandOutListResponse.class, list, ExportEnum.HANDOUT_EXPORT.getSheetName());
+ }
}
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java
index 9637b3a..7f8c1e7 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java
@@ -79,7 +79,7 @@
@ApiOperation("文件导出")
@PostMapping("/listExport")
@ResponseBody
- public void export(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) throws IOException {
+ public void export(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) throws IOException {
if (bindingResult.hasErrors()) {
throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
}
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 9e3d9fd..0c1cf2d 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
@@ -53,7 +53,9 @@
HANDLE_FAILED(500, "操作失败"),
QRCODE_FAILED(2409, "二维码生成失败"),
RECEIVE_SAMPLE_NOT_EXIST(2410, "待检测中不存在扫描收入的样品"),
- COMPLETE_SAMPLE_NOT_EXIST(2411, "检测中不存在扫描收入的样品");
+ COMPLETE_SAMPLE_NOT_EXIST(2411, "检测中不存在扫描收入的样品"),
+ CANNOT_CHANGE_MEASURE_INFO(2412, "无法更改非当前登录用户的检测信息"),
+ NON_EXIST_ORDER_OR_SAMPLE(2413, "不存在该委托单或该委托单下的样品");
private Integer code;
private String message;
diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java
index 06a3fd8..a43d9c9 100644
--- a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java
+++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java
@@ -36,7 +36,8 @@
DISPATCH_DATA("dispatchData", "dispatchData", "设备收发"),
ENVIRONMENT_DATA("environmentData", "environmentData", "环境记录单"),
ORIGIN_DATA("originData", "originData", "原始记录"),
- ADVICE_EXPORT("adviceData", "adviceData", "客户反馈");
+ ADVICE_EXPORT("adviceData", "adviceData", "客户反馈"),
+ HANDOUT_EXPORT("handoutData", "handoutData", "任务分发列表");
ExportEnum(String fileName, String sheetName, String description) {
this.fileName = fileName;
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessLabExecutiveInfoController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessLabExecutiveInfoController.java
index c14c3be..aa330f9 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessLabExecutiveInfoController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessLabExecutiveInfoController.java
@@ -7,6 +7,7 @@
import com.casic.missiles.dto.ReturnDTO;
import com.casic.missiles.dto.ReturnUtil;
import com.casic.missiles.dto.business.*;
+import com.casic.missiles.enums.ExportEnum;
import com.casic.missiles.exception.BusinessException;
import com.casic.missiles.model.exception.enums.CoreExceptionEnum;
import com.casic.missiles.service.business.IBusinessLabExecutiveInfoService;
@@ -25,9 +26,9 @@
*
* 业务管理-实验室检定信息记录表(用于流程中的实验室分配及后续检定过程查询) 前端控制器
* 样品状态(任务收发&任务分发使用,委托书和样品关联表中的状态):
- * 1:待收入;2:待分发;3:检测中;4:检测完成;5:待归还;6:已归还;7:无需检测;8:已超期
+ * 1:待收入;2:待分发;3:检测中;4:检测完成;5:待归还;6:已归还;7:无需检测;8:已超期
* 实验室检定状态(实验室检测使用,实验室检定信息记录表中的状态):
- * 1:待分配(负责人);2:待检测(检定人);3:检测完成;4:退回;5:终止(已收入中点击终止更新实验室中待分配和待检测的的状态为已终止)
+ * 1:待分配(负责人);2:待检测(检定人);3:检测完成;4:退回;5:终止(已收入中点击终止更新实验室中待分配和待检测的的状态为已终止)
*
*
* @author wangpeng
@@ -135,7 +136,7 @@
@ApiOperation("实验室检测-我的检测-检定人扫描收入(待检测->检测中)")
@PostMapping("/myExecutive/receive")
@ResponseBody
- public ReturnDTO sampleReceive(@RequestBody @Valid List requestList, BindingResult bindingResult) {
+ public ReturnDTO sampleReceive(@RequestBody @Valid List requestList, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
}
@@ -148,7 +149,7 @@
@ApiOperation("实验室检测-负责人/检定人扫描检完(检测中->检测完)")
@PostMapping("/myExecutive/complete")
@ResponseBody
- public ReturnDTO sampleExecutiveComplete(@RequestBody @Valid List requestList, BindingResult bindingResult) {
+ public ReturnDTO sampleExecutiveComplete(@RequestBody @Valid List requestList, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
}
@@ -158,25 +159,49 @@
/**
* 实验室检测-部门检测/我的检测 编辑(只能修改应出具证书)
*/
+ @ApiOperation("实验室检测-部门检测/我的检测 编辑(只能修改应出具证书)")
+ @PostMapping("/executive/update")
+ @ResponseBody
+ public ReturnDTO updateExecutive(@RequestBody @Valid UpdateExecutiveRequest request, BindingResult bindingResult) {
+ if (bindingResult.hasErrors()) {
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ return labExecutiveInfoService.updateExecutive(request);
+ }
/**
* 实验室检测-部门检测/我的检测 详情
*/
+ @ApiOperation("实验室检测-部门检测/我的检测 详情")
+ @PostMapping("/executive/detail")
+ @ResponseBody
+ public ReturnDTO executiveDetail(@RequestBody @Valid ExecutiveDetailRequest request, BindingResult bindingResult) throws Exception {
+ if (bindingResult.hasErrors()) {
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ return ReturnUtil.success(labExecutiveInfoService.executiveDetail(request));
+ }
/**
* 实验室检测-部门检测/我的检测 退回(待检测/检测中->退回)
- * 退回后会将下一个要执行的实验室检测状态更新为待分配,将后面的实验室顺序变更为连续(都进行减1,)
- * 可能出现最后一个检测的实验室退回,这样的情况是否需要把样品状态改为检测完,还是等分发员再增加实验室或增加个分发员点击完成的按钮
+ * 退回后会将下一个要执行的实验室检测状态更新为待分配,将后面的实验室顺序变更为连续(都进行减1)
+ * 最后一个检测的实验室退回,等分发员再增加实验室或设备收发中的已收入直接手动点击完成
*/
-
-
-
+ @ApiOperation("实验室检测-部门检测/我的检测 退回(待检测/检测中->退回)")
+ @PostMapping("/executive/sendBack")
+ @ResponseBody
+ public ReturnDTO executiveSendBack(@RequestBody @Valid ExecutiveSendBackRequest request, BindingResult bindingResult) {
+ if (bindingResult.hasErrors()) {
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ return labExecutiveInfoService.sampleExecutiveSendBack(request);
+ }
/**
* 分发员编辑实验室检测列表
*/
@ApiOperation("分发员编辑实验室检测列表")
- @PostMapping("/handOut/updateExecutiveList")
+ @PostMapping("/handOut/updateList")
@ResponseBody
public ReturnDTO updateExecutiveList(@RequestBody @Valid UpdateExecutiveListRequest request, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
@@ -185,9 +210,23 @@
return labExecutiveInfoService.updateExecutiveList(request);
}
-
/**
- * 各列表导出
+ * 各状态列表导出
*/
+ @ApiOperation("任务分发-各状态列表导出")
+ @PostMapping("/handOut/listExport")
+ @ResponseBody
+ public void export(@RequestBody @Valid SampleHandOutListRequest request, BindingResult bindingResult) throws Exception {
+ if (bindingResult.hasErrors()) {
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ Page page = PageFactory.defaultPage();
+ page.setCurrent(1);
+ page.setSearchCount(false);
+ page.setSize(Integer.MAX_VALUE);
+ Page responsePage = labExecutiveInfoService.handOutListPage(page, request);
+ List list = responsePage.getRecords();
+ super.exportExcel(SampleHandOutListResponse.class, list, ExportEnum.HANDOUT_EXPORT.getSheetName());
+ }
}
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java
index 9637b3a..7f8c1e7 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java
@@ -79,7 +79,7 @@
@ApiOperation("文件导出")
@PostMapping("/listExport")
@ResponseBody
- public void export(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) throws IOException {
+ public void export(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) throws IOException {
if (bindingResult.hasErrors()) {
throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
}
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 9e3d9fd..0c1cf2d 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
@@ -53,7 +53,9 @@
HANDLE_FAILED(500, "操作失败"),
QRCODE_FAILED(2409, "二维码生成失败"),
RECEIVE_SAMPLE_NOT_EXIST(2410, "待检测中不存在扫描收入的样品"),
- COMPLETE_SAMPLE_NOT_EXIST(2411, "检测中不存在扫描收入的样品");
+ COMPLETE_SAMPLE_NOT_EXIST(2411, "检测中不存在扫描收入的样品"),
+ CANNOT_CHANGE_MEASURE_INFO(2412, "无法更改非当前登录用户的检测信息"),
+ NON_EXIST_ORDER_OR_SAMPLE(2413, "不存在该委托单或该委托单下的样品");
private Integer code;
private String message;
diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java
index 06a3fd8..a43d9c9 100644
--- a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java
+++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java
@@ -36,7 +36,8 @@
DISPATCH_DATA("dispatchData", "dispatchData", "设备收发"),
ENVIRONMENT_DATA("environmentData", "environmentData", "环境记录单"),
ORIGIN_DATA("originData", "originData", "原始记录"),
- ADVICE_EXPORT("adviceData", "adviceData", "客户反馈");
+ ADVICE_EXPORT("adviceData", "adviceData", "客户反馈"),
+ HANDOUT_EXPORT("handoutData", "handoutData", "任务分发列表");
ExportEnum(String fileName, String sheetName, String description) {
this.fileName = fileName;
diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveInfoMapper.java
index e4cd952..2ce14af 100644
--- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveInfoMapper.java
+++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveInfoMapper.java
@@ -22,13 +22,17 @@
Integer getMeasureNumberStatus(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId);
- List selectExecutiveList(@Param("request") SampleHandOutDetailRequest request);
+ List selectExecutiveList(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId);
Page selectListByDeptIdAndStatus(Page page, @Param("request") SampleLabExecutiveListRequest request, @Param("deptId") Long deptId, @Param("status") String status, @Param("statusList") List statusList);
Page selectListByUserIdAndStatus(Page page, @Param("request") SampleLabExecutiveListRequest request, @Param("userId") Long userId, @Param("status") String status);
- int updateForSampleOperate(@Param("list") List list, @Param("userId") Long userId, @Param("status") String status);
+ int updateForSampleOperate(@Param("list") List list, @Param("userId") Long userId, @Param("status") String status);
- List selectListForSampleOperate(@Param("list") List requestList, @Param("userId") Long userId, @Param("status") String status);
+ List selectListForSampleOperate(@Param("list") List requestList, @Param("userId") Long userId, @Param("status") String status);
+
+ int updateForSendBack(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId);
+
+ Long selectMinSeq(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId);
}
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessLabExecutiveInfoController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessLabExecutiveInfoController.java
index c14c3be..aa330f9 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessLabExecutiveInfoController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessLabExecutiveInfoController.java
@@ -7,6 +7,7 @@
import com.casic.missiles.dto.ReturnDTO;
import com.casic.missiles.dto.ReturnUtil;
import com.casic.missiles.dto.business.*;
+import com.casic.missiles.enums.ExportEnum;
import com.casic.missiles.exception.BusinessException;
import com.casic.missiles.model.exception.enums.CoreExceptionEnum;
import com.casic.missiles.service.business.IBusinessLabExecutiveInfoService;
@@ -25,9 +26,9 @@
*
* 业务管理-实验室检定信息记录表(用于流程中的实验室分配及后续检定过程查询) 前端控制器
* 样品状态(任务收发&任务分发使用,委托书和样品关联表中的状态):
- * 1:待收入;2:待分发;3:检测中;4:检测完成;5:待归还;6:已归还;7:无需检测;8:已超期
+ * 1:待收入;2:待分发;3:检测中;4:检测完成;5:待归还;6:已归还;7:无需检测;8:已超期
* 实验室检定状态(实验室检测使用,实验室检定信息记录表中的状态):
- * 1:待分配(负责人);2:待检测(检定人);3:检测完成;4:退回;5:终止(已收入中点击终止更新实验室中待分配和待检测的的状态为已终止)
+ * 1:待分配(负责人);2:待检测(检定人);3:检测完成;4:退回;5:终止(已收入中点击终止更新实验室中待分配和待检测的的状态为已终止)
*
*
* @author wangpeng
@@ -135,7 +136,7 @@
@ApiOperation("实验室检测-我的检测-检定人扫描收入(待检测->检测中)")
@PostMapping("/myExecutive/receive")
@ResponseBody
- public ReturnDTO sampleReceive(@RequestBody @Valid List requestList, BindingResult bindingResult) {
+ public ReturnDTO sampleReceive(@RequestBody @Valid List requestList, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
}
@@ -148,7 +149,7 @@
@ApiOperation("实验室检测-负责人/检定人扫描检完(检测中->检测完)")
@PostMapping("/myExecutive/complete")
@ResponseBody
- public ReturnDTO sampleExecutiveComplete(@RequestBody @Valid List requestList, BindingResult bindingResult) {
+ public ReturnDTO sampleExecutiveComplete(@RequestBody @Valid List requestList, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
}
@@ -158,25 +159,49 @@
/**
* 实验室检测-部门检测/我的检测 编辑(只能修改应出具证书)
*/
+ @ApiOperation("实验室检测-部门检测/我的检测 编辑(只能修改应出具证书)")
+ @PostMapping("/executive/update")
+ @ResponseBody
+ public ReturnDTO updateExecutive(@RequestBody @Valid UpdateExecutiveRequest request, BindingResult bindingResult) {
+ if (bindingResult.hasErrors()) {
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ return labExecutiveInfoService.updateExecutive(request);
+ }
/**
* 实验室检测-部门检测/我的检测 详情
*/
+ @ApiOperation("实验室检测-部门检测/我的检测 详情")
+ @PostMapping("/executive/detail")
+ @ResponseBody
+ public ReturnDTO executiveDetail(@RequestBody @Valid ExecutiveDetailRequest request, BindingResult bindingResult) throws Exception {
+ if (bindingResult.hasErrors()) {
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ return ReturnUtil.success(labExecutiveInfoService.executiveDetail(request));
+ }
/**
* 实验室检测-部门检测/我的检测 退回(待检测/检测中->退回)
- * 退回后会将下一个要执行的实验室检测状态更新为待分配,将后面的实验室顺序变更为连续(都进行减1,)
- * 可能出现最后一个检测的实验室退回,这样的情况是否需要把样品状态改为检测完,还是等分发员再增加实验室或增加个分发员点击完成的按钮
+ * 退回后会将下一个要执行的实验室检测状态更新为待分配,将后面的实验室顺序变更为连续(都进行减1)
+ * 最后一个检测的实验室退回,等分发员再增加实验室或设备收发中的已收入直接手动点击完成
*/
-
-
-
+ @ApiOperation("实验室检测-部门检测/我的检测 退回(待检测/检测中->退回)")
+ @PostMapping("/executive/sendBack")
+ @ResponseBody
+ public ReturnDTO executiveSendBack(@RequestBody @Valid ExecutiveSendBackRequest request, BindingResult bindingResult) {
+ if (bindingResult.hasErrors()) {
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ return labExecutiveInfoService.sampleExecutiveSendBack(request);
+ }
/**
* 分发员编辑实验室检测列表
*/
@ApiOperation("分发员编辑实验室检测列表")
- @PostMapping("/handOut/updateExecutiveList")
+ @PostMapping("/handOut/updateList")
@ResponseBody
public ReturnDTO updateExecutiveList(@RequestBody @Valid UpdateExecutiveListRequest request, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
@@ -185,9 +210,23 @@
return labExecutiveInfoService.updateExecutiveList(request);
}
-
/**
- * 各列表导出
+ * 各状态列表导出
*/
+ @ApiOperation("任务分发-各状态列表导出")
+ @PostMapping("/handOut/listExport")
+ @ResponseBody
+ public void export(@RequestBody @Valid SampleHandOutListRequest request, BindingResult bindingResult) throws Exception {
+ if (bindingResult.hasErrors()) {
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ Page page = PageFactory.defaultPage();
+ page.setCurrent(1);
+ page.setSearchCount(false);
+ page.setSize(Integer.MAX_VALUE);
+ Page responsePage = labExecutiveInfoService.handOutListPage(page, request);
+ List list = responsePage.getRecords();
+ super.exportExcel(SampleHandOutListResponse.class, list, ExportEnum.HANDOUT_EXPORT.getSheetName());
+ }
}
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java
index 9637b3a..7f8c1e7 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java
@@ -79,7 +79,7 @@
@ApiOperation("文件导出")
@PostMapping("/listExport")
@ResponseBody
- public void export(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) throws IOException {
+ public void export(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) throws IOException {
if (bindingResult.hasErrors()) {
throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
}
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 9e3d9fd..0c1cf2d 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
@@ -53,7 +53,9 @@
HANDLE_FAILED(500, "操作失败"),
QRCODE_FAILED(2409, "二维码生成失败"),
RECEIVE_SAMPLE_NOT_EXIST(2410, "待检测中不存在扫描收入的样品"),
- COMPLETE_SAMPLE_NOT_EXIST(2411, "检测中不存在扫描收入的样品");
+ COMPLETE_SAMPLE_NOT_EXIST(2411, "检测中不存在扫描收入的样品"),
+ CANNOT_CHANGE_MEASURE_INFO(2412, "无法更改非当前登录用户的检测信息"),
+ NON_EXIST_ORDER_OR_SAMPLE(2413, "不存在该委托单或该委托单下的样品");
private Integer code;
private String message;
diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java
index 06a3fd8..a43d9c9 100644
--- a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java
+++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java
@@ -36,7 +36,8 @@
DISPATCH_DATA("dispatchData", "dispatchData", "设备收发"),
ENVIRONMENT_DATA("environmentData", "environmentData", "环境记录单"),
ORIGIN_DATA("originData", "originData", "原始记录"),
- ADVICE_EXPORT("adviceData", "adviceData", "客户反馈");
+ ADVICE_EXPORT("adviceData", "adviceData", "客户反馈"),
+ HANDOUT_EXPORT("handoutData", "handoutData", "任务分发列表");
ExportEnum(String fileName, String sheetName, String description) {
this.fileName = fileName;
diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveInfoMapper.java
index e4cd952..2ce14af 100644
--- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveInfoMapper.java
+++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveInfoMapper.java
@@ -22,13 +22,17 @@
Integer getMeasureNumberStatus(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId);
- List selectExecutiveList(@Param("request") SampleHandOutDetailRequest request);
+ List selectExecutiveList(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId);
Page selectListByDeptIdAndStatus(Page page, @Param("request") SampleLabExecutiveListRequest request, @Param("deptId") Long deptId, @Param("status") String status, @Param("statusList") List statusList);
Page selectListByUserIdAndStatus(Page page, @Param("request") SampleLabExecutiveListRequest request, @Param("userId") Long userId, @Param("status") String status);
- int updateForSampleOperate(@Param("list") List list, @Param("userId") Long userId, @Param("status") String status);
+ int updateForSampleOperate(@Param("list") List list, @Param("userId") Long userId, @Param("status") String status);
- List selectListForSampleOperate(@Param("list") List requestList, @Param("userId") Long userId, @Param("status") String status);
+ List selectListForSampleOperate(@Param("list") List requestList, @Param("userId") Long userId, @Param("status") String status);
+
+ int updateForSendBack(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId);
+
+ Long selectMinSeq(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId);
}
diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveOperateLogMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveOperateLogMapper.java
index ed6f4a1..2bcc4e1 100644
--- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveOperateLogMapper.java
+++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveOperateLogMapper.java
@@ -2,7 +2,6 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.casic.missiles.dto.business.MeasureSendBackDTO;
-import com.casic.missiles.dto.business.SampleHandOutDetailRequest;
import com.casic.missiles.model.business.BusinessLabExecutiveOperateLog;
import org.apache.ibatis.annotations.Param;
@@ -19,5 +18,5 @@
*/
public interface BusinessLabExecutiveOperateLogMapper extends BaseMapper {
- List selectExecutiveOperateLogList(@Param("request") SampleHandOutDetailRequest request);
+ List selectExecutiveOperateLogList(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId);
}
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessLabExecutiveInfoController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessLabExecutiveInfoController.java
index c14c3be..aa330f9 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessLabExecutiveInfoController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessLabExecutiveInfoController.java
@@ -7,6 +7,7 @@
import com.casic.missiles.dto.ReturnDTO;
import com.casic.missiles.dto.ReturnUtil;
import com.casic.missiles.dto.business.*;
+import com.casic.missiles.enums.ExportEnum;
import com.casic.missiles.exception.BusinessException;
import com.casic.missiles.model.exception.enums.CoreExceptionEnum;
import com.casic.missiles.service.business.IBusinessLabExecutiveInfoService;
@@ -25,9 +26,9 @@
*
* 业务管理-实验室检定信息记录表(用于流程中的实验室分配及后续检定过程查询) 前端控制器
* 样品状态(任务收发&任务分发使用,委托书和样品关联表中的状态):
- * 1:待收入;2:待分发;3:检测中;4:检测完成;5:待归还;6:已归还;7:无需检测;8:已超期
+ * 1:待收入;2:待分发;3:检测中;4:检测完成;5:待归还;6:已归还;7:无需检测;8:已超期
* 实验室检定状态(实验室检测使用,实验室检定信息记录表中的状态):
- * 1:待分配(负责人);2:待检测(检定人);3:检测完成;4:退回;5:终止(已收入中点击终止更新实验室中待分配和待检测的的状态为已终止)
+ * 1:待分配(负责人);2:待检测(检定人);3:检测完成;4:退回;5:终止(已收入中点击终止更新实验室中待分配和待检测的的状态为已终止)
*
*
* @author wangpeng
@@ -135,7 +136,7 @@
@ApiOperation("实验室检测-我的检测-检定人扫描收入(待检测->检测中)")
@PostMapping("/myExecutive/receive")
@ResponseBody
- public ReturnDTO sampleReceive(@RequestBody @Valid List requestList, BindingResult bindingResult) {
+ public ReturnDTO sampleReceive(@RequestBody @Valid List requestList, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
}
@@ -148,7 +149,7 @@
@ApiOperation("实验室检测-负责人/检定人扫描检完(检测中->检测完)")
@PostMapping("/myExecutive/complete")
@ResponseBody
- public ReturnDTO sampleExecutiveComplete(@RequestBody @Valid List requestList, BindingResult bindingResult) {
+ public ReturnDTO sampleExecutiveComplete(@RequestBody @Valid List requestList, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
}
@@ -158,25 +159,49 @@
/**
* 实验室检测-部门检测/我的检测 编辑(只能修改应出具证书)
*/
+ @ApiOperation("实验室检测-部门检测/我的检测 编辑(只能修改应出具证书)")
+ @PostMapping("/executive/update")
+ @ResponseBody
+ public ReturnDTO updateExecutive(@RequestBody @Valid UpdateExecutiveRequest request, BindingResult bindingResult) {
+ if (bindingResult.hasErrors()) {
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ return labExecutiveInfoService.updateExecutive(request);
+ }
/**
* 实验室检测-部门检测/我的检测 详情
*/
+ @ApiOperation("实验室检测-部门检测/我的检测 详情")
+ @PostMapping("/executive/detail")
+ @ResponseBody
+ public ReturnDTO executiveDetail(@RequestBody @Valid ExecutiveDetailRequest request, BindingResult bindingResult) throws Exception {
+ if (bindingResult.hasErrors()) {
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ return ReturnUtil.success(labExecutiveInfoService.executiveDetail(request));
+ }
/**
* 实验室检测-部门检测/我的检测 退回(待检测/检测中->退回)
- * 退回后会将下一个要执行的实验室检测状态更新为待分配,将后面的实验室顺序变更为连续(都进行减1,)
- * 可能出现最后一个检测的实验室退回,这样的情况是否需要把样品状态改为检测完,还是等分发员再增加实验室或增加个分发员点击完成的按钮
+ * 退回后会将下一个要执行的实验室检测状态更新为待分配,将后面的实验室顺序变更为连续(都进行减1)
+ * 最后一个检测的实验室退回,等分发员再增加实验室或设备收发中的已收入直接手动点击完成
*/
-
-
-
+ @ApiOperation("实验室检测-部门检测/我的检测 退回(待检测/检测中->退回)")
+ @PostMapping("/executive/sendBack")
+ @ResponseBody
+ public ReturnDTO executiveSendBack(@RequestBody @Valid ExecutiveSendBackRequest request, BindingResult bindingResult) {
+ if (bindingResult.hasErrors()) {
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ return labExecutiveInfoService.sampleExecutiveSendBack(request);
+ }
/**
* 分发员编辑实验室检测列表
*/
@ApiOperation("分发员编辑实验室检测列表")
- @PostMapping("/handOut/updateExecutiveList")
+ @PostMapping("/handOut/updateList")
@ResponseBody
public ReturnDTO updateExecutiveList(@RequestBody @Valid UpdateExecutiveListRequest request, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
@@ -185,9 +210,23 @@
return labExecutiveInfoService.updateExecutiveList(request);
}
-
/**
- * 各列表导出
+ * 各状态列表导出
*/
+ @ApiOperation("任务分发-各状态列表导出")
+ @PostMapping("/handOut/listExport")
+ @ResponseBody
+ public void export(@RequestBody @Valid SampleHandOutListRequest request, BindingResult bindingResult) throws Exception {
+ if (bindingResult.hasErrors()) {
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ Page page = PageFactory.defaultPage();
+ page.setCurrent(1);
+ page.setSearchCount(false);
+ page.setSize(Integer.MAX_VALUE);
+ Page responsePage = labExecutiveInfoService.handOutListPage(page, request);
+ List list = responsePage.getRecords();
+ super.exportExcel(SampleHandOutListResponse.class, list, ExportEnum.HANDOUT_EXPORT.getSheetName());
+ }
}
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java
index 9637b3a..7f8c1e7 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java
@@ -79,7 +79,7 @@
@ApiOperation("文件导出")
@PostMapping("/listExport")
@ResponseBody
- public void export(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) throws IOException {
+ public void export(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) throws IOException {
if (bindingResult.hasErrors()) {
throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
}
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 9e3d9fd..0c1cf2d 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
@@ -53,7 +53,9 @@
HANDLE_FAILED(500, "操作失败"),
QRCODE_FAILED(2409, "二维码生成失败"),
RECEIVE_SAMPLE_NOT_EXIST(2410, "待检测中不存在扫描收入的样品"),
- COMPLETE_SAMPLE_NOT_EXIST(2411, "检测中不存在扫描收入的样品");
+ COMPLETE_SAMPLE_NOT_EXIST(2411, "检测中不存在扫描收入的样品"),
+ CANNOT_CHANGE_MEASURE_INFO(2412, "无法更改非当前登录用户的检测信息"),
+ NON_EXIST_ORDER_OR_SAMPLE(2413, "不存在该委托单或该委托单下的样品");
private Integer code;
private String message;
diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java
index 06a3fd8..a43d9c9 100644
--- a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java
+++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java
@@ -36,7 +36,8 @@
DISPATCH_DATA("dispatchData", "dispatchData", "设备收发"),
ENVIRONMENT_DATA("environmentData", "environmentData", "环境记录单"),
ORIGIN_DATA("originData", "originData", "原始记录"),
- ADVICE_EXPORT("adviceData", "adviceData", "客户反馈");
+ ADVICE_EXPORT("adviceData", "adviceData", "客户反馈"),
+ HANDOUT_EXPORT("handoutData", "handoutData", "任务分发列表");
ExportEnum(String fileName, String sheetName, String description) {
this.fileName = fileName;
diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveInfoMapper.java
index e4cd952..2ce14af 100644
--- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveInfoMapper.java
+++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveInfoMapper.java
@@ -22,13 +22,17 @@
Integer getMeasureNumberStatus(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId);
- List selectExecutiveList(@Param("request") SampleHandOutDetailRequest request);
+ List selectExecutiveList(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId);
Page selectListByDeptIdAndStatus(Page page, @Param("request") SampleLabExecutiveListRequest request, @Param("deptId") Long deptId, @Param("status") String status, @Param("statusList") List statusList);
Page selectListByUserIdAndStatus(Page page, @Param("request") SampleLabExecutiveListRequest request, @Param("userId") Long userId, @Param("status") String status);
- int updateForSampleOperate(@Param("list") List list, @Param("userId") Long userId, @Param("status") String status);
+ int updateForSampleOperate(@Param("list") List list, @Param("userId") Long userId, @Param("status") String status);
- List selectListForSampleOperate(@Param("list") List requestList, @Param("userId") Long userId, @Param("status") String status);
+ List selectListForSampleOperate(@Param("list") List requestList, @Param("userId") Long userId, @Param("status") String status);
+
+ int updateForSendBack(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId);
+
+ Long selectMinSeq(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId);
}
diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveOperateLogMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveOperateLogMapper.java
index ed6f4a1..2bcc4e1 100644
--- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveOperateLogMapper.java
+++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveOperateLogMapper.java
@@ -2,7 +2,6 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.casic.missiles.dto.business.MeasureSendBackDTO;
-import com.casic.missiles.dto.business.SampleHandOutDetailRequest;
import com.casic.missiles.model.business.BusinessLabExecutiveOperateLog;
import org.apache.ibatis.annotations.Param;
@@ -19,5 +18,5 @@
*/
public interface BusinessLabExecutiveOperateLogMapper extends BaseMapper {
- List selectExecutiveOperateLogList(@Param("request") SampleHandOutDetailRequest request);
+ List selectExecutiveOperateLogList(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId);
}
diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java
index 235c95f..bddf56f 100644
--- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java
+++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java
@@ -5,7 +5,6 @@
import com.casic.missiles.dto.business.SampleHandOutDetailResponse;
import com.casic.missiles.dto.business.SampleHandOutListRequest;
import com.casic.missiles.dto.business.SampleHandOutListResponse;
-import com.casic.missiles.dto.business.SampleHandOutDetailRequest;
import com.casic.missiles.dto.business.dispatch.DeviceDispatchDTO;
import com.casic.missiles.dto.business.dispatch.DeviceDispatchVO;
import com.casic.missiles.dto.customer.sample.CustomerSampleListVO;
@@ -28,7 +27,7 @@
Page getSampleListByStatus(@Param("page") Page page, @Param("request") DeviceDispatchDTO request);
- SampleHandOutDetailResponse selectSampleDetail(@Param("request") SampleHandOutDetailRequest request);
+ SampleHandOutDetailResponse selectSampleDetail(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId);
int updateByOrderIdAndSampleId(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId, @Param("status") String status);
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessLabExecutiveInfoController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessLabExecutiveInfoController.java
index c14c3be..aa330f9 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessLabExecutiveInfoController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessLabExecutiveInfoController.java
@@ -7,6 +7,7 @@
import com.casic.missiles.dto.ReturnDTO;
import com.casic.missiles.dto.ReturnUtil;
import com.casic.missiles.dto.business.*;
+import com.casic.missiles.enums.ExportEnum;
import com.casic.missiles.exception.BusinessException;
import com.casic.missiles.model.exception.enums.CoreExceptionEnum;
import com.casic.missiles.service.business.IBusinessLabExecutiveInfoService;
@@ -25,9 +26,9 @@
*
* 业务管理-实验室检定信息记录表(用于流程中的实验室分配及后续检定过程查询) 前端控制器
* 样品状态(任务收发&任务分发使用,委托书和样品关联表中的状态):
- * 1:待收入;2:待分发;3:检测中;4:检测完成;5:待归还;6:已归还;7:无需检测;8:已超期
+ * 1:待收入;2:待分发;3:检测中;4:检测完成;5:待归还;6:已归还;7:无需检测;8:已超期
* 实验室检定状态(实验室检测使用,实验室检定信息记录表中的状态):
- * 1:待分配(负责人);2:待检测(检定人);3:检测完成;4:退回;5:终止(已收入中点击终止更新实验室中待分配和待检测的的状态为已终止)
+ * 1:待分配(负责人);2:待检测(检定人);3:检测完成;4:退回;5:终止(已收入中点击终止更新实验室中待分配和待检测的的状态为已终止)
*
*
* @author wangpeng
@@ -135,7 +136,7 @@
@ApiOperation("实验室检测-我的检测-检定人扫描收入(待检测->检测中)")
@PostMapping("/myExecutive/receive")
@ResponseBody
- public ReturnDTO sampleReceive(@RequestBody @Valid List requestList, BindingResult bindingResult) {
+ public ReturnDTO sampleReceive(@RequestBody @Valid List requestList, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
}
@@ -148,7 +149,7 @@
@ApiOperation("实验室检测-负责人/检定人扫描检完(检测中->检测完)")
@PostMapping("/myExecutive/complete")
@ResponseBody
- public ReturnDTO sampleExecutiveComplete(@RequestBody @Valid List requestList, BindingResult bindingResult) {
+ public ReturnDTO sampleExecutiveComplete(@RequestBody @Valid List requestList, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
}
@@ -158,25 +159,49 @@
/**
* 实验室检测-部门检测/我的检测 编辑(只能修改应出具证书)
*/
+ @ApiOperation("实验室检测-部门检测/我的检测 编辑(只能修改应出具证书)")
+ @PostMapping("/executive/update")
+ @ResponseBody
+ public ReturnDTO updateExecutive(@RequestBody @Valid UpdateExecutiveRequest request, BindingResult bindingResult) {
+ if (bindingResult.hasErrors()) {
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ return labExecutiveInfoService.updateExecutive(request);
+ }
/**
* 实验室检测-部门检测/我的检测 详情
*/
+ @ApiOperation("实验室检测-部门检测/我的检测 详情")
+ @PostMapping("/executive/detail")
+ @ResponseBody
+ public ReturnDTO executiveDetail(@RequestBody @Valid ExecutiveDetailRequest request, BindingResult bindingResult) throws Exception {
+ if (bindingResult.hasErrors()) {
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ return ReturnUtil.success(labExecutiveInfoService.executiveDetail(request));
+ }
/**
* 实验室检测-部门检测/我的检测 退回(待检测/检测中->退回)
- * 退回后会将下一个要执行的实验室检测状态更新为待分配,将后面的实验室顺序变更为连续(都进行减1,)
- * 可能出现最后一个检测的实验室退回,这样的情况是否需要把样品状态改为检测完,还是等分发员再增加实验室或增加个分发员点击完成的按钮
+ * 退回后会将下一个要执行的实验室检测状态更新为待分配,将后面的实验室顺序变更为连续(都进行减1)
+ * 最后一个检测的实验室退回,等分发员再增加实验室或设备收发中的已收入直接手动点击完成
*/
-
-
-
+ @ApiOperation("实验室检测-部门检测/我的检测 退回(待检测/检测中->退回)")
+ @PostMapping("/executive/sendBack")
+ @ResponseBody
+ public ReturnDTO executiveSendBack(@RequestBody @Valid ExecutiveSendBackRequest request, BindingResult bindingResult) {
+ if (bindingResult.hasErrors()) {
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ return labExecutiveInfoService.sampleExecutiveSendBack(request);
+ }
/**
* 分发员编辑实验室检测列表
*/
@ApiOperation("分发员编辑实验室检测列表")
- @PostMapping("/handOut/updateExecutiveList")
+ @PostMapping("/handOut/updateList")
@ResponseBody
public ReturnDTO updateExecutiveList(@RequestBody @Valid UpdateExecutiveListRequest request, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
@@ -185,9 +210,23 @@
return labExecutiveInfoService.updateExecutiveList(request);
}
-
/**
- * 各列表导出
+ * 各状态列表导出
*/
+ @ApiOperation("任务分发-各状态列表导出")
+ @PostMapping("/handOut/listExport")
+ @ResponseBody
+ public void export(@RequestBody @Valid SampleHandOutListRequest request, BindingResult bindingResult) throws Exception {
+ if (bindingResult.hasErrors()) {
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ Page page = PageFactory.defaultPage();
+ page.setCurrent(1);
+ page.setSearchCount(false);
+ page.setSize(Integer.MAX_VALUE);
+ Page responsePage = labExecutiveInfoService.handOutListPage(page, request);
+ List list = responsePage.getRecords();
+ super.exportExcel(SampleHandOutListResponse.class, list, ExportEnum.HANDOUT_EXPORT.getSheetName());
+ }
}
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java
index 9637b3a..7f8c1e7 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java
@@ -79,7 +79,7 @@
@ApiOperation("文件导出")
@PostMapping("/listExport")
@ResponseBody
- public void export(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) throws IOException {
+ public void export(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) throws IOException {
if (bindingResult.hasErrors()) {
throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
}
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 9e3d9fd..0c1cf2d 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
@@ -53,7 +53,9 @@
HANDLE_FAILED(500, "操作失败"),
QRCODE_FAILED(2409, "二维码生成失败"),
RECEIVE_SAMPLE_NOT_EXIST(2410, "待检测中不存在扫描收入的样品"),
- COMPLETE_SAMPLE_NOT_EXIST(2411, "检测中不存在扫描收入的样品");
+ COMPLETE_SAMPLE_NOT_EXIST(2411, "检测中不存在扫描收入的样品"),
+ CANNOT_CHANGE_MEASURE_INFO(2412, "无法更改非当前登录用户的检测信息"),
+ NON_EXIST_ORDER_OR_SAMPLE(2413, "不存在该委托单或该委托单下的样品");
private Integer code;
private String message;
diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java
index 06a3fd8..a43d9c9 100644
--- a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java
+++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java
@@ -36,7 +36,8 @@
DISPATCH_DATA("dispatchData", "dispatchData", "设备收发"),
ENVIRONMENT_DATA("environmentData", "environmentData", "环境记录单"),
ORIGIN_DATA("originData", "originData", "原始记录"),
- ADVICE_EXPORT("adviceData", "adviceData", "客户反馈");
+ ADVICE_EXPORT("adviceData", "adviceData", "客户反馈"),
+ HANDOUT_EXPORT("handoutData", "handoutData", "任务分发列表");
ExportEnum(String fileName, String sheetName, String description) {
this.fileName = fileName;
diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveInfoMapper.java
index e4cd952..2ce14af 100644
--- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveInfoMapper.java
+++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveInfoMapper.java
@@ -22,13 +22,17 @@
Integer getMeasureNumberStatus(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId);
- List selectExecutiveList(@Param("request") SampleHandOutDetailRequest request);
+ List selectExecutiveList(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId);
Page selectListByDeptIdAndStatus(Page page, @Param("request") SampleLabExecutiveListRequest request, @Param("deptId") Long deptId, @Param("status") String status, @Param("statusList") List statusList);
Page selectListByUserIdAndStatus(Page page, @Param("request") SampleLabExecutiveListRequest request, @Param("userId") Long userId, @Param("status") String status);
- int updateForSampleOperate(@Param("list") List list, @Param("userId") Long userId, @Param("status") String status);
+ int updateForSampleOperate(@Param("list") List list, @Param("userId") Long userId, @Param("status") String status);
- List selectListForSampleOperate(@Param("list") List requestList, @Param("userId") Long userId, @Param("status") String status);
+ List selectListForSampleOperate(@Param("list") List requestList, @Param("userId") Long userId, @Param("status") String status);
+
+ int updateForSendBack(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId);
+
+ Long selectMinSeq(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId);
}
diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveOperateLogMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveOperateLogMapper.java
index ed6f4a1..2bcc4e1 100644
--- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveOperateLogMapper.java
+++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveOperateLogMapper.java
@@ -2,7 +2,6 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.casic.missiles.dto.business.MeasureSendBackDTO;
-import com.casic.missiles.dto.business.SampleHandOutDetailRequest;
import com.casic.missiles.model.business.BusinessLabExecutiveOperateLog;
import org.apache.ibatis.annotations.Param;
@@ -19,5 +18,5 @@
*/
public interface BusinessLabExecutiveOperateLogMapper extends BaseMapper {
- List selectExecutiveOperateLogList(@Param("request") SampleHandOutDetailRequest request);
+ List selectExecutiveOperateLogList(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId);
}
diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java
index 235c95f..bddf56f 100644
--- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java
+++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java
@@ -5,7 +5,6 @@
import com.casic.missiles.dto.business.SampleHandOutDetailResponse;
import com.casic.missiles.dto.business.SampleHandOutListRequest;
import com.casic.missiles.dto.business.SampleHandOutListResponse;
-import com.casic.missiles.dto.business.SampleHandOutDetailRequest;
import com.casic.missiles.dto.business.dispatch.DeviceDispatchDTO;
import com.casic.missiles.dto.business.dispatch.DeviceDispatchVO;
import com.casic.missiles.dto.customer.sample.CustomerSampleListVO;
@@ -28,7 +27,7 @@
Page getSampleListByStatus(@Param("page") Page page, @Param("request") DeviceDispatchDTO request);
- SampleHandOutDetailResponse selectSampleDetail(@Param("request") SampleHandOutDetailRequest request);
+ SampleHandOutDetailResponse selectSampleDetail(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId);
int updateByOrderIdAndSampleId(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId, @Param("status") String status);
diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml
index 92402b7..87613eb 100644
--- a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml
+++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml
@@ -31,8 +31,8 @@
- csi.id AS sample_id, csi.sample_no, csi.sample_name, csi.sample_model, csi.manufacturing_no, bo.order_code AS orderNo, bo.id AS orderId,
- bo.customer_id, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, blei.require_certifications, blei.measure_status
+ blei.id AS id, csi.id AS sample_id, csi.sample_no, csi.sample_name, csi.sample_model, csi.manufacturing_no, bo.order_code AS orderNo, bo.id AS orderId,
+ bo.customer_id, bo.customer_no, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, blei.require_certifications, blei.measure_status
@@ -161,7 +161,7 @@
-
@@ -146,8 +152,8 @@
JOIN customer_sample_info csi ON bosr.sample_id = csi.id
JOIN business_order bo ON bosr.order_id = bo.id
WHERE bo.is_del = 0 AND csi.is_del = 0
- AND bosr.order_id = #{request.orderId}
- AND bosr.sample_id = #{request.sampleId}
+ AND bosr.order_id = #{orderId}
+ AND bosr.sample_id = #{sampleId}
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessLabExecutiveInfoController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessLabExecutiveInfoController.java
index c14c3be..aa330f9 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessLabExecutiveInfoController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessLabExecutiveInfoController.java
@@ -7,6 +7,7 @@
import com.casic.missiles.dto.ReturnDTO;
import com.casic.missiles.dto.ReturnUtil;
import com.casic.missiles.dto.business.*;
+import com.casic.missiles.enums.ExportEnum;
import com.casic.missiles.exception.BusinessException;
import com.casic.missiles.model.exception.enums.CoreExceptionEnum;
import com.casic.missiles.service.business.IBusinessLabExecutiveInfoService;
@@ -25,9 +26,9 @@
*
* 业务管理-实验室检定信息记录表(用于流程中的实验室分配及后续检定过程查询) 前端控制器
* 样品状态(任务收发&任务分发使用,委托书和样品关联表中的状态):
- * 1:待收入;2:待分发;3:检测中;4:检测完成;5:待归还;6:已归还;7:无需检测;8:已超期
+ * 1:待收入;2:待分发;3:检测中;4:检测完成;5:待归还;6:已归还;7:无需检测;8:已超期
* 实验室检定状态(实验室检测使用,实验室检定信息记录表中的状态):
- * 1:待分配(负责人);2:待检测(检定人);3:检测完成;4:退回;5:终止(已收入中点击终止更新实验室中待分配和待检测的的状态为已终止)
+ * 1:待分配(负责人);2:待检测(检定人);3:检测完成;4:退回;5:终止(已收入中点击终止更新实验室中待分配和待检测的的状态为已终止)
*
*
* @author wangpeng
@@ -135,7 +136,7 @@
@ApiOperation("实验室检测-我的检测-检定人扫描收入(待检测->检测中)")
@PostMapping("/myExecutive/receive")
@ResponseBody
- public ReturnDTO sampleReceive(@RequestBody @Valid List requestList, BindingResult bindingResult) {
+ public ReturnDTO sampleReceive(@RequestBody @Valid List requestList, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
}
@@ -148,7 +149,7 @@
@ApiOperation("实验室检测-负责人/检定人扫描检完(检测中->检测完)")
@PostMapping("/myExecutive/complete")
@ResponseBody
- public ReturnDTO sampleExecutiveComplete(@RequestBody @Valid List requestList, BindingResult bindingResult) {
+ public ReturnDTO sampleExecutiveComplete(@RequestBody @Valid List requestList, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
}
@@ -158,25 +159,49 @@
/**
* 实验室检测-部门检测/我的检测 编辑(只能修改应出具证书)
*/
+ @ApiOperation("实验室检测-部门检测/我的检测 编辑(只能修改应出具证书)")
+ @PostMapping("/executive/update")
+ @ResponseBody
+ public ReturnDTO updateExecutive(@RequestBody @Valid UpdateExecutiveRequest request, BindingResult bindingResult) {
+ if (bindingResult.hasErrors()) {
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ return labExecutiveInfoService.updateExecutive(request);
+ }
/**
* 实验室检测-部门检测/我的检测 详情
*/
+ @ApiOperation("实验室检测-部门检测/我的检测 详情")
+ @PostMapping("/executive/detail")
+ @ResponseBody
+ public ReturnDTO executiveDetail(@RequestBody @Valid ExecutiveDetailRequest request, BindingResult bindingResult) throws Exception {
+ if (bindingResult.hasErrors()) {
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ return ReturnUtil.success(labExecutiveInfoService.executiveDetail(request));
+ }
/**
* 实验室检测-部门检测/我的检测 退回(待检测/检测中->退回)
- * 退回后会将下一个要执行的实验室检测状态更新为待分配,将后面的实验室顺序变更为连续(都进行减1,)
- * 可能出现最后一个检测的实验室退回,这样的情况是否需要把样品状态改为检测完,还是等分发员再增加实验室或增加个分发员点击完成的按钮
+ * 退回后会将下一个要执行的实验室检测状态更新为待分配,将后面的实验室顺序变更为连续(都进行减1)
+ * 最后一个检测的实验室退回,等分发员再增加实验室或设备收发中的已收入直接手动点击完成
*/
-
-
-
+ @ApiOperation("实验室检测-部门检测/我的检测 退回(待检测/检测中->退回)")
+ @PostMapping("/executive/sendBack")
+ @ResponseBody
+ public ReturnDTO executiveSendBack(@RequestBody @Valid ExecutiveSendBackRequest request, BindingResult bindingResult) {
+ if (bindingResult.hasErrors()) {
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ return labExecutiveInfoService.sampleExecutiveSendBack(request);
+ }
/**
* 分发员编辑实验室检测列表
*/
@ApiOperation("分发员编辑实验室检测列表")
- @PostMapping("/handOut/updateExecutiveList")
+ @PostMapping("/handOut/updateList")
@ResponseBody
public ReturnDTO updateExecutiveList(@RequestBody @Valid UpdateExecutiveListRequest request, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
@@ -185,9 +210,23 @@
return labExecutiveInfoService.updateExecutiveList(request);
}
-
/**
- * 各列表导出
+ * 各状态列表导出
*/
+ @ApiOperation("任务分发-各状态列表导出")
+ @PostMapping("/handOut/listExport")
+ @ResponseBody
+ public void export(@RequestBody @Valid SampleHandOutListRequest request, BindingResult bindingResult) throws Exception {
+ if (bindingResult.hasErrors()) {
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ Page page = PageFactory.defaultPage();
+ page.setCurrent(1);
+ page.setSearchCount(false);
+ page.setSize(Integer.MAX_VALUE);
+ Page responsePage = labExecutiveInfoService.handOutListPage(page, request);
+ List list = responsePage.getRecords();
+ super.exportExcel(SampleHandOutListResponse.class, list, ExportEnum.HANDOUT_EXPORT.getSheetName());
+ }
}
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java
index 9637b3a..7f8c1e7 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java
@@ -79,7 +79,7 @@
@ApiOperation("文件导出")
@PostMapping("/listExport")
@ResponseBody
- public void export(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) throws IOException {
+ public void export(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) throws IOException {
if (bindingResult.hasErrors()) {
throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
}
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 9e3d9fd..0c1cf2d 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
@@ -53,7 +53,9 @@
HANDLE_FAILED(500, "操作失败"),
QRCODE_FAILED(2409, "二维码生成失败"),
RECEIVE_SAMPLE_NOT_EXIST(2410, "待检测中不存在扫描收入的样品"),
- COMPLETE_SAMPLE_NOT_EXIST(2411, "检测中不存在扫描收入的样品");
+ COMPLETE_SAMPLE_NOT_EXIST(2411, "检测中不存在扫描收入的样品"),
+ CANNOT_CHANGE_MEASURE_INFO(2412, "无法更改非当前登录用户的检测信息"),
+ NON_EXIST_ORDER_OR_SAMPLE(2413, "不存在该委托单或该委托单下的样品");
private Integer code;
private String message;
diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java
index 06a3fd8..a43d9c9 100644
--- a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java
+++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java
@@ -36,7 +36,8 @@
DISPATCH_DATA("dispatchData", "dispatchData", "设备收发"),
ENVIRONMENT_DATA("environmentData", "environmentData", "环境记录单"),
ORIGIN_DATA("originData", "originData", "原始记录"),
- ADVICE_EXPORT("adviceData", "adviceData", "客户反馈");
+ ADVICE_EXPORT("adviceData", "adviceData", "客户反馈"),
+ HANDOUT_EXPORT("handoutData", "handoutData", "任务分发列表");
ExportEnum(String fileName, String sheetName, String description) {
this.fileName = fileName;
diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveInfoMapper.java
index e4cd952..2ce14af 100644
--- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveInfoMapper.java
+++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveInfoMapper.java
@@ -22,13 +22,17 @@
Integer getMeasureNumberStatus(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId);
- List selectExecutiveList(@Param("request") SampleHandOutDetailRequest request);
+ List selectExecutiveList(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId);
Page selectListByDeptIdAndStatus(Page page, @Param("request") SampleLabExecutiveListRequest request, @Param("deptId") Long deptId, @Param("status") String status, @Param("statusList") List statusList);
Page selectListByUserIdAndStatus(Page page, @Param("request") SampleLabExecutiveListRequest request, @Param("userId") Long userId, @Param("status") String status);
- int updateForSampleOperate(@Param("list") List list, @Param("userId") Long userId, @Param("status") String status);
+ int updateForSampleOperate(@Param("list") List list, @Param("userId") Long userId, @Param("status") String status);
- List selectListForSampleOperate(@Param("list") List requestList, @Param("userId") Long userId, @Param("status") String status);
+ List selectListForSampleOperate(@Param("list") List requestList, @Param("userId") Long userId, @Param("status") String status);
+
+ int updateForSendBack(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId);
+
+ Long selectMinSeq(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId);
}
diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveOperateLogMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveOperateLogMapper.java
index ed6f4a1..2bcc4e1 100644
--- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveOperateLogMapper.java
+++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveOperateLogMapper.java
@@ -2,7 +2,6 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.casic.missiles.dto.business.MeasureSendBackDTO;
-import com.casic.missiles.dto.business.SampleHandOutDetailRequest;
import com.casic.missiles.model.business.BusinessLabExecutiveOperateLog;
import org.apache.ibatis.annotations.Param;
@@ -19,5 +18,5 @@
*/
public interface BusinessLabExecutiveOperateLogMapper extends BaseMapper {
- List selectExecutiveOperateLogList(@Param("request") SampleHandOutDetailRequest request);
+ List selectExecutiveOperateLogList(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId);
}
diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java
index 235c95f..bddf56f 100644
--- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java
+++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java
@@ -5,7 +5,6 @@
import com.casic.missiles.dto.business.SampleHandOutDetailResponse;
import com.casic.missiles.dto.business.SampleHandOutListRequest;
import com.casic.missiles.dto.business.SampleHandOutListResponse;
-import com.casic.missiles.dto.business.SampleHandOutDetailRequest;
import com.casic.missiles.dto.business.dispatch.DeviceDispatchDTO;
import com.casic.missiles.dto.business.dispatch.DeviceDispatchVO;
import com.casic.missiles.dto.customer.sample.CustomerSampleListVO;
@@ -28,7 +27,7 @@
Page getSampleListByStatus(@Param("page") Page page, @Param("request") DeviceDispatchDTO request);
- SampleHandOutDetailResponse selectSampleDetail(@Param("request") SampleHandOutDetailRequest request);
+ SampleHandOutDetailResponse selectSampleDetail(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId);
int updateByOrderIdAndSampleId(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId, @Param("status") String status);
diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml
index 92402b7..87613eb 100644
--- a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml
+++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml
@@ -31,8 +31,8 @@
- csi.id AS sample_id, csi.sample_no, csi.sample_name, csi.sample_model, csi.manufacturing_no, bo.order_code AS orderNo, bo.id AS orderId,
- bo.customer_id, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, blei.require_certifications, blei.measure_status
+ blei.id AS id, csi.id AS sample_id, csi.sample_no, csi.sample_name, csi.sample_model, csi.manufacturing_no, bo.order_code AS orderNo, bo.id AS orderId,
+ bo.customer_id, bo.customer_no, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, blei.require_certifications, blei.measure_status
@@ -63,8 +63,8 @@
FROM business_lab_executive_info blei
JOIN sys_dept sd ON blei.measure_dept_id = sd.ID
LEFT JOIN sys_user su ON blei.measure_person_id = su.id
- WHERE blei.order_id = #{request.orderId}
- AND blei.sample_id = #{request.sampleId}
+ WHERE blei.order_id = #{orderId}
+ AND blei.sample_id = #{sampleId}
ORDER BY blei.measure_sequence ASC
@@ -161,7 +161,7 @@
-
+
SELECT order_id, sample_id
FROM business_lab_executive_info
WHERE measure_person_id = #{userId}
@@ -171,4 +171,27 @@
(#{item.orderId}, #{item.sampleId})
+
+
+ UPDATE business_lab_executive_info
+ SET measure_sequence = measure_sequence - 1
+ WHERE (measure_status IS NULL OR measure_status = "")
+ AND order_id = #{orderId}
+ AND sample_id = #{sampleId}
+
+
+
+ SELECT id FROM business_lab_executive_info
+ WHERE measure_sequence = (
+ SELECT MIN(measure_sequence)
+ FROM business_lab_executive_info
+ WHERE (measure_status IS NULL OR measure_status = "")
+ AND order_id = #{orderId}
+ AND sample_id = #{sampleId}
+ )
+ AND (measure_status IS NULL OR measure_status = "")
+ AND order_id = #{orderId}
+ AND sample_id = #{sampleId}
+
+
diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveOperateLogMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveOperateLogMapper.xml
index 9f6c97f..0a0b861 100644
--- a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveOperateLogMapper.xml
+++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveOperateLogMapper.xml
@@ -25,8 +25,8 @@
FROM business_lab_executive_operate_log bleoi
JOIN sys_dept sd ON bleoi.measure_dept_id = sd.ID
WHERE measure_status = 4
- AND bleoi.order_id = #{request.orderId}
- AND bleoi.sample_id = #{request.sampleId}
+ AND bleoi.order_id = #{orderId}
+ AND bleoi.sample_id = #{sampleId}
ORDER BY bleoi.create_time ASC
diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml
index c9b53d4..a2b0806 100644
--- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml
+++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml
@@ -18,7 +18,7 @@
csi.id AS sample_id, csi.sample_no, csi.sample_name, csi.sample_model, csi.manufacturing_no, bo.order_code AS orderNo, bo.id AS orderId,
- bo.customer_id, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, bosr.sample_status
+ bo.customer_id, bo.customer_no, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, bosr.sample_status
@@ -136,6 +136,12 @@
AND csi.sample_belong = #{request.sampleBelong}
+
+ AND csi.id IN
+
+ #{item}
+
+
ORDER BY bosr.update_time DESC
@@ -146,8 +152,8 @@
JOIN customer_sample_info csi ON bosr.sample_id = csi.id
JOIN business_order bo ON bosr.order_id = bo.id
WHERE bo.is_del = 0 AND csi.is_del = 0
- AND bosr.order_id = #{request.orderId}
- AND bosr.sample_id = #{request.sampleId}
+ AND bosr.order_id = #{orderId}
+ AND bosr.sample_id = #{sampleId}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveDetailRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveDetailRequest.java
new file mode 100644
index 0000000..8817b91
--- /dev/null
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveDetailRequest.java
@@ -0,0 +1,24 @@
+package com.casic.missiles.dto.business;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @Description:
+ * @Author: wangpeng
+ * @Date: 2023/2/21 10:00
+ */
+@Data
+@ApiModel
+public class ExecutiveDetailRequest {
+ @NotNull(message = "委托书id不能为空")
+ @ApiModelProperty(value = "委托书id", dataType = "Long")
+ private Long orderId;
+
+ @NotNull(message = "样品id不能为空")
+ @ApiModelProperty(value = "样品id", dataType = "Long")
+ private Long sampleId;
+}
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessLabExecutiveInfoController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessLabExecutiveInfoController.java
index c14c3be..aa330f9 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessLabExecutiveInfoController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessLabExecutiveInfoController.java
@@ -7,6 +7,7 @@
import com.casic.missiles.dto.ReturnDTO;
import com.casic.missiles.dto.ReturnUtil;
import com.casic.missiles.dto.business.*;
+import com.casic.missiles.enums.ExportEnum;
import com.casic.missiles.exception.BusinessException;
import com.casic.missiles.model.exception.enums.CoreExceptionEnum;
import com.casic.missiles.service.business.IBusinessLabExecutiveInfoService;
@@ -25,9 +26,9 @@
*
* 业务管理-实验室检定信息记录表(用于流程中的实验室分配及后续检定过程查询) 前端控制器
* 样品状态(任务收发&任务分发使用,委托书和样品关联表中的状态):
- * 1:待收入;2:待分发;3:检测中;4:检测完成;5:待归还;6:已归还;7:无需检测;8:已超期
+ * 1:待收入;2:待分发;3:检测中;4:检测完成;5:待归还;6:已归还;7:无需检测;8:已超期
* 实验室检定状态(实验室检测使用,实验室检定信息记录表中的状态):
- * 1:待分配(负责人);2:待检测(检定人);3:检测完成;4:退回;5:终止(已收入中点击终止更新实验室中待分配和待检测的的状态为已终止)
+ * 1:待分配(负责人);2:待检测(检定人);3:检测完成;4:退回;5:终止(已收入中点击终止更新实验室中待分配和待检测的的状态为已终止)
*
*
* @author wangpeng
@@ -135,7 +136,7 @@
@ApiOperation("实验室检测-我的检测-检定人扫描收入(待检测->检测中)")
@PostMapping("/myExecutive/receive")
@ResponseBody
- public ReturnDTO sampleReceive(@RequestBody @Valid List requestList, BindingResult bindingResult) {
+ public ReturnDTO sampleReceive(@RequestBody @Valid List requestList, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
}
@@ -148,7 +149,7 @@
@ApiOperation("实验室检测-负责人/检定人扫描检完(检测中->检测完)")
@PostMapping("/myExecutive/complete")
@ResponseBody
- public ReturnDTO sampleExecutiveComplete(@RequestBody @Valid List requestList, BindingResult bindingResult) {
+ public ReturnDTO sampleExecutiveComplete(@RequestBody @Valid List requestList, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
}
@@ -158,25 +159,49 @@
/**
* 实验室检测-部门检测/我的检测 编辑(只能修改应出具证书)
*/
+ @ApiOperation("实验室检测-部门检测/我的检测 编辑(只能修改应出具证书)")
+ @PostMapping("/executive/update")
+ @ResponseBody
+ public ReturnDTO updateExecutive(@RequestBody @Valid UpdateExecutiveRequest request, BindingResult bindingResult) {
+ if (bindingResult.hasErrors()) {
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ return labExecutiveInfoService.updateExecutive(request);
+ }
/**
* 实验室检测-部门检测/我的检测 详情
*/
+ @ApiOperation("实验室检测-部门检测/我的检测 详情")
+ @PostMapping("/executive/detail")
+ @ResponseBody
+ public ReturnDTO executiveDetail(@RequestBody @Valid ExecutiveDetailRequest request, BindingResult bindingResult) throws Exception {
+ if (bindingResult.hasErrors()) {
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ return ReturnUtil.success(labExecutiveInfoService.executiveDetail(request));
+ }
/**
* 实验室检测-部门检测/我的检测 退回(待检测/检测中->退回)
- * 退回后会将下一个要执行的实验室检测状态更新为待分配,将后面的实验室顺序变更为连续(都进行减1,)
- * 可能出现最后一个检测的实验室退回,这样的情况是否需要把样品状态改为检测完,还是等分发员再增加实验室或增加个分发员点击完成的按钮
+ * 退回后会将下一个要执行的实验室检测状态更新为待分配,将后面的实验室顺序变更为连续(都进行减1)
+ * 最后一个检测的实验室退回,等分发员再增加实验室或设备收发中的已收入直接手动点击完成
*/
-
-
-
+ @ApiOperation("实验室检测-部门检测/我的检测 退回(待检测/检测中->退回)")
+ @PostMapping("/executive/sendBack")
+ @ResponseBody
+ public ReturnDTO executiveSendBack(@RequestBody @Valid ExecutiveSendBackRequest request, BindingResult bindingResult) {
+ if (bindingResult.hasErrors()) {
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ return labExecutiveInfoService.sampleExecutiveSendBack(request);
+ }
/**
* 分发员编辑实验室检测列表
*/
@ApiOperation("分发员编辑实验室检测列表")
- @PostMapping("/handOut/updateExecutiveList")
+ @PostMapping("/handOut/updateList")
@ResponseBody
public ReturnDTO updateExecutiveList(@RequestBody @Valid UpdateExecutiveListRequest request, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
@@ -185,9 +210,23 @@
return labExecutiveInfoService.updateExecutiveList(request);
}
-
/**
- * 各列表导出
+ * 各状态列表导出
*/
+ @ApiOperation("任务分发-各状态列表导出")
+ @PostMapping("/handOut/listExport")
+ @ResponseBody
+ public void export(@RequestBody @Valid SampleHandOutListRequest request, BindingResult bindingResult) throws Exception {
+ if (bindingResult.hasErrors()) {
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ Page page = PageFactory.defaultPage();
+ page.setCurrent(1);
+ page.setSearchCount(false);
+ page.setSize(Integer.MAX_VALUE);
+ Page responsePage = labExecutiveInfoService.handOutListPage(page, request);
+ List list = responsePage.getRecords();
+ super.exportExcel(SampleHandOutListResponse.class, list, ExportEnum.HANDOUT_EXPORT.getSheetName());
+ }
}
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java
index 9637b3a..7f8c1e7 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java
@@ -79,7 +79,7 @@
@ApiOperation("文件导出")
@PostMapping("/listExport")
@ResponseBody
- public void export(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) throws IOException {
+ public void export(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) throws IOException {
if (bindingResult.hasErrors()) {
throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
}
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 9e3d9fd..0c1cf2d 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
@@ -53,7 +53,9 @@
HANDLE_FAILED(500, "操作失败"),
QRCODE_FAILED(2409, "二维码生成失败"),
RECEIVE_SAMPLE_NOT_EXIST(2410, "待检测中不存在扫描收入的样品"),
- COMPLETE_SAMPLE_NOT_EXIST(2411, "检测中不存在扫描收入的样品");
+ COMPLETE_SAMPLE_NOT_EXIST(2411, "检测中不存在扫描收入的样品"),
+ CANNOT_CHANGE_MEASURE_INFO(2412, "无法更改非当前登录用户的检测信息"),
+ NON_EXIST_ORDER_OR_SAMPLE(2413, "不存在该委托单或该委托单下的样品");
private Integer code;
private String message;
diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java
index 06a3fd8..a43d9c9 100644
--- a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java
+++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java
@@ -36,7 +36,8 @@
DISPATCH_DATA("dispatchData", "dispatchData", "设备收发"),
ENVIRONMENT_DATA("environmentData", "environmentData", "环境记录单"),
ORIGIN_DATA("originData", "originData", "原始记录"),
- ADVICE_EXPORT("adviceData", "adviceData", "客户反馈");
+ ADVICE_EXPORT("adviceData", "adviceData", "客户反馈"),
+ HANDOUT_EXPORT("handoutData", "handoutData", "任务分发列表");
ExportEnum(String fileName, String sheetName, String description) {
this.fileName = fileName;
diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveInfoMapper.java
index e4cd952..2ce14af 100644
--- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveInfoMapper.java
+++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveInfoMapper.java
@@ -22,13 +22,17 @@
Integer getMeasureNumberStatus(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId);
- List selectExecutiveList(@Param("request") SampleHandOutDetailRequest request);
+ List selectExecutiveList(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId);
Page selectListByDeptIdAndStatus(Page page, @Param("request") SampleLabExecutiveListRequest request, @Param("deptId") Long deptId, @Param("status") String status, @Param("statusList") List statusList);
Page selectListByUserIdAndStatus(Page page, @Param("request") SampleLabExecutiveListRequest request, @Param("userId") Long userId, @Param("status") String status);
- int updateForSampleOperate(@Param("list") List list, @Param("userId") Long userId, @Param("status") String status);
+ int updateForSampleOperate(@Param("list") List list, @Param("userId") Long userId, @Param("status") String status);
- List selectListForSampleOperate(@Param("list") List requestList, @Param("userId") Long userId, @Param("status") String status);
+ List selectListForSampleOperate(@Param("list") List requestList, @Param("userId") Long userId, @Param("status") String status);
+
+ int updateForSendBack(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId);
+
+ Long selectMinSeq(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId);
}
diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveOperateLogMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveOperateLogMapper.java
index ed6f4a1..2bcc4e1 100644
--- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveOperateLogMapper.java
+++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveOperateLogMapper.java
@@ -2,7 +2,6 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.casic.missiles.dto.business.MeasureSendBackDTO;
-import com.casic.missiles.dto.business.SampleHandOutDetailRequest;
import com.casic.missiles.model.business.BusinessLabExecutiveOperateLog;
import org.apache.ibatis.annotations.Param;
@@ -19,5 +18,5 @@
*/
public interface BusinessLabExecutiveOperateLogMapper extends BaseMapper {
- List selectExecutiveOperateLogList(@Param("request") SampleHandOutDetailRequest request);
+ List selectExecutiveOperateLogList(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId);
}
diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java
index 235c95f..bddf56f 100644
--- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java
+++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java
@@ -5,7 +5,6 @@
import com.casic.missiles.dto.business.SampleHandOutDetailResponse;
import com.casic.missiles.dto.business.SampleHandOutListRequest;
import com.casic.missiles.dto.business.SampleHandOutListResponse;
-import com.casic.missiles.dto.business.SampleHandOutDetailRequest;
import com.casic.missiles.dto.business.dispatch.DeviceDispatchDTO;
import com.casic.missiles.dto.business.dispatch.DeviceDispatchVO;
import com.casic.missiles.dto.customer.sample.CustomerSampleListVO;
@@ -28,7 +27,7 @@
Page getSampleListByStatus(@Param("page") Page page, @Param("request") DeviceDispatchDTO request);
- SampleHandOutDetailResponse selectSampleDetail(@Param("request") SampleHandOutDetailRequest request);
+ SampleHandOutDetailResponse selectSampleDetail(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId);
int updateByOrderIdAndSampleId(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId, @Param("status") String status);
diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml
index 92402b7..87613eb 100644
--- a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml
+++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml
@@ -31,8 +31,8 @@
- csi.id AS sample_id, csi.sample_no, csi.sample_name, csi.sample_model, csi.manufacturing_no, bo.order_code AS orderNo, bo.id AS orderId,
- bo.customer_id, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, blei.require_certifications, blei.measure_status
+ blei.id AS id, csi.id AS sample_id, csi.sample_no, csi.sample_name, csi.sample_model, csi.manufacturing_no, bo.order_code AS orderNo, bo.id AS orderId,
+ bo.customer_id, bo.customer_no, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, blei.require_certifications, blei.measure_status
@@ -63,8 +63,8 @@
FROM business_lab_executive_info blei
JOIN sys_dept sd ON blei.measure_dept_id = sd.ID
LEFT JOIN sys_user su ON blei.measure_person_id = su.id
- WHERE blei.order_id = #{request.orderId}
- AND blei.sample_id = #{request.sampleId}
+ WHERE blei.order_id = #{orderId}
+ AND blei.sample_id = #{sampleId}
ORDER BY blei.measure_sequence ASC
@@ -161,7 +161,7 @@
-
+
SELECT order_id, sample_id
FROM business_lab_executive_info
WHERE measure_person_id = #{userId}
@@ -171,4 +171,27 @@
(#{item.orderId}, #{item.sampleId})
+
+
+ UPDATE business_lab_executive_info
+ SET measure_sequence = measure_sequence - 1
+ WHERE (measure_status IS NULL OR measure_status = "")
+ AND order_id = #{orderId}
+ AND sample_id = #{sampleId}
+
+
+
+ SELECT id FROM business_lab_executive_info
+ WHERE measure_sequence = (
+ SELECT MIN(measure_sequence)
+ FROM business_lab_executive_info
+ WHERE (measure_status IS NULL OR measure_status = "")
+ AND order_id = #{orderId}
+ AND sample_id = #{sampleId}
+ )
+ AND (measure_status IS NULL OR measure_status = "")
+ AND order_id = #{orderId}
+ AND sample_id = #{sampleId}
+
+
diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveOperateLogMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveOperateLogMapper.xml
index 9f6c97f..0a0b861 100644
--- a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveOperateLogMapper.xml
+++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveOperateLogMapper.xml
@@ -25,8 +25,8 @@
FROM business_lab_executive_operate_log bleoi
JOIN sys_dept sd ON bleoi.measure_dept_id = sd.ID
WHERE measure_status = 4
- AND bleoi.order_id = #{request.orderId}
- AND bleoi.sample_id = #{request.sampleId}
+ AND bleoi.order_id = #{orderId}
+ AND bleoi.sample_id = #{sampleId}
ORDER BY bleoi.create_time ASC
diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml
index c9b53d4..a2b0806 100644
--- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml
+++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml
@@ -18,7 +18,7 @@
csi.id AS sample_id, csi.sample_no, csi.sample_name, csi.sample_model, csi.manufacturing_no, bo.order_code AS orderNo, bo.id AS orderId,
- bo.customer_id, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, bosr.sample_status
+ bo.customer_id, bo.customer_no, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, bosr.sample_status
@@ -136,6 +136,12 @@
AND csi.sample_belong = #{request.sampleBelong}
+
+ AND csi.id IN
+
+ #{item}
+
+
ORDER BY bosr.update_time DESC
@@ -146,8 +152,8 @@
JOIN customer_sample_info csi ON bosr.sample_id = csi.id
JOIN business_order bo ON bosr.order_id = bo.id
WHERE bo.is_del = 0 AND csi.is_del = 0
- AND bosr.order_id = #{request.orderId}
- AND bosr.sample_id = #{request.sampleId}
+ AND bosr.order_id = #{orderId}
+ AND bosr.sample_id = #{sampleId}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveDetailRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveDetailRequest.java
new file mode 100644
index 0000000..8817b91
--- /dev/null
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveDetailRequest.java
@@ -0,0 +1,24 @@
+package com.casic.missiles.dto.business;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @Description:
+ * @Author: wangpeng
+ * @Date: 2023/2/21 10:00
+ */
+@Data
+@ApiModel
+public class ExecutiveDetailRequest {
+ @NotNull(message = "委托书id不能为空")
+ @ApiModelProperty(value = "委托书id", dataType = "Long")
+ private Long orderId;
+
+ @NotNull(message = "样品id不能为空")
+ @ApiModelProperty(value = "样品id", dataType = "Long")
+ private Long sampleId;
+}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveDetailResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveDetailResponse.java
new file mode 100644
index 0000000..35452b9
--- /dev/null
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveDetailResponse.java
@@ -0,0 +1,139 @@
+package com.casic.missiles.dto.business;
+
+import com.casic.missiles.annotation.DictCodeField;
+import com.casic.missiles.constants.MeterDictCode;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @Description: 任务分发-详情
+ * @Author: wangpeng
+ * @Date: 2023/2/9 11:41
+ */
+@Data
+@ApiModel
+public class ExecutiveDetailResponse {
+ @ApiModelProperty(value = "样品id", dataType = "Long")
+ private Long sampleId;
+
+ @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 manufacturer;
+
+ @ApiModelProperty(value = "厂家国别", dataType = "String")
+ private String manufacturerCountry;
+
+ @ApiModelProperty(value = "出厂年月", dataType = "String")
+ private String manufacturingDate;
+
+ @ApiModelProperty(value = "ABC", dataType = "String")
+ private String abc;
+
+ @ApiModelProperty(value = "委托方id", dataType = "Long")
+ private Long customerId;
+
+ @ApiModelProperty(value = "委托方名称", dataType = "String")
+ private String customerName;
+
+ @ApiModelProperty(value = "委托方电话", dataType = "String")
+ private String customerPhone;
+
+ //需求中有,建议去掉,否则多关联一张表
+// @ApiModelProperty(value = "委托方邮编", dataType = "String")
+// private String postalCode;
+
+// @ApiModelProperty(value = "委托方公司地址-国家", dataType = "String")
+// private String addressCountry;
+//
+// @ApiModelProperty(value = "委托方公司地址-省", dataType = "String")
+// private String addressProvince;
+//
+// @ApiModelProperty(value = "委托方公司地址-市", dataType = "String")
+// private String addressCity;
+//
+// @ApiModelProperty(value = "委托方公司地址-区", dataType = "String")
+// private String addressArea;
+
+ @ApiModelProperty(value = "委托方公司地址-详细地址", dataType = "String")
+ private String customerAddress;
+
+// @ApiModelProperty(value = "委托方公司地址-国家名字", dataType = "String")
+// private String addressCountryName;
+//
+// @ApiModelProperty(value = "委托方公司地址-省名字", dataType = "String")
+// private String addressProvinceName;
+//
+// @ApiModelProperty(value = "委托方公司地址-市名字", dataType = "String")
+// private String addressCityName;
+//
+// @ApiModelProperty(value = "委托方公司地址-区名字", dataType = "String")
+// private String addressAreaName;
+
+ @ApiModelProperty(value = "委托书id", dataType = "Long")
+ private String orderId;
+
+ @ApiModelProperty(value = "委托书编号", dataType = "String")
+ private String orderCode;
+
+ @ApiModelProperty(value = "送样人", dataType = "String")
+ private String deliverer;
+
+ @ApiModelProperty(value = "送样人联系方式", dataType = "String")
+ private String delivererTel;
+
+ @ApiModelProperty(value = "预约送达时间", dataType = "String")
+ private String planDeliverTime;
+
+ @ApiModelProperty(value = "要求检完时间", dataType = "String")
+ private String requireOverTime;
+
+ @ApiModelProperty(value = "检定项目", dataType = "String")
+ private String measureContent;
+
+ @ApiModelProperty(value = "检定周期(月)", dataType = "String")
+ private String measurePeriod;
+
+ @ApiModelProperty(value = "检定日期", dataType = "String")
+ private String measureLastDate;
+
+ @ApiModelProperty(value = "有效日期", dataType = "String")
+ private String effectiveDate;
+
+ //需求中已删除该字段展示,不展示整个样品的检定结果,只在证书里展示各证书的检定结果
+// @ApiModelProperty(value = "检定结果", dataType = "String")
+// private String measureResult;
+
+ @ApiModelProperty(value = "备注", dataType = "String")
+ private String remark;
+
+ @ApiModelProperty(value = "说明书", dataType = "String")
+ private String minioFileName;
+
+ @ApiModelProperty(value = "检定方式(字典code)", dataType = "String")
+ @DictCodeField(message = "检定方式不合法", cacheName = MeterDictCode.MEASURE_TYPE)
+ private String measureType;
+
+ @ApiModelProperty(value = "检定方式(字典value)", dataType = "String")
+ private String measureTypeName;
+
+ @ApiModelProperty(value = "标签绑定", dataType = "String")
+ private String labelBind;
+
+ @ApiModelProperty(value = "检定流程", dataType = "List")
+ private List measureProcessList;
+
+}
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessLabExecutiveInfoController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessLabExecutiveInfoController.java
index c14c3be..aa330f9 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessLabExecutiveInfoController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessLabExecutiveInfoController.java
@@ -7,6 +7,7 @@
import com.casic.missiles.dto.ReturnDTO;
import com.casic.missiles.dto.ReturnUtil;
import com.casic.missiles.dto.business.*;
+import com.casic.missiles.enums.ExportEnum;
import com.casic.missiles.exception.BusinessException;
import com.casic.missiles.model.exception.enums.CoreExceptionEnum;
import com.casic.missiles.service.business.IBusinessLabExecutiveInfoService;
@@ -25,9 +26,9 @@
*
* 业务管理-实验室检定信息记录表(用于流程中的实验室分配及后续检定过程查询) 前端控制器
* 样品状态(任务收发&任务分发使用,委托书和样品关联表中的状态):
- * 1:待收入;2:待分发;3:检测中;4:检测完成;5:待归还;6:已归还;7:无需检测;8:已超期
+ * 1:待收入;2:待分发;3:检测中;4:检测完成;5:待归还;6:已归还;7:无需检测;8:已超期
* 实验室检定状态(实验室检测使用,实验室检定信息记录表中的状态):
- * 1:待分配(负责人);2:待检测(检定人);3:检测完成;4:退回;5:终止(已收入中点击终止更新实验室中待分配和待检测的的状态为已终止)
+ * 1:待分配(负责人);2:待检测(检定人);3:检测完成;4:退回;5:终止(已收入中点击终止更新实验室中待分配和待检测的的状态为已终止)
*
*
* @author wangpeng
@@ -135,7 +136,7 @@
@ApiOperation("实验室检测-我的检测-检定人扫描收入(待检测->检测中)")
@PostMapping("/myExecutive/receive")
@ResponseBody
- public ReturnDTO sampleReceive(@RequestBody @Valid List requestList, BindingResult bindingResult) {
+ public ReturnDTO sampleReceive(@RequestBody @Valid List requestList, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
}
@@ -148,7 +149,7 @@
@ApiOperation("实验室检测-负责人/检定人扫描检完(检测中->检测完)")
@PostMapping("/myExecutive/complete")
@ResponseBody
- public ReturnDTO sampleExecutiveComplete(@RequestBody @Valid List requestList, BindingResult bindingResult) {
+ public ReturnDTO sampleExecutiveComplete(@RequestBody @Valid List requestList, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
}
@@ -158,25 +159,49 @@
/**
* 实验室检测-部门检测/我的检测 编辑(只能修改应出具证书)
*/
+ @ApiOperation("实验室检测-部门检测/我的检测 编辑(只能修改应出具证书)")
+ @PostMapping("/executive/update")
+ @ResponseBody
+ public ReturnDTO updateExecutive(@RequestBody @Valid UpdateExecutiveRequest request, BindingResult bindingResult) {
+ if (bindingResult.hasErrors()) {
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ return labExecutiveInfoService.updateExecutive(request);
+ }
/**
* 实验室检测-部门检测/我的检测 详情
*/
+ @ApiOperation("实验室检测-部门检测/我的检测 详情")
+ @PostMapping("/executive/detail")
+ @ResponseBody
+ public ReturnDTO executiveDetail(@RequestBody @Valid ExecutiveDetailRequest request, BindingResult bindingResult) throws Exception {
+ if (bindingResult.hasErrors()) {
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ return ReturnUtil.success(labExecutiveInfoService.executiveDetail(request));
+ }
/**
* 实验室检测-部门检测/我的检测 退回(待检测/检测中->退回)
- * 退回后会将下一个要执行的实验室检测状态更新为待分配,将后面的实验室顺序变更为连续(都进行减1,)
- * 可能出现最后一个检测的实验室退回,这样的情况是否需要把样品状态改为检测完,还是等分发员再增加实验室或增加个分发员点击完成的按钮
+ * 退回后会将下一个要执行的实验室检测状态更新为待分配,将后面的实验室顺序变更为连续(都进行减1)
+ * 最后一个检测的实验室退回,等分发员再增加实验室或设备收发中的已收入直接手动点击完成
*/
-
-
-
+ @ApiOperation("实验室检测-部门检测/我的检测 退回(待检测/检测中->退回)")
+ @PostMapping("/executive/sendBack")
+ @ResponseBody
+ public ReturnDTO executiveSendBack(@RequestBody @Valid ExecutiveSendBackRequest request, BindingResult bindingResult) {
+ if (bindingResult.hasErrors()) {
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ return labExecutiveInfoService.sampleExecutiveSendBack(request);
+ }
/**
* 分发员编辑实验室检测列表
*/
@ApiOperation("分发员编辑实验室检测列表")
- @PostMapping("/handOut/updateExecutiveList")
+ @PostMapping("/handOut/updateList")
@ResponseBody
public ReturnDTO updateExecutiveList(@RequestBody @Valid UpdateExecutiveListRequest request, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
@@ -185,9 +210,23 @@
return labExecutiveInfoService.updateExecutiveList(request);
}
-
/**
- * 各列表导出
+ * 各状态列表导出
*/
+ @ApiOperation("任务分发-各状态列表导出")
+ @PostMapping("/handOut/listExport")
+ @ResponseBody
+ public void export(@RequestBody @Valid SampleHandOutListRequest request, BindingResult bindingResult) throws Exception {
+ if (bindingResult.hasErrors()) {
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ Page page = PageFactory.defaultPage();
+ page.setCurrent(1);
+ page.setSearchCount(false);
+ page.setSize(Integer.MAX_VALUE);
+ Page responsePage = labExecutiveInfoService.handOutListPage(page, request);
+ List list = responsePage.getRecords();
+ super.exportExcel(SampleHandOutListResponse.class, list, ExportEnum.HANDOUT_EXPORT.getSheetName());
+ }
}
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java
index 9637b3a..7f8c1e7 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java
@@ -79,7 +79,7 @@
@ApiOperation("文件导出")
@PostMapping("/listExport")
@ResponseBody
- public void export(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) throws IOException {
+ public void export(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) throws IOException {
if (bindingResult.hasErrors()) {
throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
}
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 9e3d9fd..0c1cf2d 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
@@ -53,7 +53,9 @@
HANDLE_FAILED(500, "操作失败"),
QRCODE_FAILED(2409, "二维码生成失败"),
RECEIVE_SAMPLE_NOT_EXIST(2410, "待检测中不存在扫描收入的样品"),
- COMPLETE_SAMPLE_NOT_EXIST(2411, "检测中不存在扫描收入的样品");
+ COMPLETE_SAMPLE_NOT_EXIST(2411, "检测中不存在扫描收入的样品"),
+ CANNOT_CHANGE_MEASURE_INFO(2412, "无法更改非当前登录用户的检测信息"),
+ NON_EXIST_ORDER_OR_SAMPLE(2413, "不存在该委托单或该委托单下的样品");
private Integer code;
private String message;
diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java
index 06a3fd8..a43d9c9 100644
--- a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java
+++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java
@@ -36,7 +36,8 @@
DISPATCH_DATA("dispatchData", "dispatchData", "设备收发"),
ENVIRONMENT_DATA("environmentData", "environmentData", "环境记录单"),
ORIGIN_DATA("originData", "originData", "原始记录"),
- ADVICE_EXPORT("adviceData", "adviceData", "客户反馈");
+ ADVICE_EXPORT("adviceData", "adviceData", "客户反馈"),
+ HANDOUT_EXPORT("handoutData", "handoutData", "任务分发列表");
ExportEnum(String fileName, String sheetName, String description) {
this.fileName = fileName;
diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveInfoMapper.java
index e4cd952..2ce14af 100644
--- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveInfoMapper.java
+++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveInfoMapper.java
@@ -22,13 +22,17 @@
Integer getMeasureNumberStatus(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId);
- List selectExecutiveList(@Param("request") SampleHandOutDetailRequest request);
+ List selectExecutiveList(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId);
Page selectListByDeptIdAndStatus(Page page, @Param("request") SampleLabExecutiveListRequest request, @Param("deptId") Long deptId, @Param("status") String status, @Param("statusList") List statusList);
Page selectListByUserIdAndStatus(Page page, @Param("request") SampleLabExecutiveListRequest request, @Param("userId") Long userId, @Param("status") String status);
- int updateForSampleOperate(@Param("list") List list, @Param("userId") Long userId, @Param("status") String status);
+ int updateForSampleOperate(@Param("list") List list, @Param("userId") Long userId, @Param("status") String status);
- List selectListForSampleOperate(@Param("list") List requestList, @Param("userId") Long userId, @Param("status") String status);
+ List selectListForSampleOperate(@Param("list") List requestList, @Param("userId") Long userId, @Param("status") String status);
+
+ int updateForSendBack(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId);
+
+ Long selectMinSeq(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId);
}
diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveOperateLogMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveOperateLogMapper.java
index ed6f4a1..2bcc4e1 100644
--- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveOperateLogMapper.java
+++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveOperateLogMapper.java
@@ -2,7 +2,6 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.casic.missiles.dto.business.MeasureSendBackDTO;
-import com.casic.missiles.dto.business.SampleHandOutDetailRequest;
import com.casic.missiles.model.business.BusinessLabExecutiveOperateLog;
import org.apache.ibatis.annotations.Param;
@@ -19,5 +18,5 @@
*/
public interface BusinessLabExecutiveOperateLogMapper extends BaseMapper {
- List selectExecutiveOperateLogList(@Param("request") SampleHandOutDetailRequest request);
+ List selectExecutiveOperateLogList(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId);
}
diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java
index 235c95f..bddf56f 100644
--- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java
+++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java
@@ -5,7 +5,6 @@
import com.casic.missiles.dto.business.SampleHandOutDetailResponse;
import com.casic.missiles.dto.business.SampleHandOutListRequest;
import com.casic.missiles.dto.business.SampleHandOutListResponse;
-import com.casic.missiles.dto.business.SampleHandOutDetailRequest;
import com.casic.missiles.dto.business.dispatch.DeviceDispatchDTO;
import com.casic.missiles.dto.business.dispatch.DeviceDispatchVO;
import com.casic.missiles.dto.customer.sample.CustomerSampleListVO;
@@ -28,7 +27,7 @@
Page getSampleListByStatus(@Param("page") Page page, @Param("request") DeviceDispatchDTO request);
- SampleHandOutDetailResponse selectSampleDetail(@Param("request") SampleHandOutDetailRequest request);
+ SampleHandOutDetailResponse selectSampleDetail(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId);
int updateByOrderIdAndSampleId(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId, @Param("status") String status);
diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml
index 92402b7..87613eb 100644
--- a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml
+++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml
@@ -31,8 +31,8 @@
- csi.id AS sample_id, csi.sample_no, csi.sample_name, csi.sample_model, csi.manufacturing_no, bo.order_code AS orderNo, bo.id AS orderId,
- bo.customer_id, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, blei.require_certifications, blei.measure_status
+ blei.id AS id, csi.id AS sample_id, csi.sample_no, csi.sample_name, csi.sample_model, csi.manufacturing_no, bo.order_code AS orderNo, bo.id AS orderId,
+ bo.customer_id, bo.customer_no, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, blei.require_certifications, blei.measure_status
@@ -63,8 +63,8 @@
FROM business_lab_executive_info blei
JOIN sys_dept sd ON blei.measure_dept_id = sd.ID
LEFT JOIN sys_user su ON blei.measure_person_id = su.id
- WHERE blei.order_id = #{request.orderId}
- AND blei.sample_id = #{request.sampleId}
+ WHERE blei.order_id = #{orderId}
+ AND blei.sample_id = #{sampleId}
ORDER BY blei.measure_sequence ASC
@@ -161,7 +161,7 @@
-
+
SELECT order_id, sample_id
FROM business_lab_executive_info
WHERE measure_person_id = #{userId}
@@ -171,4 +171,27 @@
(#{item.orderId}, #{item.sampleId})
+
+
+ UPDATE business_lab_executive_info
+ SET measure_sequence = measure_sequence - 1
+ WHERE (measure_status IS NULL OR measure_status = "")
+ AND order_id = #{orderId}
+ AND sample_id = #{sampleId}
+
+
+
+ SELECT id FROM business_lab_executive_info
+ WHERE measure_sequence = (
+ SELECT MIN(measure_sequence)
+ FROM business_lab_executive_info
+ WHERE (measure_status IS NULL OR measure_status = "")
+ AND order_id = #{orderId}
+ AND sample_id = #{sampleId}
+ )
+ AND (measure_status IS NULL OR measure_status = "")
+ AND order_id = #{orderId}
+ AND sample_id = #{sampleId}
+
+
diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveOperateLogMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveOperateLogMapper.xml
index 9f6c97f..0a0b861 100644
--- a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveOperateLogMapper.xml
+++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveOperateLogMapper.xml
@@ -25,8 +25,8 @@
FROM business_lab_executive_operate_log bleoi
JOIN sys_dept sd ON bleoi.measure_dept_id = sd.ID
WHERE measure_status = 4
- AND bleoi.order_id = #{request.orderId}
- AND bleoi.sample_id = #{request.sampleId}
+ AND bleoi.order_id = #{orderId}
+ AND bleoi.sample_id = #{sampleId}
ORDER BY bleoi.create_time ASC
diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml
index c9b53d4..a2b0806 100644
--- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml
+++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml
@@ -18,7 +18,7 @@
csi.id AS sample_id, csi.sample_no, csi.sample_name, csi.sample_model, csi.manufacturing_no, bo.order_code AS orderNo, bo.id AS orderId,
- bo.customer_id, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, bosr.sample_status
+ bo.customer_id, bo.customer_no, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, bosr.sample_status
@@ -136,6 +136,12 @@
AND csi.sample_belong = #{request.sampleBelong}
+
+ AND csi.id IN
+
+ #{item}
+
+
ORDER BY bosr.update_time DESC
@@ -146,8 +152,8 @@
JOIN customer_sample_info csi ON bosr.sample_id = csi.id
JOIN business_order bo ON bosr.order_id = bo.id
WHERE bo.is_del = 0 AND csi.is_del = 0
- AND bosr.order_id = #{request.orderId}
- AND bosr.sample_id = #{request.sampleId}
+ AND bosr.order_id = #{orderId}
+ AND bosr.sample_id = #{sampleId}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveDetailRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveDetailRequest.java
new file mode 100644
index 0000000..8817b91
--- /dev/null
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveDetailRequest.java
@@ -0,0 +1,24 @@
+package com.casic.missiles.dto.business;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @Description:
+ * @Author: wangpeng
+ * @Date: 2023/2/21 10:00
+ */
+@Data
+@ApiModel
+public class ExecutiveDetailRequest {
+ @NotNull(message = "委托书id不能为空")
+ @ApiModelProperty(value = "委托书id", dataType = "Long")
+ private Long orderId;
+
+ @NotNull(message = "样品id不能为空")
+ @ApiModelProperty(value = "样品id", dataType = "Long")
+ private Long sampleId;
+}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveDetailResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveDetailResponse.java
new file mode 100644
index 0000000..35452b9
--- /dev/null
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveDetailResponse.java
@@ -0,0 +1,139 @@
+package com.casic.missiles.dto.business;
+
+import com.casic.missiles.annotation.DictCodeField;
+import com.casic.missiles.constants.MeterDictCode;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @Description: 任务分发-详情
+ * @Author: wangpeng
+ * @Date: 2023/2/9 11:41
+ */
+@Data
+@ApiModel
+public class ExecutiveDetailResponse {
+ @ApiModelProperty(value = "样品id", dataType = "Long")
+ private Long sampleId;
+
+ @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 manufacturer;
+
+ @ApiModelProperty(value = "厂家国别", dataType = "String")
+ private String manufacturerCountry;
+
+ @ApiModelProperty(value = "出厂年月", dataType = "String")
+ private String manufacturingDate;
+
+ @ApiModelProperty(value = "ABC", dataType = "String")
+ private String abc;
+
+ @ApiModelProperty(value = "委托方id", dataType = "Long")
+ private Long customerId;
+
+ @ApiModelProperty(value = "委托方名称", dataType = "String")
+ private String customerName;
+
+ @ApiModelProperty(value = "委托方电话", dataType = "String")
+ private String customerPhone;
+
+ //需求中有,建议去掉,否则多关联一张表
+// @ApiModelProperty(value = "委托方邮编", dataType = "String")
+// private String postalCode;
+
+// @ApiModelProperty(value = "委托方公司地址-国家", dataType = "String")
+// private String addressCountry;
+//
+// @ApiModelProperty(value = "委托方公司地址-省", dataType = "String")
+// private String addressProvince;
+//
+// @ApiModelProperty(value = "委托方公司地址-市", dataType = "String")
+// private String addressCity;
+//
+// @ApiModelProperty(value = "委托方公司地址-区", dataType = "String")
+// private String addressArea;
+
+ @ApiModelProperty(value = "委托方公司地址-详细地址", dataType = "String")
+ private String customerAddress;
+
+// @ApiModelProperty(value = "委托方公司地址-国家名字", dataType = "String")
+// private String addressCountryName;
+//
+// @ApiModelProperty(value = "委托方公司地址-省名字", dataType = "String")
+// private String addressProvinceName;
+//
+// @ApiModelProperty(value = "委托方公司地址-市名字", dataType = "String")
+// private String addressCityName;
+//
+// @ApiModelProperty(value = "委托方公司地址-区名字", dataType = "String")
+// private String addressAreaName;
+
+ @ApiModelProperty(value = "委托书id", dataType = "Long")
+ private String orderId;
+
+ @ApiModelProperty(value = "委托书编号", dataType = "String")
+ private String orderCode;
+
+ @ApiModelProperty(value = "送样人", dataType = "String")
+ private String deliverer;
+
+ @ApiModelProperty(value = "送样人联系方式", dataType = "String")
+ private String delivererTel;
+
+ @ApiModelProperty(value = "预约送达时间", dataType = "String")
+ private String planDeliverTime;
+
+ @ApiModelProperty(value = "要求检完时间", dataType = "String")
+ private String requireOverTime;
+
+ @ApiModelProperty(value = "检定项目", dataType = "String")
+ private String measureContent;
+
+ @ApiModelProperty(value = "检定周期(月)", dataType = "String")
+ private String measurePeriod;
+
+ @ApiModelProperty(value = "检定日期", dataType = "String")
+ private String measureLastDate;
+
+ @ApiModelProperty(value = "有效日期", dataType = "String")
+ private String effectiveDate;
+
+ //需求中已删除该字段展示,不展示整个样品的检定结果,只在证书里展示各证书的检定结果
+// @ApiModelProperty(value = "检定结果", dataType = "String")
+// private String measureResult;
+
+ @ApiModelProperty(value = "备注", dataType = "String")
+ private String remark;
+
+ @ApiModelProperty(value = "说明书", dataType = "String")
+ private String minioFileName;
+
+ @ApiModelProperty(value = "检定方式(字典code)", dataType = "String")
+ @DictCodeField(message = "检定方式不合法", cacheName = MeterDictCode.MEASURE_TYPE)
+ private String measureType;
+
+ @ApiModelProperty(value = "检定方式(字典value)", dataType = "String")
+ private String measureTypeName;
+
+ @ApiModelProperty(value = "标签绑定", dataType = "String")
+ private String labelBind;
+
+ @ApiModelProperty(value = "检定流程", dataType = "List")
+ private List measureProcessList;
+
+}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveSendBackRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveSendBackRequest.java
new file mode 100644
index 0000000..832f707
--- /dev/null
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveSendBackRequest.java
@@ -0,0 +1,38 @@
+package com.casic.missiles.dto.business;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @Description:
+ * @Author: wangpeng
+ * @Date: 2023/2/21 10:29
+ */
+@Data
+@ApiModel
+public class ExecutiveSendBackRequest {
+ @NotNull(message = "实验室检测id不能为空")
+ @ApiModelProperty(value = "实验室检测id", dataType = "Long")
+ private Long id;
+
+ @NotNull(message = "委托书id不能为空")
+ @ApiModelProperty(value = "委托书id", dataType = "Long")
+ private Long orderId;
+
+ @NotNull(message = "样品id不能为空")
+ @ApiModelProperty(value = "样品id", dataType = "Long")
+ private Long sampleId;
+
+ @NotNull(message = "检定环节不能为空")
+ @ApiModelProperty(value = "检定环节,实验室id", dataType = "Long")
+ private Long measureSegmentId;
+
+ @ApiModelProperty(value = "检定人员id", dataType = "Long")
+ private Long measurePersonId;
+
+ @ApiModelProperty(value = "退回原因", dataType = "Long")
+ private String operateReason;
+}
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessLabExecutiveInfoController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessLabExecutiveInfoController.java
index c14c3be..aa330f9 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessLabExecutiveInfoController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessLabExecutiveInfoController.java
@@ -7,6 +7,7 @@
import com.casic.missiles.dto.ReturnDTO;
import com.casic.missiles.dto.ReturnUtil;
import com.casic.missiles.dto.business.*;
+import com.casic.missiles.enums.ExportEnum;
import com.casic.missiles.exception.BusinessException;
import com.casic.missiles.model.exception.enums.CoreExceptionEnum;
import com.casic.missiles.service.business.IBusinessLabExecutiveInfoService;
@@ -25,9 +26,9 @@
*
* 业务管理-实验室检定信息记录表(用于流程中的实验室分配及后续检定过程查询) 前端控制器
* 样品状态(任务收发&任务分发使用,委托书和样品关联表中的状态):
- * 1:待收入;2:待分发;3:检测中;4:检测完成;5:待归还;6:已归还;7:无需检测;8:已超期
+ * 1:待收入;2:待分发;3:检测中;4:检测完成;5:待归还;6:已归还;7:无需检测;8:已超期
* 实验室检定状态(实验室检测使用,实验室检定信息记录表中的状态):
- * 1:待分配(负责人);2:待检测(检定人);3:检测完成;4:退回;5:终止(已收入中点击终止更新实验室中待分配和待检测的的状态为已终止)
+ * 1:待分配(负责人);2:待检测(检定人);3:检测完成;4:退回;5:终止(已收入中点击终止更新实验室中待分配和待检测的的状态为已终止)
*
*
* @author wangpeng
@@ -135,7 +136,7 @@
@ApiOperation("实验室检测-我的检测-检定人扫描收入(待检测->检测中)")
@PostMapping("/myExecutive/receive")
@ResponseBody
- public ReturnDTO sampleReceive(@RequestBody @Valid List requestList, BindingResult bindingResult) {
+ public ReturnDTO sampleReceive(@RequestBody @Valid List requestList, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
}
@@ -148,7 +149,7 @@
@ApiOperation("实验室检测-负责人/检定人扫描检完(检测中->检测完)")
@PostMapping("/myExecutive/complete")
@ResponseBody
- public ReturnDTO sampleExecutiveComplete(@RequestBody @Valid List requestList, BindingResult bindingResult) {
+ public ReturnDTO sampleExecutiveComplete(@RequestBody @Valid List requestList, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
}
@@ -158,25 +159,49 @@
/**
* 实验室检测-部门检测/我的检测 编辑(只能修改应出具证书)
*/
+ @ApiOperation("实验室检测-部门检测/我的检测 编辑(只能修改应出具证书)")
+ @PostMapping("/executive/update")
+ @ResponseBody
+ public ReturnDTO updateExecutive(@RequestBody @Valid UpdateExecutiveRequest request, BindingResult bindingResult) {
+ if (bindingResult.hasErrors()) {
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ return labExecutiveInfoService.updateExecutive(request);
+ }
/**
* 实验室检测-部门检测/我的检测 详情
*/
+ @ApiOperation("实验室检测-部门检测/我的检测 详情")
+ @PostMapping("/executive/detail")
+ @ResponseBody
+ public ReturnDTO executiveDetail(@RequestBody @Valid ExecutiveDetailRequest request, BindingResult bindingResult) throws Exception {
+ if (bindingResult.hasErrors()) {
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ return ReturnUtil.success(labExecutiveInfoService.executiveDetail(request));
+ }
/**
* 实验室检测-部门检测/我的检测 退回(待检测/检测中->退回)
- * 退回后会将下一个要执行的实验室检测状态更新为待分配,将后面的实验室顺序变更为连续(都进行减1,)
- * 可能出现最后一个检测的实验室退回,这样的情况是否需要把样品状态改为检测完,还是等分发员再增加实验室或增加个分发员点击完成的按钮
+ * 退回后会将下一个要执行的实验室检测状态更新为待分配,将后面的实验室顺序变更为连续(都进行减1)
+ * 最后一个检测的实验室退回,等分发员再增加实验室或设备收发中的已收入直接手动点击完成
*/
-
-
-
+ @ApiOperation("实验室检测-部门检测/我的检测 退回(待检测/检测中->退回)")
+ @PostMapping("/executive/sendBack")
+ @ResponseBody
+ public ReturnDTO executiveSendBack(@RequestBody @Valid ExecutiveSendBackRequest request, BindingResult bindingResult) {
+ if (bindingResult.hasErrors()) {
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ return labExecutiveInfoService.sampleExecutiveSendBack(request);
+ }
/**
* 分发员编辑实验室检测列表
*/
@ApiOperation("分发员编辑实验室检测列表")
- @PostMapping("/handOut/updateExecutiveList")
+ @PostMapping("/handOut/updateList")
@ResponseBody
public ReturnDTO updateExecutiveList(@RequestBody @Valid UpdateExecutiveListRequest request, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
@@ -185,9 +210,23 @@
return labExecutiveInfoService.updateExecutiveList(request);
}
-
/**
- * 各列表导出
+ * 各状态列表导出
*/
+ @ApiOperation("任务分发-各状态列表导出")
+ @PostMapping("/handOut/listExport")
+ @ResponseBody
+ public void export(@RequestBody @Valid SampleHandOutListRequest request, BindingResult bindingResult) throws Exception {
+ if (bindingResult.hasErrors()) {
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ Page page = PageFactory.defaultPage();
+ page.setCurrent(1);
+ page.setSearchCount(false);
+ page.setSize(Integer.MAX_VALUE);
+ Page responsePage = labExecutiveInfoService.handOutListPage(page, request);
+ List list = responsePage.getRecords();
+ super.exportExcel(SampleHandOutListResponse.class, list, ExportEnum.HANDOUT_EXPORT.getSheetName());
+ }
}
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java
index 9637b3a..7f8c1e7 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java
@@ -79,7 +79,7 @@
@ApiOperation("文件导出")
@PostMapping("/listExport")
@ResponseBody
- public void export(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) throws IOException {
+ public void export(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) throws IOException {
if (bindingResult.hasErrors()) {
throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
}
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 9e3d9fd..0c1cf2d 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
@@ -53,7 +53,9 @@
HANDLE_FAILED(500, "操作失败"),
QRCODE_FAILED(2409, "二维码生成失败"),
RECEIVE_SAMPLE_NOT_EXIST(2410, "待检测中不存在扫描收入的样品"),
- COMPLETE_SAMPLE_NOT_EXIST(2411, "检测中不存在扫描收入的样品");
+ COMPLETE_SAMPLE_NOT_EXIST(2411, "检测中不存在扫描收入的样品"),
+ CANNOT_CHANGE_MEASURE_INFO(2412, "无法更改非当前登录用户的检测信息"),
+ NON_EXIST_ORDER_OR_SAMPLE(2413, "不存在该委托单或该委托单下的样品");
private Integer code;
private String message;
diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java
index 06a3fd8..a43d9c9 100644
--- a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java
+++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java
@@ -36,7 +36,8 @@
DISPATCH_DATA("dispatchData", "dispatchData", "设备收发"),
ENVIRONMENT_DATA("environmentData", "environmentData", "环境记录单"),
ORIGIN_DATA("originData", "originData", "原始记录"),
- ADVICE_EXPORT("adviceData", "adviceData", "客户反馈");
+ ADVICE_EXPORT("adviceData", "adviceData", "客户反馈"),
+ HANDOUT_EXPORT("handoutData", "handoutData", "任务分发列表");
ExportEnum(String fileName, String sheetName, String description) {
this.fileName = fileName;
diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveInfoMapper.java
index e4cd952..2ce14af 100644
--- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveInfoMapper.java
+++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveInfoMapper.java
@@ -22,13 +22,17 @@
Integer getMeasureNumberStatus(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId);
- List selectExecutiveList(@Param("request") SampleHandOutDetailRequest request);
+ List selectExecutiveList(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId);
Page selectListByDeptIdAndStatus(Page page, @Param("request") SampleLabExecutiveListRequest request, @Param("deptId") Long deptId, @Param("status") String status, @Param("statusList") List statusList);
Page selectListByUserIdAndStatus(Page page, @Param("request") SampleLabExecutiveListRequest request, @Param("userId") Long userId, @Param("status") String status);
- int updateForSampleOperate(@Param("list") List list, @Param("userId") Long userId, @Param("status") String status);
+ int updateForSampleOperate(@Param("list") List list, @Param("userId") Long userId, @Param("status") String status);
- List selectListForSampleOperate(@Param("list") List requestList, @Param("userId") Long userId, @Param("status") String status);
+ List selectListForSampleOperate(@Param("list") List requestList, @Param("userId") Long userId, @Param("status") String status);
+
+ int updateForSendBack(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId);
+
+ Long selectMinSeq(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId);
}
diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveOperateLogMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveOperateLogMapper.java
index ed6f4a1..2bcc4e1 100644
--- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveOperateLogMapper.java
+++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveOperateLogMapper.java
@@ -2,7 +2,6 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.casic.missiles.dto.business.MeasureSendBackDTO;
-import com.casic.missiles.dto.business.SampleHandOutDetailRequest;
import com.casic.missiles.model.business.BusinessLabExecutiveOperateLog;
import org.apache.ibatis.annotations.Param;
@@ -19,5 +18,5 @@
*/
public interface BusinessLabExecutiveOperateLogMapper extends BaseMapper {
- List selectExecutiveOperateLogList(@Param("request") SampleHandOutDetailRequest request);
+ List selectExecutiveOperateLogList(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId);
}
diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java
index 235c95f..bddf56f 100644
--- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java
+++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java
@@ -5,7 +5,6 @@
import com.casic.missiles.dto.business.SampleHandOutDetailResponse;
import com.casic.missiles.dto.business.SampleHandOutListRequest;
import com.casic.missiles.dto.business.SampleHandOutListResponse;
-import com.casic.missiles.dto.business.SampleHandOutDetailRequest;
import com.casic.missiles.dto.business.dispatch.DeviceDispatchDTO;
import com.casic.missiles.dto.business.dispatch.DeviceDispatchVO;
import com.casic.missiles.dto.customer.sample.CustomerSampleListVO;
@@ -28,7 +27,7 @@
Page getSampleListByStatus(@Param("page") Page page, @Param("request") DeviceDispatchDTO request);
- SampleHandOutDetailResponse selectSampleDetail(@Param("request") SampleHandOutDetailRequest request);
+ SampleHandOutDetailResponse selectSampleDetail(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId);
int updateByOrderIdAndSampleId(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId, @Param("status") String status);
diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml
index 92402b7..87613eb 100644
--- a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml
+++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml
@@ -31,8 +31,8 @@
- csi.id AS sample_id, csi.sample_no, csi.sample_name, csi.sample_model, csi.manufacturing_no, bo.order_code AS orderNo, bo.id AS orderId,
- bo.customer_id, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, blei.require_certifications, blei.measure_status
+ blei.id AS id, csi.id AS sample_id, csi.sample_no, csi.sample_name, csi.sample_model, csi.manufacturing_no, bo.order_code AS orderNo, bo.id AS orderId,
+ bo.customer_id, bo.customer_no, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, blei.require_certifications, blei.measure_status
@@ -63,8 +63,8 @@
FROM business_lab_executive_info blei
JOIN sys_dept sd ON blei.measure_dept_id = sd.ID
LEFT JOIN sys_user su ON blei.measure_person_id = su.id
- WHERE blei.order_id = #{request.orderId}
- AND blei.sample_id = #{request.sampleId}
+ WHERE blei.order_id = #{orderId}
+ AND blei.sample_id = #{sampleId}
ORDER BY blei.measure_sequence ASC
@@ -161,7 +161,7 @@
-
+
SELECT order_id, sample_id
FROM business_lab_executive_info
WHERE measure_person_id = #{userId}
@@ -171,4 +171,27 @@
(#{item.orderId}, #{item.sampleId})
+
+
+ UPDATE business_lab_executive_info
+ SET measure_sequence = measure_sequence - 1
+ WHERE (measure_status IS NULL OR measure_status = "")
+ AND order_id = #{orderId}
+ AND sample_id = #{sampleId}
+
+
+
+ SELECT id FROM business_lab_executive_info
+ WHERE measure_sequence = (
+ SELECT MIN(measure_sequence)
+ FROM business_lab_executive_info
+ WHERE (measure_status IS NULL OR measure_status = "")
+ AND order_id = #{orderId}
+ AND sample_id = #{sampleId}
+ )
+ AND (measure_status IS NULL OR measure_status = "")
+ AND order_id = #{orderId}
+ AND sample_id = #{sampleId}
+
+
diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveOperateLogMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveOperateLogMapper.xml
index 9f6c97f..0a0b861 100644
--- a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveOperateLogMapper.xml
+++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveOperateLogMapper.xml
@@ -25,8 +25,8 @@
FROM business_lab_executive_operate_log bleoi
JOIN sys_dept sd ON bleoi.measure_dept_id = sd.ID
WHERE measure_status = 4
- AND bleoi.order_id = #{request.orderId}
- AND bleoi.sample_id = #{request.sampleId}
+ AND bleoi.order_id = #{orderId}
+ AND bleoi.sample_id = #{sampleId}
ORDER BY bleoi.create_time ASC
diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml
index c9b53d4..a2b0806 100644
--- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml
+++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml
@@ -18,7 +18,7 @@
csi.id AS sample_id, csi.sample_no, csi.sample_name, csi.sample_model, csi.manufacturing_no, bo.order_code AS orderNo, bo.id AS orderId,
- bo.customer_id, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, bosr.sample_status
+ bo.customer_id, bo.customer_no, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, bosr.sample_status
@@ -136,6 +136,12 @@
AND csi.sample_belong = #{request.sampleBelong}
+
+ AND csi.id IN
+
+ #{item}
+
+
ORDER BY bosr.update_time DESC
@@ -146,8 +152,8 @@
JOIN customer_sample_info csi ON bosr.sample_id = csi.id
JOIN business_order bo ON bosr.order_id = bo.id
WHERE bo.is_del = 0 AND csi.is_del = 0
- AND bosr.order_id = #{request.orderId}
- AND bosr.sample_id = #{request.sampleId}
+ AND bosr.order_id = #{orderId}
+ AND bosr.sample_id = #{sampleId}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveDetailRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveDetailRequest.java
new file mode 100644
index 0000000..8817b91
--- /dev/null
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveDetailRequest.java
@@ -0,0 +1,24 @@
+package com.casic.missiles.dto.business;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @Description:
+ * @Author: wangpeng
+ * @Date: 2023/2/21 10:00
+ */
+@Data
+@ApiModel
+public class ExecutiveDetailRequest {
+ @NotNull(message = "委托书id不能为空")
+ @ApiModelProperty(value = "委托书id", dataType = "Long")
+ private Long orderId;
+
+ @NotNull(message = "样品id不能为空")
+ @ApiModelProperty(value = "样品id", dataType = "Long")
+ private Long sampleId;
+}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveDetailResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveDetailResponse.java
new file mode 100644
index 0000000..35452b9
--- /dev/null
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveDetailResponse.java
@@ -0,0 +1,139 @@
+package com.casic.missiles.dto.business;
+
+import com.casic.missiles.annotation.DictCodeField;
+import com.casic.missiles.constants.MeterDictCode;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @Description: 任务分发-详情
+ * @Author: wangpeng
+ * @Date: 2023/2/9 11:41
+ */
+@Data
+@ApiModel
+public class ExecutiveDetailResponse {
+ @ApiModelProperty(value = "样品id", dataType = "Long")
+ private Long sampleId;
+
+ @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 manufacturer;
+
+ @ApiModelProperty(value = "厂家国别", dataType = "String")
+ private String manufacturerCountry;
+
+ @ApiModelProperty(value = "出厂年月", dataType = "String")
+ private String manufacturingDate;
+
+ @ApiModelProperty(value = "ABC", dataType = "String")
+ private String abc;
+
+ @ApiModelProperty(value = "委托方id", dataType = "Long")
+ private Long customerId;
+
+ @ApiModelProperty(value = "委托方名称", dataType = "String")
+ private String customerName;
+
+ @ApiModelProperty(value = "委托方电话", dataType = "String")
+ private String customerPhone;
+
+ //需求中有,建议去掉,否则多关联一张表
+// @ApiModelProperty(value = "委托方邮编", dataType = "String")
+// private String postalCode;
+
+// @ApiModelProperty(value = "委托方公司地址-国家", dataType = "String")
+// private String addressCountry;
+//
+// @ApiModelProperty(value = "委托方公司地址-省", dataType = "String")
+// private String addressProvince;
+//
+// @ApiModelProperty(value = "委托方公司地址-市", dataType = "String")
+// private String addressCity;
+//
+// @ApiModelProperty(value = "委托方公司地址-区", dataType = "String")
+// private String addressArea;
+
+ @ApiModelProperty(value = "委托方公司地址-详细地址", dataType = "String")
+ private String customerAddress;
+
+// @ApiModelProperty(value = "委托方公司地址-国家名字", dataType = "String")
+// private String addressCountryName;
+//
+// @ApiModelProperty(value = "委托方公司地址-省名字", dataType = "String")
+// private String addressProvinceName;
+//
+// @ApiModelProperty(value = "委托方公司地址-市名字", dataType = "String")
+// private String addressCityName;
+//
+// @ApiModelProperty(value = "委托方公司地址-区名字", dataType = "String")
+// private String addressAreaName;
+
+ @ApiModelProperty(value = "委托书id", dataType = "Long")
+ private String orderId;
+
+ @ApiModelProperty(value = "委托书编号", dataType = "String")
+ private String orderCode;
+
+ @ApiModelProperty(value = "送样人", dataType = "String")
+ private String deliverer;
+
+ @ApiModelProperty(value = "送样人联系方式", dataType = "String")
+ private String delivererTel;
+
+ @ApiModelProperty(value = "预约送达时间", dataType = "String")
+ private String planDeliverTime;
+
+ @ApiModelProperty(value = "要求检完时间", dataType = "String")
+ private String requireOverTime;
+
+ @ApiModelProperty(value = "检定项目", dataType = "String")
+ private String measureContent;
+
+ @ApiModelProperty(value = "检定周期(月)", dataType = "String")
+ private String measurePeriod;
+
+ @ApiModelProperty(value = "检定日期", dataType = "String")
+ private String measureLastDate;
+
+ @ApiModelProperty(value = "有效日期", dataType = "String")
+ private String effectiveDate;
+
+ //需求中已删除该字段展示,不展示整个样品的检定结果,只在证书里展示各证书的检定结果
+// @ApiModelProperty(value = "检定结果", dataType = "String")
+// private String measureResult;
+
+ @ApiModelProperty(value = "备注", dataType = "String")
+ private String remark;
+
+ @ApiModelProperty(value = "说明书", dataType = "String")
+ private String minioFileName;
+
+ @ApiModelProperty(value = "检定方式(字典code)", dataType = "String")
+ @DictCodeField(message = "检定方式不合法", cacheName = MeterDictCode.MEASURE_TYPE)
+ private String measureType;
+
+ @ApiModelProperty(value = "检定方式(字典value)", dataType = "String")
+ private String measureTypeName;
+
+ @ApiModelProperty(value = "标签绑定", dataType = "String")
+ private String labelBind;
+
+ @ApiModelProperty(value = "检定流程", dataType = "List")
+ private List measureProcessList;
+
+}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveSendBackRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveSendBackRequest.java
new file mode 100644
index 0000000..832f707
--- /dev/null
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveSendBackRequest.java
@@ -0,0 +1,38 @@
+package com.casic.missiles.dto.business;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @Description:
+ * @Author: wangpeng
+ * @Date: 2023/2/21 10:29
+ */
+@Data
+@ApiModel
+public class ExecutiveSendBackRequest {
+ @NotNull(message = "实验室检测id不能为空")
+ @ApiModelProperty(value = "实验室检测id", dataType = "Long")
+ private Long id;
+
+ @NotNull(message = "委托书id不能为空")
+ @ApiModelProperty(value = "委托书id", dataType = "Long")
+ private Long orderId;
+
+ @NotNull(message = "样品id不能为空")
+ @ApiModelProperty(value = "样品id", dataType = "Long")
+ private Long sampleId;
+
+ @NotNull(message = "检定环节不能为空")
+ @ApiModelProperty(value = "检定环节,实验室id", dataType = "Long")
+ private Long measureSegmentId;
+
+ @ApiModelProperty(value = "检定人员id", dataType = "Long")
+ private Long measurePersonId;
+
+ @ApiModelProperty(value = "退回原因", dataType = "Long")
+ private String operateReason;
+}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/MySampleOperateRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/MySampleOperateRequest.java
deleted file mode 100644
index 15f2fe9..0000000
--- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/MySampleOperateRequest.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package com.casic.missiles.dto.business;
-
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
-import javax.validation.constraints.NotNull;
-
-/**
- * @Description: 实验室检测-我的检测-检定人扫描收入请求实体
- * @Author: wangpeng
- * @Date: 2023/2/15 15:31
- */
-@Data
-@ApiModel
-public class MySampleOperateRequest {
- @NotNull(message = "委托书id不能为空")
- @ApiModelProperty(value = "委托书id", dataType = "Long")
- private Long orderId;
-
- @NotNull(message = "样品id不能为空")
- @ApiModelProperty(value = "样品id", dataType = "Long")
- private Long sampleId;
-}
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessLabExecutiveInfoController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessLabExecutiveInfoController.java
index c14c3be..aa330f9 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessLabExecutiveInfoController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessLabExecutiveInfoController.java
@@ -7,6 +7,7 @@
import com.casic.missiles.dto.ReturnDTO;
import com.casic.missiles.dto.ReturnUtil;
import com.casic.missiles.dto.business.*;
+import com.casic.missiles.enums.ExportEnum;
import com.casic.missiles.exception.BusinessException;
import com.casic.missiles.model.exception.enums.CoreExceptionEnum;
import com.casic.missiles.service.business.IBusinessLabExecutiveInfoService;
@@ -25,9 +26,9 @@
*
* 业务管理-实验室检定信息记录表(用于流程中的实验室分配及后续检定过程查询) 前端控制器
* 样品状态(任务收发&任务分发使用,委托书和样品关联表中的状态):
- * 1:待收入;2:待分发;3:检测中;4:检测完成;5:待归还;6:已归还;7:无需检测;8:已超期
+ * 1:待收入;2:待分发;3:检测中;4:检测完成;5:待归还;6:已归还;7:无需检测;8:已超期
* 实验室检定状态(实验室检测使用,实验室检定信息记录表中的状态):
- * 1:待分配(负责人);2:待检测(检定人);3:检测完成;4:退回;5:终止(已收入中点击终止更新实验室中待分配和待检测的的状态为已终止)
+ * 1:待分配(负责人);2:待检测(检定人);3:检测完成;4:退回;5:终止(已收入中点击终止更新实验室中待分配和待检测的的状态为已终止)
*
*
* @author wangpeng
@@ -135,7 +136,7 @@
@ApiOperation("实验室检测-我的检测-检定人扫描收入(待检测->检测中)")
@PostMapping("/myExecutive/receive")
@ResponseBody
- public ReturnDTO sampleReceive(@RequestBody @Valid List requestList, BindingResult bindingResult) {
+ public ReturnDTO sampleReceive(@RequestBody @Valid List requestList, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
}
@@ -148,7 +149,7 @@
@ApiOperation("实验室检测-负责人/检定人扫描检完(检测中->检测完)")
@PostMapping("/myExecutive/complete")
@ResponseBody
- public ReturnDTO sampleExecutiveComplete(@RequestBody @Valid List requestList, BindingResult bindingResult) {
+ public ReturnDTO sampleExecutiveComplete(@RequestBody @Valid List requestList, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
}
@@ -158,25 +159,49 @@
/**
* 实验室检测-部门检测/我的检测 编辑(只能修改应出具证书)
*/
+ @ApiOperation("实验室检测-部门检测/我的检测 编辑(只能修改应出具证书)")
+ @PostMapping("/executive/update")
+ @ResponseBody
+ public ReturnDTO updateExecutive(@RequestBody @Valid UpdateExecutiveRequest request, BindingResult bindingResult) {
+ if (bindingResult.hasErrors()) {
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ return labExecutiveInfoService.updateExecutive(request);
+ }
/**
* 实验室检测-部门检测/我的检测 详情
*/
+ @ApiOperation("实验室检测-部门检测/我的检测 详情")
+ @PostMapping("/executive/detail")
+ @ResponseBody
+ public ReturnDTO executiveDetail(@RequestBody @Valid ExecutiveDetailRequest request, BindingResult bindingResult) throws Exception {
+ if (bindingResult.hasErrors()) {
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ return ReturnUtil.success(labExecutiveInfoService.executiveDetail(request));
+ }
/**
* 实验室检测-部门检测/我的检测 退回(待检测/检测中->退回)
- * 退回后会将下一个要执行的实验室检测状态更新为待分配,将后面的实验室顺序变更为连续(都进行减1,)
- * 可能出现最后一个检测的实验室退回,这样的情况是否需要把样品状态改为检测完,还是等分发员再增加实验室或增加个分发员点击完成的按钮
+ * 退回后会将下一个要执行的实验室检测状态更新为待分配,将后面的实验室顺序变更为连续(都进行减1)
+ * 最后一个检测的实验室退回,等分发员再增加实验室或设备收发中的已收入直接手动点击完成
*/
-
-
-
+ @ApiOperation("实验室检测-部门检测/我的检测 退回(待检测/检测中->退回)")
+ @PostMapping("/executive/sendBack")
+ @ResponseBody
+ public ReturnDTO executiveSendBack(@RequestBody @Valid ExecutiveSendBackRequest request, BindingResult bindingResult) {
+ if (bindingResult.hasErrors()) {
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ return labExecutiveInfoService.sampleExecutiveSendBack(request);
+ }
/**
* 分发员编辑实验室检测列表
*/
@ApiOperation("分发员编辑实验室检测列表")
- @PostMapping("/handOut/updateExecutiveList")
+ @PostMapping("/handOut/updateList")
@ResponseBody
public ReturnDTO updateExecutiveList(@RequestBody @Valid UpdateExecutiveListRequest request, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
@@ -185,9 +210,23 @@
return labExecutiveInfoService.updateExecutiveList(request);
}
-
/**
- * 各列表导出
+ * 各状态列表导出
*/
+ @ApiOperation("任务分发-各状态列表导出")
+ @PostMapping("/handOut/listExport")
+ @ResponseBody
+ public void export(@RequestBody @Valid SampleHandOutListRequest request, BindingResult bindingResult) throws Exception {
+ if (bindingResult.hasErrors()) {
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ Page page = PageFactory.defaultPage();
+ page.setCurrent(1);
+ page.setSearchCount(false);
+ page.setSize(Integer.MAX_VALUE);
+ Page responsePage = labExecutiveInfoService.handOutListPage(page, request);
+ List list = responsePage.getRecords();
+ super.exportExcel(SampleHandOutListResponse.class, list, ExportEnum.HANDOUT_EXPORT.getSheetName());
+ }
}
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java
index 9637b3a..7f8c1e7 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java
@@ -79,7 +79,7 @@
@ApiOperation("文件导出")
@PostMapping("/listExport")
@ResponseBody
- public void export(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) throws IOException {
+ public void export(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) throws IOException {
if (bindingResult.hasErrors()) {
throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
}
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 9e3d9fd..0c1cf2d 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
@@ -53,7 +53,9 @@
HANDLE_FAILED(500, "操作失败"),
QRCODE_FAILED(2409, "二维码生成失败"),
RECEIVE_SAMPLE_NOT_EXIST(2410, "待检测中不存在扫描收入的样品"),
- COMPLETE_SAMPLE_NOT_EXIST(2411, "检测中不存在扫描收入的样品");
+ COMPLETE_SAMPLE_NOT_EXIST(2411, "检测中不存在扫描收入的样品"),
+ CANNOT_CHANGE_MEASURE_INFO(2412, "无法更改非当前登录用户的检测信息"),
+ NON_EXIST_ORDER_OR_SAMPLE(2413, "不存在该委托单或该委托单下的样品");
private Integer code;
private String message;
diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java
index 06a3fd8..a43d9c9 100644
--- a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java
+++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java
@@ -36,7 +36,8 @@
DISPATCH_DATA("dispatchData", "dispatchData", "设备收发"),
ENVIRONMENT_DATA("environmentData", "environmentData", "环境记录单"),
ORIGIN_DATA("originData", "originData", "原始记录"),
- ADVICE_EXPORT("adviceData", "adviceData", "客户反馈");
+ ADVICE_EXPORT("adviceData", "adviceData", "客户反馈"),
+ HANDOUT_EXPORT("handoutData", "handoutData", "任务分发列表");
ExportEnum(String fileName, String sheetName, String description) {
this.fileName = fileName;
diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveInfoMapper.java
index e4cd952..2ce14af 100644
--- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveInfoMapper.java
+++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveInfoMapper.java
@@ -22,13 +22,17 @@
Integer getMeasureNumberStatus(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId);
- List selectExecutiveList(@Param("request") SampleHandOutDetailRequest request);
+ List selectExecutiveList(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId);
Page selectListByDeptIdAndStatus(Page page, @Param("request") SampleLabExecutiveListRequest request, @Param("deptId") Long deptId, @Param("status") String status, @Param("statusList") List statusList);
Page selectListByUserIdAndStatus(Page page, @Param("request") SampleLabExecutiveListRequest request, @Param("userId") Long userId, @Param("status") String status);
- int updateForSampleOperate(@Param("list") List list, @Param("userId") Long userId, @Param("status") String status);
+ int updateForSampleOperate(@Param("list") List list, @Param("userId") Long userId, @Param("status") String status);
- List selectListForSampleOperate(@Param("list") List requestList, @Param("userId") Long userId, @Param("status") String status);
+ List selectListForSampleOperate(@Param("list") List requestList, @Param("userId") Long userId, @Param("status") String status);
+
+ int updateForSendBack(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId);
+
+ Long selectMinSeq(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId);
}
diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveOperateLogMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveOperateLogMapper.java
index ed6f4a1..2bcc4e1 100644
--- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveOperateLogMapper.java
+++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveOperateLogMapper.java
@@ -2,7 +2,6 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.casic.missiles.dto.business.MeasureSendBackDTO;
-import com.casic.missiles.dto.business.SampleHandOutDetailRequest;
import com.casic.missiles.model.business.BusinessLabExecutiveOperateLog;
import org.apache.ibatis.annotations.Param;
@@ -19,5 +18,5 @@
*/
public interface BusinessLabExecutiveOperateLogMapper extends BaseMapper {
- List selectExecutiveOperateLogList(@Param("request") SampleHandOutDetailRequest request);
+ List selectExecutiveOperateLogList(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId);
}
diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java
index 235c95f..bddf56f 100644
--- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java
+++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java
@@ -5,7 +5,6 @@
import com.casic.missiles.dto.business.SampleHandOutDetailResponse;
import com.casic.missiles.dto.business.SampleHandOutListRequest;
import com.casic.missiles.dto.business.SampleHandOutListResponse;
-import com.casic.missiles.dto.business.SampleHandOutDetailRequest;
import com.casic.missiles.dto.business.dispatch.DeviceDispatchDTO;
import com.casic.missiles.dto.business.dispatch.DeviceDispatchVO;
import com.casic.missiles.dto.customer.sample.CustomerSampleListVO;
@@ -28,7 +27,7 @@
Page getSampleListByStatus(@Param("page") Page page, @Param("request") DeviceDispatchDTO request);
- SampleHandOutDetailResponse selectSampleDetail(@Param("request") SampleHandOutDetailRequest request);
+ SampleHandOutDetailResponse selectSampleDetail(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId);
int updateByOrderIdAndSampleId(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId, @Param("status") String status);
diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml
index 92402b7..87613eb 100644
--- a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml
+++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml
@@ -31,8 +31,8 @@
- csi.id AS sample_id, csi.sample_no, csi.sample_name, csi.sample_model, csi.manufacturing_no, bo.order_code AS orderNo, bo.id AS orderId,
- bo.customer_id, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, blei.require_certifications, blei.measure_status
+ blei.id AS id, csi.id AS sample_id, csi.sample_no, csi.sample_name, csi.sample_model, csi.manufacturing_no, bo.order_code AS orderNo, bo.id AS orderId,
+ bo.customer_id, bo.customer_no, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, blei.require_certifications, blei.measure_status
@@ -63,8 +63,8 @@
FROM business_lab_executive_info blei
JOIN sys_dept sd ON blei.measure_dept_id = sd.ID
LEFT JOIN sys_user su ON blei.measure_person_id = su.id
- WHERE blei.order_id = #{request.orderId}
- AND blei.sample_id = #{request.sampleId}
+ WHERE blei.order_id = #{orderId}
+ AND blei.sample_id = #{sampleId}
ORDER BY blei.measure_sequence ASC
@@ -161,7 +161,7 @@
-
+
SELECT order_id, sample_id
FROM business_lab_executive_info
WHERE measure_person_id = #{userId}
@@ -171,4 +171,27 @@
(#{item.orderId}, #{item.sampleId})
+
+
+ UPDATE business_lab_executive_info
+ SET measure_sequence = measure_sequence - 1
+ WHERE (measure_status IS NULL OR measure_status = "")
+ AND order_id = #{orderId}
+ AND sample_id = #{sampleId}
+
+
+
+ SELECT id FROM business_lab_executive_info
+ WHERE measure_sequence = (
+ SELECT MIN(measure_sequence)
+ FROM business_lab_executive_info
+ WHERE (measure_status IS NULL OR measure_status = "")
+ AND order_id = #{orderId}
+ AND sample_id = #{sampleId}
+ )
+ AND (measure_status IS NULL OR measure_status = "")
+ AND order_id = #{orderId}
+ AND sample_id = #{sampleId}
+
+
diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveOperateLogMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveOperateLogMapper.xml
index 9f6c97f..0a0b861 100644
--- a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveOperateLogMapper.xml
+++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveOperateLogMapper.xml
@@ -25,8 +25,8 @@
FROM business_lab_executive_operate_log bleoi
JOIN sys_dept sd ON bleoi.measure_dept_id = sd.ID
WHERE measure_status = 4
- AND bleoi.order_id = #{request.orderId}
- AND bleoi.sample_id = #{request.sampleId}
+ AND bleoi.order_id = #{orderId}
+ AND bleoi.sample_id = #{sampleId}
ORDER BY bleoi.create_time ASC
diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml
index c9b53d4..a2b0806 100644
--- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml
+++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml
@@ -18,7 +18,7 @@
csi.id AS sample_id, csi.sample_no, csi.sample_name, csi.sample_model, csi.manufacturing_no, bo.order_code AS orderNo, bo.id AS orderId,
- bo.customer_id, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, bosr.sample_status
+ bo.customer_id, bo.customer_no, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, bosr.sample_status
@@ -136,6 +136,12 @@
AND csi.sample_belong = #{request.sampleBelong}
+
+ AND csi.id IN
+
+ #{item}
+
+
ORDER BY bosr.update_time DESC
@@ -146,8 +152,8 @@
JOIN customer_sample_info csi ON bosr.sample_id = csi.id
JOIN business_order bo ON bosr.order_id = bo.id
WHERE bo.is_del = 0 AND csi.is_del = 0
- AND bosr.order_id = #{request.orderId}
- AND bosr.sample_id = #{request.sampleId}
+ AND bosr.order_id = #{orderId}
+ AND bosr.sample_id = #{sampleId}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveDetailRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveDetailRequest.java
new file mode 100644
index 0000000..8817b91
--- /dev/null
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveDetailRequest.java
@@ -0,0 +1,24 @@
+package com.casic.missiles.dto.business;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @Description:
+ * @Author: wangpeng
+ * @Date: 2023/2/21 10:00
+ */
+@Data
+@ApiModel
+public class ExecutiveDetailRequest {
+ @NotNull(message = "委托书id不能为空")
+ @ApiModelProperty(value = "委托书id", dataType = "Long")
+ private Long orderId;
+
+ @NotNull(message = "样品id不能为空")
+ @ApiModelProperty(value = "样品id", dataType = "Long")
+ private Long sampleId;
+}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveDetailResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveDetailResponse.java
new file mode 100644
index 0000000..35452b9
--- /dev/null
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveDetailResponse.java
@@ -0,0 +1,139 @@
+package com.casic.missiles.dto.business;
+
+import com.casic.missiles.annotation.DictCodeField;
+import com.casic.missiles.constants.MeterDictCode;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @Description: 任务分发-详情
+ * @Author: wangpeng
+ * @Date: 2023/2/9 11:41
+ */
+@Data
+@ApiModel
+public class ExecutiveDetailResponse {
+ @ApiModelProperty(value = "样品id", dataType = "Long")
+ private Long sampleId;
+
+ @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 manufacturer;
+
+ @ApiModelProperty(value = "厂家国别", dataType = "String")
+ private String manufacturerCountry;
+
+ @ApiModelProperty(value = "出厂年月", dataType = "String")
+ private String manufacturingDate;
+
+ @ApiModelProperty(value = "ABC", dataType = "String")
+ private String abc;
+
+ @ApiModelProperty(value = "委托方id", dataType = "Long")
+ private Long customerId;
+
+ @ApiModelProperty(value = "委托方名称", dataType = "String")
+ private String customerName;
+
+ @ApiModelProperty(value = "委托方电话", dataType = "String")
+ private String customerPhone;
+
+ //需求中有,建议去掉,否则多关联一张表
+// @ApiModelProperty(value = "委托方邮编", dataType = "String")
+// private String postalCode;
+
+// @ApiModelProperty(value = "委托方公司地址-国家", dataType = "String")
+// private String addressCountry;
+//
+// @ApiModelProperty(value = "委托方公司地址-省", dataType = "String")
+// private String addressProvince;
+//
+// @ApiModelProperty(value = "委托方公司地址-市", dataType = "String")
+// private String addressCity;
+//
+// @ApiModelProperty(value = "委托方公司地址-区", dataType = "String")
+// private String addressArea;
+
+ @ApiModelProperty(value = "委托方公司地址-详细地址", dataType = "String")
+ private String customerAddress;
+
+// @ApiModelProperty(value = "委托方公司地址-国家名字", dataType = "String")
+// private String addressCountryName;
+//
+// @ApiModelProperty(value = "委托方公司地址-省名字", dataType = "String")
+// private String addressProvinceName;
+//
+// @ApiModelProperty(value = "委托方公司地址-市名字", dataType = "String")
+// private String addressCityName;
+//
+// @ApiModelProperty(value = "委托方公司地址-区名字", dataType = "String")
+// private String addressAreaName;
+
+ @ApiModelProperty(value = "委托书id", dataType = "Long")
+ private String orderId;
+
+ @ApiModelProperty(value = "委托书编号", dataType = "String")
+ private String orderCode;
+
+ @ApiModelProperty(value = "送样人", dataType = "String")
+ private String deliverer;
+
+ @ApiModelProperty(value = "送样人联系方式", dataType = "String")
+ private String delivererTel;
+
+ @ApiModelProperty(value = "预约送达时间", dataType = "String")
+ private String planDeliverTime;
+
+ @ApiModelProperty(value = "要求检完时间", dataType = "String")
+ private String requireOverTime;
+
+ @ApiModelProperty(value = "检定项目", dataType = "String")
+ private String measureContent;
+
+ @ApiModelProperty(value = "检定周期(月)", dataType = "String")
+ private String measurePeriod;
+
+ @ApiModelProperty(value = "检定日期", dataType = "String")
+ private String measureLastDate;
+
+ @ApiModelProperty(value = "有效日期", dataType = "String")
+ private String effectiveDate;
+
+ //需求中已删除该字段展示,不展示整个样品的检定结果,只在证书里展示各证书的检定结果
+// @ApiModelProperty(value = "检定结果", dataType = "String")
+// private String measureResult;
+
+ @ApiModelProperty(value = "备注", dataType = "String")
+ private String remark;
+
+ @ApiModelProperty(value = "说明书", dataType = "String")
+ private String minioFileName;
+
+ @ApiModelProperty(value = "检定方式(字典code)", dataType = "String")
+ @DictCodeField(message = "检定方式不合法", cacheName = MeterDictCode.MEASURE_TYPE)
+ private String measureType;
+
+ @ApiModelProperty(value = "检定方式(字典value)", dataType = "String")
+ private String measureTypeName;
+
+ @ApiModelProperty(value = "标签绑定", dataType = "String")
+ private String labelBind;
+
+ @ApiModelProperty(value = "检定流程", dataType = "List")
+ private List measureProcessList;
+
+}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveSendBackRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveSendBackRequest.java
new file mode 100644
index 0000000..832f707
--- /dev/null
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveSendBackRequest.java
@@ -0,0 +1,38 @@
+package com.casic.missiles.dto.business;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @Description:
+ * @Author: wangpeng
+ * @Date: 2023/2/21 10:29
+ */
+@Data
+@ApiModel
+public class ExecutiveSendBackRequest {
+ @NotNull(message = "实验室检测id不能为空")
+ @ApiModelProperty(value = "实验室检测id", dataType = "Long")
+ private Long id;
+
+ @NotNull(message = "委托书id不能为空")
+ @ApiModelProperty(value = "委托书id", dataType = "Long")
+ private Long orderId;
+
+ @NotNull(message = "样品id不能为空")
+ @ApiModelProperty(value = "样品id", dataType = "Long")
+ private Long sampleId;
+
+ @NotNull(message = "检定环节不能为空")
+ @ApiModelProperty(value = "检定环节,实验室id", dataType = "Long")
+ private Long measureSegmentId;
+
+ @ApiModelProperty(value = "检定人员id", dataType = "Long")
+ private Long measurePersonId;
+
+ @ApiModelProperty(value = "退回原因", dataType = "Long")
+ private String operateReason;
+}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/MySampleOperateRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/MySampleOperateRequest.java
deleted file mode 100644
index 15f2fe9..0000000
--- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/MySampleOperateRequest.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package com.casic.missiles.dto.business;
-
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
-import javax.validation.constraints.NotNull;
-
-/**
- * @Description: 实验室检测-我的检测-检定人扫描收入请求实体
- * @Author: wangpeng
- * @Date: 2023/2/15 15:31
- */
-@Data
-@ApiModel
-public class MySampleOperateRequest {
- @NotNull(message = "委托书id不能为空")
- @ApiModelProperty(value = "委托书id", dataType = "Long")
- private Long orderId;
-
- @NotNull(message = "样品id不能为空")
- @ApiModelProperty(value = "样品id", dataType = "Long")
- private Long sampleId;
-}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListRequest.java
index 5a9d04a..7daf5b9 100644
--- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListRequest.java
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListRequest.java
@@ -7,6 +7,7 @@
import lombok.Data;
import javax.validation.constraints.NotBlank;
+import java.util.List;
@Data
@ApiModel
@@ -44,4 +45,7 @@
@ApiModelProperty(value = "样品属性(字典code)", dataType = "String")
private String sampleBelong;
+ @ApiModelProperty(value = "筛选样品ids(sampleId列表,导出使用)", dataType = "List")
+ private List ids;
+
}
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessLabExecutiveInfoController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessLabExecutiveInfoController.java
index c14c3be..aa330f9 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessLabExecutiveInfoController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessLabExecutiveInfoController.java
@@ -7,6 +7,7 @@
import com.casic.missiles.dto.ReturnDTO;
import com.casic.missiles.dto.ReturnUtil;
import com.casic.missiles.dto.business.*;
+import com.casic.missiles.enums.ExportEnum;
import com.casic.missiles.exception.BusinessException;
import com.casic.missiles.model.exception.enums.CoreExceptionEnum;
import com.casic.missiles.service.business.IBusinessLabExecutiveInfoService;
@@ -25,9 +26,9 @@
*
* 业务管理-实验室检定信息记录表(用于流程中的实验室分配及后续检定过程查询) 前端控制器
* 样品状态(任务收发&任务分发使用,委托书和样品关联表中的状态):
- * 1:待收入;2:待分发;3:检测中;4:检测完成;5:待归还;6:已归还;7:无需检测;8:已超期
+ * 1:待收入;2:待分发;3:检测中;4:检测完成;5:待归还;6:已归还;7:无需检测;8:已超期
* 实验室检定状态(实验室检测使用,实验室检定信息记录表中的状态):
- * 1:待分配(负责人);2:待检测(检定人);3:检测完成;4:退回;5:终止(已收入中点击终止更新实验室中待分配和待检测的的状态为已终止)
+ * 1:待分配(负责人);2:待检测(检定人);3:检测完成;4:退回;5:终止(已收入中点击终止更新实验室中待分配和待检测的的状态为已终止)
*
*
* @author wangpeng
@@ -135,7 +136,7 @@
@ApiOperation("实验室检测-我的检测-检定人扫描收入(待检测->检测中)")
@PostMapping("/myExecutive/receive")
@ResponseBody
- public ReturnDTO sampleReceive(@RequestBody @Valid List requestList, BindingResult bindingResult) {
+ public ReturnDTO sampleReceive(@RequestBody @Valid List requestList, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
}
@@ -148,7 +149,7 @@
@ApiOperation("实验室检测-负责人/检定人扫描检完(检测中->检测完)")
@PostMapping("/myExecutive/complete")
@ResponseBody
- public ReturnDTO sampleExecutiveComplete(@RequestBody @Valid List requestList, BindingResult bindingResult) {
+ public ReturnDTO sampleExecutiveComplete(@RequestBody @Valid List requestList, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
}
@@ -158,25 +159,49 @@
/**
* 实验室检测-部门检测/我的检测 编辑(只能修改应出具证书)
*/
+ @ApiOperation("实验室检测-部门检测/我的检测 编辑(只能修改应出具证书)")
+ @PostMapping("/executive/update")
+ @ResponseBody
+ public ReturnDTO updateExecutive(@RequestBody @Valid UpdateExecutiveRequest request, BindingResult bindingResult) {
+ if (bindingResult.hasErrors()) {
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ return labExecutiveInfoService.updateExecutive(request);
+ }
/**
* 实验室检测-部门检测/我的检测 详情
*/
+ @ApiOperation("实验室检测-部门检测/我的检测 详情")
+ @PostMapping("/executive/detail")
+ @ResponseBody
+ public ReturnDTO executiveDetail(@RequestBody @Valid ExecutiveDetailRequest request, BindingResult bindingResult) throws Exception {
+ if (bindingResult.hasErrors()) {
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ return ReturnUtil.success(labExecutiveInfoService.executiveDetail(request));
+ }
/**
* 实验室检测-部门检测/我的检测 退回(待检测/检测中->退回)
- * 退回后会将下一个要执行的实验室检测状态更新为待分配,将后面的实验室顺序变更为连续(都进行减1,)
- * 可能出现最后一个检测的实验室退回,这样的情况是否需要把样品状态改为检测完,还是等分发员再增加实验室或增加个分发员点击完成的按钮
+ * 退回后会将下一个要执行的实验室检测状态更新为待分配,将后面的实验室顺序变更为连续(都进行减1)
+ * 最后一个检测的实验室退回,等分发员再增加实验室或设备收发中的已收入直接手动点击完成
*/
-
-
-
+ @ApiOperation("实验室检测-部门检测/我的检测 退回(待检测/检测中->退回)")
+ @PostMapping("/executive/sendBack")
+ @ResponseBody
+ public ReturnDTO executiveSendBack(@RequestBody @Valid ExecutiveSendBackRequest request, BindingResult bindingResult) {
+ if (bindingResult.hasErrors()) {
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ return labExecutiveInfoService.sampleExecutiveSendBack(request);
+ }
/**
* 分发员编辑实验室检测列表
*/
@ApiOperation("分发员编辑实验室检测列表")
- @PostMapping("/handOut/updateExecutiveList")
+ @PostMapping("/handOut/updateList")
@ResponseBody
public ReturnDTO updateExecutiveList(@RequestBody @Valid UpdateExecutiveListRequest request, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
@@ -185,9 +210,23 @@
return labExecutiveInfoService.updateExecutiveList(request);
}
-
/**
- * 各列表导出
+ * 各状态列表导出
*/
+ @ApiOperation("任务分发-各状态列表导出")
+ @PostMapping("/handOut/listExport")
+ @ResponseBody
+ public void export(@RequestBody @Valid SampleHandOutListRequest request, BindingResult bindingResult) throws Exception {
+ if (bindingResult.hasErrors()) {
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ Page page = PageFactory.defaultPage();
+ page.setCurrent(1);
+ page.setSearchCount(false);
+ page.setSize(Integer.MAX_VALUE);
+ Page responsePage = labExecutiveInfoService.handOutListPage(page, request);
+ List list = responsePage.getRecords();
+ super.exportExcel(SampleHandOutListResponse.class, list, ExportEnum.HANDOUT_EXPORT.getSheetName());
+ }
}
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java
index 9637b3a..7f8c1e7 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java
@@ -79,7 +79,7 @@
@ApiOperation("文件导出")
@PostMapping("/listExport")
@ResponseBody
- public void export(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) throws IOException {
+ public void export(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) throws IOException {
if (bindingResult.hasErrors()) {
throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
}
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 9e3d9fd..0c1cf2d 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
@@ -53,7 +53,9 @@
HANDLE_FAILED(500, "操作失败"),
QRCODE_FAILED(2409, "二维码生成失败"),
RECEIVE_SAMPLE_NOT_EXIST(2410, "待检测中不存在扫描收入的样品"),
- COMPLETE_SAMPLE_NOT_EXIST(2411, "检测中不存在扫描收入的样品");
+ COMPLETE_SAMPLE_NOT_EXIST(2411, "检测中不存在扫描收入的样品"),
+ CANNOT_CHANGE_MEASURE_INFO(2412, "无法更改非当前登录用户的检测信息"),
+ NON_EXIST_ORDER_OR_SAMPLE(2413, "不存在该委托单或该委托单下的样品");
private Integer code;
private String message;
diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java
index 06a3fd8..a43d9c9 100644
--- a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java
+++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java
@@ -36,7 +36,8 @@
DISPATCH_DATA("dispatchData", "dispatchData", "设备收发"),
ENVIRONMENT_DATA("environmentData", "environmentData", "环境记录单"),
ORIGIN_DATA("originData", "originData", "原始记录"),
- ADVICE_EXPORT("adviceData", "adviceData", "客户反馈");
+ ADVICE_EXPORT("adviceData", "adviceData", "客户反馈"),
+ HANDOUT_EXPORT("handoutData", "handoutData", "任务分发列表");
ExportEnum(String fileName, String sheetName, String description) {
this.fileName = fileName;
diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveInfoMapper.java
index e4cd952..2ce14af 100644
--- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveInfoMapper.java
+++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveInfoMapper.java
@@ -22,13 +22,17 @@
Integer getMeasureNumberStatus(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId);
- List selectExecutiveList(@Param("request") SampleHandOutDetailRequest request);
+ List selectExecutiveList(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId);
Page selectListByDeptIdAndStatus(Page page, @Param("request") SampleLabExecutiveListRequest request, @Param("deptId") Long deptId, @Param("status") String status, @Param("statusList") List statusList);
Page selectListByUserIdAndStatus(Page page, @Param("request") SampleLabExecutiveListRequest request, @Param("userId") Long userId, @Param("status") String status);
- int updateForSampleOperate(@Param("list") List list, @Param("userId") Long userId, @Param("status") String status);
+ int updateForSampleOperate(@Param("list") List list, @Param("userId") Long userId, @Param("status") String status);
- List selectListForSampleOperate(@Param("list") List requestList, @Param("userId") Long userId, @Param("status") String status);
+ List selectListForSampleOperate(@Param("list") List requestList, @Param("userId") Long userId, @Param("status") String status);
+
+ int updateForSendBack(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId);
+
+ Long selectMinSeq(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId);
}
diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveOperateLogMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveOperateLogMapper.java
index ed6f4a1..2bcc4e1 100644
--- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveOperateLogMapper.java
+++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveOperateLogMapper.java
@@ -2,7 +2,6 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.casic.missiles.dto.business.MeasureSendBackDTO;
-import com.casic.missiles.dto.business.SampleHandOutDetailRequest;
import com.casic.missiles.model.business.BusinessLabExecutiveOperateLog;
import org.apache.ibatis.annotations.Param;
@@ -19,5 +18,5 @@
*/
public interface BusinessLabExecutiveOperateLogMapper extends BaseMapper {
- List selectExecutiveOperateLogList(@Param("request") SampleHandOutDetailRequest request);
+ List selectExecutiveOperateLogList(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId);
}
diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java
index 235c95f..bddf56f 100644
--- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java
+++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java
@@ -5,7 +5,6 @@
import com.casic.missiles.dto.business.SampleHandOutDetailResponse;
import com.casic.missiles.dto.business.SampleHandOutListRequest;
import com.casic.missiles.dto.business.SampleHandOutListResponse;
-import com.casic.missiles.dto.business.SampleHandOutDetailRequest;
import com.casic.missiles.dto.business.dispatch.DeviceDispatchDTO;
import com.casic.missiles.dto.business.dispatch.DeviceDispatchVO;
import com.casic.missiles.dto.customer.sample.CustomerSampleListVO;
@@ -28,7 +27,7 @@
Page getSampleListByStatus(@Param("page") Page page, @Param("request") DeviceDispatchDTO request);
- SampleHandOutDetailResponse selectSampleDetail(@Param("request") SampleHandOutDetailRequest request);
+ SampleHandOutDetailResponse selectSampleDetail(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId);
int updateByOrderIdAndSampleId(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId, @Param("status") String status);
diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml
index 92402b7..87613eb 100644
--- a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml
+++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml
@@ -31,8 +31,8 @@
- csi.id AS sample_id, csi.sample_no, csi.sample_name, csi.sample_model, csi.manufacturing_no, bo.order_code AS orderNo, bo.id AS orderId,
- bo.customer_id, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, blei.require_certifications, blei.measure_status
+ blei.id AS id, csi.id AS sample_id, csi.sample_no, csi.sample_name, csi.sample_model, csi.manufacturing_no, bo.order_code AS orderNo, bo.id AS orderId,
+ bo.customer_id, bo.customer_no, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, blei.require_certifications, blei.measure_status
@@ -63,8 +63,8 @@
FROM business_lab_executive_info blei
JOIN sys_dept sd ON blei.measure_dept_id = sd.ID
LEFT JOIN sys_user su ON blei.measure_person_id = su.id
- WHERE blei.order_id = #{request.orderId}
- AND blei.sample_id = #{request.sampleId}
+ WHERE blei.order_id = #{orderId}
+ AND blei.sample_id = #{sampleId}
ORDER BY blei.measure_sequence ASC
@@ -161,7 +161,7 @@
-
+
SELECT order_id, sample_id
FROM business_lab_executive_info
WHERE measure_person_id = #{userId}
@@ -171,4 +171,27 @@
(#{item.orderId}, #{item.sampleId})
+
+
+ UPDATE business_lab_executive_info
+ SET measure_sequence = measure_sequence - 1
+ WHERE (measure_status IS NULL OR measure_status = "")
+ AND order_id = #{orderId}
+ AND sample_id = #{sampleId}
+
+
+
+ SELECT id FROM business_lab_executive_info
+ WHERE measure_sequence = (
+ SELECT MIN(measure_sequence)
+ FROM business_lab_executive_info
+ WHERE (measure_status IS NULL OR measure_status = "")
+ AND order_id = #{orderId}
+ AND sample_id = #{sampleId}
+ )
+ AND (measure_status IS NULL OR measure_status = "")
+ AND order_id = #{orderId}
+ AND sample_id = #{sampleId}
+
+
diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveOperateLogMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveOperateLogMapper.xml
index 9f6c97f..0a0b861 100644
--- a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveOperateLogMapper.xml
+++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveOperateLogMapper.xml
@@ -25,8 +25,8 @@
FROM business_lab_executive_operate_log bleoi
JOIN sys_dept sd ON bleoi.measure_dept_id = sd.ID
WHERE measure_status = 4
- AND bleoi.order_id = #{request.orderId}
- AND bleoi.sample_id = #{request.sampleId}
+ AND bleoi.order_id = #{orderId}
+ AND bleoi.sample_id = #{sampleId}
ORDER BY bleoi.create_time ASC
diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml
index c9b53d4..a2b0806 100644
--- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml
+++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml
@@ -18,7 +18,7 @@
csi.id AS sample_id, csi.sample_no, csi.sample_name, csi.sample_model, csi.manufacturing_no, bo.order_code AS orderNo, bo.id AS orderId,
- bo.customer_id, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, bosr.sample_status
+ bo.customer_id, bo.customer_no, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, bosr.sample_status
@@ -136,6 +136,12 @@
AND csi.sample_belong = #{request.sampleBelong}
+
+ AND csi.id IN
+
+ #{item}
+
+
ORDER BY bosr.update_time DESC
@@ -146,8 +152,8 @@
JOIN customer_sample_info csi ON bosr.sample_id = csi.id
JOIN business_order bo ON bosr.order_id = bo.id
WHERE bo.is_del = 0 AND csi.is_del = 0
- AND bosr.order_id = #{request.orderId}
- AND bosr.sample_id = #{request.sampleId}
+ AND bosr.order_id = #{orderId}
+ AND bosr.sample_id = #{sampleId}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveDetailRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveDetailRequest.java
new file mode 100644
index 0000000..8817b91
--- /dev/null
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveDetailRequest.java
@@ -0,0 +1,24 @@
+package com.casic.missiles.dto.business;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @Description:
+ * @Author: wangpeng
+ * @Date: 2023/2/21 10:00
+ */
+@Data
+@ApiModel
+public class ExecutiveDetailRequest {
+ @NotNull(message = "委托书id不能为空")
+ @ApiModelProperty(value = "委托书id", dataType = "Long")
+ private Long orderId;
+
+ @NotNull(message = "样品id不能为空")
+ @ApiModelProperty(value = "样品id", dataType = "Long")
+ private Long sampleId;
+}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveDetailResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveDetailResponse.java
new file mode 100644
index 0000000..35452b9
--- /dev/null
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveDetailResponse.java
@@ -0,0 +1,139 @@
+package com.casic.missiles.dto.business;
+
+import com.casic.missiles.annotation.DictCodeField;
+import com.casic.missiles.constants.MeterDictCode;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @Description: 任务分发-详情
+ * @Author: wangpeng
+ * @Date: 2023/2/9 11:41
+ */
+@Data
+@ApiModel
+public class ExecutiveDetailResponse {
+ @ApiModelProperty(value = "样品id", dataType = "Long")
+ private Long sampleId;
+
+ @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 manufacturer;
+
+ @ApiModelProperty(value = "厂家国别", dataType = "String")
+ private String manufacturerCountry;
+
+ @ApiModelProperty(value = "出厂年月", dataType = "String")
+ private String manufacturingDate;
+
+ @ApiModelProperty(value = "ABC", dataType = "String")
+ private String abc;
+
+ @ApiModelProperty(value = "委托方id", dataType = "Long")
+ private Long customerId;
+
+ @ApiModelProperty(value = "委托方名称", dataType = "String")
+ private String customerName;
+
+ @ApiModelProperty(value = "委托方电话", dataType = "String")
+ private String customerPhone;
+
+ //需求中有,建议去掉,否则多关联一张表
+// @ApiModelProperty(value = "委托方邮编", dataType = "String")
+// private String postalCode;
+
+// @ApiModelProperty(value = "委托方公司地址-国家", dataType = "String")
+// private String addressCountry;
+//
+// @ApiModelProperty(value = "委托方公司地址-省", dataType = "String")
+// private String addressProvince;
+//
+// @ApiModelProperty(value = "委托方公司地址-市", dataType = "String")
+// private String addressCity;
+//
+// @ApiModelProperty(value = "委托方公司地址-区", dataType = "String")
+// private String addressArea;
+
+ @ApiModelProperty(value = "委托方公司地址-详细地址", dataType = "String")
+ private String customerAddress;
+
+// @ApiModelProperty(value = "委托方公司地址-国家名字", dataType = "String")
+// private String addressCountryName;
+//
+// @ApiModelProperty(value = "委托方公司地址-省名字", dataType = "String")
+// private String addressProvinceName;
+//
+// @ApiModelProperty(value = "委托方公司地址-市名字", dataType = "String")
+// private String addressCityName;
+//
+// @ApiModelProperty(value = "委托方公司地址-区名字", dataType = "String")
+// private String addressAreaName;
+
+ @ApiModelProperty(value = "委托书id", dataType = "Long")
+ private String orderId;
+
+ @ApiModelProperty(value = "委托书编号", dataType = "String")
+ private String orderCode;
+
+ @ApiModelProperty(value = "送样人", dataType = "String")
+ private String deliverer;
+
+ @ApiModelProperty(value = "送样人联系方式", dataType = "String")
+ private String delivererTel;
+
+ @ApiModelProperty(value = "预约送达时间", dataType = "String")
+ private String planDeliverTime;
+
+ @ApiModelProperty(value = "要求检完时间", dataType = "String")
+ private String requireOverTime;
+
+ @ApiModelProperty(value = "检定项目", dataType = "String")
+ private String measureContent;
+
+ @ApiModelProperty(value = "检定周期(月)", dataType = "String")
+ private String measurePeriod;
+
+ @ApiModelProperty(value = "检定日期", dataType = "String")
+ private String measureLastDate;
+
+ @ApiModelProperty(value = "有效日期", dataType = "String")
+ private String effectiveDate;
+
+ //需求中已删除该字段展示,不展示整个样品的检定结果,只在证书里展示各证书的检定结果
+// @ApiModelProperty(value = "检定结果", dataType = "String")
+// private String measureResult;
+
+ @ApiModelProperty(value = "备注", dataType = "String")
+ private String remark;
+
+ @ApiModelProperty(value = "说明书", dataType = "String")
+ private String minioFileName;
+
+ @ApiModelProperty(value = "检定方式(字典code)", dataType = "String")
+ @DictCodeField(message = "检定方式不合法", cacheName = MeterDictCode.MEASURE_TYPE)
+ private String measureType;
+
+ @ApiModelProperty(value = "检定方式(字典value)", dataType = "String")
+ private String measureTypeName;
+
+ @ApiModelProperty(value = "标签绑定", dataType = "String")
+ private String labelBind;
+
+ @ApiModelProperty(value = "检定流程", dataType = "List")
+ private List measureProcessList;
+
+}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveSendBackRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveSendBackRequest.java
new file mode 100644
index 0000000..832f707
--- /dev/null
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveSendBackRequest.java
@@ -0,0 +1,38 @@
+package com.casic.missiles.dto.business;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @Description:
+ * @Author: wangpeng
+ * @Date: 2023/2/21 10:29
+ */
+@Data
+@ApiModel
+public class ExecutiveSendBackRequest {
+ @NotNull(message = "实验室检测id不能为空")
+ @ApiModelProperty(value = "实验室检测id", dataType = "Long")
+ private Long id;
+
+ @NotNull(message = "委托书id不能为空")
+ @ApiModelProperty(value = "委托书id", dataType = "Long")
+ private Long orderId;
+
+ @NotNull(message = "样品id不能为空")
+ @ApiModelProperty(value = "样品id", dataType = "Long")
+ private Long sampleId;
+
+ @NotNull(message = "检定环节不能为空")
+ @ApiModelProperty(value = "检定环节,实验室id", dataType = "Long")
+ private Long measureSegmentId;
+
+ @ApiModelProperty(value = "检定人员id", dataType = "Long")
+ private Long measurePersonId;
+
+ @ApiModelProperty(value = "退回原因", dataType = "Long")
+ private String operateReason;
+}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/MySampleOperateRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/MySampleOperateRequest.java
deleted file mode 100644
index 15f2fe9..0000000
--- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/MySampleOperateRequest.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package com.casic.missiles.dto.business;
-
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
-import javax.validation.constraints.NotNull;
-
-/**
- * @Description: 实验室检测-我的检测-检定人扫描收入请求实体
- * @Author: wangpeng
- * @Date: 2023/2/15 15:31
- */
-@Data
-@ApiModel
-public class MySampleOperateRequest {
- @NotNull(message = "委托书id不能为空")
- @ApiModelProperty(value = "委托书id", dataType = "Long")
- private Long orderId;
-
- @NotNull(message = "样品id不能为空")
- @ApiModelProperty(value = "样品id", dataType = "Long")
- private Long sampleId;
-}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListRequest.java
index 5a9d04a..7daf5b9 100644
--- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListRequest.java
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListRequest.java
@@ -7,6 +7,7 @@
import lombok.Data;
import javax.validation.constraints.NotBlank;
+import java.util.List;
@Data
@ApiModel
@@ -44,4 +45,7 @@
@ApiModelProperty(value = "样品属性(字典code)", dataType = "String")
private String sampleBelong;
+ @ApiModelProperty(value = "筛选样品ids(sampleId列表,导出使用)", dataType = "List")
+ private List ids;
+
}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java
index 0e34812..d2a665e 100644
--- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java
@@ -46,9 +46,12 @@
@ExcelProperty(value = "委托书编号", order = 4)
private String orderNo;
+ @ApiModelProperty(value = "委托方id", dataType = "Long")
+ private Long customerId;
+
@ApiModelProperty(value = "委托方代码", dataType = "String")
@ExcelProperty(value = "委托方代码", order = 5)
- private String customerId;
+ private String customerNo;
@ApiModelProperty(value = "委托方名称", dataType = "String")
@ExcelProperty(value = "委托方名称", order = 6)
@@ -91,7 +94,7 @@
@ExcelProperty(value = "分发性质", order = 14)
private String handOutProperty;
- @JSONField(serialize = false)
+ @ApiModelProperty(value = "委托书id", dataType = "String")
private Long orderId;
@JSONField(serialize = false)
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessLabExecutiveInfoController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessLabExecutiveInfoController.java
index c14c3be..aa330f9 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessLabExecutiveInfoController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessLabExecutiveInfoController.java
@@ -7,6 +7,7 @@
import com.casic.missiles.dto.ReturnDTO;
import com.casic.missiles.dto.ReturnUtil;
import com.casic.missiles.dto.business.*;
+import com.casic.missiles.enums.ExportEnum;
import com.casic.missiles.exception.BusinessException;
import com.casic.missiles.model.exception.enums.CoreExceptionEnum;
import com.casic.missiles.service.business.IBusinessLabExecutiveInfoService;
@@ -25,9 +26,9 @@
*
* 业务管理-实验室检定信息记录表(用于流程中的实验室分配及后续检定过程查询) 前端控制器
* 样品状态(任务收发&任务分发使用,委托书和样品关联表中的状态):
- * 1:待收入;2:待分发;3:检测中;4:检测完成;5:待归还;6:已归还;7:无需检测;8:已超期
+ * 1:待收入;2:待分发;3:检测中;4:检测完成;5:待归还;6:已归还;7:无需检测;8:已超期
* 实验室检定状态(实验室检测使用,实验室检定信息记录表中的状态):
- * 1:待分配(负责人);2:待检测(检定人);3:检测完成;4:退回;5:终止(已收入中点击终止更新实验室中待分配和待检测的的状态为已终止)
+ * 1:待分配(负责人);2:待检测(检定人);3:检测完成;4:退回;5:终止(已收入中点击终止更新实验室中待分配和待检测的的状态为已终止)
*
*
* @author wangpeng
@@ -135,7 +136,7 @@
@ApiOperation("实验室检测-我的检测-检定人扫描收入(待检测->检测中)")
@PostMapping("/myExecutive/receive")
@ResponseBody
- public ReturnDTO sampleReceive(@RequestBody @Valid List requestList, BindingResult bindingResult) {
+ public ReturnDTO sampleReceive(@RequestBody @Valid List requestList, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
}
@@ -148,7 +149,7 @@
@ApiOperation("实验室检测-负责人/检定人扫描检完(检测中->检测完)")
@PostMapping("/myExecutive/complete")
@ResponseBody
- public ReturnDTO sampleExecutiveComplete(@RequestBody @Valid List requestList, BindingResult bindingResult) {
+ public ReturnDTO sampleExecutiveComplete(@RequestBody @Valid List requestList, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
}
@@ -158,25 +159,49 @@
/**
* 实验室检测-部门检测/我的检测 编辑(只能修改应出具证书)
*/
+ @ApiOperation("实验室检测-部门检测/我的检测 编辑(只能修改应出具证书)")
+ @PostMapping("/executive/update")
+ @ResponseBody
+ public ReturnDTO updateExecutive(@RequestBody @Valid UpdateExecutiveRequest request, BindingResult bindingResult) {
+ if (bindingResult.hasErrors()) {
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ return labExecutiveInfoService.updateExecutive(request);
+ }
/**
* 实验室检测-部门检测/我的检测 详情
*/
+ @ApiOperation("实验室检测-部门检测/我的检测 详情")
+ @PostMapping("/executive/detail")
+ @ResponseBody
+ public ReturnDTO executiveDetail(@RequestBody @Valid ExecutiveDetailRequest request, BindingResult bindingResult) throws Exception {
+ if (bindingResult.hasErrors()) {
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ return ReturnUtil.success(labExecutiveInfoService.executiveDetail(request));
+ }
/**
* 实验室检测-部门检测/我的检测 退回(待检测/检测中->退回)
- * 退回后会将下一个要执行的实验室检测状态更新为待分配,将后面的实验室顺序变更为连续(都进行减1,)
- * 可能出现最后一个检测的实验室退回,这样的情况是否需要把样品状态改为检测完,还是等分发员再增加实验室或增加个分发员点击完成的按钮
+ * 退回后会将下一个要执行的实验室检测状态更新为待分配,将后面的实验室顺序变更为连续(都进行减1)
+ * 最后一个检测的实验室退回,等分发员再增加实验室或设备收发中的已收入直接手动点击完成
*/
-
-
-
+ @ApiOperation("实验室检测-部门检测/我的检测 退回(待检测/检测中->退回)")
+ @PostMapping("/executive/sendBack")
+ @ResponseBody
+ public ReturnDTO executiveSendBack(@RequestBody @Valid ExecutiveSendBackRequest request, BindingResult bindingResult) {
+ if (bindingResult.hasErrors()) {
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ return labExecutiveInfoService.sampleExecutiveSendBack(request);
+ }
/**
* 分发员编辑实验室检测列表
*/
@ApiOperation("分发员编辑实验室检测列表")
- @PostMapping("/handOut/updateExecutiveList")
+ @PostMapping("/handOut/updateList")
@ResponseBody
public ReturnDTO updateExecutiveList(@RequestBody @Valid UpdateExecutiveListRequest request, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
@@ -185,9 +210,23 @@
return labExecutiveInfoService.updateExecutiveList(request);
}
-
/**
- * 各列表导出
+ * 各状态列表导出
*/
+ @ApiOperation("任务分发-各状态列表导出")
+ @PostMapping("/handOut/listExport")
+ @ResponseBody
+ public void export(@RequestBody @Valid SampleHandOutListRequest request, BindingResult bindingResult) throws Exception {
+ if (bindingResult.hasErrors()) {
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ Page page = PageFactory.defaultPage();
+ page.setCurrent(1);
+ page.setSearchCount(false);
+ page.setSize(Integer.MAX_VALUE);
+ Page responsePage = labExecutiveInfoService.handOutListPage(page, request);
+ List list = responsePage.getRecords();
+ super.exportExcel(SampleHandOutListResponse.class, list, ExportEnum.HANDOUT_EXPORT.getSheetName());
+ }
}
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java
index 9637b3a..7f8c1e7 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java
@@ -79,7 +79,7 @@
@ApiOperation("文件导出")
@PostMapping("/listExport")
@ResponseBody
- public void export(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) throws IOException {
+ public void export(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) throws IOException {
if (bindingResult.hasErrors()) {
throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
}
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 9e3d9fd..0c1cf2d 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
@@ -53,7 +53,9 @@
HANDLE_FAILED(500, "操作失败"),
QRCODE_FAILED(2409, "二维码生成失败"),
RECEIVE_SAMPLE_NOT_EXIST(2410, "待检测中不存在扫描收入的样品"),
- COMPLETE_SAMPLE_NOT_EXIST(2411, "检测中不存在扫描收入的样品");
+ COMPLETE_SAMPLE_NOT_EXIST(2411, "检测中不存在扫描收入的样品"),
+ CANNOT_CHANGE_MEASURE_INFO(2412, "无法更改非当前登录用户的检测信息"),
+ NON_EXIST_ORDER_OR_SAMPLE(2413, "不存在该委托单或该委托单下的样品");
private Integer code;
private String message;
diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java
index 06a3fd8..a43d9c9 100644
--- a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java
+++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java
@@ -36,7 +36,8 @@
DISPATCH_DATA("dispatchData", "dispatchData", "设备收发"),
ENVIRONMENT_DATA("environmentData", "environmentData", "环境记录单"),
ORIGIN_DATA("originData", "originData", "原始记录"),
- ADVICE_EXPORT("adviceData", "adviceData", "客户反馈");
+ ADVICE_EXPORT("adviceData", "adviceData", "客户反馈"),
+ HANDOUT_EXPORT("handoutData", "handoutData", "任务分发列表");
ExportEnum(String fileName, String sheetName, String description) {
this.fileName = fileName;
diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveInfoMapper.java
index e4cd952..2ce14af 100644
--- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveInfoMapper.java
+++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveInfoMapper.java
@@ -22,13 +22,17 @@
Integer getMeasureNumberStatus(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId);
- List selectExecutiveList(@Param("request") SampleHandOutDetailRequest request);
+ List selectExecutiveList(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId);
Page selectListByDeptIdAndStatus(Page page, @Param("request") SampleLabExecutiveListRequest request, @Param("deptId") Long deptId, @Param("status") String status, @Param("statusList") List statusList);
Page selectListByUserIdAndStatus(Page page, @Param("request") SampleLabExecutiveListRequest request, @Param("userId") Long userId, @Param("status") String status);
- int updateForSampleOperate(@Param("list") List list, @Param("userId") Long userId, @Param("status") String status);
+ int updateForSampleOperate(@Param("list") List list, @Param("userId") Long userId, @Param("status") String status);
- List selectListForSampleOperate(@Param("list") List requestList, @Param("userId") Long userId, @Param("status") String status);
+ List selectListForSampleOperate(@Param("list") List requestList, @Param("userId") Long userId, @Param("status") String status);
+
+ int updateForSendBack(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId);
+
+ Long selectMinSeq(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId);
}
diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveOperateLogMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveOperateLogMapper.java
index ed6f4a1..2bcc4e1 100644
--- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveOperateLogMapper.java
+++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveOperateLogMapper.java
@@ -2,7 +2,6 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.casic.missiles.dto.business.MeasureSendBackDTO;
-import com.casic.missiles.dto.business.SampleHandOutDetailRequest;
import com.casic.missiles.model.business.BusinessLabExecutiveOperateLog;
import org.apache.ibatis.annotations.Param;
@@ -19,5 +18,5 @@
*/
public interface BusinessLabExecutiveOperateLogMapper extends BaseMapper {
- List selectExecutiveOperateLogList(@Param("request") SampleHandOutDetailRequest request);
+ List selectExecutiveOperateLogList(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId);
}
diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java
index 235c95f..bddf56f 100644
--- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java
+++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java
@@ -5,7 +5,6 @@
import com.casic.missiles.dto.business.SampleHandOutDetailResponse;
import com.casic.missiles.dto.business.SampleHandOutListRequest;
import com.casic.missiles.dto.business.SampleHandOutListResponse;
-import com.casic.missiles.dto.business.SampleHandOutDetailRequest;
import com.casic.missiles.dto.business.dispatch.DeviceDispatchDTO;
import com.casic.missiles.dto.business.dispatch.DeviceDispatchVO;
import com.casic.missiles.dto.customer.sample.CustomerSampleListVO;
@@ -28,7 +27,7 @@
Page getSampleListByStatus(@Param("page") Page page, @Param("request") DeviceDispatchDTO request);
- SampleHandOutDetailResponse selectSampleDetail(@Param("request") SampleHandOutDetailRequest request);
+ SampleHandOutDetailResponse selectSampleDetail(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId);
int updateByOrderIdAndSampleId(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId, @Param("status") String status);
diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml
index 92402b7..87613eb 100644
--- a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml
+++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml
@@ -31,8 +31,8 @@
- csi.id AS sample_id, csi.sample_no, csi.sample_name, csi.sample_model, csi.manufacturing_no, bo.order_code AS orderNo, bo.id AS orderId,
- bo.customer_id, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, blei.require_certifications, blei.measure_status
+ blei.id AS id, csi.id AS sample_id, csi.sample_no, csi.sample_name, csi.sample_model, csi.manufacturing_no, bo.order_code AS orderNo, bo.id AS orderId,
+ bo.customer_id, bo.customer_no, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, blei.require_certifications, blei.measure_status
@@ -63,8 +63,8 @@
FROM business_lab_executive_info blei
JOIN sys_dept sd ON blei.measure_dept_id = sd.ID
LEFT JOIN sys_user su ON blei.measure_person_id = su.id
- WHERE blei.order_id = #{request.orderId}
- AND blei.sample_id = #{request.sampleId}
+ WHERE blei.order_id = #{orderId}
+ AND blei.sample_id = #{sampleId}
ORDER BY blei.measure_sequence ASC
@@ -161,7 +161,7 @@
-
+
SELECT order_id, sample_id
FROM business_lab_executive_info
WHERE measure_person_id = #{userId}
@@ -171,4 +171,27 @@
(#{item.orderId}, #{item.sampleId})
+
+
+ UPDATE business_lab_executive_info
+ SET measure_sequence = measure_sequence - 1
+ WHERE (measure_status IS NULL OR measure_status = "")
+ AND order_id = #{orderId}
+ AND sample_id = #{sampleId}
+
+
+
+ SELECT id FROM business_lab_executive_info
+ WHERE measure_sequence = (
+ SELECT MIN(measure_sequence)
+ FROM business_lab_executive_info
+ WHERE (measure_status IS NULL OR measure_status = "")
+ AND order_id = #{orderId}
+ AND sample_id = #{sampleId}
+ )
+ AND (measure_status IS NULL OR measure_status = "")
+ AND order_id = #{orderId}
+ AND sample_id = #{sampleId}
+
+
diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveOperateLogMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveOperateLogMapper.xml
index 9f6c97f..0a0b861 100644
--- a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveOperateLogMapper.xml
+++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveOperateLogMapper.xml
@@ -25,8 +25,8 @@
FROM business_lab_executive_operate_log bleoi
JOIN sys_dept sd ON bleoi.measure_dept_id = sd.ID
WHERE measure_status = 4
- AND bleoi.order_id = #{request.orderId}
- AND bleoi.sample_id = #{request.sampleId}
+ AND bleoi.order_id = #{orderId}
+ AND bleoi.sample_id = #{sampleId}
ORDER BY bleoi.create_time ASC
diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml
index c9b53d4..a2b0806 100644
--- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml
+++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml
@@ -18,7 +18,7 @@
csi.id AS sample_id, csi.sample_no, csi.sample_name, csi.sample_model, csi.manufacturing_no, bo.order_code AS orderNo, bo.id AS orderId,
- bo.customer_id, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, bosr.sample_status
+ bo.customer_id, bo.customer_no, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, bosr.sample_status
@@ -136,6 +136,12 @@
AND csi.sample_belong = #{request.sampleBelong}
+
+ AND csi.id IN
+
+ #{item}
+
+
ORDER BY bosr.update_time DESC
@@ -146,8 +152,8 @@
JOIN customer_sample_info csi ON bosr.sample_id = csi.id
JOIN business_order bo ON bosr.order_id = bo.id
WHERE bo.is_del = 0 AND csi.is_del = 0
- AND bosr.order_id = #{request.orderId}
- AND bosr.sample_id = #{request.sampleId}
+ AND bosr.order_id = #{orderId}
+ AND bosr.sample_id = #{sampleId}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveDetailRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveDetailRequest.java
new file mode 100644
index 0000000..8817b91
--- /dev/null
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveDetailRequest.java
@@ -0,0 +1,24 @@
+package com.casic.missiles.dto.business;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @Description:
+ * @Author: wangpeng
+ * @Date: 2023/2/21 10:00
+ */
+@Data
+@ApiModel
+public class ExecutiveDetailRequest {
+ @NotNull(message = "委托书id不能为空")
+ @ApiModelProperty(value = "委托书id", dataType = "Long")
+ private Long orderId;
+
+ @NotNull(message = "样品id不能为空")
+ @ApiModelProperty(value = "样品id", dataType = "Long")
+ private Long sampleId;
+}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveDetailResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveDetailResponse.java
new file mode 100644
index 0000000..35452b9
--- /dev/null
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveDetailResponse.java
@@ -0,0 +1,139 @@
+package com.casic.missiles.dto.business;
+
+import com.casic.missiles.annotation.DictCodeField;
+import com.casic.missiles.constants.MeterDictCode;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @Description: 任务分发-详情
+ * @Author: wangpeng
+ * @Date: 2023/2/9 11:41
+ */
+@Data
+@ApiModel
+public class ExecutiveDetailResponse {
+ @ApiModelProperty(value = "样品id", dataType = "Long")
+ private Long sampleId;
+
+ @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 manufacturer;
+
+ @ApiModelProperty(value = "厂家国别", dataType = "String")
+ private String manufacturerCountry;
+
+ @ApiModelProperty(value = "出厂年月", dataType = "String")
+ private String manufacturingDate;
+
+ @ApiModelProperty(value = "ABC", dataType = "String")
+ private String abc;
+
+ @ApiModelProperty(value = "委托方id", dataType = "Long")
+ private Long customerId;
+
+ @ApiModelProperty(value = "委托方名称", dataType = "String")
+ private String customerName;
+
+ @ApiModelProperty(value = "委托方电话", dataType = "String")
+ private String customerPhone;
+
+ //需求中有,建议去掉,否则多关联一张表
+// @ApiModelProperty(value = "委托方邮编", dataType = "String")
+// private String postalCode;
+
+// @ApiModelProperty(value = "委托方公司地址-国家", dataType = "String")
+// private String addressCountry;
+//
+// @ApiModelProperty(value = "委托方公司地址-省", dataType = "String")
+// private String addressProvince;
+//
+// @ApiModelProperty(value = "委托方公司地址-市", dataType = "String")
+// private String addressCity;
+//
+// @ApiModelProperty(value = "委托方公司地址-区", dataType = "String")
+// private String addressArea;
+
+ @ApiModelProperty(value = "委托方公司地址-详细地址", dataType = "String")
+ private String customerAddress;
+
+// @ApiModelProperty(value = "委托方公司地址-国家名字", dataType = "String")
+// private String addressCountryName;
+//
+// @ApiModelProperty(value = "委托方公司地址-省名字", dataType = "String")
+// private String addressProvinceName;
+//
+// @ApiModelProperty(value = "委托方公司地址-市名字", dataType = "String")
+// private String addressCityName;
+//
+// @ApiModelProperty(value = "委托方公司地址-区名字", dataType = "String")
+// private String addressAreaName;
+
+ @ApiModelProperty(value = "委托书id", dataType = "Long")
+ private String orderId;
+
+ @ApiModelProperty(value = "委托书编号", dataType = "String")
+ private String orderCode;
+
+ @ApiModelProperty(value = "送样人", dataType = "String")
+ private String deliverer;
+
+ @ApiModelProperty(value = "送样人联系方式", dataType = "String")
+ private String delivererTel;
+
+ @ApiModelProperty(value = "预约送达时间", dataType = "String")
+ private String planDeliverTime;
+
+ @ApiModelProperty(value = "要求检完时间", dataType = "String")
+ private String requireOverTime;
+
+ @ApiModelProperty(value = "检定项目", dataType = "String")
+ private String measureContent;
+
+ @ApiModelProperty(value = "检定周期(月)", dataType = "String")
+ private String measurePeriod;
+
+ @ApiModelProperty(value = "检定日期", dataType = "String")
+ private String measureLastDate;
+
+ @ApiModelProperty(value = "有效日期", dataType = "String")
+ private String effectiveDate;
+
+ //需求中已删除该字段展示,不展示整个样品的检定结果,只在证书里展示各证书的检定结果
+// @ApiModelProperty(value = "检定结果", dataType = "String")
+// private String measureResult;
+
+ @ApiModelProperty(value = "备注", dataType = "String")
+ private String remark;
+
+ @ApiModelProperty(value = "说明书", dataType = "String")
+ private String minioFileName;
+
+ @ApiModelProperty(value = "检定方式(字典code)", dataType = "String")
+ @DictCodeField(message = "检定方式不合法", cacheName = MeterDictCode.MEASURE_TYPE)
+ private String measureType;
+
+ @ApiModelProperty(value = "检定方式(字典value)", dataType = "String")
+ private String measureTypeName;
+
+ @ApiModelProperty(value = "标签绑定", dataType = "String")
+ private String labelBind;
+
+ @ApiModelProperty(value = "检定流程", dataType = "List")
+ private List measureProcessList;
+
+}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveSendBackRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveSendBackRequest.java
new file mode 100644
index 0000000..832f707
--- /dev/null
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveSendBackRequest.java
@@ -0,0 +1,38 @@
+package com.casic.missiles.dto.business;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @Description:
+ * @Author: wangpeng
+ * @Date: 2023/2/21 10:29
+ */
+@Data
+@ApiModel
+public class ExecutiveSendBackRequest {
+ @NotNull(message = "实验室检测id不能为空")
+ @ApiModelProperty(value = "实验室检测id", dataType = "Long")
+ private Long id;
+
+ @NotNull(message = "委托书id不能为空")
+ @ApiModelProperty(value = "委托书id", dataType = "Long")
+ private Long orderId;
+
+ @NotNull(message = "样品id不能为空")
+ @ApiModelProperty(value = "样品id", dataType = "Long")
+ private Long sampleId;
+
+ @NotNull(message = "检定环节不能为空")
+ @ApiModelProperty(value = "检定环节,实验室id", dataType = "Long")
+ private Long measureSegmentId;
+
+ @ApiModelProperty(value = "检定人员id", dataType = "Long")
+ private Long measurePersonId;
+
+ @ApiModelProperty(value = "退回原因", dataType = "Long")
+ private String operateReason;
+}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/MySampleOperateRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/MySampleOperateRequest.java
deleted file mode 100644
index 15f2fe9..0000000
--- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/MySampleOperateRequest.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package com.casic.missiles.dto.business;
-
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
-import javax.validation.constraints.NotNull;
-
-/**
- * @Description: 实验室检测-我的检测-检定人扫描收入请求实体
- * @Author: wangpeng
- * @Date: 2023/2/15 15:31
- */
-@Data
-@ApiModel
-public class MySampleOperateRequest {
- @NotNull(message = "委托书id不能为空")
- @ApiModelProperty(value = "委托书id", dataType = "Long")
- private Long orderId;
-
- @NotNull(message = "样品id不能为空")
- @ApiModelProperty(value = "样品id", dataType = "Long")
- private Long sampleId;
-}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListRequest.java
index 5a9d04a..7daf5b9 100644
--- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListRequest.java
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListRequest.java
@@ -7,6 +7,7 @@
import lombok.Data;
import javax.validation.constraints.NotBlank;
+import java.util.List;
@Data
@ApiModel
@@ -44,4 +45,7 @@
@ApiModelProperty(value = "样品属性(字典code)", dataType = "String")
private String sampleBelong;
+ @ApiModelProperty(value = "筛选样品ids(sampleId列表,导出使用)", dataType = "List")
+ private List ids;
+
}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java
index 0e34812..d2a665e 100644
--- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java
@@ -46,9 +46,12 @@
@ExcelProperty(value = "委托书编号", order = 4)
private String orderNo;
+ @ApiModelProperty(value = "委托方id", dataType = "Long")
+ private Long customerId;
+
@ApiModelProperty(value = "委托方代码", dataType = "String")
@ExcelProperty(value = "委托方代码", order = 5)
- private String customerId;
+ private String customerNo;
@ApiModelProperty(value = "委托方名称", dataType = "String")
@ExcelProperty(value = "委托方名称", order = 6)
@@ -91,7 +94,7 @@
@ExcelProperty(value = "分发性质", order = 14)
private String handOutProperty;
- @JSONField(serialize = false)
+ @ApiModelProperty(value = "委托书id", dataType = "String")
private Long orderId;
@JSONField(serialize = false)
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleLabExecutiveListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleLabExecutiveListResponse.java
index 89f18b9..9e31fa0 100644
--- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleLabExecutiveListResponse.java
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleLabExecutiveListResponse.java
@@ -22,6 +22,8 @@
@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN)
@ExcelIgnoreUnannotated
public class SampleLabExecutiveListResponse {
+ @ApiModelProperty(value = "实验室检测id(退回操作中使用)", dataType = "Long")
+ private Long id;
@ApiModelProperty(value = "样品id", dataType = "Long")
private Long sampleId;
@@ -46,9 +48,13 @@
@ExcelProperty(value = "委托书编号", order = 4)
private String orderNo;
+ @ApiModelProperty(value = "委托方id", dataType = "String")
+// @ExcelProperty(value = "委托方id", order = 5)
+ private Long customerId;
+
@ApiModelProperty(value = "委托方代码", dataType = "String")
@ExcelProperty(value = "委托方代码", order = 5)
- private String customerId;
+ private String customerNo;
@ApiModelProperty(value = "委托方名称", dataType = "String")
@ExcelProperty(value = "委托方名称", order = 6)
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessLabExecutiveInfoController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessLabExecutiveInfoController.java
index c14c3be..aa330f9 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessLabExecutiveInfoController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessLabExecutiveInfoController.java
@@ -7,6 +7,7 @@
import com.casic.missiles.dto.ReturnDTO;
import com.casic.missiles.dto.ReturnUtil;
import com.casic.missiles.dto.business.*;
+import com.casic.missiles.enums.ExportEnum;
import com.casic.missiles.exception.BusinessException;
import com.casic.missiles.model.exception.enums.CoreExceptionEnum;
import com.casic.missiles.service.business.IBusinessLabExecutiveInfoService;
@@ -25,9 +26,9 @@
*
* 业务管理-实验室检定信息记录表(用于流程中的实验室分配及后续检定过程查询) 前端控制器
* 样品状态(任务收发&任务分发使用,委托书和样品关联表中的状态):
- * 1:待收入;2:待分发;3:检测中;4:检测完成;5:待归还;6:已归还;7:无需检测;8:已超期
+ * 1:待收入;2:待分发;3:检测中;4:检测完成;5:待归还;6:已归还;7:无需检测;8:已超期
* 实验室检定状态(实验室检测使用,实验室检定信息记录表中的状态):
- * 1:待分配(负责人);2:待检测(检定人);3:检测完成;4:退回;5:终止(已收入中点击终止更新实验室中待分配和待检测的的状态为已终止)
+ * 1:待分配(负责人);2:待检测(检定人);3:检测完成;4:退回;5:终止(已收入中点击终止更新实验室中待分配和待检测的的状态为已终止)
*
*
* @author wangpeng
@@ -135,7 +136,7 @@
@ApiOperation("实验室检测-我的检测-检定人扫描收入(待检测->检测中)")
@PostMapping("/myExecutive/receive")
@ResponseBody
- public ReturnDTO sampleReceive(@RequestBody @Valid List requestList, BindingResult bindingResult) {
+ public ReturnDTO sampleReceive(@RequestBody @Valid List requestList, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
}
@@ -148,7 +149,7 @@
@ApiOperation("实验室检测-负责人/检定人扫描检完(检测中->检测完)")
@PostMapping("/myExecutive/complete")
@ResponseBody
- public ReturnDTO sampleExecutiveComplete(@RequestBody @Valid List requestList, BindingResult bindingResult) {
+ public ReturnDTO sampleExecutiveComplete(@RequestBody @Valid List requestList, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
}
@@ -158,25 +159,49 @@
/**
* 实验室检测-部门检测/我的检测 编辑(只能修改应出具证书)
*/
+ @ApiOperation("实验室检测-部门检测/我的检测 编辑(只能修改应出具证书)")
+ @PostMapping("/executive/update")
+ @ResponseBody
+ public ReturnDTO updateExecutive(@RequestBody @Valid UpdateExecutiveRequest request, BindingResult bindingResult) {
+ if (bindingResult.hasErrors()) {
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ return labExecutiveInfoService.updateExecutive(request);
+ }
/**
* 实验室检测-部门检测/我的检测 详情
*/
+ @ApiOperation("实验室检测-部门检测/我的检测 详情")
+ @PostMapping("/executive/detail")
+ @ResponseBody
+ public ReturnDTO executiveDetail(@RequestBody @Valid ExecutiveDetailRequest request, BindingResult bindingResult) throws Exception {
+ if (bindingResult.hasErrors()) {
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ return ReturnUtil.success(labExecutiveInfoService.executiveDetail(request));
+ }
/**
* 实验室检测-部门检测/我的检测 退回(待检测/检测中->退回)
- * 退回后会将下一个要执行的实验室检测状态更新为待分配,将后面的实验室顺序变更为连续(都进行减1,)
- * 可能出现最后一个检测的实验室退回,这样的情况是否需要把样品状态改为检测完,还是等分发员再增加实验室或增加个分发员点击完成的按钮
+ * 退回后会将下一个要执行的实验室检测状态更新为待分配,将后面的实验室顺序变更为连续(都进行减1)
+ * 最后一个检测的实验室退回,等分发员再增加实验室或设备收发中的已收入直接手动点击完成
*/
-
-
-
+ @ApiOperation("实验室检测-部门检测/我的检测 退回(待检测/检测中->退回)")
+ @PostMapping("/executive/sendBack")
+ @ResponseBody
+ public ReturnDTO executiveSendBack(@RequestBody @Valid ExecutiveSendBackRequest request, BindingResult bindingResult) {
+ if (bindingResult.hasErrors()) {
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ return labExecutiveInfoService.sampleExecutiveSendBack(request);
+ }
/**
* 分发员编辑实验室检测列表
*/
@ApiOperation("分发员编辑实验室检测列表")
- @PostMapping("/handOut/updateExecutiveList")
+ @PostMapping("/handOut/updateList")
@ResponseBody
public ReturnDTO updateExecutiveList(@RequestBody @Valid UpdateExecutiveListRequest request, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
@@ -185,9 +210,23 @@
return labExecutiveInfoService.updateExecutiveList(request);
}
-
/**
- * 各列表导出
+ * 各状态列表导出
*/
+ @ApiOperation("任务分发-各状态列表导出")
+ @PostMapping("/handOut/listExport")
+ @ResponseBody
+ public void export(@RequestBody @Valid SampleHandOutListRequest request, BindingResult bindingResult) throws Exception {
+ if (bindingResult.hasErrors()) {
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ Page page = PageFactory.defaultPage();
+ page.setCurrent(1);
+ page.setSearchCount(false);
+ page.setSize(Integer.MAX_VALUE);
+ Page responsePage = labExecutiveInfoService.handOutListPage(page, request);
+ List list = responsePage.getRecords();
+ super.exportExcel(SampleHandOutListResponse.class, list, ExportEnum.HANDOUT_EXPORT.getSheetName());
+ }
}
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java
index 9637b3a..7f8c1e7 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java
@@ -79,7 +79,7 @@
@ApiOperation("文件导出")
@PostMapping("/listExport")
@ResponseBody
- public void export(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) throws IOException {
+ public void export(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) throws IOException {
if (bindingResult.hasErrors()) {
throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
}
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 9e3d9fd..0c1cf2d 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
@@ -53,7 +53,9 @@
HANDLE_FAILED(500, "操作失败"),
QRCODE_FAILED(2409, "二维码生成失败"),
RECEIVE_SAMPLE_NOT_EXIST(2410, "待检测中不存在扫描收入的样品"),
- COMPLETE_SAMPLE_NOT_EXIST(2411, "检测中不存在扫描收入的样品");
+ COMPLETE_SAMPLE_NOT_EXIST(2411, "检测中不存在扫描收入的样品"),
+ CANNOT_CHANGE_MEASURE_INFO(2412, "无法更改非当前登录用户的检测信息"),
+ NON_EXIST_ORDER_OR_SAMPLE(2413, "不存在该委托单或该委托单下的样品");
private Integer code;
private String message;
diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java
index 06a3fd8..a43d9c9 100644
--- a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java
+++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java
@@ -36,7 +36,8 @@
DISPATCH_DATA("dispatchData", "dispatchData", "设备收发"),
ENVIRONMENT_DATA("environmentData", "environmentData", "环境记录单"),
ORIGIN_DATA("originData", "originData", "原始记录"),
- ADVICE_EXPORT("adviceData", "adviceData", "客户反馈");
+ ADVICE_EXPORT("adviceData", "adviceData", "客户反馈"),
+ HANDOUT_EXPORT("handoutData", "handoutData", "任务分发列表");
ExportEnum(String fileName, String sheetName, String description) {
this.fileName = fileName;
diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveInfoMapper.java
index e4cd952..2ce14af 100644
--- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveInfoMapper.java
+++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveInfoMapper.java
@@ -22,13 +22,17 @@
Integer getMeasureNumberStatus(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId);
- List selectExecutiveList(@Param("request") SampleHandOutDetailRequest request);
+ List selectExecutiveList(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId);
Page selectListByDeptIdAndStatus(Page page, @Param("request") SampleLabExecutiveListRequest request, @Param("deptId") Long deptId, @Param("status") String status, @Param("statusList") List statusList);
Page selectListByUserIdAndStatus(Page page, @Param("request") SampleLabExecutiveListRequest request, @Param("userId") Long userId, @Param("status") String status);
- int updateForSampleOperate(@Param("list") List list, @Param("userId") Long userId, @Param("status") String status);
+ int updateForSampleOperate(@Param("list") List list, @Param("userId") Long userId, @Param("status") String status);
- List selectListForSampleOperate(@Param("list") List requestList, @Param("userId") Long userId, @Param("status") String status);
+ List selectListForSampleOperate(@Param("list") List requestList, @Param("userId") Long userId, @Param("status") String status);
+
+ int updateForSendBack(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId);
+
+ Long selectMinSeq(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId);
}
diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveOperateLogMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveOperateLogMapper.java
index ed6f4a1..2bcc4e1 100644
--- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveOperateLogMapper.java
+++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveOperateLogMapper.java
@@ -2,7 +2,6 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.casic.missiles.dto.business.MeasureSendBackDTO;
-import com.casic.missiles.dto.business.SampleHandOutDetailRequest;
import com.casic.missiles.model.business.BusinessLabExecutiveOperateLog;
import org.apache.ibatis.annotations.Param;
@@ -19,5 +18,5 @@
*/
public interface BusinessLabExecutiveOperateLogMapper extends BaseMapper {
- List selectExecutiveOperateLogList(@Param("request") SampleHandOutDetailRequest request);
+ List selectExecutiveOperateLogList(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId);
}
diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java
index 235c95f..bddf56f 100644
--- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java
+++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java
@@ -5,7 +5,6 @@
import com.casic.missiles.dto.business.SampleHandOutDetailResponse;
import com.casic.missiles.dto.business.SampleHandOutListRequest;
import com.casic.missiles.dto.business.SampleHandOutListResponse;
-import com.casic.missiles.dto.business.SampleHandOutDetailRequest;
import com.casic.missiles.dto.business.dispatch.DeviceDispatchDTO;
import com.casic.missiles.dto.business.dispatch.DeviceDispatchVO;
import com.casic.missiles.dto.customer.sample.CustomerSampleListVO;
@@ -28,7 +27,7 @@
Page getSampleListByStatus(@Param("page") Page page, @Param("request") DeviceDispatchDTO request);
- SampleHandOutDetailResponse selectSampleDetail(@Param("request") SampleHandOutDetailRequest request);
+ SampleHandOutDetailResponse selectSampleDetail(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId);
int updateByOrderIdAndSampleId(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId, @Param("status") String status);
diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml
index 92402b7..87613eb 100644
--- a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml
+++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml
@@ -31,8 +31,8 @@
- csi.id AS sample_id, csi.sample_no, csi.sample_name, csi.sample_model, csi.manufacturing_no, bo.order_code AS orderNo, bo.id AS orderId,
- bo.customer_id, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, blei.require_certifications, blei.measure_status
+ blei.id AS id, csi.id AS sample_id, csi.sample_no, csi.sample_name, csi.sample_model, csi.manufacturing_no, bo.order_code AS orderNo, bo.id AS orderId,
+ bo.customer_id, bo.customer_no, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, blei.require_certifications, blei.measure_status
@@ -63,8 +63,8 @@
FROM business_lab_executive_info blei
JOIN sys_dept sd ON blei.measure_dept_id = sd.ID
LEFT JOIN sys_user su ON blei.measure_person_id = su.id
- WHERE blei.order_id = #{request.orderId}
- AND blei.sample_id = #{request.sampleId}
+ WHERE blei.order_id = #{orderId}
+ AND blei.sample_id = #{sampleId}
ORDER BY blei.measure_sequence ASC
@@ -161,7 +161,7 @@
-
+
SELECT order_id, sample_id
FROM business_lab_executive_info
WHERE measure_person_id = #{userId}
@@ -171,4 +171,27 @@
(#{item.orderId}, #{item.sampleId})
+
+
+ UPDATE business_lab_executive_info
+ SET measure_sequence = measure_sequence - 1
+ WHERE (measure_status IS NULL OR measure_status = "")
+ AND order_id = #{orderId}
+ AND sample_id = #{sampleId}
+
+
+
+ SELECT id FROM business_lab_executive_info
+ WHERE measure_sequence = (
+ SELECT MIN(measure_sequence)
+ FROM business_lab_executive_info
+ WHERE (measure_status IS NULL OR measure_status = "")
+ AND order_id = #{orderId}
+ AND sample_id = #{sampleId}
+ )
+ AND (measure_status IS NULL OR measure_status = "")
+ AND order_id = #{orderId}
+ AND sample_id = #{sampleId}
+
+
diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveOperateLogMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveOperateLogMapper.xml
index 9f6c97f..0a0b861 100644
--- a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveOperateLogMapper.xml
+++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveOperateLogMapper.xml
@@ -25,8 +25,8 @@
FROM business_lab_executive_operate_log bleoi
JOIN sys_dept sd ON bleoi.measure_dept_id = sd.ID
WHERE measure_status = 4
- AND bleoi.order_id = #{request.orderId}
- AND bleoi.sample_id = #{request.sampleId}
+ AND bleoi.order_id = #{orderId}
+ AND bleoi.sample_id = #{sampleId}
ORDER BY bleoi.create_time ASC
diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml
index c9b53d4..a2b0806 100644
--- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml
+++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml
@@ -18,7 +18,7 @@
csi.id AS sample_id, csi.sample_no, csi.sample_name, csi.sample_model, csi.manufacturing_no, bo.order_code AS orderNo, bo.id AS orderId,
- bo.customer_id, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, bosr.sample_status
+ bo.customer_id, bo.customer_no, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, bosr.sample_status
@@ -136,6 +136,12 @@
AND csi.sample_belong = #{request.sampleBelong}
+
+ AND csi.id IN
+
+ #{item}
+
+
ORDER BY bosr.update_time DESC
@@ -146,8 +152,8 @@
JOIN customer_sample_info csi ON bosr.sample_id = csi.id
JOIN business_order bo ON bosr.order_id = bo.id
WHERE bo.is_del = 0 AND csi.is_del = 0
- AND bosr.order_id = #{request.orderId}
- AND bosr.sample_id = #{request.sampleId}
+ AND bosr.order_id = #{orderId}
+ AND bosr.sample_id = #{sampleId}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveDetailRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveDetailRequest.java
new file mode 100644
index 0000000..8817b91
--- /dev/null
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveDetailRequest.java
@@ -0,0 +1,24 @@
+package com.casic.missiles.dto.business;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @Description:
+ * @Author: wangpeng
+ * @Date: 2023/2/21 10:00
+ */
+@Data
+@ApiModel
+public class ExecutiveDetailRequest {
+ @NotNull(message = "委托书id不能为空")
+ @ApiModelProperty(value = "委托书id", dataType = "Long")
+ private Long orderId;
+
+ @NotNull(message = "样品id不能为空")
+ @ApiModelProperty(value = "样品id", dataType = "Long")
+ private Long sampleId;
+}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveDetailResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveDetailResponse.java
new file mode 100644
index 0000000..35452b9
--- /dev/null
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveDetailResponse.java
@@ -0,0 +1,139 @@
+package com.casic.missiles.dto.business;
+
+import com.casic.missiles.annotation.DictCodeField;
+import com.casic.missiles.constants.MeterDictCode;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @Description: 任务分发-详情
+ * @Author: wangpeng
+ * @Date: 2023/2/9 11:41
+ */
+@Data
+@ApiModel
+public class ExecutiveDetailResponse {
+ @ApiModelProperty(value = "样品id", dataType = "Long")
+ private Long sampleId;
+
+ @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 manufacturer;
+
+ @ApiModelProperty(value = "厂家国别", dataType = "String")
+ private String manufacturerCountry;
+
+ @ApiModelProperty(value = "出厂年月", dataType = "String")
+ private String manufacturingDate;
+
+ @ApiModelProperty(value = "ABC", dataType = "String")
+ private String abc;
+
+ @ApiModelProperty(value = "委托方id", dataType = "Long")
+ private Long customerId;
+
+ @ApiModelProperty(value = "委托方名称", dataType = "String")
+ private String customerName;
+
+ @ApiModelProperty(value = "委托方电话", dataType = "String")
+ private String customerPhone;
+
+ //需求中有,建议去掉,否则多关联一张表
+// @ApiModelProperty(value = "委托方邮编", dataType = "String")
+// private String postalCode;
+
+// @ApiModelProperty(value = "委托方公司地址-国家", dataType = "String")
+// private String addressCountry;
+//
+// @ApiModelProperty(value = "委托方公司地址-省", dataType = "String")
+// private String addressProvince;
+//
+// @ApiModelProperty(value = "委托方公司地址-市", dataType = "String")
+// private String addressCity;
+//
+// @ApiModelProperty(value = "委托方公司地址-区", dataType = "String")
+// private String addressArea;
+
+ @ApiModelProperty(value = "委托方公司地址-详细地址", dataType = "String")
+ private String customerAddress;
+
+// @ApiModelProperty(value = "委托方公司地址-国家名字", dataType = "String")
+// private String addressCountryName;
+//
+// @ApiModelProperty(value = "委托方公司地址-省名字", dataType = "String")
+// private String addressProvinceName;
+//
+// @ApiModelProperty(value = "委托方公司地址-市名字", dataType = "String")
+// private String addressCityName;
+//
+// @ApiModelProperty(value = "委托方公司地址-区名字", dataType = "String")
+// private String addressAreaName;
+
+ @ApiModelProperty(value = "委托书id", dataType = "Long")
+ private String orderId;
+
+ @ApiModelProperty(value = "委托书编号", dataType = "String")
+ private String orderCode;
+
+ @ApiModelProperty(value = "送样人", dataType = "String")
+ private String deliverer;
+
+ @ApiModelProperty(value = "送样人联系方式", dataType = "String")
+ private String delivererTel;
+
+ @ApiModelProperty(value = "预约送达时间", dataType = "String")
+ private String planDeliverTime;
+
+ @ApiModelProperty(value = "要求检完时间", dataType = "String")
+ private String requireOverTime;
+
+ @ApiModelProperty(value = "检定项目", dataType = "String")
+ private String measureContent;
+
+ @ApiModelProperty(value = "检定周期(月)", dataType = "String")
+ private String measurePeriod;
+
+ @ApiModelProperty(value = "检定日期", dataType = "String")
+ private String measureLastDate;
+
+ @ApiModelProperty(value = "有效日期", dataType = "String")
+ private String effectiveDate;
+
+ //需求中已删除该字段展示,不展示整个样品的检定结果,只在证书里展示各证书的检定结果
+// @ApiModelProperty(value = "检定结果", dataType = "String")
+// private String measureResult;
+
+ @ApiModelProperty(value = "备注", dataType = "String")
+ private String remark;
+
+ @ApiModelProperty(value = "说明书", dataType = "String")
+ private String minioFileName;
+
+ @ApiModelProperty(value = "检定方式(字典code)", dataType = "String")
+ @DictCodeField(message = "检定方式不合法", cacheName = MeterDictCode.MEASURE_TYPE)
+ private String measureType;
+
+ @ApiModelProperty(value = "检定方式(字典value)", dataType = "String")
+ private String measureTypeName;
+
+ @ApiModelProperty(value = "标签绑定", dataType = "String")
+ private String labelBind;
+
+ @ApiModelProperty(value = "检定流程", dataType = "List")
+ private List measureProcessList;
+
+}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveSendBackRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveSendBackRequest.java
new file mode 100644
index 0000000..832f707
--- /dev/null
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveSendBackRequest.java
@@ -0,0 +1,38 @@
+package com.casic.missiles.dto.business;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @Description:
+ * @Author: wangpeng
+ * @Date: 2023/2/21 10:29
+ */
+@Data
+@ApiModel
+public class ExecutiveSendBackRequest {
+ @NotNull(message = "实验室检测id不能为空")
+ @ApiModelProperty(value = "实验室检测id", dataType = "Long")
+ private Long id;
+
+ @NotNull(message = "委托书id不能为空")
+ @ApiModelProperty(value = "委托书id", dataType = "Long")
+ private Long orderId;
+
+ @NotNull(message = "样品id不能为空")
+ @ApiModelProperty(value = "样品id", dataType = "Long")
+ private Long sampleId;
+
+ @NotNull(message = "检定环节不能为空")
+ @ApiModelProperty(value = "检定环节,实验室id", dataType = "Long")
+ private Long measureSegmentId;
+
+ @ApiModelProperty(value = "检定人员id", dataType = "Long")
+ private Long measurePersonId;
+
+ @ApiModelProperty(value = "退回原因", dataType = "Long")
+ private String operateReason;
+}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/MySampleOperateRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/MySampleOperateRequest.java
deleted file mode 100644
index 15f2fe9..0000000
--- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/MySampleOperateRequest.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package com.casic.missiles.dto.business;
-
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
-import javax.validation.constraints.NotNull;
-
-/**
- * @Description: 实验室检测-我的检测-检定人扫描收入请求实体
- * @Author: wangpeng
- * @Date: 2023/2/15 15:31
- */
-@Data
-@ApiModel
-public class MySampleOperateRequest {
- @NotNull(message = "委托书id不能为空")
- @ApiModelProperty(value = "委托书id", dataType = "Long")
- private Long orderId;
-
- @NotNull(message = "样品id不能为空")
- @ApiModelProperty(value = "样品id", dataType = "Long")
- private Long sampleId;
-}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListRequest.java
index 5a9d04a..7daf5b9 100644
--- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListRequest.java
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListRequest.java
@@ -7,6 +7,7 @@
import lombok.Data;
import javax.validation.constraints.NotBlank;
+import java.util.List;
@Data
@ApiModel
@@ -44,4 +45,7 @@
@ApiModelProperty(value = "样品属性(字典code)", dataType = "String")
private String sampleBelong;
+ @ApiModelProperty(value = "筛选样品ids(sampleId列表,导出使用)", dataType = "List")
+ private List ids;
+
}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java
index 0e34812..d2a665e 100644
--- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java
@@ -46,9 +46,12 @@
@ExcelProperty(value = "委托书编号", order = 4)
private String orderNo;
+ @ApiModelProperty(value = "委托方id", dataType = "Long")
+ private Long customerId;
+
@ApiModelProperty(value = "委托方代码", dataType = "String")
@ExcelProperty(value = "委托方代码", order = 5)
- private String customerId;
+ private String customerNo;
@ApiModelProperty(value = "委托方名称", dataType = "String")
@ExcelProperty(value = "委托方名称", order = 6)
@@ -91,7 +94,7 @@
@ExcelProperty(value = "分发性质", order = 14)
private String handOutProperty;
- @JSONField(serialize = false)
+ @ApiModelProperty(value = "委托书id", dataType = "String")
private Long orderId;
@JSONField(serialize = false)
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleLabExecutiveListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleLabExecutiveListResponse.java
index 89f18b9..9e31fa0 100644
--- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleLabExecutiveListResponse.java
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleLabExecutiveListResponse.java
@@ -22,6 +22,8 @@
@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN)
@ExcelIgnoreUnannotated
public class SampleLabExecutiveListResponse {
+ @ApiModelProperty(value = "实验室检测id(退回操作中使用)", dataType = "Long")
+ private Long id;
@ApiModelProperty(value = "样品id", dataType = "Long")
private Long sampleId;
@@ -46,9 +48,13 @@
@ExcelProperty(value = "委托书编号", order = 4)
private String orderNo;
+ @ApiModelProperty(value = "委托方id", dataType = "String")
+// @ExcelProperty(value = "委托方id", order = 5)
+ private Long customerId;
+
@ApiModelProperty(value = "委托方代码", dataType = "String")
@ExcelProperty(value = "委托方代码", order = 5)
- private String customerId;
+ private String customerNo;
@ApiModelProperty(value = "委托方名称", dataType = "String")
@ExcelProperty(value = "委托方名称", order = 6)
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleOperateRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleOperateRequest.java
new file mode 100644
index 0000000..86f3ebc
--- /dev/null
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleOperateRequest.java
@@ -0,0 +1,24 @@
+package com.casic.missiles.dto.business;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @Description: 实验室检测-我的检测-检定人扫描收入请求实体
+ * @Author: wangpeng
+ * @Date: 2023/2/15 15:31
+ */
+@Data
+@ApiModel
+public class SampleOperateRequest {
+ @NotNull(message = "委托书id不能为空")
+ @ApiModelProperty(value = "委托书id", dataType = "Long")
+ private Long orderId;
+
+ @NotNull(message = "样品id不能为空")
+ @ApiModelProperty(value = "样品id", dataType = "Long")
+ private Long sampleId;
+}
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessLabExecutiveInfoController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessLabExecutiveInfoController.java
index c14c3be..aa330f9 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessLabExecutiveInfoController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessLabExecutiveInfoController.java
@@ -7,6 +7,7 @@
import com.casic.missiles.dto.ReturnDTO;
import com.casic.missiles.dto.ReturnUtil;
import com.casic.missiles.dto.business.*;
+import com.casic.missiles.enums.ExportEnum;
import com.casic.missiles.exception.BusinessException;
import com.casic.missiles.model.exception.enums.CoreExceptionEnum;
import com.casic.missiles.service.business.IBusinessLabExecutiveInfoService;
@@ -25,9 +26,9 @@
*
* 业务管理-实验室检定信息记录表(用于流程中的实验室分配及后续检定过程查询) 前端控制器
* 样品状态(任务收发&任务分发使用,委托书和样品关联表中的状态):
- * 1:待收入;2:待分发;3:检测中;4:检测完成;5:待归还;6:已归还;7:无需检测;8:已超期
+ * 1:待收入;2:待分发;3:检测中;4:检测完成;5:待归还;6:已归还;7:无需检测;8:已超期
* 实验室检定状态(实验室检测使用,实验室检定信息记录表中的状态):
- * 1:待分配(负责人);2:待检测(检定人);3:检测完成;4:退回;5:终止(已收入中点击终止更新实验室中待分配和待检测的的状态为已终止)
+ * 1:待分配(负责人);2:待检测(检定人);3:检测完成;4:退回;5:终止(已收入中点击终止更新实验室中待分配和待检测的的状态为已终止)
*
*
* @author wangpeng
@@ -135,7 +136,7 @@
@ApiOperation("实验室检测-我的检测-检定人扫描收入(待检测->检测中)")
@PostMapping("/myExecutive/receive")
@ResponseBody
- public ReturnDTO sampleReceive(@RequestBody @Valid List requestList, BindingResult bindingResult) {
+ public ReturnDTO sampleReceive(@RequestBody @Valid List requestList, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
}
@@ -148,7 +149,7 @@
@ApiOperation("实验室检测-负责人/检定人扫描检完(检测中->检测完)")
@PostMapping("/myExecutive/complete")
@ResponseBody
- public ReturnDTO sampleExecutiveComplete(@RequestBody @Valid List requestList, BindingResult bindingResult) {
+ public ReturnDTO sampleExecutiveComplete(@RequestBody @Valid List requestList, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
}
@@ -158,25 +159,49 @@
/**
* 实验室检测-部门检测/我的检测 编辑(只能修改应出具证书)
*/
+ @ApiOperation("实验室检测-部门检测/我的检测 编辑(只能修改应出具证书)")
+ @PostMapping("/executive/update")
+ @ResponseBody
+ public ReturnDTO updateExecutive(@RequestBody @Valid UpdateExecutiveRequest request, BindingResult bindingResult) {
+ if (bindingResult.hasErrors()) {
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ return labExecutiveInfoService.updateExecutive(request);
+ }
/**
* 实验室检测-部门检测/我的检测 详情
*/
+ @ApiOperation("实验室检测-部门检测/我的检测 详情")
+ @PostMapping("/executive/detail")
+ @ResponseBody
+ public ReturnDTO executiveDetail(@RequestBody @Valid ExecutiveDetailRequest request, BindingResult bindingResult) throws Exception {
+ if (bindingResult.hasErrors()) {
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ return ReturnUtil.success(labExecutiveInfoService.executiveDetail(request));
+ }
/**
* 实验室检测-部门检测/我的检测 退回(待检测/检测中->退回)
- * 退回后会将下一个要执行的实验室检测状态更新为待分配,将后面的实验室顺序变更为连续(都进行减1,)
- * 可能出现最后一个检测的实验室退回,这样的情况是否需要把样品状态改为检测完,还是等分发员再增加实验室或增加个分发员点击完成的按钮
+ * 退回后会将下一个要执行的实验室检测状态更新为待分配,将后面的实验室顺序变更为连续(都进行减1)
+ * 最后一个检测的实验室退回,等分发员再增加实验室或设备收发中的已收入直接手动点击完成
*/
-
-
-
+ @ApiOperation("实验室检测-部门检测/我的检测 退回(待检测/检测中->退回)")
+ @PostMapping("/executive/sendBack")
+ @ResponseBody
+ public ReturnDTO executiveSendBack(@RequestBody @Valid ExecutiveSendBackRequest request, BindingResult bindingResult) {
+ if (bindingResult.hasErrors()) {
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ return labExecutiveInfoService.sampleExecutiveSendBack(request);
+ }
/**
* 分发员编辑实验室检测列表
*/
@ApiOperation("分发员编辑实验室检测列表")
- @PostMapping("/handOut/updateExecutiveList")
+ @PostMapping("/handOut/updateList")
@ResponseBody
public ReturnDTO updateExecutiveList(@RequestBody @Valid UpdateExecutiveListRequest request, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
@@ -185,9 +210,23 @@
return labExecutiveInfoService.updateExecutiveList(request);
}
-
/**
- * 各列表导出
+ * 各状态列表导出
*/
+ @ApiOperation("任务分发-各状态列表导出")
+ @PostMapping("/handOut/listExport")
+ @ResponseBody
+ public void export(@RequestBody @Valid SampleHandOutListRequest request, BindingResult bindingResult) throws Exception {
+ if (bindingResult.hasErrors()) {
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ Page page = PageFactory.defaultPage();
+ page.setCurrent(1);
+ page.setSearchCount(false);
+ page.setSize(Integer.MAX_VALUE);
+ Page responsePage = labExecutiveInfoService.handOutListPage(page, request);
+ List list = responsePage.getRecords();
+ super.exportExcel(SampleHandOutListResponse.class, list, ExportEnum.HANDOUT_EXPORT.getSheetName());
+ }
}
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java
index 9637b3a..7f8c1e7 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java
@@ -79,7 +79,7 @@
@ApiOperation("文件导出")
@PostMapping("/listExport")
@ResponseBody
- public void export(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) throws IOException {
+ public void export(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) throws IOException {
if (bindingResult.hasErrors()) {
throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
}
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 9e3d9fd..0c1cf2d 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
@@ -53,7 +53,9 @@
HANDLE_FAILED(500, "操作失败"),
QRCODE_FAILED(2409, "二维码生成失败"),
RECEIVE_SAMPLE_NOT_EXIST(2410, "待检测中不存在扫描收入的样品"),
- COMPLETE_SAMPLE_NOT_EXIST(2411, "检测中不存在扫描收入的样品");
+ COMPLETE_SAMPLE_NOT_EXIST(2411, "检测中不存在扫描收入的样品"),
+ CANNOT_CHANGE_MEASURE_INFO(2412, "无法更改非当前登录用户的检测信息"),
+ NON_EXIST_ORDER_OR_SAMPLE(2413, "不存在该委托单或该委托单下的样品");
private Integer code;
private String message;
diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java
index 06a3fd8..a43d9c9 100644
--- a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java
+++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java
@@ -36,7 +36,8 @@
DISPATCH_DATA("dispatchData", "dispatchData", "设备收发"),
ENVIRONMENT_DATA("environmentData", "environmentData", "环境记录单"),
ORIGIN_DATA("originData", "originData", "原始记录"),
- ADVICE_EXPORT("adviceData", "adviceData", "客户反馈");
+ ADVICE_EXPORT("adviceData", "adviceData", "客户反馈"),
+ HANDOUT_EXPORT("handoutData", "handoutData", "任务分发列表");
ExportEnum(String fileName, String sheetName, String description) {
this.fileName = fileName;
diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveInfoMapper.java
index e4cd952..2ce14af 100644
--- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveInfoMapper.java
+++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveInfoMapper.java
@@ -22,13 +22,17 @@
Integer getMeasureNumberStatus(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId);
- List selectExecutiveList(@Param("request") SampleHandOutDetailRequest request);
+ List selectExecutiveList(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId);
Page selectListByDeptIdAndStatus(Page page, @Param("request") SampleLabExecutiveListRequest request, @Param("deptId") Long deptId, @Param("status") String status, @Param("statusList") List statusList);
Page selectListByUserIdAndStatus(Page page, @Param("request") SampleLabExecutiveListRequest request, @Param("userId") Long userId, @Param("status") String status);
- int updateForSampleOperate(@Param("list") List list, @Param("userId") Long userId, @Param("status") String status);
+ int updateForSampleOperate(@Param("list") List list, @Param("userId") Long userId, @Param("status") String status);
- List selectListForSampleOperate(@Param("list") List requestList, @Param("userId") Long userId, @Param("status") String status);
+ List selectListForSampleOperate(@Param("list") List requestList, @Param("userId") Long userId, @Param("status") String status);
+
+ int updateForSendBack(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId);
+
+ Long selectMinSeq(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId);
}
diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveOperateLogMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveOperateLogMapper.java
index ed6f4a1..2bcc4e1 100644
--- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveOperateLogMapper.java
+++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveOperateLogMapper.java
@@ -2,7 +2,6 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.casic.missiles.dto.business.MeasureSendBackDTO;
-import com.casic.missiles.dto.business.SampleHandOutDetailRequest;
import com.casic.missiles.model.business.BusinessLabExecutiveOperateLog;
import org.apache.ibatis.annotations.Param;
@@ -19,5 +18,5 @@
*/
public interface BusinessLabExecutiveOperateLogMapper extends BaseMapper {
- List selectExecutiveOperateLogList(@Param("request") SampleHandOutDetailRequest request);
+ List selectExecutiveOperateLogList(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId);
}
diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java
index 235c95f..bddf56f 100644
--- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java
+++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java
@@ -5,7 +5,6 @@
import com.casic.missiles.dto.business.SampleHandOutDetailResponse;
import com.casic.missiles.dto.business.SampleHandOutListRequest;
import com.casic.missiles.dto.business.SampleHandOutListResponse;
-import com.casic.missiles.dto.business.SampleHandOutDetailRequest;
import com.casic.missiles.dto.business.dispatch.DeviceDispatchDTO;
import com.casic.missiles.dto.business.dispatch.DeviceDispatchVO;
import com.casic.missiles.dto.customer.sample.CustomerSampleListVO;
@@ -28,7 +27,7 @@
Page getSampleListByStatus(@Param("page") Page page, @Param("request") DeviceDispatchDTO request);
- SampleHandOutDetailResponse selectSampleDetail(@Param("request") SampleHandOutDetailRequest request);
+ SampleHandOutDetailResponse selectSampleDetail(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId);
int updateByOrderIdAndSampleId(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId, @Param("status") String status);
diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml
index 92402b7..87613eb 100644
--- a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml
+++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml
@@ -31,8 +31,8 @@
- csi.id AS sample_id, csi.sample_no, csi.sample_name, csi.sample_model, csi.manufacturing_no, bo.order_code AS orderNo, bo.id AS orderId,
- bo.customer_id, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, blei.require_certifications, blei.measure_status
+ blei.id AS id, csi.id AS sample_id, csi.sample_no, csi.sample_name, csi.sample_model, csi.manufacturing_no, bo.order_code AS orderNo, bo.id AS orderId,
+ bo.customer_id, bo.customer_no, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, blei.require_certifications, blei.measure_status
@@ -63,8 +63,8 @@
FROM business_lab_executive_info blei
JOIN sys_dept sd ON blei.measure_dept_id = sd.ID
LEFT JOIN sys_user su ON blei.measure_person_id = su.id
- WHERE blei.order_id = #{request.orderId}
- AND blei.sample_id = #{request.sampleId}
+ WHERE blei.order_id = #{orderId}
+ AND blei.sample_id = #{sampleId}
ORDER BY blei.measure_sequence ASC
@@ -161,7 +161,7 @@
-
+
SELECT order_id, sample_id
FROM business_lab_executive_info
WHERE measure_person_id = #{userId}
@@ -171,4 +171,27 @@
(#{item.orderId}, #{item.sampleId})
+
+
+ UPDATE business_lab_executive_info
+ SET measure_sequence = measure_sequence - 1
+ WHERE (measure_status IS NULL OR measure_status = "")
+ AND order_id = #{orderId}
+ AND sample_id = #{sampleId}
+
+
+
+ SELECT id FROM business_lab_executive_info
+ WHERE measure_sequence = (
+ SELECT MIN(measure_sequence)
+ FROM business_lab_executive_info
+ WHERE (measure_status IS NULL OR measure_status = "")
+ AND order_id = #{orderId}
+ AND sample_id = #{sampleId}
+ )
+ AND (measure_status IS NULL OR measure_status = "")
+ AND order_id = #{orderId}
+ AND sample_id = #{sampleId}
+
+
diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveOperateLogMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveOperateLogMapper.xml
index 9f6c97f..0a0b861 100644
--- a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveOperateLogMapper.xml
+++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveOperateLogMapper.xml
@@ -25,8 +25,8 @@
FROM business_lab_executive_operate_log bleoi
JOIN sys_dept sd ON bleoi.measure_dept_id = sd.ID
WHERE measure_status = 4
- AND bleoi.order_id = #{request.orderId}
- AND bleoi.sample_id = #{request.sampleId}
+ AND bleoi.order_id = #{orderId}
+ AND bleoi.sample_id = #{sampleId}
ORDER BY bleoi.create_time ASC
diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml
index c9b53d4..a2b0806 100644
--- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml
+++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml
@@ -18,7 +18,7 @@
csi.id AS sample_id, csi.sample_no, csi.sample_name, csi.sample_model, csi.manufacturing_no, bo.order_code AS orderNo, bo.id AS orderId,
- bo.customer_id, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, bosr.sample_status
+ bo.customer_id, bo.customer_no, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, bosr.sample_status
@@ -136,6 +136,12 @@
AND csi.sample_belong = #{request.sampleBelong}
+
+ AND csi.id IN
+
+ #{item}
+
+
ORDER BY bosr.update_time DESC
@@ -146,8 +152,8 @@
JOIN customer_sample_info csi ON bosr.sample_id = csi.id
JOIN business_order bo ON bosr.order_id = bo.id
WHERE bo.is_del = 0 AND csi.is_del = 0
- AND bosr.order_id = #{request.orderId}
- AND bosr.sample_id = #{request.sampleId}
+ AND bosr.order_id = #{orderId}
+ AND bosr.sample_id = #{sampleId}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveDetailRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveDetailRequest.java
new file mode 100644
index 0000000..8817b91
--- /dev/null
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveDetailRequest.java
@@ -0,0 +1,24 @@
+package com.casic.missiles.dto.business;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @Description:
+ * @Author: wangpeng
+ * @Date: 2023/2/21 10:00
+ */
+@Data
+@ApiModel
+public class ExecutiveDetailRequest {
+ @NotNull(message = "委托书id不能为空")
+ @ApiModelProperty(value = "委托书id", dataType = "Long")
+ private Long orderId;
+
+ @NotNull(message = "样品id不能为空")
+ @ApiModelProperty(value = "样品id", dataType = "Long")
+ private Long sampleId;
+}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveDetailResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveDetailResponse.java
new file mode 100644
index 0000000..35452b9
--- /dev/null
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveDetailResponse.java
@@ -0,0 +1,139 @@
+package com.casic.missiles.dto.business;
+
+import com.casic.missiles.annotation.DictCodeField;
+import com.casic.missiles.constants.MeterDictCode;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @Description: 任务分发-详情
+ * @Author: wangpeng
+ * @Date: 2023/2/9 11:41
+ */
+@Data
+@ApiModel
+public class ExecutiveDetailResponse {
+ @ApiModelProperty(value = "样品id", dataType = "Long")
+ private Long sampleId;
+
+ @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 manufacturer;
+
+ @ApiModelProperty(value = "厂家国别", dataType = "String")
+ private String manufacturerCountry;
+
+ @ApiModelProperty(value = "出厂年月", dataType = "String")
+ private String manufacturingDate;
+
+ @ApiModelProperty(value = "ABC", dataType = "String")
+ private String abc;
+
+ @ApiModelProperty(value = "委托方id", dataType = "Long")
+ private Long customerId;
+
+ @ApiModelProperty(value = "委托方名称", dataType = "String")
+ private String customerName;
+
+ @ApiModelProperty(value = "委托方电话", dataType = "String")
+ private String customerPhone;
+
+ //需求中有,建议去掉,否则多关联一张表
+// @ApiModelProperty(value = "委托方邮编", dataType = "String")
+// private String postalCode;
+
+// @ApiModelProperty(value = "委托方公司地址-国家", dataType = "String")
+// private String addressCountry;
+//
+// @ApiModelProperty(value = "委托方公司地址-省", dataType = "String")
+// private String addressProvince;
+//
+// @ApiModelProperty(value = "委托方公司地址-市", dataType = "String")
+// private String addressCity;
+//
+// @ApiModelProperty(value = "委托方公司地址-区", dataType = "String")
+// private String addressArea;
+
+ @ApiModelProperty(value = "委托方公司地址-详细地址", dataType = "String")
+ private String customerAddress;
+
+// @ApiModelProperty(value = "委托方公司地址-国家名字", dataType = "String")
+// private String addressCountryName;
+//
+// @ApiModelProperty(value = "委托方公司地址-省名字", dataType = "String")
+// private String addressProvinceName;
+//
+// @ApiModelProperty(value = "委托方公司地址-市名字", dataType = "String")
+// private String addressCityName;
+//
+// @ApiModelProperty(value = "委托方公司地址-区名字", dataType = "String")
+// private String addressAreaName;
+
+ @ApiModelProperty(value = "委托书id", dataType = "Long")
+ private String orderId;
+
+ @ApiModelProperty(value = "委托书编号", dataType = "String")
+ private String orderCode;
+
+ @ApiModelProperty(value = "送样人", dataType = "String")
+ private String deliverer;
+
+ @ApiModelProperty(value = "送样人联系方式", dataType = "String")
+ private String delivererTel;
+
+ @ApiModelProperty(value = "预约送达时间", dataType = "String")
+ private String planDeliverTime;
+
+ @ApiModelProperty(value = "要求检完时间", dataType = "String")
+ private String requireOverTime;
+
+ @ApiModelProperty(value = "检定项目", dataType = "String")
+ private String measureContent;
+
+ @ApiModelProperty(value = "检定周期(月)", dataType = "String")
+ private String measurePeriod;
+
+ @ApiModelProperty(value = "检定日期", dataType = "String")
+ private String measureLastDate;
+
+ @ApiModelProperty(value = "有效日期", dataType = "String")
+ private String effectiveDate;
+
+ //需求中已删除该字段展示,不展示整个样品的检定结果,只在证书里展示各证书的检定结果
+// @ApiModelProperty(value = "检定结果", dataType = "String")
+// private String measureResult;
+
+ @ApiModelProperty(value = "备注", dataType = "String")
+ private String remark;
+
+ @ApiModelProperty(value = "说明书", dataType = "String")
+ private String minioFileName;
+
+ @ApiModelProperty(value = "检定方式(字典code)", dataType = "String")
+ @DictCodeField(message = "检定方式不合法", cacheName = MeterDictCode.MEASURE_TYPE)
+ private String measureType;
+
+ @ApiModelProperty(value = "检定方式(字典value)", dataType = "String")
+ private String measureTypeName;
+
+ @ApiModelProperty(value = "标签绑定", dataType = "String")
+ private String labelBind;
+
+ @ApiModelProperty(value = "检定流程", dataType = "List")
+ private List measureProcessList;
+
+}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveSendBackRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveSendBackRequest.java
new file mode 100644
index 0000000..832f707
--- /dev/null
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveSendBackRequest.java
@@ -0,0 +1,38 @@
+package com.casic.missiles.dto.business;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @Description:
+ * @Author: wangpeng
+ * @Date: 2023/2/21 10:29
+ */
+@Data
+@ApiModel
+public class ExecutiveSendBackRequest {
+ @NotNull(message = "实验室检测id不能为空")
+ @ApiModelProperty(value = "实验室检测id", dataType = "Long")
+ private Long id;
+
+ @NotNull(message = "委托书id不能为空")
+ @ApiModelProperty(value = "委托书id", dataType = "Long")
+ private Long orderId;
+
+ @NotNull(message = "样品id不能为空")
+ @ApiModelProperty(value = "样品id", dataType = "Long")
+ private Long sampleId;
+
+ @NotNull(message = "检定环节不能为空")
+ @ApiModelProperty(value = "检定环节,实验室id", dataType = "Long")
+ private Long measureSegmentId;
+
+ @ApiModelProperty(value = "检定人员id", dataType = "Long")
+ private Long measurePersonId;
+
+ @ApiModelProperty(value = "退回原因", dataType = "Long")
+ private String operateReason;
+}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/MySampleOperateRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/MySampleOperateRequest.java
deleted file mode 100644
index 15f2fe9..0000000
--- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/MySampleOperateRequest.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package com.casic.missiles.dto.business;
-
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
-import javax.validation.constraints.NotNull;
-
-/**
- * @Description: 实验室检测-我的检测-检定人扫描收入请求实体
- * @Author: wangpeng
- * @Date: 2023/2/15 15:31
- */
-@Data
-@ApiModel
-public class MySampleOperateRequest {
- @NotNull(message = "委托书id不能为空")
- @ApiModelProperty(value = "委托书id", dataType = "Long")
- private Long orderId;
-
- @NotNull(message = "样品id不能为空")
- @ApiModelProperty(value = "样品id", dataType = "Long")
- private Long sampleId;
-}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListRequest.java
index 5a9d04a..7daf5b9 100644
--- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListRequest.java
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListRequest.java
@@ -7,6 +7,7 @@
import lombok.Data;
import javax.validation.constraints.NotBlank;
+import java.util.List;
@Data
@ApiModel
@@ -44,4 +45,7 @@
@ApiModelProperty(value = "样品属性(字典code)", dataType = "String")
private String sampleBelong;
+ @ApiModelProperty(value = "筛选样品ids(sampleId列表,导出使用)", dataType = "List")
+ private List ids;
+
}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java
index 0e34812..d2a665e 100644
--- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java
@@ -46,9 +46,12 @@
@ExcelProperty(value = "委托书编号", order = 4)
private String orderNo;
+ @ApiModelProperty(value = "委托方id", dataType = "Long")
+ private Long customerId;
+
@ApiModelProperty(value = "委托方代码", dataType = "String")
@ExcelProperty(value = "委托方代码", order = 5)
- private String customerId;
+ private String customerNo;
@ApiModelProperty(value = "委托方名称", dataType = "String")
@ExcelProperty(value = "委托方名称", order = 6)
@@ -91,7 +94,7 @@
@ExcelProperty(value = "分发性质", order = 14)
private String handOutProperty;
- @JSONField(serialize = false)
+ @ApiModelProperty(value = "委托书id", dataType = "String")
private Long orderId;
@JSONField(serialize = false)
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleLabExecutiveListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleLabExecutiveListResponse.java
index 89f18b9..9e31fa0 100644
--- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleLabExecutiveListResponse.java
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleLabExecutiveListResponse.java
@@ -22,6 +22,8 @@
@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN)
@ExcelIgnoreUnannotated
public class SampleLabExecutiveListResponse {
+ @ApiModelProperty(value = "实验室检测id(退回操作中使用)", dataType = "Long")
+ private Long id;
@ApiModelProperty(value = "样品id", dataType = "Long")
private Long sampleId;
@@ -46,9 +48,13 @@
@ExcelProperty(value = "委托书编号", order = 4)
private String orderNo;
+ @ApiModelProperty(value = "委托方id", dataType = "String")
+// @ExcelProperty(value = "委托方id", order = 5)
+ private Long customerId;
+
@ApiModelProperty(value = "委托方代码", dataType = "String")
@ExcelProperty(value = "委托方代码", order = 5)
- private String customerId;
+ private String customerNo;
@ApiModelProperty(value = "委托方名称", dataType = "String")
@ExcelProperty(value = "委托方名称", order = 6)
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleOperateRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleOperateRequest.java
new file mode 100644
index 0000000..86f3ebc
--- /dev/null
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleOperateRequest.java
@@ -0,0 +1,24 @@
+package com.casic.missiles.dto.business;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @Description: 实验室检测-我的检测-检定人扫描收入请求实体
+ * @Author: wangpeng
+ * @Date: 2023/2/15 15:31
+ */
+@Data
+@ApiModel
+public class SampleOperateRequest {
+ @NotNull(message = "委托书id不能为空")
+ @ApiModelProperty(value = "委托书id", dataType = "Long")
+ private Long orderId;
+
+ @NotNull(message = "样品id不能为空")
+ @ApiModelProperty(value = "样品id", dataType = "Long")
+ private Long sampleId;
+}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/UpdateExecutiveDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/UpdateExecutiveDTO.java
deleted file mode 100644
index eb1210a..0000000
--- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/UpdateExecutiveDTO.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package com.casic.missiles.dto.business;
-
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
-import javax.validation.constraints.NotNull;
-
-/**
- * @Description:
- * @Author: wangpeng
- * @Date: 2023/2/20 11:22
- */
-@Data
-@ApiModel
-public class UpdateExecutiveDTO {
- @ApiModelProperty(value = "主键id(有则必传)", dataType = "Long")
- private Long id;
-
- @NotNull(message = "检定环节不能为空")
- @ApiModelProperty(value = "检定环节,实验室id", dataType = "Long")
- private Long measureSegmentId;
-
- @ApiModelProperty(value = "检定人员id", dataType = "Long")
- private Long measurePersonId;
-
- @ApiModelProperty(value = "检测顺序", dataType = "Integer")
- @NotNull(message = "检测顺序不能为空")
- private Integer measureSequence;
-
- @ApiModelProperty(value = "检定状态(字典code)(流程中不能编辑的节点必传参数)", dataType = "String")
- private String measureStatus;
-}
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessLabExecutiveInfoController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessLabExecutiveInfoController.java
index c14c3be..aa330f9 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessLabExecutiveInfoController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessLabExecutiveInfoController.java
@@ -7,6 +7,7 @@
import com.casic.missiles.dto.ReturnDTO;
import com.casic.missiles.dto.ReturnUtil;
import com.casic.missiles.dto.business.*;
+import com.casic.missiles.enums.ExportEnum;
import com.casic.missiles.exception.BusinessException;
import com.casic.missiles.model.exception.enums.CoreExceptionEnum;
import com.casic.missiles.service.business.IBusinessLabExecutiveInfoService;
@@ -25,9 +26,9 @@
*
* 业务管理-实验室检定信息记录表(用于流程中的实验室分配及后续检定过程查询) 前端控制器
* 样品状态(任务收发&任务分发使用,委托书和样品关联表中的状态):
- * 1:待收入;2:待分发;3:检测中;4:检测完成;5:待归还;6:已归还;7:无需检测;8:已超期
+ * 1:待收入;2:待分发;3:检测中;4:检测完成;5:待归还;6:已归还;7:无需检测;8:已超期
* 实验室检定状态(实验室检测使用,实验室检定信息记录表中的状态):
- * 1:待分配(负责人);2:待检测(检定人);3:检测完成;4:退回;5:终止(已收入中点击终止更新实验室中待分配和待检测的的状态为已终止)
+ * 1:待分配(负责人);2:待检测(检定人);3:检测完成;4:退回;5:终止(已收入中点击终止更新实验室中待分配和待检测的的状态为已终止)
*
*
* @author wangpeng
@@ -135,7 +136,7 @@
@ApiOperation("实验室检测-我的检测-检定人扫描收入(待检测->检测中)")
@PostMapping("/myExecutive/receive")
@ResponseBody
- public ReturnDTO sampleReceive(@RequestBody @Valid List requestList, BindingResult bindingResult) {
+ public ReturnDTO sampleReceive(@RequestBody @Valid List requestList, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
}
@@ -148,7 +149,7 @@
@ApiOperation("实验室检测-负责人/检定人扫描检完(检测中->检测完)")
@PostMapping("/myExecutive/complete")
@ResponseBody
- public ReturnDTO sampleExecutiveComplete(@RequestBody @Valid List requestList, BindingResult bindingResult) {
+ public ReturnDTO sampleExecutiveComplete(@RequestBody @Valid List requestList, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
}
@@ -158,25 +159,49 @@
/**
* 实验室检测-部门检测/我的检测 编辑(只能修改应出具证书)
*/
+ @ApiOperation("实验室检测-部门检测/我的检测 编辑(只能修改应出具证书)")
+ @PostMapping("/executive/update")
+ @ResponseBody
+ public ReturnDTO updateExecutive(@RequestBody @Valid UpdateExecutiveRequest request, BindingResult bindingResult) {
+ if (bindingResult.hasErrors()) {
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ return labExecutiveInfoService.updateExecutive(request);
+ }
/**
* 实验室检测-部门检测/我的检测 详情
*/
+ @ApiOperation("实验室检测-部门检测/我的检测 详情")
+ @PostMapping("/executive/detail")
+ @ResponseBody
+ public ReturnDTO executiveDetail(@RequestBody @Valid ExecutiveDetailRequest request, BindingResult bindingResult) throws Exception {
+ if (bindingResult.hasErrors()) {
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ return ReturnUtil.success(labExecutiveInfoService.executiveDetail(request));
+ }
/**
* 实验室检测-部门检测/我的检测 退回(待检测/检测中->退回)
- * 退回后会将下一个要执行的实验室检测状态更新为待分配,将后面的实验室顺序变更为连续(都进行减1,)
- * 可能出现最后一个检测的实验室退回,这样的情况是否需要把样品状态改为检测完,还是等分发员再增加实验室或增加个分发员点击完成的按钮
+ * 退回后会将下一个要执行的实验室检测状态更新为待分配,将后面的实验室顺序变更为连续(都进行减1)
+ * 最后一个检测的实验室退回,等分发员再增加实验室或设备收发中的已收入直接手动点击完成
*/
-
-
-
+ @ApiOperation("实验室检测-部门检测/我的检测 退回(待检测/检测中->退回)")
+ @PostMapping("/executive/sendBack")
+ @ResponseBody
+ public ReturnDTO executiveSendBack(@RequestBody @Valid ExecutiveSendBackRequest request, BindingResult bindingResult) {
+ if (bindingResult.hasErrors()) {
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ return labExecutiveInfoService.sampleExecutiveSendBack(request);
+ }
/**
* 分发员编辑实验室检测列表
*/
@ApiOperation("分发员编辑实验室检测列表")
- @PostMapping("/handOut/updateExecutiveList")
+ @PostMapping("/handOut/updateList")
@ResponseBody
public ReturnDTO updateExecutiveList(@RequestBody @Valid UpdateExecutiveListRequest request, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
@@ -185,9 +210,23 @@
return labExecutiveInfoService.updateExecutiveList(request);
}
-
/**
- * 各列表导出
+ * 各状态列表导出
*/
+ @ApiOperation("任务分发-各状态列表导出")
+ @PostMapping("/handOut/listExport")
+ @ResponseBody
+ public void export(@RequestBody @Valid SampleHandOutListRequest request, BindingResult bindingResult) throws Exception {
+ if (bindingResult.hasErrors()) {
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ Page page = PageFactory.defaultPage();
+ page.setCurrent(1);
+ page.setSearchCount(false);
+ page.setSize(Integer.MAX_VALUE);
+ Page responsePage = labExecutiveInfoService.handOutListPage(page, request);
+ List list = responsePage.getRecords();
+ super.exportExcel(SampleHandOutListResponse.class, list, ExportEnum.HANDOUT_EXPORT.getSheetName());
+ }
}
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java
index 9637b3a..7f8c1e7 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java
@@ -79,7 +79,7 @@
@ApiOperation("文件导出")
@PostMapping("/listExport")
@ResponseBody
- public void export(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) throws IOException {
+ public void export(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) throws IOException {
if (bindingResult.hasErrors()) {
throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
}
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 9e3d9fd..0c1cf2d 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
@@ -53,7 +53,9 @@
HANDLE_FAILED(500, "操作失败"),
QRCODE_FAILED(2409, "二维码生成失败"),
RECEIVE_SAMPLE_NOT_EXIST(2410, "待检测中不存在扫描收入的样品"),
- COMPLETE_SAMPLE_NOT_EXIST(2411, "检测中不存在扫描收入的样品");
+ COMPLETE_SAMPLE_NOT_EXIST(2411, "检测中不存在扫描收入的样品"),
+ CANNOT_CHANGE_MEASURE_INFO(2412, "无法更改非当前登录用户的检测信息"),
+ NON_EXIST_ORDER_OR_SAMPLE(2413, "不存在该委托单或该委托单下的样品");
private Integer code;
private String message;
diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java
index 06a3fd8..a43d9c9 100644
--- a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java
+++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java
@@ -36,7 +36,8 @@
DISPATCH_DATA("dispatchData", "dispatchData", "设备收发"),
ENVIRONMENT_DATA("environmentData", "environmentData", "环境记录单"),
ORIGIN_DATA("originData", "originData", "原始记录"),
- ADVICE_EXPORT("adviceData", "adviceData", "客户反馈");
+ ADVICE_EXPORT("adviceData", "adviceData", "客户反馈"),
+ HANDOUT_EXPORT("handoutData", "handoutData", "任务分发列表");
ExportEnum(String fileName, String sheetName, String description) {
this.fileName = fileName;
diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveInfoMapper.java
index e4cd952..2ce14af 100644
--- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveInfoMapper.java
+++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveInfoMapper.java
@@ -22,13 +22,17 @@
Integer getMeasureNumberStatus(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId);
- List selectExecutiveList(@Param("request") SampleHandOutDetailRequest request);
+ List selectExecutiveList(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId);
Page selectListByDeptIdAndStatus(Page page, @Param("request") SampleLabExecutiveListRequest request, @Param("deptId") Long deptId, @Param("status") String status, @Param("statusList") List statusList);
Page selectListByUserIdAndStatus(Page page, @Param("request") SampleLabExecutiveListRequest request, @Param("userId") Long userId, @Param("status") String status);
- int updateForSampleOperate(@Param("list") List list, @Param("userId") Long userId, @Param("status") String status);
+ int updateForSampleOperate(@Param("list") List list, @Param("userId") Long userId, @Param("status") String status);
- List selectListForSampleOperate(@Param("list") List requestList, @Param("userId") Long userId, @Param("status") String status);
+ List selectListForSampleOperate(@Param("list") List requestList, @Param("userId") Long userId, @Param("status") String status);
+
+ int updateForSendBack(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId);
+
+ Long selectMinSeq(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId);
}
diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveOperateLogMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveOperateLogMapper.java
index ed6f4a1..2bcc4e1 100644
--- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveOperateLogMapper.java
+++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveOperateLogMapper.java
@@ -2,7 +2,6 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.casic.missiles.dto.business.MeasureSendBackDTO;
-import com.casic.missiles.dto.business.SampleHandOutDetailRequest;
import com.casic.missiles.model.business.BusinessLabExecutiveOperateLog;
import org.apache.ibatis.annotations.Param;
@@ -19,5 +18,5 @@
*/
public interface BusinessLabExecutiveOperateLogMapper extends BaseMapper {
- List selectExecutiveOperateLogList(@Param("request") SampleHandOutDetailRequest request);
+ List selectExecutiveOperateLogList(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId);
}
diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java
index 235c95f..bddf56f 100644
--- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java
+++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java
@@ -5,7 +5,6 @@
import com.casic.missiles.dto.business.SampleHandOutDetailResponse;
import com.casic.missiles.dto.business.SampleHandOutListRequest;
import com.casic.missiles.dto.business.SampleHandOutListResponse;
-import com.casic.missiles.dto.business.SampleHandOutDetailRequest;
import com.casic.missiles.dto.business.dispatch.DeviceDispatchDTO;
import com.casic.missiles.dto.business.dispatch.DeviceDispatchVO;
import com.casic.missiles.dto.customer.sample.CustomerSampleListVO;
@@ -28,7 +27,7 @@
Page getSampleListByStatus(@Param("page") Page page, @Param("request") DeviceDispatchDTO request);
- SampleHandOutDetailResponse selectSampleDetail(@Param("request") SampleHandOutDetailRequest request);
+ SampleHandOutDetailResponse selectSampleDetail(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId);
int updateByOrderIdAndSampleId(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId, @Param("status") String status);
diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml
index 92402b7..87613eb 100644
--- a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml
+++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml
@@ -31,8 +31,8 @@
- csi.id AS sample_id, csi.sample_no, csi.sample_name, csi.sample_model, csi.manufacturing_no, bo.order_code AS orderNo, bo.id AS orderId,
- bo.customer_id, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, blei.require_certifications, blei.measure_status
+ blei.id AS id, csi.id AS sample_id, csi.sample_no, csi.sample_name, csi.sample_model, csi.manufacturing_no, bo.order_code AS orderNo, bo.id AS orderId,
+ bo.customer_id, bo.customer_no, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, blei.require_certifications, blei.measure_status
@@ -63,8 +63,8 @@
FROM business_lab_executive_info blei
JOIN sys_dept sd ON blei.measure_dept_id = sd.ID
LEFT JOIN sys_user su ON blei.measure_person_id = su.id
- WHERE blei.order_id = #{request.orderId}
- AND blei.sample_id = #{request.sampleId}
+ WHERE blei.order_id = #{orderId}
+ AND blei.sample_id = #{sampleId}
ORDER BY blei.measure_sequence ASC
@@ -161,7 +161,7 @@
-
+
SELECT order_id, sample_id
FROM business_lab_executive_info
WHERE measure_person_id = #{userId}
@@ -171,4 +171,27 @@
(#{item.orderId}, #{item.sampleId})
+
+
+ UPDATE business_lab_executive_info
+ SET measure_sequence = measure_sequence - 1
+ WHERE (measure_status IS NULL OR measure_status = "")
+ AND order_id = #{orderId}
+ AND sample_id = #{sampleId}
+
+
+
+ SELECT id FROM business_lab_executive_info
+ WHERE measure_sequence = (
+ SELECT MIN(measure_sequence)
+ FROM business_lab_executive_info
+ WHERE (measure_status IS NULL OR measure_status = "")
+ AND order_id = #{orderId}
+ AND sample_id = #{sampleId}
+ )
+ AND (measure_status IS NULL OR measure_status = "")
+ AND order_id = #{orderId}
+ AND sample_id = #{sampleId}
+
+
diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveOperateLogMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveOperateLogMapper.xml
index 9f6c97f..0a0b861 100644
--- a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveOperateLogMapper.xml
+++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveOperateLogMapper.xml
@@ -25,8 +25,8 @@
FROM business_lab_executive_operate_log bleoi
JOIN sys_dept sd ON bleoi.measure_dept_id = sd.ID
WHERE measure_status = 4
- AND bleoi.order_id = #{request.orderId}
- AND bleoi.sample_id = #{request.sampleId}
+ AND bleoi.order_id = #{orderId}
+ AND bleoi.sample_id = #{sampleId}
ORDER BY bleoi.create_time ASC
diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml
index c9b53d4..a2b0806 100644
--- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml
+++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml
@@ -18,7 +18,7 @@
csi.id AS sample_id, csi.sample_no, csi.sample_name, csi.sample_model, csi.manufacturing_no, bo.order_code AS orderNo, bo.id AS orderId,
- bo.customer_id, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, bosr.sample_status
+ bo.customer_id, bo.customer_no, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, bosr.sample_status
@@ -136,6 +136,12 @@
AND csi.sample_belong = #{request.sampleBelong}
+
+ AND csi.id IN
+
+ #{item}
+
+
ORDER BY bosr.update_time DESC
@@ -146,8 +152,8 @@
JOIN customer_sample_info csi ON bosr.sample_id = csi.id
JOIN business_order bo ON bosr.order_id = bo.id
WHERE bo.is_del = 0 AND csi.is_del = 0
- AND bosr.order_id = #{request.orderId}
- AND bosr.sample_id = #{request.sampleId}
+ AND bosr.order_id = #{orderId}
+ AND bosr.sample_id = #{sampleId}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveDetailRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveDetailRequest.java
new file mode 100644
index 0000000..8817b91
--- /dev/null
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveDetailRequest.java
@@ -0,0 +1,24 @@
+package com.casic.missiles.dto.business;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @Description:
+ * @Author: wangpeng
+ * @Date: 2023/2/21 10:00
+ */
+@Data
+@ApiModel
+public class ExecutiveDetailRequest {
+ @NotNull(message = "委托书id不能为空")
+ @ApiModelProperty(value = "委托书id", dataType = "Long")
+ private Long orderId;
+
+ @NotNull(message = "样品id不能为空")
+ @ApiModelProperty(value = "样品id", dataType = "Long")
+ private Long sampleId;
+}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveDetailResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveDetailResponse.java
new file mode 100644
index 0000000..35452b9
--- /dev/null
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveDetailResponse.java
@@ -0,0 +1,139 @@
+package com.casic.missiles.dto.business;
+
+import com.casic.missiles.annotation.DictCodeField;
+import com.casic.missiles.constants.MeterDictCode;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @Description: 任务分发-详情
+ * @Author: wangpeng
+ * @Date: 2023/2/9 11:41
+ */
+@Data
+@ApiModel
+public class ExecutiveDetailResponse {
+ @ApiModelProperty(value = "样品id", dataType = "Long")
+ private Long sampleId;
+
+ @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 manufacturer;
+
+ @ApiModelProperty(value = "厂家国别", dataType = "String")
+ private String manufacturerCountry;
+
+ @ApiModelProperty(value = "出厂年月", dataType = "String")
+ private String manufacturingDate;
+
+ @ApiModelProperty(value = "ABC", dataType = "String")
+ private String abc;
+
+ @ApiModelProperty(value = "委托方id", dataType = "Long")
+ private Long customerId;
+
+ @ApiModelProperty(value = "委托方名称", dataType = "String")
+ private String customerName;
+
+ @ApiModelProperty(value = "委托方电话", dataType = "String")
+ private String customerPhone;
+
+ //需求中有,建议去掉,否则多关联一张表
+// @ApiModelProperty(value = "委托方邮编", dataType = "String")
+// private String postalCode;
+
+// @ApiModelProperty(value = "委托方公司地址-国家", dataType = "String")
+// private String addressCountry;
+//
+// @ApiModelProperty(value = "委托方公司地址-省", dataType = "String")
+// private String addressProvince;
+//
+// @ApiModelProperty(value = "委托方公司地址-市", dataType = "String")
+// private String addressCity;
+//
+// @ApiModelProperty(value = "委托方公司地址-区", dataType = "String")
+// private String addressArea;
+
+ @ApiModelProperty(value = "委托方公司地址-详细地址", dataType = "String")
+ private String customerAddress;
+
+// @ApiModelProperty(value = "委托方公司地址-国家名字", dataType = "String")
+// private String addressCountryName;
+//
+// @ApiModelProperty(value = "委托方公司地址-省名字", dataType = "String")
+// private String addressProvinceName;
+//
+// @ApiModelProperty(value = "委托方公司地址-市名字", dataType = "String")
+// private String addressCityName;
+//
+// @ApiModelProperty(value = "委托方公司地址-区名字", dataType = "String")
+// private String addressAreaName;
+
+ @ApiModelProperty(value = "委托书id", dataType = "Long")
+ private String orderId;
+
+ @ApiModelProperty(value = "委托书编号", dataType = "String")
+ private String orderCode;
+
+ @ApiModelProperty(value = "送样人", dataType = "String")
+ private String deliverer;
+
+ @ApiModelProperty(value = "送样人联系方式", dataType = "String")
+ private String delivererTel;
+
+ @ApiModelProperty(value = "预约送达时间", dataType = "String")
+ private String planDeliverTime;
+
+ @ApiModelProperty(value = "要求检完时间", dataType = "String")
+ private String requireOverTime;
+
+ @ApiModelProperty(value = "检定项目", dataType = "String")
+ private String measureContent;
+
+ @ApiModelProperty(value = "检定周期(月)", dataType = "String")
+ private String measurePeriod;
+
+ @ApiModelProperty(value = "检定日期", dataType = "String")
+ private String measureLastDate;
+
+ @ApiModelProperty(value = "有效日期", dataType = "String")
+ private String effectiveDate;
+
+ //需求中已删除该字段展示,不展示整个样品的检定结果,只在证书里展示各证书的检定结果
+// @ApiModelProperty(value = "检定结果", dataType = "String")
+// private String measureResult;
+
+ @ApiModelProperty(value = "备注", dataType = "String")
+ private String remark;
+
+ @ApiModelProperty(value = "说明书", dataType = "String")
+ private String minioFileName;
+
+ @ApiModelProperty(value = "检定方式(字典code)", dataType = "String")
+ @DictCodeField(message = "检定方式不合法", cacheName = MeterDictCode.MEASURE_TYPE)
+ private String measureType;
+
+ @ApiModelProperty(value = "检定方式(字典value)", dataType = "String")
+ private String measureTypeName;
+
+ @ApiModelProperty(value = "标签绑定", dataType = "String")
+ private String labelBind;
+
+ @ApiModelProperty(value = "检定流程", dataType = "List")
+ private List measureProcessList;
+
+}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveSendBackRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveSendBackRequest.java
new file mode 100644
index 0000000..832f707
--- /dev/null
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveSendBackRequest.java
@@ -0,0 +1,38 @@
+package com.casic.missiles.dto.business;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @Description:
+ * @Author: wangpeng
+ * @Date: 2023/2/21 10:29
+ */
+@Data
+@ApiModel
+public class ExecutiveSendBackRequest {
+ @NotNull(message = "实验室检测id不能为空")
+ @ApiModelProperty(value = "实验室检测id", dataType = "Long")
+ private Long id;
+
+ @NotNull(message = "委托书id不能为空")
+ @ApiModelProperty(value = "委托书id", dataType = "Long")
+ private Long orderId;
+
+ @NotNull(message = "样品id不能为空")
+ @ApiModelProperty(value = "样品id", dataType = "Long")
+ private Long sampleId;
+
+ @NotNull(message = "检定环节不能为空")
+ @ApiModelProperty(value = "检定环节,实验室id", dataType = "Long")
+ private Long measureSegmentId;
+
+ @ApiModelProperty(value = "检定人员id", dataType = "Long")
+ private Long measurePersonId;
+
+ @ApiModelProperty(value = "退回原因", dataType = "Long")
+ private String operateReason;
+}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/MySampleOperateRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/MySampleOperateRequest.java
deleted file mode 100644
index 15f2fe9..0000000
--- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/MySampleOperateRequest.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package com.casic.missiles.dto.business;
-
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
-import javax.validation.constraints.NotNull;
-
-/**
- * @Description: 实验室检测-我的检测-检定人扫描收入请求实体
- * @Author: wangpeng
- * @Date: 2023/2/15 15:31
- */
-@Data
-@ApiModel
-public class MySampleOperateRequest {
- @NotNull(message = "委托书id不能为空")
- @ApiModelProperty(value = "委托书id", dataType = "Long")
- private Long orderId;
-
- @NotNull(message = "样品id不能为空")
- @ApiModelProperty(value = "样品id", dataType = "Long")
- private Long sampleId;
-}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListRequest.java
index 5a9d04a..7daf5b9 100644
--- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListRequest.java
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListRequest.java
@@ -7,6 +7,7 @@
import lombok.Data;
import javax.validation.constraints.NotBlank;
+import java.util.List;
@Data
@ApiModel
@@ -44,4 +45,7 @@
@ApiModelProperty(value = "样品属性(字典code)", dataType = "String")
private String sampleBelong;
+ @ApiModelProperty(value = "筛选样品ids(sampleId列表,导出使用)", dataType = "List")
+ private List ids;
+
}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java
index 0e34812..d2a665e 100644
--- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java
@@ -46,9 +46,12 @@
@ExcelProperty(value = "委托书编号", order = 4)
private String orderNo;
+ @ApiModelProperty(value = "委托方id", dataType = "Long")
+ private Long customerId;
+
@ApiModelProperty(value = "委托方代码", dataType = "String")
@ExcelProperty(value = "委托方代码", order = 5)
- private String customerId;
+ private String customerNo;
@ApiModelProperty(value = "委托方名称", dataType = "String")
@ExcelProperty(value = "委托方名称", order = 6)
@@ -91,7 +94,7 @@
@ExcelProperty(value = "分发性质", order = 14)
private String handOutProperty;
- @JSONField(serialize = false)
+ @ApiModelProperty(value = "委托书id", dataType = "String")
private Long orderId;
@JSONField(serialize = false)
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleLabExecutiveListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleLabExecutiveListResponse.java
index 89f18b9..9e31fa0 100644
--- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleLabExecutiveListResponse.java
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleLabExecutiveListResponse.java
@@ -22,6 +22,8 @@
@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN)
@ExcelIgnoreUnannotated
public class SampleLabExecutiveListResponse {
+ @ApiModelProperty(value = "实验室检测id(退回操作中使用)", dataType = "Long")
+ private Long id;
@ApiModelProperty(value = "样品id", dataType = "Long")
private Long sampleId;
@@ -46,9 +48,13 @@
@ExcelProperty(value = "委托书编号", order = 4)
private String orderNo;
+ @ApiModelProperty(value = "委托方id", dataType = "String")
+// @ExcelProperty(value = "委托方id", order = 5)
+ private Long customerId;
+
@ApiModelProperty(value = "委托方代码", dataType = "String")
@ExcelProperty(value = "委托方代码", order = 5)
- private String customerId;
+ private String customerNo;
@ApiModelProperty(value = "委托方名称", dataType = "String")
@ExcelProperty(value = "委托方名称", order = 6)
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleOperateRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleOperateRequest.java
new file mode 100644
index 0000000..86f3ebc
--- /dev/null
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleOperateRequest.java
@@ -0,0 +1,24 @@
+package com.casic.missiles.dto.business;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @Description: 实验室检测-我的检测-检定人扫描收入请求实体
+ * @Author: wangpeng
+ * @Date: 2023/2/15 15:31
+ */
+@Data
+@ApiModel
+public class SampleOperateRequest {
+ @NotNull(message = "委托书id不能为空")
+ @ApiModelProperty(value = "委托书id", dataType = "Long")
+ private Long orderId;
+
+ @NotNull(message = "样品id不能为空")
+ @ApiModelProperty(value = "样品id", dataType = "Long")
+ private Long sampleId;
+}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/UpdateExecutiveDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/UpdateExecutiveDTO.java
deleted file mode 100644
index eb1210a..0000000
--- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/UpdateExecutiveDTO.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package com.casic.missiles.dto.business;
-
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
-import javax.validation.constraints.NotNull;
-
-/**
- * @Description:
- * @Author: wangpeng
- * @Date: 2023/2/20 11:22
- */
-@Data
-@ApiModel
-public class UpdateExecutiveDTO {
- @ApiModelProperty(value = "主键id(有则必传)", dataType = "Long")
- private Long id;
-
- @NotNull(message = "检定环节不能为空")
- @ApiModelProperty(value = "检定环节,实验室id", dataType = "Long")
- private Long measureSegmentId;
-
- @ApiModelProperty(value = "检定人员id", dataType = "Long")
- private Long measurePersonId;
-
- @ApiModelProperty(value = "检测顺序", dataType = "Integer")
- @NotNull(message = "检测顺序不能为空")
- private Integer measureSequence;
-
- @ApiModelProperty(value = "检定状态(字典code)(流程中不能编辑的节点必传参数)", dataType = "String")
- private String measureStatus;
-}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/UpdateExecutiveListDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/UpdateExecutiveListDTO.java
new file mode 100644
index 0000000..8160c2f
--- /dev/null
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/UpdateExecutiveListDTO.java
@@ -0,0 +1,33 @@
+package com.casic.missiles.dto.business;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @Description:
+ * @Author: wangpeng
+ * @Date: 2023/2/20 11:22
+ */
+@Data
+@ApiModel
+public class UpdateExecutiveListDTO {
+ @ApiModelProperty(value = "主键id(有则必传)", dataType = "Long")
+ private Long id;
+
+ @NotNull(message = "检定环节不能为空")
+ @ApiModelProperty(value = "检定环节,实验室id", dataType = "Long")
+ private Long measureSegmentId;
+
+ @ApiModelProperty(value = "检定人员id", dataType = "Long")
+ private Long measurePersonId;
+
+ @ApiModelProperty(value = "检测顺序", dataType = "Integer")
+ @NotNull(message = "检测顺序不能为空")
+ private Integer measureSequence;
+
+ @ApiModelProperty(value = "检定状态(字典code)(流程中不能编辑的节点必传参数)", dataType = "String")
+ private String measureStatus;
+}
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessLabExecutiveInfoController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessLabExecutiveInfoController.java
index c14c3be..aa330f9 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessLabExecutiveInfoController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessLabExecutiveInfoController.java
@@ -7,6 +7,7 @@
import com.casic.missiles.dto.ReturnDTO;
import com.casic.missiles.dto.ReturnUtil;
import com.casic.missiles.dto.business.*;
+import com.casic.missiles.enums.ExportEnum;
import com.casic.missiles.exception.BusinessException;
import com.casic.missiles.model.exception.enums.CoreExceptionEnum;
import com.casic.missiles.service.business.IBusinessLabExecutiveInfoService;
@@ -25,9 +26,9 @@
*
* 业务管理-实验室检定信息记录表(用于流程中的实验室分配及后续检定过程查询) 前端控制器
* 样品状态(任务收发&任务分发使用,委托书和样品关联表中的状态):
- * 1:待收入;2:待分发;3:检测中;4:检测完成;5:待归还;6:已归还;7:无需检测;8:已超期
+ * 1:待收入;2:待分发;3:检测中;4:检测完成;5:待归还;6:已归还;7:无需检测;8:已超期
* 实验室检定状态(实验室检测使用,实验室检定信息记录表中的状态):
- * 1:待分配(负责人);2:待检测(检定人);3:检测完成;4:退回;5:终止(已收入中点击终止更新实验室中待分配和待检测的的状态为已终止)
+ * 1:待分配(负责人);2:待检测(检定人);3:检测完成;4:退回;5:终止(已收入中点击终止更新实验室中待分配和待检测的的状态为已终止)
*
*
* @author wangpeng
@@ -135,7 +136,7 @@
@ApiOperation("实验室检测-我的检测-检定人扫描收入(待检测->检测中)")
@PostMapping("/myExecutive/receive")
@ResponseBody
- public ReturnDTO sampleReceive(@RequestBody @Valid List requestList, BindingResult bindingResult) {
+ public ReturnDTO sampleReceive(@RequestBody @Valid List requestList, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
}
@@ -148,7 +149,7 @@
@ApiOperation("实验室检测-负责人/检定人扫描检完(检测中->检测完)")
@PostMapping("/myExecutive/complete")
@ResponseBody
- public ReturnDTO sampleExecutiveComplete(@RequestBody @Valid List requestList, BindingResult bindingResult) {
+ public ReturnDTO sampleExecutiveComplete(@RequestBody @Valid List requestList, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
}
@@ -158,25 +159,49 @@
/**
* 实验室检测-部门检测/我的检测 编辑(只能修改应出具证书)
*/
+ @ApiOperation("实验室检测-部门检测/我的检测 编辑(只能修改应出具证书)")
+ @PostMapping("/executive/update")
+ @ResponseBody
+ public ReturnDTO updateExecutive(@RequestBody @Valid UpdateExecutiveRequest request, BindingResult bindingResult) {
+ if (bindingResult.hasErrors()) {
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ return labExecutiveInfoService.updateExecutive(request);
+ }
/**
* 实验室检测-部门检测/我的检测 详情
*/
+ @ApiOperation("实验室检测-部门检测/我的检测 详情")
+ @PostMapping("/executive/detail")
+ @ResponseBody
+ public ReturnDTO executiveDetail(@RequestBody @Valid ExecutiveDetailRequest request, BindingResult bindingResult) throws Exception {
+ if (bindingResult.hasErrors()) {
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ return ReturnUtil.success(labExecutiveInfoService.executiveDetail(request));
+ }
/**
* 实验室检测-部门检测/我的检测 退回(待检测/检测中->退回)
- * 退回后会将下一个要执行的实验室检测状态更新为待分配,将后面的实验室顺序变更为连续(都进行减1,)
- * 可能出现最后一个检测的实验室退回,这样的情况是否需要把样品状态改为检测完,还是等分发员再增加实验室或增加个分发员点击完成的按钮
+ * 退回后会将下一个要执行的实验室检测状态更新为待分配,将后面的实验室顺序变更为连续(都进行减1)
+ * 最后一个检测的实验室退回,等分发员再增加实验室或设备收发中的已收入直接手动点击完成
*/
-
-
-
+ @ApiOperation("实验室检测-部门检测/我的检测 退回(待检测/检测中->退回)")
+ @PostMapping("/executive/sendBack")
+ @ResponseBody
+ public ReturnDTO executiveSendBack(@RequestBody @Valid ExecutiveSendBackRequest request, BindingResult bindingResult) {
+ if (bindingResult.hasErrors()) {
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ return labExecutiveInfoService.sampleExecutiveSendBack(request);
+ }
/**
* 分发员编辑实验室检测列表
*/
@ApiOperation("分发员编辑实验室检测列表")
- @PostMapping("/handOut/updateExecutiveList")
+ @PostMapping("/handOut/updateList")
@ResponseBody
public ReturnDTO updateExecutiveList(@RequestBody @Valid UpdateExecutiveListRequest request, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
@@ -185,9 +210,23 @@
return labExecutiveInfoService.updateExecutiveList(request);
}
-
/**
- * 各列表导出
+ * 各状态列表导出
*/
+ @ApiOperation("任务分发-各状态列表导出")
+ @PostMapping("/handOut/listExport")
+ @ResponseBody
+ public void export(@RequestBody @Valid SampleHandOutListRequest request, BindingResult bindingResult) throws Exception {
+ if (bindingResult.hasErrors()) {
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ Page page = PageFactory.defaultPage();
+ page.setCurrent(1);
+ page.setSearchCount(false);
+ page.setSize(Integer.MAX_VALUE);
+ Page responsePage = labExecutiveInfoService.handOutListPage(page, request);
+ List list = responsePage.getRecords();
+ super.exportExcel(SampleHandOutListResponse.class, list, ExportEnum.HANDOUT_EXPORT.getSheetName());
+ }
}
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java
index 9637b3a..7f8c1e7 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java
@@ -79,7 +79,7 @@
@ApiOperation("文件导出")
@PostMapping("/listExport")
@ResponseBody
- public void export(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) throws IOException {
+ public void export(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) throws IOException {
if (bindingResult.hasErrors()) {
throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
}
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 9e3d9fd..0c1cf2d 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
@@ -53,7 +53,9 @@
HANDLE_FAILED(500, "操作失败"),
QRCODE_FAILED(2409, "二维码生成失败"),
RECEIVE_SAMPLE_NOT_EXIST(2410, "待检测中不存在扫描收入的样品"),
- COMPLETE_SAMPLE_NOT_EXIST(2411, "检测中不存在扫描收入的样品");
+ COMPLETE_SAMPLE_NOT_EXIST(2411, "检测中不存在扫描收入的样品"),
+ CANNOT_CHANGE_MEASURE_INFO(2412, "无法更改非当前登录用户的检测信息"),
+ NON_EXIST_ORDER_OR_SAMPLE(2413, "不存在该委托单或该委托单下的样品");
private Integer code;
private String message;
diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java
index 06a3fd8..a43d9c9 100644
--- a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java
+++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java
@@ -36,7 +36,8 @@
DISPATCH_DATA("dispatchData", "dispatchData", "设备收发"),
ENVIRONMENT_DATA("environmentData", "environmentData", "环境记录单"),
ORIGIN_DATA("originData", "originData", "原始记录"),
- ADVICE_EXPORT("adviceData", "adviceData", "客户反馈");
+ ADVICE_EXPORT("adviceData", "adviceData", "客户反馈"),
+ HANDOUT_EXPORT("handoutData", "handoutData", "任务分发列表");
ExportEnum(String fileName, String sheetName, String description) {
this.fileName = fileName;
diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveInfoMapper.java
index e4cd952..2ce14af 100644
--- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveInfoMapper.java
+++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveInfoMapper.java
@@ -22,13 +22,17 @@
Integer getMeasureNumberStatus(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId);
- List selectExecutiveList(@Param("request") SampleHandOutDetailRequest request);
+ List selectExecutiveList(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId);
Page selectListByDeptIdAndStatus(Page page, @Param("request") SampleLabExecutiveListRequest request, @Param("deptId") Long deptId, @Param("status") String status, @Param("statusList") List statusList);
Page selectListByUserIdAndStatus(Page page, @Param("request") SampleLabExecutiveListRequest request, @Param("userId") Long userId, @Param("status") String status);
- int updateForSampleOperate(@Param("list") List list, @Param("userId") Long userId, @Param("status") String status);
+ int updateForSampleOperate(@Param("list") List list, @Param("userId") Long userId, @Param("status") String status);
- List selectListForSampleOperate(@Param("list") List requestList, @Param("userId") Long userId, @Param("status") String status);
+ List selectListForSampleOperate(@Param("list") List requestList, @Param("userId") Long userId, @Param("status") String status);
+
+ int updateForSendBack(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId);
+
+ Long selectMinSeq(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId);
}
diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveOperateLogMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveOperateLogMapper.java
index ed6f4a1..2bcc4e1 100644
--- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveOperateLogMapper.java
+++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveOperateLogMapper.java
@@ -2,7 +2,6 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.casic.missiles.dto.business.MeasureSendBackDTO;
-import com.casic.missiles.dto.business.SampleHandOutDetailRequest;
import com.casic.missiles.model.business.BusinessLabExecutiveOperateLog;
import org.apache.ibatis.annotations.Param;
@@ -19,5 +18,5 @@
*/
public interface BusinessLabExecutiveOperateLogMapper extends BaseMapper {
- List selectExecutiveOperateLogList(@Param("request") SampleHandOutDetailRequest request);
+ List selectExecutiveOperateLogList(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId);
}
diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java
index 235c95f..bddf56f 100644
--- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java
+++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java
@@ -5,7 +5,6 @@
import com.casic.missiles.dto.business.SampleHandOutDetailResponse;
import com.casic.missiles.dto.business.SampleHandOutListRequest;
import com.casic.missiles.dto.business.SampleHandOutListResponse;
-import com.casic.missiles.dto.business.SampleHandOutDetailRequest;
import com.casic.missiles.dto.business.dispatch.DeviceDispatchDTO;
import com.casic.missiles.dto.business.dispatch.DeviceDispatchVO;
import com.casic.missiles.dto.customer.sample.CustomerSampleListVO;
@@ -28,7 +27,7 @@
Page getSampleListByStatus(@Param("page") Page page, @Param("request") DeviceDispatchDTO request);
- SampleHandOutDetailResponse selectSampleDetail(@Param("request") SampleHandOutDetailRequest request);
+ SampleHandOutDetailResponse selectSampleDetail(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId);
int updateByOrderIdAndSampleId(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId, @Param("status") String status);
diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml
index 92402b7..87613eb 100644
--- a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml
+++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml
@@ -31,8 +31,8 @@
- csi.id AS sample_id, csi.sample_no, csi.sample_name, csi.sample_model, csi.manufacturing_no, bo.order_code AS orderNo, bo.id AS orderId,
- bo.customer_id, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, blei.require_certifications, blei.measure_status
+ blei.id AS id, csi.id AS sample_id, csi.sample_no, csi.sample_name, csi.sample_model, csi.manufacturing_no, bo.order_code AS orderNo, bo.id AS orderId,
+ bo.customer_id, bo.customer_no, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, blei.require_certifications, blei.measure_status
@@ -63,8 +63,8 @@
FROM business_lab_executive_info blei
JOIN sys_dept sd ON blei.measure_dept_id = sd.ID
LEFT JOIN sys_user su ON blei.measure_person_id = su.id
- WHERE blei.order_id = #{request.orderId}
- AND blei.sample_id = #{request.sampleId}
+ WHERE blei.order_id = #{orderId}
+ AND blei.sample_id = #{sampleId}
ORDER BY blei.measure_sequence ASC
@@ -161,7 +161,7 @@
-
+
SELECT order_id, sample_id
FROM business_lab_executive_info
WHERE measure_person_id = #{userId}
@@ -171,4 +171,27 @@
(#{item.orderId}, #{item.sampleId})
+
+
+ UPDATE business_lab_executive_info
+ SET measure_sequence = measure_sequence - 1
+ WHERE (measure_status IS NULL OR measure_status = "")
+ AND order_id = #{orderId}
+ AND sample_id = #{sampleId}
+
+
+
+ SELECT id FROM business_lab_executive_info
+ WHERE measure_sequence = (
+ SELECT MIN(measure_sequence)
+ FROM business_lab_executive_info
+ WHERE (measure_status IS NULL OR measure_status = "")
+ AND order_id = #{orderId}
+ AND sample_id = #{sampleId}
+ )
+ AND (measure_status IS NULL OR measure_status = "")
+ AND order_id = #{orderId}
+ AND sample_id = #{sampleId}
+
+
diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveOperateLogMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveOperateLogMapper.xml
index 9f6c97f..0a0b861 100644
--- a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveOperateLogMapper.xml
+++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveOperateLogMapper.xml
@@ -25,8 +25,8 @@
FROM business_lab_executive_operate_log bleoi
JOIN sys_dept sd ON bleoi.measure_dept_id = sd.ID
WHERE measure_status = 4
- AND bleoi.order_id = #{request.orderId}
- AND bleoi.sample_id = #{request.sampleId}
+ AND bleoi.order_id = #{orderId}
+ AND bleoi.sample_id = #{sampleId}
ORDER BY bleoi.create_time ASC
diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml
index c9b53d4..a2b0806 100644
--- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml
+++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml
@@ -18,7 +18,7 @@
csi.id AS sample_id, csi.sample_no, csi.sample_name, csi.sample_model, csi.manufacturing_no, bo.order_code AS orderNo, bo.id AS orderId,
- bo.customer_id, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, bosr.sample_status
+ bo.customer_id, bo.customer_no, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, bosr.sample_status
@@ -136,6 +136,12 @@
AND csi.sample_belong = #{request.sampleBelong}
+
+ AND csi.id IN
+
+ #{item}
+
+
ORDER BY bosr.update_time DESC
@@ -146,8 +152,8 @@
JOIN customer_sample_info csi ON bosr.sample_id = csi.id
JOIN business_order bo ON bosr.order_id = bo.id
WHERE bo.is_del = 0 AND csi.is_del = 0
- AND bosr.order_id = #{request.orderId}
- AND bosr.sample_id = #{request.sampleId}
+ AND bosr.order_id = #{orderId}
+ AND bosr.sample_id = #{sampleId}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveDetailRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveDetailRequest.java
new file mode 100644
index 0000000..8817b91
--- /dev/null
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveDetailRequest.java
@@ -0,0 +1,24 @@
+package com.casic.missiles.dto.business;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @Description:
+ * @Author: wangpeng
+ * @Date: 2023/2/21 10:00
+ */
+@Data
+@ApiModel
+public class ExecutiveDetailRequest {
+ @NotNull(message = "委托书id不能为空")
+ @ApiModelProperty(value = "委托书id", dataType = "Long")
+ private Long orderId;
+
+ @NotNull(message = "样品id不能为空")
+ @ApiModelProperty(value = "样品id", dataType = "Long")
+ private Long sampleId;
+}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveDetailResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveDetailResponse.java
new file mode 100644
index 0000000..35452b9
--- /dev/null
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveDetailResponse.java
@@ -0,0 +1,139 @@
+package com.casic.missiles.dto.business;
+
+import com.casic.missiles.annotation.DictCodeField;
+import com.casic.missiles.constants.MeterDictCode;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @Description: 任务分发-详情
+ * @Author: wangpeng
+ * @Date: 2023/2/9 11:41
+ */
+@Data
+@ApiModel
+public class ExecutiveDetailResponse {
+ @ApiModelProperty(value = "样品id", dataType = "Long")
+ private Long sampleId;
+
+ @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 manufacturer;
+
+ @ApiModelProperty(value = "厂家国别", dataType = "String")
+ private String manufacturerCountry;
+
+ @ApiModelProperty(value = "出厂年月", dataType = "String")
+ private String manufacturingDate;
+
+ @ApiModelProperty(value = "ABC", dataType = "String")
+ private String abc;
+
+ @ApiModelProperty(value = "委托方id", dataType = "Long")
+ private Long customerId;
+
+ @ApiModelProperty(value = "委托方名称", dataType = "String")
+ private String customerName;
+
+ @ApiModelProperty(value = "委托方电话", dataType = "String")
+ private String customerPhone;
+
+ //需求中有,建议去掉,否则多关联一张表
+// @ApiModelProperty(value = "委托方邮编", dataType = "String")
+// private String postalCode;
+
+// @ApiModelProperty(value = "委托方公司地址-国家", dataType = "String")
+// private String addressCountry;
+//
+// @ApiModelProperty(value = "委托方公司地址-省", dataType = "String")
+// private String addressProvince;
+//
+// @ApiModelProperty(value = "委托方公司地址-市", dataType = "String")
+// private String addressCity;
+//
+// @ApiModelProperty(value = "委托方公司地址-区", dataType = "String")
+// private String addressArea;
+
+ @ApiModelProperty(value = "委托方公司地址-详细地址", dataType = "String")
+ private String customerAddress;
+
+// @ApiModelProperty(value = "委托方公司地址-国家名字", dataType = "String")
+// private String addressCountryName;
+//
+// @ApiModelProperty(value = "委托方公司地址-省名字", dataType = "String")
+// private String addressProvinceName;
+//
+// @ApiModelProperty(value = "委托方公司地址-市名字", dataType = "String")
+// private String addressCityName;
+//
+// @ApiModelProperty(value = "委托方公司地址-区名字", dataType = "String")
+// private String addressAreaName;
+
+ @ApiModelProperty(value = "委托书id", dataType = "Long")
+ private String orderId;
+
+ @ApiModelProperty(value = "委托书编号", dataType = "String")
+ private String orderCode;
+
+ @ApiModelProperty(value = "送样人", dataType = "String")
+ private String deliverer;
+
+ @ApiModelProperty(value = "送样人联系方式", dataType = "String")
+ private String delivererTel;
+
+ @ApiModelProperty(value = "预约送达时间", dataType = "String")
+ private String planDeliverTime;
+
+ @ApiModelProperty(value = "要求检完时间", dataType = "String")
+ private String requireOverTime;
+
+ @ApiModelProperty(value = "检定项目", dataType = "String")
+ private String measureContent;
+
+ @ApiModelProperty(value = "检定周期(月)", dataType = "String")
+ private String measurePeriod;
+
+ @ApiModelProperty(value = "检定日期", dataType = "String")
+ private String measureLastDate;
+
+ @ApiModelProperty(value = "有效日期", dataType = "String")
+ private String effectiveDate;
+
+ //需求中已删除该字段展示,不展示整个样品的检定结果,只在证书里展示各证书的检定结果
+// @ApiModelProperty(value = "检定结果", dataType = "String")
+// private String measureResult;
+
+ @ApiModelProperty(value = "备注", dataType = "String")
+ private String remark;
+
+ @ApiModelProperty(value = "说明书", dataType = "String")
+ private String minioFileName;
+
+ @ApiModelProperty(value = "检定方式(字典code)", dataType = "String")
+ @DictCodeField(message = "检定方式不合法", cacheName = MeterDictCode.MEASURE_TYPE)
+ private String measureType;
+
+ @ApiModelProperty(value = "检定方式(字典value)", dataType = "String")
+ private String measureTypeName;
+
+ @ApiModelProperty(value = "标签绑定", dataType = "String")
+ private String labelBind;
+
+ @ApiModelProperty(value = "检定流程", dataType = "List")
+ private List measureProcessList;
+
+}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveSendBackRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveSendBackRequest.java
new file mode 100644
index 0000000..832f707
--- /dev/null
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveSendBackRequest.java
@@ -0,0 +1,38 @@
+package com.casic.missiles.dto.business;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @Description:
+ * @Author: wangpeng
+ * @Date: 2023/2/21 10:29
+ */
+@Data
+@ApiModel
+public class ExecutiveSendBackRequest {
+ @NotNull(message = "实验室检测id不能为空")
+ @ApiModelProperty(value = "实验室检测id", dataType = "Long")
+ private Long id;
+
+ @NotNull(message = "委托书id不能为空")
+ @ApiModelProperty(value = "委托书id", dataType = "Long")
+ private Long orderId;
+
+ @NotNull(message = "样品id不能为空")
+ @ApiModelProperty(value = "样品id", dataType = "Long")
+ private Long sampleId;
+
+ @NotNull(message = "检定环节不能为空")
+ @ApiModelProperty(value = "检定环节,实验室id", dataType = "Long")
+ private Long measureSegmentId;
+
+ @ApiModelProperty(value = "检定人员id", dataType = "Long")
+ private Long measurePersonId;
+
+ @ApiModelProperty(value = "退回原因", dataType = "Long")
+ private String operateReason;
+}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/MySampleOperateRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/MySampleOperateRequest.java
deleted file mode 100644
index 15f2fe9..0000000
--- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/MySampleOperateRequest.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package com.casic.missiles.dto.business;
-
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
-import javax.validation.constraints.NotNull;
-
-/**
- * @Description: 实验室检测-我的检测-检定人扫描收入请求实体
- * @Author: wangpeng
- * @Date: 2023/2/15 15:31
- */
-@Data
-@ApiModel
-public class MySampleOperateRequest {
- @NotNull(message = "委托书id不能为空")
- @ApiModelProperty(value = "委托书id", dataType = "Long")
- private Long orderId;
-
- @NotNull(message = "样品id不能为空")
- @ApiModelProperty(value = "样品id", dataType = "Long")
- private Long sampleId;
-}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListRequest.java
index 5a9d04a..7daf5b9 100644
--- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListRequest.java
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListRequest.java
@@ -7,6 +7,7 @@
import lombok.Data;
import javax.validation.constraints.NotBlank;
+import java.util.List;
@Data
@ApiModel
@@ -44,4 +45,7 @@
@ApiModelProperty(value = "样品属性(字典code)", dataType = "String")
private String sampleBelong;
+ @ApiModelProperty(value = "筛选样品ids(sampleId列表,导出使用)", dataType = "List")
+ private List ids;
+
}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java
index 0e34812..d2a665e 100644
--- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java
@@ -46,9 +46,12 @@
@ExcelProperty(value = "委托书编号", order = 4)
private String orderNo;
+ @ApiModelProperty(value = "委托方id", dataType = "Long")
+ private Long customerId;
+
@ApiModelProperty(value = "委托方代码", dataType = "String")
@ExcelProperty(value = "委托方代码", order = 5)
- private String customerId;
+ private String customerNo;
@ApiModelProperty(value = "委托方名称", dataType = "String")
@ExcelProperty(value = "委托方名称", order = 6)
@@ -91,7 +94,7 @@
@ExcelProperty(value = "分发性质", order = 14)
private String handOutProperty;
- @JSONField(serialize = false)
+ @ApiModelProperty(value = "委托书id", dataType = "String")
private Long orderId;
@JSONField(serialize = false)
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleLabExecutiveListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleLabExecutiveListResponse.java
index 89f18b9..9e31fa0 100644
--- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleLabExecutiveListResponse.java
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleLabExecutiveListResponse.java
@@ -22,6 +22,8 @@
@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN)
@ExcelIgnoreUnannotated
public class SampleLabExecutiveListResponse {
+ @ApiModelProperty(value = "实验室检测id(退回操作中使用)", dataType = "Long")
+ private Long id;
@ApiModelProperty(value = "样品id", dataType = "Long")
private Long sampleId;
@@ -46,9 +48,13 @@
@ExcelProperty(value = "委托书编号", order = 4)
private String orderNo;
+ @ApiModelProperty(value = "委托方id", dataType = "String")
+// @ExcelProperty(value = "委托方id", order = 5)
+ private Long customerId;
+
@ApiModelProperty(value = "委托方代码", dataType = "String")
@ExcelProperty(value = "委托方代码", order = 5)
- private String customerId;
+ private String customerNo;
@ApiModelProperty(value = "委托方名称", dataType = "String")
@ExcelProperty(value = "委托方名称", order = 6)
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleOperateRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleOperateRequest.java
new file mode 100644
index 0000000..86f3ebc
--- /dev/null
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleOperateRequest.java
@@ -0,0 +1,24 @@
+package com.casic.missiles.dto.business;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @Description: 实验室检测-我的检测-检定人扫描收入请求实体
+ * @Author: wangpeng
+ * @Date: 2023/2/15 15:31
+ */
+@Data
+@ApiModel
+public class SampleOperateRequest {
+ @NotNull(message = "委托书id不能为空")
+ @ApiModelProperty(value = "委托书id", dataType = "Long")
+ private Long orderId;
+
+ @NotNull(message = "样品id不能为空")
+ @ApiModelProperty(value = "样品id", dataType = "Long")
+ private Long sampleId;
+}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/UpdateExecutiveDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/UpdateExecutiveDTO.java
deleted file mode 100644
index eb1210a..0000000
--- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/UpdateExecutiveDTO.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package com.casic.missiles.dto.business;
-
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
-import javax.validation.constraints.NotNull;
-
-/**
- * @Description:
- * @Author: wangpeng
- * @Date: 2023/2/20 11:22
- */
-@Data
-@ApiModel
-public class UpdateExecutiveDTO {
- @ApiModelProperty(value = "主键id(有则必传)", dataType = "Long")
- private Long id;
-
- @NotNull(message = "检定环节不能为空")
- @ApiModelProperty(value = "检定环节,实验室id", dataType = "Long")
- private Long measureSegmentId;
-
- @ApiModelProperty(value = "检定人员id", dataType = "Long")
- private Long measurePersonId;
-
- @ApiModelProperty(value = "检测顺序", dataType = "Integer")
- @NotNull(message = "检测顺序不能为空")
- private Integer measureSequence;
-
- @ApiModelProperty(value = "检定状态(字典code)(流程中不能编辑的节点必传参数)", dataType = "String")
- private String measureStatus;
-}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/UpdateExecutiveListDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/UpdateExecutiveListDTO.java
new file mode 100644
index 0000000..8160c2f
--- /dev/null
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/UpdateExecutiveListDTO.java
@@ -0,0 +1,33 @@
+package com.casic.missiles.dto.business;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @Description:
+ * @Author: wangpeng
+ * @Date: 2023/2/20 11:22
+ */
+@Data
+@ApiModel
+public class UpdateExecutiveListDTO {
+ @ApiModelProperty(value = "主键id(有则必传)", dataType = "Long")
+ private Long id;
+
+ @NotNull(message = "检定环节不能为空")
+ @ApiModelProperty(value = "检定环节,实验室id", dataType = "Long")
+ private Long measureSegmentId;
+
+ @ApiModelProperty(value = "检定人员id", dataType = "Long")
+ private Long measurePersonId;
+
+ @ApiModelProperty(value = "检测顺序", dataType = "Integer")
+ @NotNull(message = "检测顺序不能为空")
+ private Integer measureSequence;
+
+ @ApiModelProperty(value = "检定状态(字典code)(流程中不能编辑的节点必传参数)", dataType = "String")
+ private String measureStatus;
+}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/UpdateExecutiveListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/UpdateExecutiveListRequest.java
index 6a50280..1c72cc0 100644
--- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/UpdateExecutiveListRequest.java
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/UpdateExecutiveListRequest.java
@@ -26,5 +26,5 @@
@NotEmpty(message = "实验室检测列表不能为空")
@ApiModelProperty(value = "实验室检测列表", dataType = "List")
- private List executiveList;
+ private List executiveList;
}
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessLabExecutiveInfoController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessLabExecutiveInfoController.java
index c14c3be..aa330f9 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessLabExecutiveInfoController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessLabExecutiveInfoController.java
@@ -7,6 +7,7 @@
import com.casic.missiles.dto.ReturnDTO;
import com.casic.missiles.dto.ReturnUtil;
import com.casic.missiles.dto.business.*;
+import com.casic.missiles.enums.ExportEnum;
import com.casic.missiles.exception.BusinessException;
import com.casic.missiles.model.exception.enums.CoreExceptionEnum;
import com.casic.missiles.service.business.IBusinessLabExecutiveInfoService;
@@ -25,9 +26,9 @@
*
* 业务管理-实验室检定信息记录表(用于流程中的实验室分配及后续检定过程查询) 前端控制器
* 样品状态(任务收发&任务分发使用,委托书和样品关联表中的状态):
- * 1:待收入;2:待分发;3:检测中;4:检测完成;5:待归还;6:已归还;7:无需检测;8:已超期
+ * 1:待收入;2:待分发;3:检测中;4:检测完成;5:待归还;6:已归还;7:无需检测;8:已超期
* 实验室检定状态(实验室检测使用,实验室检定信息记录表中的状态):
- * 1:待分配(负责人);2:待检测(检定人);3:检测完成;4:退回;5:终止(已收入中点击终止更新实验室中待分配和待检测的的状态为已终止)
+ * 1:待分配(负责人);2:待检测(检定人);3:检测完成;4:退回;5:终止(已收入中点击终止更新实验室中待分配和待检测的的状态为已终止)
*
*
* @author wangpeng
@@ -135,7 +136,7 @@
@ApiOperation("实验室检测-我的检测-检定人扫描收入(待检测->检测中)")
@PostMapping("/myExecutive/receive")
@ResponseBody
- public ReturnDTO sampleReceive(@RequestBody @Valid List requestList, BindingResult bindingResult) {
+ public ReturnDTO sampleReceive(@RequestBody @Valid List requestList, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
}
@@ -148,7 +149,7 @@
@ApiOperation("实验室检测-负责人/检定人扫描检完(检测中->检测完)")
@PostMapping("/myExecutive/complete")
@ResponseBody
- public ReturnDTO sampleExecutiveComplete(@RequestBody @Valid List requestList, BindingResult bindingResult) {
+ public ReturnDTO sampleExecutiveComplete(@RequestBody @Valid List requestList, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
}
@@ -158,25 +159,49 @@
/**
* 实验室检测-部门检测/我的检测 编辑(只能修改应出具证书)
*/
+ @ApiOperation("实验室检测-部门检测/我的检测 编辑(只能修改应出具证书)")
+ @PostMapping("/executive/update")
+ @ResponseBody
+ public ReturnDTO updateExecutive(@RequestBody @Valid UpdateExecutiveRequest request, BindingResult bindingResult) {
+ if (bindingResult.hasErrors()) {
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ return labExecutiveInfoService.updateExecutive(request);
+ }
/**
* 实验室检测-部门检测/我的检测 详情
*/
+ @ApiOperation("实验室检测-部门检测/我的检测 详情")
+ @PostMapping("/executive/detail")
+ @ResponseBody
+ public ReturnDTO executiveDetail(@RequestBody @Valid ExecutiveDetailRequest request, BindingResult bindingResult) throws Exception {
+ if (bindingResult.hasErrors()) {
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ return ReturnUtil.success(labExecutiveInfoService.executiveDetail(request));
+ }
/**
* 实验室检测-部门检测/我的检测 退回(待检测/检测中->退回)
- * 退回后会将下一个要执行的实验室检测状态更新为待分配,将后面的实验室顺序变更为连续(都进行减1,)
- * 可能出现最后一个检测的实验室退回,这样的情况是否需要把样品状态改为检测完,还是等分发员再增加实验室或增加个分发员点击完成的按钮
+ * 退回后会将下一个要执行的实验室检测状态更新为待分配,将后面的实验室顺序变更为连续(都进行减1)
+ * 最后一个检测的实验室退回,等分发员再增加实验室或设备收发中的已收入直接手动点击完成
*/
-
-
-
+ @ApiOperation("实验室检测-部门检测/我的检测 退回(待检测/检测中->退回)")
+ @PostMapping("/executive/sendBack")
+ @ResponseBody
+ public ReturnDTO executiveSendBack(@RequestBody @Valid ExecutiveSendBackRequest request, BindingResult bindingResult) {
+ if (bindingResult.hasErrors()) {
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ return labExecutiveInfoService.sampleExecutiveSendBack(request);
+ }
/**
* 分发员编辑实验室检测列表
*/
@ApiOperation("分发员编辑实验室检测列表")
- @PostMapping("/handOut/updateExecutiveList")
+ @PostMapping("/handOut/updateList")
@ResponseBody
public ReturnDTO updateExecutiveList(@RequestBody @Valid UpdateExecutiveListRequest request, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
@@ -185,9 +210,23 @@
return labExecutiveInfoService.updateExecutiveList(request);
}
-
/**
- * 各列表导出
+ * 各状态列表导出
*/
+ @ApiOperation("任务分发-各状态列表导出")
+ @PostMapping("/handOut/listExport")
+ @ResponseBody
+ public void export(@RequestBody @Valid SampleHandOutListRequest request, BindingResult bindingResult) throws Exception {
+ if (bindingResult.hasErrors()) {
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ Page page = PageFactory.defaultPage();
+ page.setCurrent(1);
+ page.setSearchCount(false);
+ page.setSize(Integer.MAX_VALUE);
+ Page responsePage = labExecutiveInfoService.handOutListPage(page, request);
+ List list = responsePage.getRecords();
+ super.exportExcel(SampleHandOutListResponse.class, list, ExportEnum.HANDOUT_EXPORT.getSheetName());
+ }
}
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java
index 9637b3a..7f8c1e7 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java
@@ -79,7 +79,7 @@
@ApiOperation("文件导出")
@PostMapping("/listExport")
@ResponseBody
- public void export(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) throws IOException {
+ public void export(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) throws IOException {
if (bindingResult.hasErrors()) {
throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
}
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 9e3d9fd..0c1cf2d 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
@@ -53,7 +53,9 @@
HANDLE_FAILED(500, "操作失败"),
QRCODE_FAILED(2409, "二维码生成失败"),
RECEIVE_SAMPLE_NOT_EXIST(2410, "待检测中不存在扫描收入的样品"),
- COMPLETE_SAMPLE_NOT_EXIST(2411, "检测中不存在扫描收入的样品");
+ COMPLETE_SAMPLE_NOT_EXIST(2411, "检测中不存在扫描收入的样品"),
+ CANNOT_CHANGE_MEASURE_INFO(2412, "无法更改非当前登录用户的检测信息"),
+ NON_EXIST_ORDER_OR_SAMPLE(2413, "不存在该委托单或该委托单下的样品");
private Integer code;
private String message;
diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java
index 06a3fd8..a43d9c9 100644
--- a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java
+++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java
@@ -36,7 +36,8 @@
DISPATCH_DATA("dispatchData", "dispatchData", "设备收发"),
ENVIRONMENT_DATA("environmentData", "environmentData", "环境记录单"),
ORIGIN_DATA("originData", "originData", "原始记录"),
- ADVICE_EXPORT("adviceData", "adviceData", "客户反馈");
+ ADVICE_EXPORT("adviceData", "adviceData", "客户反馈"),
+ HANDOUT_EXPORT("handoutData", "handoutData", "任务分发列表");
ExportEnum(String fileName, String sheetName, String description) {
this.fileName = fileName;
diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveInfoMapper.java
index e4cd952..2ce14af 100644
--- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveInfoMapper.java
+++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveInfoMapper.java
@@ -22,13 +22,17 @@
Integer getMeasureNumberStatus(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId);
- List selectExecutiveList(@Param("request") SampleHandOutDetailRequest request);
+ List selectExecutiveList(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId);
Page selectListByDeptIdAndStatus(Page page, @Param("request") SampleLabExecutiveListRequest request, @Param("deptId") Long deptId, @Param("status") String status, @Param("statusList") List statusList);
Page selectListByUserIdAndStatus(Page page, @Param("request") SampleLabExecutiveListRequest request, @Param("userId") Long userId, @Param("status") String status);
- int updateForSampleOperate(@Param("list") List list, @Param("userId") Long userId, @Param("status") String status);
+ int updateForSampleOperate(@Param("list") List list, @Param("userId") Long userId, @Param("status") String status);
- List selectListForSampleOperate(@Param("list") List requestList, @Param("userId") Long userId, @Param("status") String status);
+ List selectListForSampleOperate(@Param("list") List requestList, @Param("userId") Long userId, @Param("status") String status);
+
+ int updateForSendBack(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId);
+
+ Long selectMinSeq(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId);
}
diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveOperateLogMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveOperateLogMapper.java
index ed6f4a1..2bcc4e1 100644
--- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveOperateLogMapper.java
+++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveOperateLogMapper.java
@@ -2,7 +2,6 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.casic.missiles.dto.business.MeasureSendBackDTO;
-import com.casic.missiles.dto.business.SampleHandOutDetailRequest;
import com.casic.missiles.model.business.BusinessLabExecutiveOperateLog;
import org.apache.ibatis.annotations.Param;
@@ -19,5 +18,5 @@
*/
public interface BusinessLabExecutiveOperateLogMapper extends BaseMapper {
- List selectExecutiveOperateLogList(@Param("request") SampleHandOutDetailRequest request);
+ List selectExecutiveOperateLogList(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId);
}
diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java
index 235c95f..bddf56f 100644
--- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java
+++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java
@@ -5,7 +5,6 @@
import com.casic.missiles.dto.business.SampleHandOutDetailResponse;
import com.casic.missiles.dto.business.SampleHandOutListRequest;
import com.casic.missiles.dto.business.SampleHandOutListResponse;
-import com.casic.missiles.dto.business.SampleHandOutDetailRequest;
import com.casic.missiles.dto.business.dispatch.DeviceDispatchDTO;
import com.casic.missiles.dto.business.dispatch.DeviceDispatchVO;
import com.casic.missiles.dto.customer.sample.CustomerSampleListVO;
@@ -28,7 +27,7 @@
Page getSampleListByStatus(@Param("page") Page page, @Param("request") DeviceDispatchDTO request);
- SampleHandOutDetailResponse selectSampleDetail(@Param("request") SampleHandOutDetailRequest request);
+ SampleHandOutDetailResponse selectSampleDetail(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId);
int updateByOrderIdAndSampleId(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId, @Param("status") String status);
diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml
index 92402b7..87613eb 100644
--- a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml
+++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml
@@ -31,8 +31,8 @@
- csi.id AS sample_id, csi.sample_no, csi.sample_name, csi.sample_model, csi.manufacturing_no, bo.order_code AS orderNo, bo.id AS orderId,
- bo.customer_id, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, blei.require_certifications, blei.measure_status
+ blei.id AS id, csi.id AS sample_id, csi.sample_no, csi.sample_name, csi.sample_model, csi.manufacturing_no, bo.order_code AS orderNo, bo.id AS orderId,
+ bo.customer_id, bo.customer_no, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, blei.require_certifications, blei.measure_status
@@ -63,8 +63,8 @@
FROM business_lab_executive_info blei
JOIN sys_dept sd ON blei.measure_dept_id = sd.ID
LEFT JOIN sys_user su ON blei.measure_person_id = su.id
- WHERE blei.order_id = #{request.orderId}
- AND blei.sample_id = #{request.sampleId}
+ WHERE blei.order_id = #{orderId}
+ AND blei.sample_id = #{sampleId}
ORDER BY blei.measure_sequence ASC
@@ -161,7 +161,7 @@
-
+
SELECT order_id, sample_id
FROM business_lab_executive_info
WHERE measure_person_id = #{userId}
@@ -171,4 +171,27 @@
(#{item.orderId}, #{item.sampleId})
+
+
+ UPDATE business_lab_executive_info
+ SET measure_sequence = measure_sequence - 1
+ WHERE (measure_status IS NULL OR measure_status = "")
+ AND order_id = #{orderId}
+ AND sample_id = #{sampleId}
+
+
+
+ SELECT id FROM business_lab_executive_info
+ WHERE measure_sequence = (
+ SELECT MIN(measure_sequence)
+ FROM business_lab_executive_info
+ WHERE (measure_status IS NULL OR measure_status = "")
+ AND order_id = #{orderId}
+ AND sample_id = #{sampleId}
+ )
+ AND (measure_status IS NULL OR measure_status = "")
+ AND order_id = #{orderId}
+ AND sample_id = #{sampleId}
+
+
diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveOperateLogMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveOperateLogMapper.xml
index 9f6c97f..0a0b861 100644
--- a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveOperateLogMapper.xml
+++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveOperateLogMapper.xml
@@ -25,8 +25,8 @@
FROM business_lab_executive_operate_log bleoi
JOIN sys_dept sd ON bleoi.measure_dept_id = sd.ID
WHERE measure_status = 4
- AND bleoi.order_id = #{request.orderId}
- AND bleoi.sample_id = #{request.sampleId}
+ AND bleoi.order_id = #{orderId}
+ AND bleoi.sample_id = #{sampleId}
ORDER BY bleoi.create_time ASC
diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml
index c9b53d4..a2b0806 100644
--- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml
+++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml
@@ -18,7 +18,7 @@
csi.id AS sample_id, csi.sample_no, csi.sample_name, csi.sample_model, csi.manufacturing_no, bo.order_code AS orderNo, bo.id AS orderId,
- bo.customer_id, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, bosr.sample_status
+ bo.customer_id, bo.customer_no, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, bosr.sample_status
@@ -136,6 +136,12 @@
AND csi.sample_belong = #{request.sampleBelong}
+
+ AND csi.id IN
+
+ #{item}
+
+
ORDER BY bosr.update_time DESC
@@ -146,8 +152,8 @@
JOIN customer_sample_info csi ON bosr.sample_id = csi.id
JOIN business_order bo ON bosr.order_id = bo.id
WHERE bo.is_del = 0 AND csi.is_del = 0
- AND bosr.order_id = #{request.orderId}
- AND bosr.sample_id = #{request.sampleId}
+ AND bosr.order_id = #{orderId}
+ AND bosr.sample_id = #{sampleId}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveDetailRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveDetailRequest.java
new file mode 100644
index 0000000..8817b91
--- /dev/null
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveDetailRequest.java
@@ -0,0 +1,24 @@
+package com.casic.missiles.dto.business;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @Description:
+ * @Author: wangpeng
+ * @Date: 2023/2/21 10:00
+ */
+@Data
+@ApiModel
+public class ExecutiveDetailRequest {
+ @NotNull(message = "委托书id不能为空")
+ @ApiModelProperty(value = "委托书id", dataType = "Long")
+ private Long orderId;
+
+ @NotNull(message = "样品id不能为空")
+ @ApiModelProperty(value = "样品id", dataType = "Long")
+ private Long sampleId;
+}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveDetailResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveDetailResponse.java
new file mode 100644
index 0000000..35452b9
--- /dev/null
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveDetailResponse.java
@@ -0,0 +1,139 @@
+package com.casic.missiles.dto.business;
+
+import com.casic.missiles.annotation.DictCodeField;
+import com.casic.missiles.constants.MeterDictCode;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @Description: 任务分发-详情
+ * @Author: wangpeng
+ * @Date: 2023/2/9 11:41
+ */
+@Data
+@ApiModel
+public class ExecutiveDetailResponse {
+ @ApiModelProperty(value = "样品id", dataType = "Long")
+ private Long sampleId;
+
+ @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 manufacturer;
+
+ @ApiModelProperty(value = "厂家国别", dataType = "String")
+ private String manufacturerCountry;
+
+ @ApiModelProperty(value = "出厂年月", dataType = "String")
+ private String manufacturingDate;
+
+ @ApiModelProperty(value = "ABC", dataType = "String")
+ private String abc;
+
+ @ApiModelProperty(value = "委托方id", dataType = "Long")
+ private Long customerId;
+
+ @ApiModelProperty(value = "委托方名称", dataType = "String")
+ private String customerName;
+
+ @ApiModelProperty(value = "委托方电话", dataType = "String")
+ private String customerPhone;
+
+ //需求中有,建议去掉,否则多关联一张表
+// @ApiModelProperty(value = "委托方邮编", dataType = "String")
+// private String postalCode;
+
+// @ApiModelProperty(value = "委托方公司地址-国家", dataType = "String")
+// private String addressCountry;
+//
+// @ApiModelProperty(value = "委托方公司地址-省", dataType = "String")
+// private String addressProvince;
+//
+// @ApiModelProperty(value = "委托方公司地址-市", dataType = "String")
+// private String addressCity;
+//
+// @ApiModelProperty(value = "委托方公司地址-区", dataType = "String")
+// private String addressArea;
+
+ @ApiModelProperty(value = "委托方公司地址-详细地址", dataType = "String")
+ private String customerAddress;
+
+// @ApiModelProperty(value = "委托方公司地址-国家名字", dataType = "String")
+// private String addressCountryName;
+//
+// @ApiModelProperty(value = "委托方公司地址-省名字", dataType = "String")
+// private String addressProvinceName;
+//
+// @ApiModelProperty(value = "委托方公司地址-市名字", dataType = "String")
+// private String addressCityName;
+//
+// @ApiModelProperty(value = "委托方公司地址-区名字", dataType = "String")
+// private String addressAreaName;
+
+ @ApiModelProperty(value = "委托书id", dataType = "Long")
+ private String orderId;
+
+ @ApiModelProperty(value = "委托书编号", dataType = "String")
+ private String orderCode;
+
+ @ApiModelProperty(value = "送样人", dataType = "String")
+ private String deliverer;
+
+ @ApiModelProperty(value = "送样人联系方式", dataType = "String")
+ private String delivererTel;
+
+ @ApiModelProperty(value = "预约送达时间", dataType = "String")
+ private String planDeliverTime;
+
+ @ApiModelProperty(value = "要求检完时间", dataType = "String")
+ private String requireOverTime;
+
+ @ApiModelProperty(value = "检定项目", dataType = "String")
+ private String measureContent;
+
+ @ApiModelProperty(value = "检定周期(月)", dataType = "String")
+ private String measurePeriod;
+
+ @ApiModelProperty(value = "检定日期", dataType = "String")
+ private String measureLastDate;
+
+ @ApiModelProperty(value = "有效日期", dataType = "String")
+ private String effectiveDate;
+
+ //需求中已删除该字段展示,不展示整个样品的检定结果,只在证书里展示各证书的检定结果
+// @ApiModelProperty(value = "检定结果", dataType = "String")
+// private String measureResult;
+
+ @ApiModelProperty(value = "备注", dataType = "String")
+ private String remark;
+
+ @ApiModelProperty(value = "说明书", dataType = "String")
+ private String minioFileName;
+
+ @ApiModelProperty(value = "检定方式(字典code)", dataType = "String")
+ @DictCodeField(message = "检定方式不合法", cacheName = MeterDictCode.MEASURE_TYPE)
+ private String measureType;
+
+ @ApiModelProperty(value = "检定方式(字典value)", dataType = "String")
+ private String measureTypeName;
+
+ @ApiModelProperty(value = "标签绑定", dataType = "String")
+ private String labelBind;
+
+ @ApiModelProperty(value = "检定流程", dataType = "List")
+ private List measureProcessList;
+
+}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveSendBackRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveSendBackRequest.java
new file mode 100644
index 0000000..832f707
--- /dev/null
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveSendBackRequest.java
@@ -0,0 +1,38 @@
+package com.casic.missiles.dto.business;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @Description:
+ * @Author: wangpeng
+ * @Date: 2023/2/21 10:29
+ */
+@Data
+@ApiModel
+public class ExecutiveSendBackRequest {
+ @NotNull(message = "实验室检测id不能为空")
+ @ApiModelProperty(value = "实验室检测id", dataType = "Long")
+ private Long id;
+
+ @NotNull(message = "委托书id不能为空")
+ @ApiModelProperty(value = "委托书id", dataType = "Long")
+ private Long orderId;
+
+ @NotNull(message = "样品id不能为空")
+ @ApiModelProperty(value = "样品id", dataType = "Long")
+ private Long sampleId;
+
+ @NotNull(message = "检定环节不能为空")
+ @ApiModelProperty(value = "检定环节,实验室id", dataType = "Long")
+ private Long measureSegmentId;
+
+ @ApiModelProperty(value = "检定人员id", dataType = "Long")
+ private Long measurePersonId;
+
+ @ApiModelProperty(value = "退回原因", dataType = "Long")
+ private String operateReason;
+}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/MySampleOperateRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/MySampleOperateRequest.java
deleted file mode 100644
index 15f2fe9..0000000
--- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/MySampleOperateRequest.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package com.casic.missiles.dto.business;
-
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
-import javax.validation.constraints.NotNull;
-
-/**
- * @Description: 实验室检测-我的检测-检定人扫描收入请求实体
- * @Author: wangpeng
- * @Date: 2023/2/15 15:31
- */
-@Data
-@ApiModel
-public class MySampleOperateRequest {
- @NotNull(message = "委托书id不能为空")
- @ApiModelProperty(value = "委托书id", dataType = "Long")
- private Long orderId;
-
- @NotNull(message = "样品id不能为空")
- @ApiModelProperty(value = "样品id", dataType = "Long")
- private Long sampleId;
-}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListRequest.java
index 5a9d04a..7daf5b9 100644
--- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListRequest.java
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListRequest.java
@@ -7,6 +7,7 @@
import lombok.Data;
import javax.validation.constraints.NotBlank;
+import java.util.List;
@Data
@ApiModel
@@ -44,4 +45,7 @@
@ApiModelProperty(value = "样品属性(字典code)", dataType = "String")
private String sampleBelong;
+ @ApiModelProperty(value = "筛选样品ids(sampleId列表,导出使用)", dataType = "List")
+ private List ids;
+
}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java
index 0e34812..d2a665e 100644
--- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java
@@ -46,9 +46,12 @@
@ExcelProperty(value = "委托书编号", order = 4)
private String orderNo;
+ @ApiModelProperty(value = "委托方id", dataType = "Long")
+ private Long customerId;
+
@ApiModelProperty(value = "委托方代码", dataType = "String")
@ExcelProperty(value = "委托方代码", order = 5)
- private String customerId;
+ private String customerNo;
@ApiModelProperty(value = "委托方名称", dataType = "String")
@ExcelProperty(value = "委托方名称", order = 6)
@@ -91,7 +94,7 @@
@ExcelProperty(value = "分发性质", order = 14)
private String handOutProperty;
- @JSONField(serialize = false)
+ @ApiModelProperty(value = "委托书id", dataType = "String")
private Long orderId;
@JSONField(serialize = false)
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleLabExecutiveListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleLabExecutiveListResponse.java
index 89f18b9..9e31fa0 100644
--- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleLabExecutiveListResponse.java
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleLabExecutiveListResponse.java
@@ -22,6 +22,8 @@
@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN)
@ExcelIgnoreUnannotated
public class SampleLabExecutiveListResponse {
+ @ApiModelProperty(value = "实验室检测id(退回操作中使用)", dataType = "Long")
+ private Long id;
@ApiModelProperty(value = "样品id", dataType = "Long")
private Long sampleId;
@@ -46,9 +48,13 @@
@ExcelProperty(value = "委托书编号", order = 4)
private String orderNo;
+ @ApiModelProperty(value = "委托方id", dataType = "String")
+// @ExcelProperty(value = "委托方id", order = 5)
+ private Long customerId;
+
@ApiModelProperty(value = "委托方代码", dataType = "String")
@ExcelProperty(value = "委托方代码", order = 5)
- private String customerId;
+ private String customerNo;
@ApiModelProperty(value = "委托方名称", dataType = "String")
@ExcelProperty(value = "委托方名称", order = 6)
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleOperateRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleOperateRequest.java
new file mode 100644
index 0000000..86f3ebc
--- /dev/null
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleOperateRequest.java
@@ -0,0 +1,24 @@
+package com.casic.missiles.dto.business;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @Description: 实验室检测-我的检测-检定人扫描收入请求实体
+ * @Author: wangpeng
+ * @Date: 2023/2/15 15:31
+ */
+@Data
+@ApiModel
+public class SampleOperateRequest {
+ @NotNull(message = "委托书id不能为空")
+ @ApiModelProperty(value = "委托书id", dataType = "Long")
+ private Long orderId;
+
+ @NotNull(message = "样品id不能为空")
+ @ApiModelProperty(value = "样品id", dataType = "Long")
+ private Long sampleId;
+}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/UpdateExecutiveDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/UpdateExecutiveDTO.java
deleted file mode 100644
index eb1210a..0000000
--- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/UpdateExecutiveDTO.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package com.casic.missiles.dto.business;
-
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
-import javax.validation.constraints.NotNull;
-
-/**
- * @Description:
- * @Author: wangpeng
- * @Date: 2023/2/20 11:22
- */
-@Data
-@ApiModel
-public class UpdateExecutiveDTO {
- @ApiModelProperty(value = "主键id(有则必传)", dataType = "Long")
- private Long id;
-
- @NotNull(message = "检定环节不能为空")
- @ApiModelProperty(value = "检定环节,实验室id", dataType = "Long")
- private Long measureSegmentId;
-
- @ApiModelProperty(value = "检定人员id", dataType = "Long")
- private Long measurePersonId;
-
- @ApiModelProperty(value = "检测顺序", dataType = "Integer")
- @NotNull(message = "检测顺序不能为空")
- private Integer measureSequence;
-
- @ApiModelProperty(value = "检定状态(字典code)(流程中不能编辑的节点必传参数)", dataType = "String")
- private String measureStatus;
-}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/UpdateExecutiveListDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/UpdateExecutiveListDTO.java
new file mode 100644
index 0000000..8160c2f
--- /dev/null
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/UpdateExecutiveListDTO.java
@@ -0,0 +1,33 @@
+package com.casic.missiles.dto.business;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @Description:
+ * @Author: wangpeng
+ * @Date: 2023/2/20 11:22
+ */
+@Data
+@ApiModel
+public class UpdateExecutiveListDTO {
+ @ApiModelProperty(value = "主键id(有则必传)", dataType = "Long")
+ private Long id;
+
+ @NotNull(message = "检定环节不能为空")
+ @ApiModelProperty(value = "检定环节,实验室id", dataType = "Long")
+ private Long measureSegmentId;
+
+ @ApiModelProperty(value = "检定人员id", dataType = "Long")
+ private Long measurePersonId;
+
+ @ApiModelProperty(value = "检测顺序", dataType = "Integer")
+ @NotNull(message = "检测顺序不能为空")
+ private Integer measureSequence;
+
+ @ApiModelProperty(value = "检定状态(字典code)(流程中不能编辑的节点必传参数)", dataType = "String")
+ private String measureStatus;
+}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/UpdateExecutiveListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/UpdateExecutiveListRequest.java
index 6a50280..1c72cc0 100644
--- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/UpdateExecutiveListRequest.java
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/UpdateExecutiveListRequest.java
@@ -26,5 +26,5 @@
@NotEmpty(message = "实验室检测列表不能为空")
@ApiModelProperty(value = "实验室检测列表", dataType = "List")
- private List executiveList;
+ private List executiveList;
}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/UpdateExecutiveRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/UpdateExecutiveRequest.java
new file mode 100644
index 0000000..6499ca6
--- /dev/null
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/UpdateExecutiveRequest.java
@@ -0,0 +1,27 @@
+package com.casic.missiles.dto.business;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @Description:
+ * @Author: wangpeng
+ * @Date: 2023/2/21 9:12
+ */
+@Data
+@ApiModel
+public class UpdateExecutiveRequest {
+ @NotNull(message = "id不能为空")
+ @ApiModelProperty(value = "主键id", dataType = "Long")
+ private Long id;
+
+ @NotNull(message = "检定人员不能为空")
+ @ApiModelProperty(value = "检定人员id", dataType = "Long")
+ private Long measurePersonId;
+
+ @ApiModelProperty(value = "应出具证书总数", dataType = "Integer")
+ private Integer requireCertifications;
+}
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessLabExecutiveInfoController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessLabExecutiveInfoController.java
index c14c3be..aa330f9 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessLabExecutiveInfoController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessLabExecutiveInfoController.java
@@ -7,6 +7,7 @@
import com.casic.missiles.dto.ReturnDTO;
import com.casic.missiles.dto.ReturnUtil;
import com.casic.missiles.dto.business.*;
+import com.casic.missiles.enums.ExportEnum;
import com.casic.missiles.exception.BusinessException;
import com.casic.missiles.model.exception.enums.CoreExceptionEnum;
import com.casic.missiles.service.business.IBusinessLabExecutiveInfoService;
@@ -25,9 +26,9 @@
*
* 业务管理-实验室检定信息记录表(用于流程中的实验室分配及后续检定过程查询) 前端控制器
* 样品状态(任务收发&任务分发使用,委托书和样品关联表中的状态):
- * 1:待收入;2:待分发;3:检测中;4:检测完成;5:待归还;6:已归还;7:无需检测;8:已超期
+ * 1:待收入;2:待分发;3:检测中;4:检测完成;5:待归还;6:已归还;7:无需检测;8:已超期
* 实验室检定状态(实验室检测使用,实验室检定信息记录表中的状态):
- * 1:待分配(负责人);2:待检测(检定人);3:检测完成;4:退回;5:终止(已收入中点击终止更新实验室中待分配和待检测的的状态为已终止)
+ * 1:待分配(负责人);2:待检测(检定人);3:检测完成;4:退回;5:终止(已收入中点击终止更新实验室中待分配和待检测的的状态为已终止)
*
*
* @author wangpeng
@@ -135,7 +136,7 @@
@ApiOperation("实验室检测-我的检测-检定人扫描收入(待检测->检测中)")
@PostMapping("/myExecutive/receive")
@ResponseBody
- public ReturnDTO sampleReceive(@RequestBody @Valid List requestList, BindingResult bindingResult) {
+ public ReturnDTO sampleReceive(@RequestBody @Valid List requestList, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
}
@@ -148,7 +149,7 @@
@ApiOperation("实验室检测-负责人/检定人扫描检完(检测中->检测完)")
@PostMapping("/myExecutive/complete")
@ResponseBody
- public ReturnDTO sampleExecutiveComplete(@RequestBody @Valid List requestList, BindingResult bindingResult) {
+ public ReturnDTO sampleExecutiveComplete(@RequestBody @Valid List requestList, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
}
@@ -158,25 +159,49 @@
/**
* 实验室检测-部门检测/我的检测 编辑(只能修改应出具证书)
*/
+ @ApiOperation("实验室检测-部门检测/我的检测 编辑(只能修改应出具证书)")
+ @PostMapping("/executive/update")
+ @ResponseBody
+ public ReturnDTO updateExecutive(@RequestBody @Valid UpdateExecutiveRequest request, BindingResult bindingResult) {
+ if (bindingResult.hasErrors()) {
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ return labExecutiveInfoService.updateExecutive(request);
+ }
/**
* 实验室检测-部门检测/我的检测 详情
*/
+ @ApiOperation("实验室检测-部门检测/我的检测 详情")
+ @PostMapping("/executive/detail")
+ @ResponseBody
+ public ReturnDTO executiveDetail(@RequestBody @Valid ExecutiveDetailRequest request, BindingResult bindingResult) throws Exception {
+ if (bindingResult.hasErrors()) {
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ return ReturnUtil.success(labExecutiveInfoService.executiveDetail(request));
+ }
/**
* 实验室检测-部门检测/我的检测 退回(待检测/检测中->退回)
- * 退回后会将下一个要执行的实验室检测状态更新为待分配,将后面的实验室顺序变更为连续(都进行减1,)
- * 可能出现最后一个检测的实验室退回,这样的情况是否需要把样品状态改为检测完,还是等分发员再增加实验室或增加个分发员点击完成的按钮
+ * 退回后会将下一个要执行的实验室检测状态更新为待分配,将后面的实验室顺序变更为连续(都进行减1)
+ * 最后一个检测的实验室退回,等分发员再增加实验室或设备收发中的已收入直接手动点击完成
*/
-
-
-
+ @ApiOperation("实验室检测-部门检测/我的检测 退回(待检测/检测中->退回)")
+ @PostMapping("/executive/sendBack")
+ @ResponseBody
+ public ReturnDTO executiveSendBack(@RequestBody @Valid ExecutiveSendBackRequest request, BindingResult bindingResult) {
+ if (bindingResult.hasErrors()) {
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ return labExecutiveInfoService.sampleExecutiveSendBack(request);
+ }
/**
* 分发员编辑实验室检测列表
*/
@ApiOperation("分发员编辑实验室检测列表")
- @PostMapping("/handOut/updateExecutiveList")
+ @PostMapping("/handOut/updateList")
@ResponseBody
public ReturnDTO updateExecutiveList(@RequestBody @Valid UpdateExecutiveListRequest request, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
@@ -185,9 +210,23 @@
return labExecutiveInfoService.updateExecutiveList(request);
}
-
/**
- * 各列表导出
+ * 各状态列表导出
*/
+ @ApiOperation("任务分发-各状态列表导出")
+ @PostMapping("/handOut/listExport")
+ @ResponseBody
+ public void export(@RequestBody @Valid SampleHandOutListRequest request, BindingResult bindingResult) throws Exception {
+ if (bindingResult.hasErrors()) {
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ Page page = PageFactory.defaultPage();
+ page.setCurrent(1);
+ page.setSearchCount(false);
+ page.setSize(Integer.MAX_VALUE);
+ Page responsePage = labExecutiveInfoService.handOutListPage(page, request);
+ List list = responsePage.getRecords();
+ super.exportExcel(SampleHandOutListResponse.class, list, ExportEnum.HANDOUT_EXPORT.getSheetName());
+ }
}
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java
index 9637b3a..7f8c1e7 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java
@@ -79,7 +79,7 @@
@ApiOperation("文件导出")
@PostMapping("/listExport")
@ResponseBody
- public void export(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) throws IOException {
+ public void export(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) throws IOException {
if (bindingResult.hasErrors()) {
throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
}
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 9e3d9fd..0c1cf2d 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
@@ -53,7 +53,9 @@
HANDLE_FAILED(500, "操作失败"),
QRCODE_FAILED(2409, "二维码生成失败"),
RECEIVE_SAMPLE_NOT_EXIST(2410, "待检测中不存在扫描收入的样品"),
- COMPLETE_SAMPLE_NOT_EXIST(2411, "检测中不存在扫描收入的样品");
+ COMPLETE_SAMPLE_NOT_EXIST(2411, "检测中不存在扫描收入的样品"),
+ CANNOT_CHANGE_MEASURE_INFO(2412, "无法更改非当前登录用户的检测信息"),
+ NON_EXIST_ORDER_OR_SAMPLE(2413, "不存在该委托单或该委托单下的样品");
private Integer code;
private String message;
diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java
index 06a3fd8..a43d9c9 100644
--- a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java
+++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java
@@ -36,7 +36,8 @@
DISPATCH_DATA("dispatchData", "dispatchData", "设备收发"),
ENVIRONMENT_DATA("environmentData", "environmentData", "环境记录单"),
ORIGIN_DATA("originData", "originData", "原始记录"),
- ADVICE_EXPORT("adviceData", "adviceData", "客户反馈");
+ ADVICE_EXPORT("adviceData", "adviceData", "客户反馈"),
+ HANDOUT_EXPORT("handoutData", "handoutData", "任务分发列表");
ExportEnum(String fileName, String sheetName, String description) {
this.fileName = fileName;
diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveInfoMapper.java
index e4cd952..2ce14af 100644
--- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveInfoMapper.java
+++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveInfoMapper.java
@@ -22,13 +22,17 @@
Integer getMeasureNumberStatus(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId);
- List selectExecutiveList(@Param("request") SampleHandOutDetailRequest request);
+ List selectExecutiveList(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId);
Page selectListByDeptIdAndStatus(Page page, @Param("request") SampleLabExecutiveListRequest request, @Param("deptId") Long deptId, @Param("status") String status, @Param("statusList") List statusList);
Page selectListByUserIdAndStatus(Page page, @Param("request") SampleLabExecutiveListRequest request, @Param("userId") Long userId, @Param("status") String status);
- int updateForSampleOperate(@Param("list") List list, @Param("userId") Long userId, @Param("status") String status);
+ int updateForSampleOperate(@Param("list") List list, @Param("userId") Long userId, @Param("status") String status);
- List selectListForSampleOperate(@Param("list") List requestList, @Param("userId") Long userId, @Param("status") String status);
+ List selectListForSampleOperate(@Param("list") List requestList, @Param("userId") Long userId, @Param("status") String status);
+
+ int updateForSendBack(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId);
+
+ Long selectMinSeq(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId);
}
diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveOperateLogMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveOperateLogMapper.java
index ed6f4a1..2bcc4e1 100644
--- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveOperateLogMapper.java
+++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveOperateLogMapper.java
@@ -2,7 +2,6 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.casic.missiles.dto.business.MeasureSendBackDTO;
-import com.casic.missiles.dto.business.SampleHandOutDetailRequest;
import com.casic.missiles.model.business.BusinessLabExecutiveOperateLog;
import org.apache.ibatis.annotations.Param;
@@ -19,5 +18,5 @@
*/
public interface BusinessLabExecutiveOperateLogMapper extends BaseMapper {
- List selectExecutiveOperateLogList(@Param("request") SampleHandOutDetailRequest request);
+ List selectExecutiveOperateLogList(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId);
}
diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java
index 235c95f..bddf56f 100644
--- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java
+++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java
@@ -5,7 +5,6 @@
import com.casic.missiles.dto.business.SampleHandOutDetailResponse;
import com.casic.missiles.dto.business.SampleHandOutListRequest;
import com.casic.missiles.dto.business.SampleHandOutListResponse;
-import com.casic.missiles.dto.business.SampleHandOutDetailRequest;
import com.casic.missiles.dto.business.dispatch.DeviceDispatchDTO;
import com.casic.missiles.dto.business.dispatch.DeviceDispatchVO;
import com.casic.missiles.dto.customer.sample.CustomerSampleListVO;
@@ -28,7 +27,7 @@
Page getSampleListByStatus(@Param("page") Page page, @Param("request") DeviceDispatchDTO request);
- SampleHandOutDetailResponse selectSampleDetail(@Param("request") SampleHandOutDetailRequest request);
+ SampleHandOutDetailResponse selectSampleDetail(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId);
int updateByOrderIdAndSampleId(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId, @Param("status") String status);
diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml
index 92402b7..87613eb 100644
--- a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml
+++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml
@@ -31,8 +31,8 @@
- csi.id AS sample_id, csi.sample_no, csi.sample_name, csi.sample_model, csi.manufacturing_no, bo.order_code AS orderNo, bo.id AS orderId,
- bo.customer_id, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, blei.require_certifications, blei.measure_status
+ blei.id AS id, csi.id AS sample_id, csi.sample_no, csi.sample_name, csi.sample_model, csi.manufacturing_no, bo.order_code AS orderNo, bo.id AS orderId,
+ bo.customer_id, bo.customer_no, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, blei.require_certifications, blei.measure_status
@@ -63,8 +63,8 @@
FROM business_lab_executive_info blei
JOIN sys_dept sd ON blei.measure_dept_id = sd.ID
LEFT JOIN sys_user su ON blei.measure_person_id = su.id
- WHERE blei.order_id = #{request.orderId}
- AND blei.sample_id = #{request.sampleId}
+ WHERE blei.order_id = #{orderId}
+ AND blei.sample_id = #{sampleId}
ORDER BY blei.measure_sequence ASC
@@ -161,7 +161,7 @@
-
+
SELECT order_id, sample_id
FROM business_lab_executive_info
WHERE measure_person_id = #{userId}
@@ -171,4 +171,27 @@
(#{item.orderId}, #{item.sampleId})
+
+
+ UPDATE business_lab_executive_info
+ SET measure_sequence = measure_sequence - 1
+ WHERE (measure_status IS NULL OR measure_status = "")
+ AND order_id = #{orderId}
+ AND sample_id = #{sampleId}
+
+
+
+ SELECT id FROM business_lab_executive_info
+ WHERE measure_sequence = (
+ SELECT MIN(measure_sequence)
+ FROM business_lab_executive_info
+ WHERE (measure_status IS NULL OR measure_status = "")
+ AND order_id = #{orderId}
+ AND sample_id = #{sampleId}
+ )
+ AND (measure_status IS NULL OR measure_status = "")
+ AND order_id = #{orderId}
+ AND sample_id = #{sampleId}
+
+
diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveOperateLogMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveOperateLogMapper.xml
index 9f6c97f..0a0b861 100644
--- a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveOperateLogMapper.xml
+++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveOperateLogMapper.xml
@@ -25,8 +25,8 @@
FROM business_lab_executive_operate_log bleoi
JOIN sys_dept sd ON bleoi.measure_dept_id = sd.ID
WHERE measure_status = 4
- AND bleoi.order_id = #{request.orderId}
- AND bleoi.sample_id = #{request.sampleId}
+ AND bleoi.order_id = #{orderId}
+ AND bleoi.sample_id = #{sampleId}
ORDER BY bleoi.create_time ASC
diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml
index c9b53d4..a2b0806 100644
--- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml
+++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml
@@ -18,7 +18,7 @@
csi.id AS sample_id, csi.sample_no, csi.sample_name, csi.sample_model, csi.manufacturing_no, bo.order_code AS orderNo, bo.id AS orderId,
- bo.customer_id, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, bosr.sample_status
+ bo.customer_id, bo.customer_no, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, bosr.sample_status
@@ -136,6 +136,12 @@
AND csi.sample_belong = #{request.sampleBelong}
+
+ AND csi.id IN
+
+ #{item}
+
+
ORDER BY bosr.update_time DESC
@@ -146,8 +152,8 @@
JOIN customer_sample_info csi ON bosr.sample_id = csi.id
JOIN business_order bo ON bosr.order_id = bo.id
WHERE bo.is_del = 0 AND csi.is_del = 0
- AND bosr.order_id = #{request.orderId}
- AND bosr.sample_id = #{request.sampleId}
+ AND bosr.order_id = #{orderId}
+ AND bosr.sample_id = #{sampleId}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveDetailRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveDetailRequest.java
new file mode 100644
index 0000000..8817b91
--- /dev/null
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveDetailRequest.java
@@ -0,0 +1,24 @@
+package com.casic.missiles.dto.business;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @Description:
+ * @Author: wangpeng
+ * @Date: 2023/2/21 10:00
+ */
+@Data
+@ApiModel
+public class ExecutiveDetailRequest {
+ @NotNull(message = "委托书id不能为空")
+ @ApiModelProperty(value = "委托书id", dataType = "Long")
+ private Long orderId;
+
+ @NotNull(message = "样品id不能为空")
+ @ApiModelProperty(value = "样品id", dataType = "Long")
+ private Long sampleId;
+}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveDetailResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveDetailResponse.java
new file mode 100644
index 0000000..35452b9
--- /dev/null
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveDetailResponse.java
@@ -0,0 +1,139 @@
+package com.casic.missiles.dto.business;
+
+import com.casic.missiles.annotation.DictCodeField;
+import com.casic.missiles.constants.MeterDictCode;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @Description: 任务分发-详情
+ * @Author: wangpeng
+ * @Date: 2023/2/9 11:41
+ */
+@Data
+@ApiModel
+public class ExecutiveDetailResponse {
+ @ApiModelProperty(value = "样品id", dataType = "Long")
+ private Long sampleId;
+
+ @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 manufacturer;
+
+ @ApiModelProperty(value = "厂家国别", dataType = "String")
+ private String manufacturerCountry;
+
+ @ApiModelProperty(value = "出厂年月", dataType = "String")
+ private String manufacturingDate;
+
+ @ApiModelProperty(value = "ABC", dataType = "String")
+ private String abc;
+
+ @ApiModelProperty(value = "委托方id", dataType = "Long")
+ private Long customerId;
+
+ @ApiModelProperty(value = "委托方名称", dataType = "String")
+ private String customerName;
+
+ @ApiModelProperty(value = "委托方电话", dataType = "String")
+ private String customerPhone;
+
+ //需求中有,建议去掉,否则多关联一张表
+// @ApiModelProperty(value = "委托方邮编", dataType = "String")
+// private String postalCode;
+
+// @ApiModelProperty(value = "委托方公司地址-国家", dataType = "String")
+// private String addressCountry;
+//
+// @ApiModelProperty(value = "委托方公司地址-省", dataType = "String")
+// private String addressProvince;
+//
+// @ApiModelProperty(value = "委托方公司地址-市", dataType = "String")
+// private String addressCity;
+//
+// @ApiModelProperty(value = "委托方公司地址-区", dataType = "String")
+// private String addressArea;
+
+ @ApiModelProperty(value = "委托方公司地址-详细地址", dataType = "String")
+ private String customerAddress;
+
+// @ApiModelProperty(value = "委托方公司地址-国家名字", dataType = "String")
+// private String addressCountryName;
+//
+// @ApiModelProperty(value = "委托方公司地址-省名字", dataType = "String")
+// private String addressProvinceName;
+//
+// @ApiModelProperty(value = "委托方公司地址-市名字", dataType = "String")
+// private String addressCityName;
+//
+// @ApiModelProperty(value = "委托方公司地址-区名字", dataType = "String")
+// private String addressAreaName;
+
+ @ApiModelProperty(value = "委托书id", dataType = "Long")
+ private String orderId;
+
+ @ApiModelProperty(value = "委托书编号", dataType = "String")
+ private String orderCode;
+
+ @ApiModelProperty(value = "送样人", dataType = "String")
+ private String deliverer;
+
+ @ApiModelProperty(value = "送样人联系方式", dataType = "String")
+ private String delivererTel;
+
+ @ApiModelProperty(value = "预约送达时间", dataType = "String")
+ private String planDeliverTime;
+
+ @ApiModelProperty(value = "要求检完时间", dataType = "String")
+ private String requireOverTime;
+
+ @ApiModelProperty(value = "检定项目", dataType = "String")
+ private String measureContent;
+
+ @ApiModelProperty(value = "检定周期(月)", dataType = "String")
+ private String measurePeriod;
+
+ @ApiModelProperty(value = "检定日期", dataType = "String")
+ private String measureLastDate;
+
+ @ApiModelProperty(value = "有效日期", dataType = "String")
+ private String effectiveDate;
+
+ //需求中已删除该字段展示,不展示整个样品的检定结果,只在证书里展示各证书的检定结果
+// @ApiModelProperty(value = "检定结果", dataType = "String")
+// private String measureResult;
+
+ @ApiModelProperty(value = "备注", dataType = "String")
+ private String remark;
+
+ @ApiModelProperty(value = "说明书", dataType = "String")
+ private String minioFileName;
+
+ @ApiModelProperty(value = "检定方式(字典code)", dataType = "String")
+ @DictCodeField(message = "检定方式不合法", cacheName = MeterDictCode.MEASURE_TYPE)
+ private String measureType;
+
+ @ApiModelProperty(value = "检定方式(字典value)", dataType = "String")
+ private String measureTypeName;
+
+ @ApiModelProperty(value = "标签绑定", dataType = "String")
+ private String labelBind;
+
+ @ApiModelProperty(value = "检定流程", dataType = "List")
+ private List measureProcessList;
+
+}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveSendBackRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveSendBackRequest.java
new file mode 100644
index 0000000..832f707
--- /dev/null
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveSendBackRequest.java
@@ -0,0 +1,38 @@
+package com.casic.missiles.dto.business;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @Description:
+ * @Author: wangpeng
+ * @Date: 2023/2/21 10:29
+ */
+@Data
+@ApiModel
+public class ExecutiveSendBackRequest {
+ @NotNull(message = "实验室检测id不能为空")
+ @ApiModelProperty(value = "实验室检测id", dataType = "Long")
+ private Long id;
+
+ @NotNull(message = "委托书id不能为空")
+ @ApiModelProperty(value = "委托书id", dataType = "Long")
+ private Long orderId;
+
+ @NotNull(message = "样品id不能为空")
+ @ApiModelProperty(value = "样品id", dataType = "Long")
+ private Long sampleId;
+
+ @NotNull(message = "检定环节不能为空")
+ @ApiModelProperty(value = "检定环节,实验室id", dataType = "Long")
+ private Long measureSegmentId;
+
+ @ApiModelProperty(value = "检定人员id", dataType = "Long")
+ private Long measurePersonId;
+
+ @ApiModelProperty(value = "退回原因", dataType = "Long")
+ private String operateReason;
+}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/MySampleOperateRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/MySampleOperateRequest.java
deleted file mode 100644
index 15f2fe9..0000000
--- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/MySampleOperateRequest.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package com.casic.missiles.dto.business;
-
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
-import javax.validation.constraints.NotNull;
-
-/**
- * @Description: 实验室检测-我的检测-检定人扫描收入请求实体
- * @Author: wangpeng
- * @Date: 2023/2/15 15:31
- */
-@Data
-@ApiModel
-public class MySampleOperateRequest {
- @NotNull(message = "委托书id不能为空")
- @ApiModelProperty(value = "委托书id", dataType = "Long")
- private Long orderId;
-
- @NotNull(message = "样品id不能为空")
- @ApiModelProperty(value = "样品id", dataType = "Long")
- private Long sampleId;
-}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListRequest.java
index 5a9d04a..7daf5b9 100644
--- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListRequest.java
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListRequest.java
@@ -7,6 +7,7 @@
import lombok.Data;
import javax.validation.constraints.NotBlank;
+import java.util.List;
@Data
@ApiModel
@@ -44,4 +45,7 @@
@ApiModelProperty(value = "样品属性(字典code)", dataType = "String")
private String sampleBelong;
+ @ApiModelProperty(value = "筛选样品ids(sampleId列表,导出使用)", dataType = "List")
+ private List ids;
+
}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java
index 0e34812..d2a665e 100644
--- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java
@@ -46,9 +46,12 @@
@ExcelProperty(value = "委托书编号", order = 4)
private String orderNo;
+ @ApiModelProperty(value = "委托方id", dataType = "Long")
+ private Long customerId;
+
@ApiModelProperty(value = "委托方代码", dataType = "String")
@ExcelProperty(value = "委托方代码", order = 5)
- private String customerId;
+ private String customerNo;
@ApiModelProperty(value = "委托方名称", dataType = "String")
@ExcelProperty(value = "委托方名称", order = 6)
@@ -91,7 +94,7 @@
@ExcelProperty(value = "分发性质", order = 14)
private String handOutProperty;
- @JSONField(serialize = false)
+ @ApiModelProperty(value = "委托书id", dataType = "String")
private Long orderId;
@JSONField(serialize = false)
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleLabExecutiveListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleLabExecutiveListResponse.java
index 89f18b9..9e31fa0 100644
--- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleLabExecutiveListResponse.java
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleLabExecutiveListResponse.java
@@ -22,6 +22,8 @@
@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN)
@ExcelIgnoreUnannotated
public class SampleLabExecutiveListResponse {
+ @ApiModelProperty(value = "实验室检测id(退回操作中使用)", dataType = "Long")
+ private Long id;
@ApiModelProperty(value = "样品id", dataType = "Long")
private Long sampleId;
@@ -46,9 +48,13 @@
@ExcelProperty(value = "委托书编号", order = 4)
private String orderNo;
+ @ApiModelProperty(value = "委托方id", dataType = "String")
+// @ExcelProperty(value = "委托方id", order = 5)
+ private Long customerId;
+
@ApiModelProperty(value = "委托方代码", dataType = "String")
@ExcelProperty(value = "委托方代码", order = 5)
- private String customerId;
+ private String customerNo;
@ApiModelProperty(value = "委托方名称", dataType = "String")
@ExcelProperty(value = "委托方名称", order = 6)
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleOperateRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleOperateRequest.java
new file mode 100644
index 0000000..86f3ebc
--- /dev/null
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleOperateRequest.java
@@ -0,0 +1,24 @@
+package com.casic.missiles.dto.business;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @Description: 实验室检测-我的检测-检定人扫描收入请求实体
+ * @Author: wangpeng
+ * @Date: 2023/2/15 15:31
+ */
+@Data
+@ApiModel
+public class SampleOperateRequest {
+ @NotNull(message = "委托书id不能为空")
+ @ApiModelProperty(value = "委托书id", dataType = "Long")
+ private Long orderId;
+
+ @NotNull(message = "样品id不能为空")
+ @ApiModelProperty(value = "样品id", dataType = "Long")
+ private Long sampleId;
+}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/UpdateExecutiveDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/UpdateExecutiveDTO.java
deleted file mode 100644
index eb1210a..0000000
--- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/UpdateExecutiveDTO.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package com.casic.missiles.dto.business;
-
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
-import javax.validation.constraints.NotNull;
-
-/**
- * @Description:
- * @Author: wangpeng
- * @Date: 2023/2/20 11:22
- */
-@Data
-@ApiModel
-public class UpdateExecutiveDTO {
- @ApiModelProperty(value = "主键id(有则必传)", dataType = "Long")
- private Long id;
-
- @NotNull(message = "检定环节不能为空")
- @ApiModelProperty(value = "检定环节,实验室id", dataType = "Long")
- private Long measureSegmentId;
-
- @ApiModelProperty(value = "检定人员id", dataType = "Long")
- private Long measurePersonId;
-
- @ApiModelProperty(value = "检测顺序", dataType = "Integer")
- @NotNull(message = "检测顺序不能为空")
- private Integer measureSequence;
-
- @ApiModelProperty(value = "检定状态(字典code)(流程中不能编辑的节点必传参数)", dataType = "String")
- private String measureStatus;
-}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/UpdateExecutiveListDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/UpdateExecutiveListDTO.java
new file mode 100644
index 0000000..8160c2f
--- /dev/null
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/UpdateExecutiveListDTO.java
@@ -0,0 +1,33 @@
+package com.casic.missiles.dto.business;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @Description:
+ * @Author: wangpeng
+ * @Date: 2023/2/20 11:22
+ */
+@Data
+@ApiModel
+public class UpdateExecutiveListDTO {
+ @ApiModelProperty(value = "主键id(有则必传)", dataType = "Long")
+ private Long id;
+
+ @NotNull(message = "检定环节不能为空")
+ @ApiModelProperty(value = "检定环节,实验室id", dataType = "Long")
+ private Long measureSegmentId;
+
+ @ApiModelProperty(value = "检定人员id", dataType = "Long")
+ private Long measurePersonId;
+
+ @ApiModelProperty(value = "检测顺序", dataType = "Integer")
+ @NotNull(message = "检测顺序不能为空")
+ private Integer measureSequence;
+
+ @ApiModelProperty(value = "检定状态(字典code)(流程中不能编辑的节点必传参数)", dataType = "String")
+ private String measureStatus;
+}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/UpdateExecutiveListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/UpdateExecutiveListRequest.java
index 6a50280..1c72cc0 100644
--- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/UpdateExecutiveListRequest.java
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/UpdateExecutiveListRequest.java
@@ -26,5 +26,5 @@
@NotEmpty(message = "实验室检测列表不能为空")
@ApiModelProperty(value = "实验室检测列表", dataType = "List")
- private List executiveList;
+ private List executiveList;
}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/UpdateExecutiveRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/UpdateExecutiveRequest.java
new file mode 100644
index 0000000..6499ca6
--- /dev/null
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/UpdateExecutiveRequest.java
@@ -0,0 +1,27 @@
+package com.casic.missiles.dto.business;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @Description:
+ * @Author: wangpeng
+ * @Date: 2023/2/21 9:12
+ */
+@Data
+@ApiModel
+public class UpdateExecutiveRequest {
+ @NotNull(message = "id不能为空")
+ @ApiModelProperty(value = "主键id", dataType = "Long")
+ private Long id;
+
+ @NotNull(message = "检定人员不能为空")
+ @ApiModelProperty(value = "检定人员id", dataType = "Long")
+ private Long measurePersonId;
+
+ @ApiModelProperty(value = "应出具证书总数", dataType = "Integer")
+ private Integer requireCertifications;
+}
diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java
index 9f91158..afdc42a 100644
--- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java
+++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java
@@ -19,9 +19,13 @@
import com.casic.missiles.exception.BusinessException;
import com.casic.missiles.mapper.business.*;
import com.casic.missiles.mapper.meter.MeterOrganizeMapper;
-import com.casic.missiles.model.business.*;
+import com.casic.missiles.model.business.BusinessCertificateReport;
+import com.casic.missiles.model.business.BusinessLabExecutiveInfo;
+import com.casic.missiles.model.business.BusinessLabExecutiveOperateLog;
+import com.casic.missiles.model.business.BusinessLabExecutiveTemplateInfo;
import com.casic.missiles.service.business.IBusinessLabExecutiveInfoService;
import com.casic.missiles.service.business.IBusinessLabExecutiveTemplateInfoService;
+import com.casic.missiles.utils.ConvertUtils;
import com.casic.missiles.utils.DictCodeUtils;
import com.casic.missiles.utils.NumberGeneratorUtil;
import lombok.extern.slf4j.Slf4j;
@@ -120,12 +124,15 @@
}
@Override
- public SampleHandOutDetailResponse handOutListDetail(SampleHandOutDetailRequest handOutDetailRequest) throws Exception{
+ public SampleHandOutDetailResponse handOutListDetail(SampleHandOutDetailRequest request) throws Exception{
//根据样品id和委托书id查询样品、委托书、委托方
- SampleHandOutDetailResponse sampleDetail = orderSampleRelationMapper.selectSampleDetail(handOutDetailRequest);
+ SampleHandOutDetailResponse sampleDetail = orderSampleRelationMapper.selectSampleDetail(request.getOrderId(), request.getSampleId());
+ if(Objects.isNull(sampleDetail)){
+ throw new BusinessException(BusinessExceptionEnum.NON_EXIST_ORDER_OR_SAMPLE);
+ }
//根据样品id和委托书id查询检定流程、退回信息
- List measureProcessDTOS = labExecutiveInfoMapper.selectExecutiveList(handOutDetailRequest);
- List measureSendBackDTOS = labExecutiveOperateLogMapper.selectExecutiveOperateLogList(handOutDetailRequest);
+ List measureProcessDTOS = labExecutiveInfoMapper.selectExecutiveList(request.getOrderId(), request.getSampleId());
+ List measureSendBackDTOS = labExecutiveOperateLogMapper.selectExecutiveOperateLogList(request.getOrderId(), request.getSampleId());
sampleDetail.setMeasureProcessList(measureProcessDTOS);
sampleDetail.setMeasureSendBackList(measureSendBackDTOS);
DictCodeUtils.convertDictCodeToName(sampleDetail);
@@ -305,7 +312,7 @@
}
@Override
- public ReturnDTO sampleReceive(List requestList) {
+ public ReturnDTO sampleReceive(List requestList) {
//扫描收入会显示扫进来哪些,检测人员确定要扫描的样品后,调用接口,接口中查询是否在该用户的待检测中有该样品,没有则返回提示信息,有则更新状态
//该接口前应该有个根据标签查询样品信息的接口(查样品和委托书关联表中最新的委托书的样品列表)
AuthUser user = ShiroKit.getUser();
@@ -314,7 +321,10 @@
});
Long userId = user.getId();
//查询扫描样品中为该用户待检测中的样品列表
- List preList = labExecutiveInfoMapper.selectListForSampleOperate(requestList, userId, MeasureStatusEnum.TO_MEASURE);
+ List preList = labExecutiveInfoMapper.selectListForSampleOperate(requestList, userId, MeasureStatusEnum.TO_MEASURE);
+ if(CollectionUtils.isEmpty(preList)){
+ throw new BusinessException(BusinessExceptionEnum.RECEIVE_SAMPLE_NOT_EXIST);
+ }
int updateFlag = labExecutiveInfoMapper.updateForSampleOperate(preList, userId, MeasureStatusEnum.IN_MEASURE);
if(updateFlag > 0){
return ReturnUtil.success();
@@ -324,7 +334,7 @@
@Override
@Transactional
- public ReturnDTO sampleExecutiveComplete(List requestList) {
+ public ReturnDTO sampleExecutiveComplete(List requestList) {
//查询是否在该用户的检测中有该样品,没有则返回提示信息,有则更新检测状态、更新样品状态(判断是否全部实验室检测完成)
AuthUser user = ShiroKit.getUser();
Assert.isFalse(Objects.isNull(user), () -> {
@@ -332,23 +342,23 @@
});
Long userId = user.getId();
//查询扫描样品中为该用户检测中的样品列表
- List preList = labExecutiveInfoMapper.selectListForSampleOperate(requestList, userId, MeasureStatusEnum.IN_MEASURE);
+ List preList = labExecutiveInfoMapper.selectListForSampleOperate(requestList, userId, MeasureStatusEnum.IN_MEASURE);
if(CollectionUtils.isEmpty(preList)){
throw new BusinessException(BusinessExceptionEnum.COMPLETE_SAMPLE_NOT_EXIST);
}
int updateFlag = labExecutiveInfoMapper.updateForSampleOperate(preList, userId, MeasureStatusEnum.MEASURE_COMPLETE);
if(updateFlag > 0){
-
preList.forEach(pre -> {
//是否全部实验室完成,所有实验室无检测完外的其他状态或空才是样品的检测完(有终止状态会把样品状态直接更新为待归还,有退回的状态会从表中删除加入到log表)
QueryWrapper wrapper = new QueryWrapper<>();
wrapper.eq("order_id", pre.getOrderId());
wrapper.eq("sample_id", pre.getSampleId());
- List labExecutiveInfos = labExecutiveInfoMapper.selectList(wrapper);
+ List labExecutiveInfos = labExecutiveInfoMapper.selectList(wrapper);//可查到updateFlag更新后的值
List unExecutiveInfos = labExecutiveInfos.stream().filter(lab ->
StringUtils.isEmpty(lab.getMeasureStatus()) || !StringUtils.equals(MeasureStatusEnum.MEASURE_COMPLETE, lab.getMeasureStatus())
).collect(Collectors.toList());
- if(0 == (CollectionUtils.isEmpty(unExecutiveInfos) ? 0 : unExecutiveInfos.size())){
+ //全部实验室检测完成
+ if(CollectionUtils.isEmpty(unExecutiveInfos)){
//更新样品状态为检测完
orderSampleRelationMapper.updateByOrderIdAndSampleId(pre.getOrderId(), pre.getSampleId(), SampleStatusEnum.MEASURE_COMPLETE);
// TODO: 2023/2/17 委托书中所有样品检测完更新委托书接收状态为检测完成,需求待定
@@ -393,8 +403,8 @@
@Override
public ReturnDTO updateExecutiveList(UpdateExecutiveListRequest request) {
//删除前端已删除的ids
- List executiveList = request.getExecutiveList();
- List ids = executiveList.stream().map(UpdateExecutiveDTO::getId).filter(Objects::nonNull).collect(Collectors.toList());
+ List executiveList = request.getExecutiveList();
+ List ids = executiveList.stream().map(UpdateExecutiveListDTO::getId).filter(Objects::nonNull).collect(Collectors.toList());
QueryWrapper wrapper = new QueryWrapper<>();
wrapper.eq("order_id", request.getOrderId());
wrapper.eq("sample_id", request.getSampleId());
@@ -406,7 +416,7 @@
List updateList = new ArrayList<>();
//新增之前不存在的实验室列表(根据id判断)
List addList = new ArrayList<>();
- for (UpdateExecutiveDTO executiveDTO : executiveList) {
+ for (UpdateExecutiveListDTO executiveDTO : executiveList) {
if(StringUtils.isNotEmpty(executiveDTO.getMeasureStatus())) continue;
if(Objects.isNull(executiveDTO.getId())){
BusinessLabExecutiveInfo labExecutiveInfo = new BusinessLabExecutiveInfo();
@@ -431,6 +441,77 @@
return ReturnUtil.success();
}
+ @Override
+ public ReturnDTO updateExecutive(UpdateExecutiveRequest request) {
+ AuthUser user = ShiroKit.getUser();
+ Assert.isFalse(Objects.isNull(user), () -> {
+ throw new BusinessException(BusinessExceptionEnum.LOGIN_USER_ACQUIRE_FAILED);
+ });
+ if(request.getMeasurePersonId() != user.getId()){
+ throw new BusinessException(BusinessExceptionEnum.CANNOT_CHANGE_MEASURE_INFO);
+ }
+ BusinessLabExecutiveInfo executiveInfo = new BusinessLabExecutiveInfo();
+ executiveInfo.setId(request.getId());
+ executiveInfo.setRequireCertifications(request.getRequireCertifications());
+ if(labExecutiveInfoMapper.updateById(executiveInfo) > 0){
+ return ReturnUtil.success();
+ }
+ log.info("更新实验室应出具证书信息失败,主键id:{}", request.getId());
+ return ReturnUtil.failed();
+ }
+
+ @Override
+ public ExecutiveDetailResponse executiveDetail(ExecutiveDetailRequest request) throws Exception{
+ //根据样品id和委托书id查询样品、委托书、委托方
+ SampleHandOutDetailResponse sampleDetail = orderSampleRelationMapper.selectSampleDetail(request.getOrderId(), request.getSampleId());
+ if(Objects.isNull(sampleDetail)){
+ throw new BusinessException(BusinessExceptionEnum.NON_EXIST_ORDER_OR_SAMPLE);
+ }
+ ExecutiveDetailResponse detailResponse = ConvertUtils.sourceToTarget(sampleDetail, ExecutiveDetailResponse.class);
+ //根据样品id和委托书id查询检定流程
+ List measureProcessDTOS = labExecutiveInfoMapper.selectExecutiveList(request.getOrderId(), request.getSampleId());
+ detailResponse.setMeasureProcessList(measureProcessDTOS);
+ DictCodeUtils.convertDictCodeToName(detailResponse);
+ return detailResponse;
+ }
+
+ @Override
+ @Transactional
+ public ReturnDTO sampleExecutiveSendBack(ExecutiveSendBackRequest request) {
+ //查询是否在该用户的检测中有该样品,没有则返回提示信息,有则更新检测状态、更新样品状态(判断是否全部实验室检测完成)
+ AuthUser user = ShiroKit.getUser();
+ Assert.isFalse(Objects.isNull(user), () -> {
+ throw new BusinessException(BusinessExceptionEnum.LOGIN_USER_ACQUIRE_FAILED);
+ });
+ Long userId = user.getId();
+ //删除实验室检测列表中退回数据
+ int deleteFlag = labExecutiveInfoMapper.deleteById(request.getId());
+ //退回操作记录表中增加数据
+ BusinessLabExecutiveOperateLog operateLog = new BusinessLabExecutiveOperateLog();
+ operateLog.setOrderId(request.getOrderId());
+ operateLog.setSampleId(request.getSampleId());
+ operateLog.setMeasureDeptId(request.getMeasureSegmentId());
+ operateLog.setMeasurePersonId(request.getMeasurePersonId());
+ operateLog.setOperatePersonId(userId);
+ operateLog.setOperatePersonName(user.getName());
+ operateLog.setMeasureStatus(MeasureStatusEnum.SEND_BACK);
+ operateLog.setOperateReason(request.getOperateReason());
+ int insertFlag = labExecutiveOperateLogMapper.insert(operateLog);
+ if(deleteFlag > 0 && insertFlag > 0){
+ //退回后会将下一个要执行的实验室检测状态更新为待分配,将后面的实验室顺序变更为连续(都进行减1)
+ //更新所有状态为空的实验室检测的序号为当前减1
+ int seqUpdateFlag = labExecutiveInfoMapper.updateForSendBack(request.getOrderId(), request.getSampleId());
+ //更新所有状态为空的实验室检测中序号最小的记录的状态为待分配
+ Long id = labExecutiveInfoMapper.selectMinSeq(request.getOrderId(), request.getSampleId());
+ BusinessLabExecutiveInfo info = new BusinessLabExecutiveInfo();
+ info.setId(id);
+ info.setMeasureStatus(MeasureStatusEnum.TO_ALLOCATE);
+ int statusUpdateFlag = labExecutiveInfoMapper.updateById(info);
+ if(seqUpdateFlag > 0 && statusUpdateFlag > 0) return ReturnUtil.success();
+ }
+ throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED);
+ }
+
private QueryWrapper getOperateLogWrapper(SampleHandOutListResponse handOut) {
QueryWrapper wrapper = new QueryWrapper<>();
wrapper.eq("order_id", handOut.getOrderId());
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessLabExecutiveInfoController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessLabExecutiveInfoController.java
index c14c3be..aa330f9 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessLabExecutiveInfoController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessLabExecutiveInfoController.java
@@ -7,6 +7,7 @@
import com.casic.missiles.dto.ReturnDTO;
import com.casic.missiles.dto.ReturnUtil;
import com.casic.missiles.dto.business.*;
+import com.casic.missiles.enums.ExportEnum;
import com.casic.missiles.exception.BusinessException;
import com.casic.missiles.model.exception.enums.CoreExceptionEnum;
import com.casic.missiles.service.business.IBusinessLabExecutiveInfoService;
@@ -25,9 +26,9 @@
*
* 业务管理-实验室检定信息记录表(用于流程中的实验室分配及后续检定过程查询) 前端控制器
* 样品状态(任务收发&任务分发使用,委托书和样品关联表中的状态):
- * 1:待收入;2:待分发;3:检测中;4:检测完成;5:待归还;6:已归还;7:无需检测;8:已超期
+ * 1:待收入;2:待分发;3:检测中;4:检测完成;5:待归还;6:已归还;7:无需检测;8:已超期
* 实验室检定状态(实验室检测使用,实验室检定信息记录表中的状态):
- * 1:待分配(负责人);2:待检测(检定人);3:检测完成;4:退回;5:终止(已收入中点击终止更新实验室中待分配和待检测的的状态为已终止)
+ * 1:待分配(负责人);2:待检测(检定人);3:检测完成;4:退回;5:终止(已收入中点击终止更新实验室中待分配和待检测的的状态为已终止)
*
*
* @author wangpeng
@@ -135,7 +136,7 @@
@ApiOperation("实验室检测-我的检测-检定人扫描收入(待检测->检测中)")
@PostMapping("/myExecutive/receive")
@ResponseBody
- public ReturnDTO sampleReceive(@RequestBody @Valid List requestList, BindingResult bindingResult) {
+ public ReturnDTO sampleReceive(@RequestBody @Valid List requestList, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
}
@@ -148,7 +149,7 @@
@ApiOperation("实验室检测-负责人/检定人扫描检完(检测中->检测完)")
@PostMapping("/myExecutive/complete")
@ResponseBody
- public ReturnDTO sampleExecutiveComplete(@RequestBody @Valid List requestList, BindingResult bindingResult) {
+ public ReturnDTO sampleExecutiveComplete(@RequestBody @Valid List requestList, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
}
@@ -158,25 +159,49 @@
/**
* 实验室检测-部门检测/我的检测 编辑(只能修改应出具证书)
*/
+ @ApiOperation("实验室检测-部门检测/我的检测 编辑(只能修改应出具证书)")
+ @PostMapping("/executive/update")
+ @ResponseBody
+ public ReturnDTO updateExecutive(@RequestBody @Valid UpdateExecutiveRequest request, BindingResult bindingResult) {
+ if (bindingResult.hasErrors()) {
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ return labExecutiveInfoService.updateExecutive(request);
+ }
/**
* 实验室检测-部门检测/我的检测 详情
*/
+ @ApiOperation("实验室检测-部门检测/我的检测 详情")
+ @PostMapping("/executive/detail")
+ @ResponseBody
+ public ReturnDTO executiveDetail(@RequestBody @Valid ExecutiveDetailRequest request, BindingResult bindingResult) throws Exception {
+ if (bindingResult.hasErrors()) {
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ return ReturnUtil.success(labExecutiveInfoService.executiveDetail(request));
+ }
/**
* 实验室检测-部门检测/我的检测 退回(待检测/检测中->退回)
- * 退回后会将下一个要执行的实验室检测状态更新为待分配,将后面的实验室顺序变更为连续(都进行减1,)
- * 可能出现最后一个检测的实验室退回,这样的情况是否需要把样品状态改为检测完,还是等分发员再增加实验室或增加个分发员点击完成的按钮
+ * 退回后会将下一个要执行的实验室检测状态更新为待分配,将后面的实验室顺序变更为连续(都进行减1)
+ * 最后一个检测的实验室退回,等分发员再增加实验室或设备收发中的已收入直接手动点击完成
*/
-
-
-
+ @ApiOperation("实验室检测-部门检测/我的检测 退回(待检测/检测中->退回)")
+ @PostMapping("/executive/sendBack")
+ @ResponseBody
+ public ReturnDTO executiveSendBack(@RequestBody @Valid ExecutiveSendBackRequest request, BindingResult bindingResult) {
+ if (bindingResult.hasErrors()) {
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ return labExecutiveInfoService.sampleExecutiveSendBack(request);
+ }
/**
* 分发员编辑实验室检测列表
*/
@ApiOperation("分发员编辑实验室检测列表")
- @PostMapping("/handOut/updateExecutiveList")
+ @PostMapping("/handOut/updateList")
@ResponseBody
public ReturnDTO updateExecutiveList(@RequestBody @Valid UpdateExecutiveListRequest request, BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
@@ -185,9 +210,23 @@
return labExecutiveInfoService.updateExecutiveList(request);
}
-
/**
- * 各列表导出
+ * 各状态列表导出
*/
+ @ApiOperation("任务分发-各状态列表导出")
+ @PostMapping("/handOut/listExport")
+ @ResponseBody
+ public void export(@RequestBody @Valid SampleHandOutListRequest request, BindingResult bindingResult) throws Exception {
+ if (bindingResult.hasErrors()) {
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ Page page = PageFactory.defaultPage();
+ page.setCurrent(1);
+ page.setSearchCount(false);
+ page.setSize(Integer.MAX_VALUE);
+ Page responsePage = labExecutiveInfoService.handOutListPage(page, request);
+ List list = responsePage.getRecords();
+ super.exportExcel(SampleHandOutListResponse.class, list, ExportEnum.HANDOUT_EXPORT.getSheetName());
+ }
}
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java
index 9637b3a..7f8c1e7 100644
--- a/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/meter/MeterFileController.java
@@ -79,7 +79,7 @@
@ApiOperation("文件导出")
@PostMapping("/listExport")
@ResponseBody
- public void export(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) throws IOException {
+ public void export(@RequestBody @Valid FileListRequest request, BindingResult bindingResult) throws IOException {
if (bindingResult.hasErrors()) {
throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
}
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 9e3d9fd..0c1cf2d 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
@@ -53,7 +53,9 @@
HANDLE_FAILED(500, "操作失败"),
QRCODE_FAILED(2409, "二维码生成失败"),
RECEIVE_SAMPLE_NOT_EXIST(2410, "待检测中不存在扫描收入的样品"),
- COMPLETE_SAMPLE_NOT_EXIST(2411, "检测中不存在扫描收入的样品");
+ COMPLETE_SAMPLE_NOT_EXIST(2411, "检测中不存在扫描收入的样品"),
+ CANNOT_CHANGE_MEASURE_INFO(2412, "无法更改非当前登录用户的检测信息"),
+ NON_EXIST_ORDER_OR_SAMPLE(2413, "不存在该委托单或该委托单下的样品");
private Integer code;
private String message;
diff --git a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java
index 06a3fd8..a43d9c9 100644
--- a/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java
+++ b/casic-metering-common/src/main/java/com/casic/missiles/enums/ExportEnum.java
@@ -36,7 +36,8 @@
DISPATCH_DATA("dispatchData", "dispatchData", "设备收发"),
ENVIRONMENT_DATA("environmentData", "environmentData", "环境记录单"),
ORIGIN_DATA("originData", "originData", "原始记录"),
- ADVICE_EXPORT("adviceData", "adviceData", "客户反馈");
+ ADVICE_EXPORT("adviceData", "adviceData", "客户反馈"),
+ HANDOUT_EXPORT("handoutData", "handoutData", "任务分发列表");
ExportEnum(String fileName, String sheetName, String description) {
this.fileName = fileName;
diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveInfoMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveInfoMapper.java
index e4cd952..2ce14af 100644
--- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveInfoMapper.java
+++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveInfoMapper.java
@@ -22,13 +22,17 @@
Integer getMeasureNumberStatus(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId);
- List selectExecutiveList(@Param("request") SampleHandOutDetailRequest request);
+ List selectExecutiveList(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId);
Page selectListByDeptIdAndStatus(Page page, @Param("request") SampleLabExecutiveListRequest request, @Param("deptId") Long deptId, @Param("status") String status, @Param("statusList") List statusList);
Page selectListByUserIdAndStatus(Page page, @Param("request") SampleLabExecutiveListRequest request, @Param("userId") Long userId, @Param("status") String status);
- int updateForSampleOperate(@Param("list") List list, @Param("userId") Long userId, @Param("status") String status);
+ int updateForSampleOperate(@Param("list") List list, @Param("userId") Long userId, @Param("status") String status);
- List selectListForSampleOperate(@Param("list") List requestList, @Param("userId") Long userId, @Param("status") String status);
+ List selectListForSampleOperate(@Param("list") List requestList, @Param("userId") Long userId, @Param("status") String status);
+
+ int updateForSendBack(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId);
+
+ Long selectMinSeq(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId);
}
diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveOperateLogMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveOperateLogMapper.java
index ed6f4a1..2bcc4e1 100644
--- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveOperateLogMapper.java
+++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessLabExecutiveOperateLogMapper.java
@@ -2,7 +2,6 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.casic.missiles.dto.business.MeasureSendBackDTO;
-import com.casic.missiles.dto.business.SampleHandOutDetailRequest;
import com.casic.missiles.model.business.BusinessLabExecutiveOperateLog;
import org.apache.ibatis.annotations.Param;
@@ -19,5 +18,5 @@
*/
public interface BusinessLabExecutiveOperateLogMapper extends BaseMapper {
- List selectExecutiveOperateLogList(@Param("request") SampleHandOutDetailRequest request);
+ List selectExecutiveOperateLogList(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId);
}
diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java
index 235c95f..bddf56f 100644
--- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java
+++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessOrderSampleRelationMapper.java
@@ -5,7 +5,6 @@
import com.casic.missiles.dto.business.SampleHandOutDetailResponse;
import com.casic.missiles.dto.business.SampleHandOutListRequest;
import com.casic.missiles.dto.business.SampleHandOutListResponse;
-import com.casic.missiles.dto.business.SampleHandOutDetailRequest;
import com.casic.missiles.dto.business.dispatch.DeviceDispatchDTO;
import com.casic.missiles.dto.business.dispatch.DeviceDispatchVO;
import com.casic.missiles.dto.customer.sample.CustomerSampleListVO;
@@ -28,7 +27,7 @@
Page getSampleListByStatus(@Param("page") Page page, @Param("request") DeviceDispatchDTO request);
- SampleHandOutDetailResponse selectSampleDetail(@Param("request") SampleHandOutDetailRequest request);
+ SampleHandOutDetailResponse selectSampleDetail(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId);
int updateByOrderIdAndSampleId(@Param("orderId") Long orderId, @Param("sampleId") Long sampleId, @Param("status") String status);
diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml
index 92402b7..87613eb 100644
--- a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml
+++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveInfoMapper.xml
@@ -31,8 +31,8 @@
- csi.id AS sample_id, csi.sample_no, csi.sample_name, csi.sample_model, csi.manufacturing_no, bo.order_code AS orderNo, bo.id AS orderId,
- bo.customer_id, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, blei.require_certifications, blei.measure_status
+ blei.id AS id, csi.id AS sample_id, csi.sample_no, csi.sample_name, csi.sample_model, csi.manufacturing_no, bo.order_code AS orderNo, bo.id AS orderId,
+ bo.customer_id, bo.customer_no, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, blei.require_certifications, blei.measure_status
@@ -63,8 +63,8 @@
FROM business_lab_executive_info blei
JOIN sys_dept sd ON blei.measure_dept_id = sd.ID
LEFT JOIN sys_user su ON blei.measure_person_id = su.id
- WHERE blei.order_id = #{request.orderId}
- AND blei.sample_id = #{request.sampleId}
+ WHERE blei.order_id = #{orderId}
+ AND blei.sample_id = #{sampleId}
ORDER BY blei.measure_sequence ASC
@@ -161,7 +161,7 @@
-
+
SELECT order_id, sample_id
FROM business_lab_executive_info
WHERE measure_person_id = #{userId}
@@ -171,4 +171,27 @@
(#{item.orderId}, #{item.sampleId})
+
+
+ UPDATE business_lab_executive_info
+ SET measure_sequence = measure_sequence - 1
+ WHERE (measure_status IS NULL OR measure_status = "")
+ AND order_id = #{orderId}
+ AND sample_id = #{sampleId}
+
+
+
+ SELECT id FROM business_lab_executive_info
+ WHERE measure_sequence = (
+ SELECT MIN(measure_sequence)
+ FROM business_lab_executive_info
+ WHERE (measure_status IS NULL OR measure_status = "")
+ AND order_id = #{orderId}
+ AND sample_id = #{sampleId}
+ )
+ AND (measure_status IS NULL OR measure_status = "")
+ AND order_id = #{orderId}
+ AND sample_id = #{sampleId}
+
+
diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveOperateLogMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveOperateLogMapper.xml
index 9f6c97f..0a0b861 100644
--- a/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveOperateLogMapper.xml
+++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessLabExecutiveOperateLogMapper.xml
@@ -25,8 +25,8 @@
FROM business_lab_executive_operate_log bleoi
JOIN sys_dept sd ON bleoi.measure_dept_id = sd.ID
WHERE measure_status = 4
- AND bleoi.order_id = #{request.orderId}
- AND bleoi.sample_id = #{request.sampleId}
+ AND bleoi.order_id = #{orderId}
+ AND bleoi.sample_id = #{sampleId}
ORDER BY bleoi.create_time ASC
diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml
index c9b53d4..a2b0806 100644
--- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml
+++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml
@@ -18,7 +18,7 @@
csi.id AS sample_id, csi.sample_no, csi.sample_name, csi.sample_model, csi.manufacturing_no, bo.order_code AS orderNo, bo.id AS orderId,
- bo.customer_id, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, bosr.sample_status
+ bo.customer_id, bo.customer_no, bo.customer_name, bo.deliverer, bo.is_urgent, csi.sample_belong, bo.require_over_time, bosr.sample_status
@@ -136,6 +136,12 @@
AND csi.sample_belong = #{request.sampleBelong}
+
+ AND csi.id IN
+
+ #{item}
+
+
ORDER BY bosr.update_time DESC
@@ -146,8 +152,8 @@
JOIN customer_sample_info csi ON bosr.sample_id = csi.id
JOIN business_order bo ON bosr.order_id = bo.id
WHERE bo.is_del = 0 AND csi.is_del = 0
- AND bosr.order_id = #{request.orderId}
- AND bosr.sample_id = #{request.sampleId}
+ AND bosr.order_id = #{orderId}
+ AND bosr.sample_id = #{sampleId}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveDetailRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveDetailRequest.java
new file mode 100644
index 0000000..8817b91
--- /dev/null
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveDetailRequest.java
@@ -0,0 +1,24 @@
+package com.casic.missiles.dto.business;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @Description:
+ * @Author: wangpeng
+ * @Date: 2023/2/21 10:00
+ */
+@Data
+@ApiModel
+public class ExecutiveDetailRequest {
+ @NotNull(message = "委托书id不能为空")
+ @ApiModelProperty(value = "委托书id", dataType = "Long")
+ private Long orderId;
+
+ @NotNull(message = "样品id不能为空")
+ @ApiModelProperty(value = "样品id", dataType = "Long")
+ private Long sampleId;
+}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveDetailResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveDetailResponse.java
new file mode 100644
index 0000000..35452b9
--- /dev/null
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveDetailResponse.java
@@ -0,0 +1,139 @@
+package com.casic.missiles.dto.business;
+
+import com.casic.missiles.annotation.DictCodeField;
+import com.casic.missiles.constants.MeterDictCode;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @Description: 任务分发-详情
+ * @Author: wangpeng
+ * @Date: 2023/2/9 11:41
+ */
+@Data
+@ApiModel
+public class ExecutiveDetailResponse {
+ @ApiModelProperty(value = "样品id", dataType = "Long")
+ private Long sampleId;
+
+ @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 manufacturer;
+
+ @ApiModelProperty(value = "厂家国别", dataType = "String")
+ private String manufacturerCountry;
+
+ @ApiModelProperty(value = "出厂年月", dataType = "String")
+ private String manufacturingDate;
+
+ @ApiModelProperty(value = "ABC", dataType = "String")
+ private String abc;
+
+ @ApiModelProperty(value = "委托方id", dataType = "Long")
+ private Long customerId;
+
+ @ApiModelProperty(value = "委托方名称", dataType = "String")
+ private String customerName;
+
+ @ApiModelProperty(value = "委托方电话", dataType = "String")
+ private String customerPhone;
+
+ //需求中有,建议去掉,否则多关联一张表
+// @ApiModelProperty(value = "委托方邮编", dataType = "String")
+// private String postalCode;
+
+// @ApiModelProperty(value = "委托方公司地址-国家", dataType = "String")
+// private String addressCountry;
+//
+// @ApiModelProperty(value = "委托方公司地址-省", dataType = "String")
+// private String addressProvince;
+//
+// @ApiModelProperty(value = "委托方公司地址-市", dataType = "String")
+// private String addressCity;
+//
+// @ApiModelProperty(value = "委托方公司地址-区", dataType = "String")
+// private String addressArea;
+
+ @ApiModelProperty(value = "委托方公司地址-详细地址", dataType = "String")
+ private String customerAddress;
+
+// @ApiModelProperty(value = "委托方公司地址-国家名字", dataType = "String")
+// private String addressCountryName;
+//
+// @ApiModelProperty(value = "委托方公司地址-省名字", dataType = "String")
+// private String addressProvinceName;
+//
+// @ApiModelProperty(value = "委托方公司地址-市名字", dataType = "String")
+// private String addressCityName;
+//
+// @ApiModelProperty(value = "委托方公司地址-区名字", dataType = "String")
+// private String addressAreaName;
+
+ @ApiModelProperty(value = "委托书id", dataType = "Long")
+ private String orderId;
+
+ @ApiModelProperty(value = "委托书编号", dataType = "String")
+ private String orderCode;
+
+ @ApiModelProperty(value = "送样人", dataType = "String")
+ private String deliverer;
+
+ @ApiModelProperty(value = "送样人联系方式", dataType = "String")
+ private String delivererTel;
+
+ @ApiModelProperty(value = "预约送达时间", dataType = "String")
+ private String planDeliverTime;
+
+ @ApiModelProperty(value = "要求检完时间", dataType = "String")
+ private String requireOverTime;
+
+ @ApiModelProperty(value = "检定项目", dataType = "String")
+ private String measureContent;
+
+ @ApiModelProperty(value = "检定周期(月)", dataType = "String")
+ private String measurePeriod;
+
+ @ApiModelProperty(value = "检定日期", dataType = "String")
+ private String measureLastDate;
+
+ @ApiModelProperty(value = "有效日期", dataType = "String")
+ private String effectiveDate;
+
+ //需求中已删除该字段展示,不展示整个样品的检定结果,只在证书里展示各证书的检定结果
+// @ApiModelProperty(value = "检定结果", dataType = "String")
+// private String measureResult;
+
+ @ApiModelProperty(value = "备注", dataType = "String")
+ private String remark;
+
+ @ApiModelProperty(value = "说明书", dataType = "String")
+ private String minioFileName;
+
+ @ApiModelProperty(value = "检定方式(字典code)", dataType = "String")
+ @DictCodeField(message = "检定方式不合法", cacheName = MeterDictCode.MEASURE_TYPE)
+ private String measureType;
+
+ @ApiModelProperty(value = "检定方式(字典value)", dataType = "String")
+ private String measureTypeName;
+
+ @ApiModelProperty(value = "标签绑定", dataType = "String")
+ private String labelBind;
+
+ @ApiModelProperty(value = "检定流程", dataType = "List")
+ private List measureProcessList;
+
+}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveSendBackRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveSendBackRequest.java
new file mode 100644
index 0000000..832f707
--- /dev/null
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/ExecutiveSendBackRequest.java
@@ -0,0 +1,38 @@
+package com.casic.missiles.dto.business;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @Description:
+ * @Author: wangpeng
+ * @Date: 2023/2/21 10:29
+ */
+@Data
+@ApiModel
+public class ExecutiveSendBackRequest {
+ @NotNull(message = "实验室检测id不能为空")
+ @ApiModelProperty(value = "实验室检测id", dataType = "Long")
+ private Long id;
+
+ @NotNull(message = "委托书id不能为空")
+ @ApiModelProperty(value = "委托书id", dataType = "Long")
+ private Long orderId;
+
+ @NotNull(message = "样品id不能为空")
+ @ApiModelProperty(value = "样品id", dataType = "Long")
+ private Long sampleId;
+
+ @NotNull(message = "检定环节不能为空")
+ @ApiModelProperty(value = "检定环节,实验室id", dataType = "Long")
+ private Long measureSegmentId;
+
+ @ApiModelProperty(value = "检定人员id", dataType = "Long")
+ private Long measurePersonId;
+
+ @ApiModelProperty(value = "退回原因", dataType = "Long")
+ private String operateReason;
+}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/MySampleOperateRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/MySampleOperateRequest.java
deleted file mode 100644
index 15f2fe9..0000000
--- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/MySampleOperateRequest.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package com.casic.missiles.dto.business;
-
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
-import javax.validation.constraints.NotNull;
-
-/**
- * @Description: 实验室检测-我的检测-检定人扫描收入请求实体
- * @Author: wangpeng
- * @Date: 2023/2/15 15:31
- */
-@Data
-@ApiModel
-public class MySampleOperateRequest {
- @NotNull(message = "委托书id不能为空")
- @ApiModelProperty(value = "委托书id", dataType = "Long")
- private Long orderId;
-
- @NotNull(message = "样品id不能为空")
- @ApiModelProperty(value = "样品id", dataType = "Long")
- private Long sampleId;
-}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListRequest.java
index 5a9d04a..7daf5b9 100644
--- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListRequest.java
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListRequest.java
@@ -7,6 +7,7 @@
import lombok.Data;
import javax.validation.constraints.NotBlank;
+import java.util.List;
@Data
@ApiModel
@@ -44,4 +45,7 @@
@ApiModelProperty(value = "样品属性(字典code)", dataType = "String")
private String sampleBelong;
+ @ApiModelProperty(value = "筛选样品ids(sampleId列表,导出使用)", dataType = "List")
+ private List ids;
+
}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java
index 0e34812..d2a665e 100644
--- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutListResponse.java
@@ -46,9 +46,12 @@
@ExcelProperty(value = "委托书编号", order = 4)
private String orderNo;
+ @ApiModelProperty(value = "委托方id", dataType = "Long")
+ private Long customerId;
+
@ApiModelProperty(value = "委托方代码", dataType = "String")
@ExcelProperty(value = "委托方代码", order = 5)
- private String customerId;
+ private String customerNo;
@ApiModelProperty(value = "委托方名称", dataType = "String")
@ExcelProperty(value = "委托方名称", order = 6)
@@ -91,7 +94,7 @@
@ExcelProperty(value = "分发性质", order = 14)
private String handOutProperty;
- @JSONField(serialize = false)
+ @ApiModelProperty(value = "委托书id", dataType = "String")
private Long orderId;
@JSONField(serialize = false)
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleLabExecutiveListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleLabExecutiveListResponse.java
index 89f18b9..9e31fa0 100644
--- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleLabExecutiveListResponse.java
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleLabExecutiveListResponse.java
@@ -22,6 +22,8 @@
@ContentStyle(borderLeft = BorderStyleEnum.THIN, borderBottom = BorderStyleEnum.THIN, borderTop = BorderStyleEnum.THIN, borderRight = BorderStyleEnum.THIN)
@ExcelIgnoreUnannotated
public class SampleLabExecutiveListResponse {
+ @ApiModelProperty(value = "实验室检测id(退回操作中使用)", dataType = "Long")
+ private Long id;
@ApiModelProperty(value = "样品id", dataType = "Long")
private Long sampleId;
@@ -46,9 +48,13 @@
@ExcelProperty(value = "委托书编号", order = 4)
private String orderNo;
+ @ApiModelProperty(value = "委托方id", dataType = "String")
+// @ExcelProperty(value = "委托方id", order = 5)
+ private Long customerId;
+
@ApiModelProperty(value = "委托方代码", dataType = "String")
@ExcelProperty(value = "委托方代码", order = 5)
- private String customerId;
+ private String customerNo;
@ApiModelProperty(value = "委托方名称", dataType = "String")
@ExcelProperty(value = "委托方名称", order = 6)
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleOperateRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleOperateRequest.java
new file mode 100644
index 0000000..86f3ebc
--- /dev/null
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleOperateRequest.java
@@ -0,0 +1,24 @@
+package com.casic.missiles.dto.business;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @Description: 实验室检测-我的检测-检定人扫描收入请求实体
+ * @Author: wangpeng
+ * @Date: 2023/2/15 15:31
+ */
+@Data
+@ApiModel
+public class SampleOperateRequest {
+ @NotNull(message = "委托书id不能为空")
+ @ApiModelProperty(value = "委托书id", dataType = "Long")
+ private Long orderId;
+
+ @NotNull(message = "样品id不能为空")
+ @ApiModelProperty(value = "样品id", dataType = "Long")
+ private Long sampleId;
+}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/UpdateExecutiveDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/UpdateExecutiveDTO.java
deleted file mode 100644
index eb1210a..0000000
--- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/UpdateExecutiveDTO.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package com.casic.missiles.dto.business;
-
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
-import javax.validation.constraints.NotNull;
-
-/**
- * @Description:
- * @Author: wangpeng
- * @Date: 2023/2/20 11:22
- */
-@Data
-@ApiModel
-public class UpdateExecutiveDTO {
- @ApiModelProperty(value = "主键id(有则必传)", dataType = "Long")
- private Long id;
-
- @NotNull(message = "检定环节不能为空")
- @ApiModelProperty(value = "检定环节,实验室id", dataType = "Long")
- private Long measureSegmentId;
-
- @ApiModelProperty(value = "检定人员id", dataType = "Long")
- private Long measurePersonId;
-
- @ApiModelProperty(value = "检测顺序", dataType = "Integer")
- @NotNull(message = "检测顺序不能为空")
- private Integer measureSequence;
-
- @ApiModelProperty(value = "检定状态(字典code)(流程中不能编辑的节点必传参数)", dataType = "String")
- private String measureStatus;
-}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/UpdateExecutiveListDTO.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/UpdateExecutiveListDTO.java
new file mode 100644
index 0000000..8160c2f
--- /dev/null
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/UpdateExecutiveListDTO.java
@@ -0,0 +1,33 @@
+package com.casic.missiles.dto.business;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @Description:
+ * @Author: wangpeng
+ * @Date: 2023/2/20 11:22
+ */
+@Data
+@ApiModel
+public class UpdateExecutiveListDTO {
+ @ApiModelProperty(value = "主键id(有则必传)", dataType = "Long")
+ private Long id;
+
+ @NotNull(message = "检定环节不能为空")
+ @ApiModelProperty(value = "检定环节,实验室id", dataType = "Long")
+ private Long measureSegmentId;
+
+ @ApiModelProperty(value = "检定人员id", dataType = "Long")
+ private Long measurePersonId;
+
+ @ApiModelProperty(value = "检测顺序", dataType = "Integer")
+ @NotNull(message = "检测顺序不能为空")
+ private Integer measureSequence;
+
+ @ApiModelProperty(value = "检定状态(字典code)(流程中不能编辑的节点必传参数)", dataType = "String")
+ private String measureStatus;
+}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/UpdateExecutiveListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/UpdateExecutiveListRequest.java
index 6a50280..1c72cc0 100644
--- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/UpdateExecutiveListRequest.java
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/UpdateExecutiveListRequest.java
@@ -26,5 +26,5 @@
@NotEmpty(message = "实验室检测列表不能为空")
@ApiModelProperty(value = "实验室检测列表", dataType = "List")
- private List executiveList;
+ private List executiveList;
}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/UpdateExecutiveRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/UpdateExecutiveRequest.java
new file mode 100644
index 0000000..6499ca6
--- /dev/null
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/UpdateExecutiveRequest.java
@@ -0,0 +1,27 @@
+package com.casic.missiles.dto.business;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @Description:
+ * @Author: wangpeng
+ * @Date: 2023/2/21 9:12
+ */
+@Data
+@ApiModel
+public class UpdateExecutiveRequest {
+ @NotNull(message = "id不能为空")
+ @ApiModelProperty(value = "主键id", dataType = "Long")
+ private Long id;
+
+ @NotNull(message = "检定人员不能为空")
+ @ApiModelProperty(value = "检定人员id", dataType = "Long")
+ private Long measurePersonId;
+
+ @ApiModelProperty(value = "应出具证书总数", dataType = "Integer")
+ private Integer requireCertifications;
+}
diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java
index 9f91158..afdc42a 100644
--- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java
+++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessLabExecutiveInfoServiceImpl.java
@@ -19,9 +19,13 @@
import com.casic.missiles.exception.BusinessException;
import com.casic.missiles.mapper.business.*;
import com.casic.missiles.mapper.meter.MeterOrganizeMapper;
-import com.casic.missiles.model.business.*;
+import com.casic.missiles.model.business.BusinessCertificateReport;
+import com.casic.missiles.model.business.BusinessLabExecutiveInfo;
+import com.casic.missiles.model.business.BusinessLabExecutiveOperateLog;
+import com.casic.missiles.model.business.BusinessLabExecutiveTemplateInfo;
import com.casic.missiles.service.business.IBusinessLabExecutiveInfoService;
import com.casic.missiles.service.business.IBusinessLabExecutiveTemplateInfoService;
+import com.casic.missiles.utils.ConvertUtils;
import com.casic.missiles.utils.DictCodeUtils;
import com.casic.missiles.utils.NumberGeneratorUtil;
import lombok.extern.slf4j.Slf4j;
@@ -120,12 +124,15 @@
}
@Override
- public SampleHandOutDetailResponse handOutListDetail(SampleHandOutDetailRequest handOutDetailRequest) throws Exception{
+ public SampleHandOutDetailResponse handOutListDetail(SampleHandOutDetailRequest request) throws Exception{
//根据样品id和委托书id查询样品、委托书、委托方
- SampleHandOutDetailResponse sampleDetail = orderSampleRelationMapper.selectSampleDetail(handOutDetailRequest);
+ SampleHandOutDetailResponse sampleDetail = orderSampleRelationMapper.selectSampleDetail(request.getOrderId(), request.getSampleId());
+ if(Objects.isNull(sampleDetail)){
+ throw new BusinessException(BusinessExceptionEnum.NON_EXIST_ORDER_OR_SAMPLE);
+ }
//根据样品id和委托书id查询检定流程、退回信息
- List measureProcessDTOS = labExecutiveInfoMapper.selectExecutiveList(handOutDetailRequest);
- List measureSendBackDTOS = labExecutiveOperateLogMapper.selectExecutiveOperateLogList(handOutDetailRequest);
+ List measureProcessDTOS = labExecutiveInfoMapper.selectExecutiveList(request.getOrderId(), request.getSampleId());
+ List measureSendBackDTOS = labExecutiveOperateLogMapper.selectExecutiveOperateLogList(request.getOrderId(), request.getSampleId());
sampleDetail.setMeasureProcessList(measureProcessDTOS);
sampleDetail.setMeasureSendBackList(measureSendBackDTOS);
DictCodeUtils.convertDictCodeToName(sampleDetail);
@@ -305,7 +312,7 @@
}
@Override
- public ReturnDTO sampleReceive(List requestList) {
+ public ReturnDTO sampleReceive(List requestList) {
//扫描收入会显示扫进来哪些,检测人员确定要扫描的样品后,调用接口,接口中查询是否在该用户的待检测中有该样品,没有则返回提示信息,有则更新状态
//该接口前应该有个根据标签查询样品信息的接口(查样品和委托书关联表中最新的委托书的样品列表)
AuthUser user = ShiroKit.getUser();
@@ -314,7 +321,10 @@
});
Long userId = user.getId();
//查询扫描样品中为该用户待检测中的样品列表
- List preList = labExecutiveInfoMapper.selectListForSampleOperate(requestList, userId, MeasureStatusEnum.TO_MEASURE);
+ List preList = labExecutiveInfoMapper.selectListForSampleOperate(requestList, userId, MeasureStatusEnum.TO_MEASURE);
+ if(CollectionUtils.isEmpty(preList)){
+ throw new BusinessException(BusinessExceptionEnum.RECEIVE_SAMPLE_NOT_EXIST);
+ }
int updateFlag = labExecutiveInfoMapper.updateForSampleOperate(preList, userId, MeasureStatusEnum.IN_MEASURE);
if(updateFlag > 0){
return ReturnUtil.success();
@@ -324,7 +334,7 @@
@Override
@Transactional
- public ReturnDTO sampleExecutiveComplete(List requestList) {
+ public ReturnDTO sampleExecutiveComplete(List requestList) {
//查询是否在该用户的检测中有该样品,没有则返回提示信息,有则更新检测状态、更新样品状态(判断是否全部实验室检测完成)
AuthUser user = ShiroKit.getUser();
Assert.isFalse(Objects.isNull(user), () -> {
@@ -332,23 +342,23 @@
});
Long userId = user.getId();
//查询扫描样品中为该用户检测中的样品列表
- List preList = labExecutiveInfoMapper.selectListForSampleOperate(requestList, userId, MeasureStatusEnum.IN_MEASURE);
+ List preList = labExecutiveInfoMapper.selectListForSampleOperate(requestList, userId, MeasureStatusEnum.IN_MEASURE);
if(CollectionUtils.isEmpty(preList)){
throw new BusinessException(BusinessExceptionEnum.COMPLETE_SAMPLE_NOT_EXIST);
}
int updateFlag = labExecutiveInfoMapper.updateForSampleOperate(preList, userId, MeasureStatusEnum.MEASURE_COMPLETE);
if(updateFlag > 0){
-
preList.forEach(pre -> {
//是否全部实验室完成,所有实验室无检测完外的其他状态或空才是样品的检测完(有终止状态会把样品状态直接更新为待归还,有退回的状态会从表中删除加入到log表)
QueryWrapper wrapper = new QueryWrapper<>();
wrapper.eq("order_id", pre.getOrderId());
wrapper.eq("sample_id", pre.getSampleId());
- List labExecutiveInfos = labExecutiveInfoMapper.selectList(wrapper);
+ List labExecutiveInfos = labExecutiveInfoMapper.selectList(wrapper);//可查到updateFlag更新后的值
List unExecutiveInfos = labExecutiveInfos.stream().filter(lab ->
StringUtils.isEmpty(lab.getMeasureStatus()) || !StringUtils.equals(MeasureStatusEnum.MEASURE_COMPLETE, lab.getMeasureStatus())
).collect(Collectors.toList());
- if(0 == (CollectionUtils.isEmpty(unExecutiveInfos) ? 0 : unExecutiveInfos.size())){
+ //全部实验室检测完成
+ if(CollectionUtils.isEmpty(unExecutiveInfos)){
//更新样品状态为检测完
orderSampleRelationMapper.updateByOrderIdAndSampleId(pre.getOrderId(), pre.getSampleId(), SampleStatusEnum.MEASURE_COMPLETE);
// TODO: 2023/2/17 委托书中所有样品检测完更新委托书接收状态为检测完成,需求待定
@@ -393,8 +403,8 @@
@Override
public ReturnDTO updateExecutiveList(UpdateExecutiveListRequest request) {
//删除前端已删除的ids
- List executiveList = request.getExecutiveList();
- List ids = executiveList.stream().map(UpdateExecutiveDTO::getId).filter(Objects::nonNull).collect(Collectors.toList());
+ List executiveList = request.getExecutiveList();
+ List ids = executiveList.stream().map(UpdateExecutiveListDTO::getId).filter(Objects::nonNull).collect(Collectors.toList());
QueryWrapper wrapper = new QueryWrapper<>();
wrapper.eq("order_id", request.getOrderId());
wrapper.eq("sample_id", request.getSampleId());
@@ -406,7 +416,7 @@
List updateList = new ArrayList<>();
//新增之前不存在的实验室列表(根据id判断)
List addList = new ArrayList<>();
- for (UpdateExecutiveDTO executiveDTO : executiveList) {
+ for (UpdateExecutiveListDTO executiveDTO : executiveList) {
if(StringUtils.isNotEmpty(executiveDTO.getMeasureStatus())) continue;
if(Objects.isNull(executiveDTO.getId())){
BusinessLabExecutiveInfo labExecutiveInfo = new BusinessLabExecutiveInfo();
@@ -431,6 +441,77 @@
return ReturnUtil.success();
}
+ @Override
+ public ReturnDTO updateExecutive(UpdateExecutiveRequest request) {
+ AuthUser user = ShiroKit.getUser();
+ Assert.isFalse(Objects.isNull(user), () -> {
+ throw new BusinessException(BusinessExceptionEnum.LOGIN_USER_ACQUIRE_FAILED);
+ });
+ if(request.getMeasurePersonId() != user.getId()){
+ throw new BusinessException(BusinessExceptionEnum.CANNOT_CHANGE_MEASURE_INFO);
+ }
+ BusinessLabExecutiveInfo executiveInfo = new BusinessLabExecutiveInfo();
+ executiveInfo.setId(request.getId());
+ executiveInfo.setRequireCertifications(request.getRequireCertifications());
+ if(labExecutiveInfoMapper.updateById(executiveInfo) > 0){
+ return ReturnUtil.success();
+ }
+ log.info("更新实验室应出具证书信息失败,主键id:{}", request.getId());
+ return ReturnUtil.failed();
+ }
+
+ @Override
+ public ExecutiveDetailResponse executiveDetail(ExecutiveDetailRequest request) throws Exception{
+ //根据样品id和委托书id查询样品、委托书、委托方
+ SampleHandOutDetailResponse sampleDetail = orderSampleRelationMapper.selectSampleDetail(request.getOrderId(), request.getSampleId());
+ if(Objects.isNull(sampleDetail)){
+ throw new BusinessException(BusinessExceptionEnum.NON_EXIST_ORDER_OR_SAMPLE);
+ }
+ ExecutiveDetailResponse detailResponse = ConvertUtils.sourceToTarget(sampleDetail, ExecutiveDetailResponse.class);
+ //根据样品id和委托书id查询检定流程
+ List measureProcessDTOS = labExecutiveInfoMapper.selectExecutiveList(request.getOrderId(), request.getSampleId());
+ detailResponse.setMeasureProcessList(measureProcessDTOS);
+ DictCodeUtils.convertDictCodeToName(detailResponse);
+ return detailResponse;
+ }
+
+ @Override
+ @Transactional
+ public ReturnDTO sampleExecutiveSendBack(ExecutiveSendBackRequest request) {
+ //查询是否在该用户的检测中有该样品,没有则返回提示信息,有则更新检测状态、更新样品状态(判断是否全部实验室检测完成)
+ AuthUser user = ShiroKit.getUser();
+ Assert.isFalse(Objects.isNull(user), () -> {
+ throw new BusinessException(BusinessExceptionEnum.LOGIN_USER_ACQUIRE_FAILED);
+ });
+ Long userId = user.getId();
+ //删除实验室检测列表中退回数据
+ int deleteFlag = labExecutiveInfoMapper.deleteById(request.getId());
+ //退回操作记录表中增加数据
+ BusinessLabExecutiveOperateLog operateLog = new BusinessLabExecutiveOperateLog();
+ operateLog.setOrderId(request.getOrderId());
+ operateLog.setSampleId(request.getSampleId());
+ operateLog.setMeasureDeptId(request.getMeasureSegmentId());
+ operateLog.setMeasurePersonId(request.getMeasurePersonId());
+ operateLog.setOperatePersonId(userId);
+ operateLog.setOperatePersonName(user.getName());
+ operateLog.setMeasureStatus(MeasureStatusEnum.SEND_BACK);
+ operateLog.setOperateReason(request.getOperateReason());
+ int insertFlag = labExecutiveOperateLogMapper.insert(operateLog);
+ if(deleteFlag > 0 && insertFlag > 0){
+ //退回后会将下一个要执行的实验室检测状态更新为待分配,将后面的实验室顺序变更为连续(都进行减1)
+ //更新所有状态为空的实验室检测的序号为当前减1
+ int seqUpdateFlag = labExecutiveInfoMapper.updateForSendBack(request.getOrderId(), request.getSampleId());
+ //更新所有状态为空的实验室检测中序号最小的记录的状态为待分配
+ Long id = labExecutiveInfoMapper.selectMinSeq(request.getOrderId(), request.getSampleId());
+ BusinessLabExecutiveInfo info = new BusinessLabExecutiveInfo();
+ info.setId(id);
+ info.setMeasureStatus(MeasureStatusEnum.TO_ALLOCATE);
+ int statusUpdateFlag = labExecutiveInfoMapper.updateById(info);
+ if(seqUpdateFlag > 0 && statusUpdateFlag > 0) return ReturnUtil.success();
+ }
+ throw new BusinessException(BusinessExceptionEnum.HANDLE_FAILED);
+ }
+
private QueryWrapper getOperateLogWrapper(SampleHandOutListResponse handOut) {
QueryWrapper wrapper = new QueryWrapper<>();
wrapper.eq("order_id", handOut.getOrderId());
diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessLabExecutiveInfoService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessLabExecutiveInfoService.java
index 29b2949..d709c42 100644
--- a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessLabExecutiveInfoService.java
+++ b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessLabExecutiveInfoService.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
+import com.casic.missiles.dto.business.ExecutiveDetailRequest;
import com.casic.missiles.dto.ReturnDTO;
import com.casic.missiles.dto.business.*;
import com.casic.missiles.model.business.BusinessLabExecutiveInfo;
@@ -30,9 +31,15 @@
Page myLabExecutiveListPage(Page page, SampleLabExecutiveListRequest labExecutiveListRequest) throws Exception;
- ReturnDTO sampleReceive(List requestList);
+ ReturnDTO sampleReceive(List requestList);
- ReturnDTO sampleExecutiveComplete(List requestList);
+ ReturnDTO sampleExecutiveComplete(List requestList);
ReturnDTO updateExecutiveList(UpdateExecutiveListRequest requestList);
+
+ ReturnDTO updateExecutive(UpdateExecutiveRequest request);
+
+ ExecutiveDetailResponse executiveDetail(ExecutiveDetailRequest request) throws Exception;
+
+ ReturnDTO sampleExecutiveSendBack(ExecutiveSendBackRequest request);
}