page = PageFactory.defaultPage();
+ return ReturnUtil.success(super.packForBT(certificatePrintService.CertificatePrintlistPage(request,page)));
+ }
+ //同意 拒绝 请求审批
+
+
+
+}
diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/ConvertUtils.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/ConvertUtils.java
index f7f348b..a75b8ad 100644
--- a/casic-metering-common/src/main/java/com/casic/missiles/utils/ConvertUtils.java
+++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/ConvertUtils.java
@@ -25,7 +25,6 @@
return null;
} else {
T targetObject = null;
-
try {
targetObject = target.newInstance();
BeanUtil.copyProperties(source, targetObject);
@@ -42,10 +41,8 @@
return null;
} else {
ArrayList targetList = new ArrayList(sourceList.size());
-
try {
Iterator var3 = sourceList.iterator();
-
while(var3.hasNext()) {
Object source = var3.next();
T targetObject = target.newInstance();
diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java
index 17206ce..fc9330e 100644
--- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java
+++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java
@@ -1,7 +1,13 @@
package com.casic.missiles.mapper.business;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.casic.missiles.dto.business.print.CertificateListRequest;
+import com.casic.missiles.dto.business.print.CertificateListResponse;
import com.casic.missiles.model.business.BusinessCertificateReport;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
/**
*
@@ -13,4 +19,8 @@
*/
public interface BusinessCertificateReportMapper extends BaseMapper {
+ List selectBatchForApprovalList(Page page, @Param("request") CertificateListRequest request, @Param("businessKey") List businessKey);
+
+
+
}
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java
new file mode 100644
index 0000000..97c39e6
--- /dev/null
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java
@@ -0,0 +1,56 @@
+package com.casic.missiles.controller.business;
+
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.casic.missiles.core.base.controller.ExportController;
+import com.casic.missiles.core.page.PageFactory;
+import com.casic.missiles.core.page.PageInfoBT;
+import com.casic.missiles.dto.ReturnDTO;
+import com.casic.missiles.dto.ReturnUtil;
+import com.casic.missiles.dto.business.print.CertificateListRequest;
+import com.casic.missiles.dto.business.print.CertificateListResponse;
+import com.casic.missiles.exception.BusinessException;
+import com.casic.missiles.model.exception.enums.CoreExceptionEnum;
+import com.casic.missiles.service.business.IBusinessCertificatePrintService;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.validation.Valid;
+
+/**
+ *
+ * 业务调度-证书打印
+ * 1、证书打印模块是对样品检验完成生成的证书进行管理
+ * 2、另,并通过工作流审批的方式严格控制证书打印次数
+ *
+ *
+ * @author cz
+ * @since 2023-02-20
+ */
+@RestController
+@RequestMapping("/business/certificatePrint")
+public class BusinessCertificatePrintController extends ExportController {
+
+ private IBusinessCertificatePrintService certificatePrintService;
+
+ /**
+ * 证书打印列表,除了基本的列表的信息,需要判断证书打印审批中的状态,进而达到权限的控制
+ */
+ @ApiOperation("设备列表-分页")
+ @PostMapping("/listPage")
+ public ReturnDTO> CertificatePrintlistPage(@RequestBody @Valid CertificateListRequest request, BindingResult bindingResult) throws Exception {
+ if (bindingResult.hasErrors()) {
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ Page page = PageFactory.defaultPage();
+ return ReturnUtil.success(super.packForBT(certificatePrintService.CertificatePrintlistPage(request,page)));
+ }
+ //同意 拒绝 请求审批
+
+
+
+}
diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/ConvertUtils.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/ConvertUtils.java
index f7f348b..a75b8ad 100644
--- a/casic-metering-common/src/main/java/com/casic/missiles/utils/ConvertUtils.java
+++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/ConvertUtils.java
@@ -25,7 +25,6 @@
return null;
} else {
T targetObject = null;
-
try {
targetObject = target.newInstance();
BeanUtil.copyProperties(source, targetObject);
@@ -42,10 +41,8 @@
return null;
} else {
ArrayList targetList = new ArrayList(sourceList.size());
-
try {
Iterator var3 = sourceList.iterator();
-
while(var3.hasNext()) {
Object source = var3.next();
T targetObject = target.newInstance();
diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java
index 17206ce..fc9330e 100644
--- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java
+++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java
@@ -1,7 +1,13 @@
package com.casic.missiles.mapper.business;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.casic.missiles.dto.business.print.CertificateListRequest;
+import com.casic.missiles.dto.business.print.CertificateListResponse;
import com.casic.missiles.model.business.BusinessCertificateReport;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
/**
*
@@ -13,4 +19,8 @@
*/
public interface BusinessCertificateReportMapper extends BaseMapper {
+ List selectBatchForApprovalList(Page page, @Param("request") CertificateListRequest request, @Param("businessKey") List businessKey);
+
+
+
}
diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml
index 1fc6133..13456e6 100644
--- a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml
+++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml
@@ -4,27 +4,27 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -32,4 +32,45 @@
id, certificate_report_code, certificate_report_name, certificate_report_category, calibration_major, issuance_date, expiration_date, template_id, sign_id, approval_sign_id, certificate_report_file, original_record_id, print_status, print_num, remark, is_del, create_user, create_time, update_time
+
+
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java
new file mode 100644
index 0000000..97c39e6
--- /dev/null
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java
@@ -0,0 +1,56 @@
+package com.casic.missiles.controller.business;
+
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.casic.missiles.core.base.controller.ExportController;
+import com.casic.missiles.core.page.PageFactory;
+import com.casic.missiles.core.page.PageInfoBT;
+import com.casic.missiles.dto.ReturnDTO;
+import com.casic.missiles.dto.ReturnUtil;
+import com.casic.missiles.dto.business.print.CertificateListRequest;
+import com.casic.missiles.dto.business.print.CertificateListResponse;
+import com.casic.missiles.exception.BusinessException;
+import com.casic.missiles.model.exception.enums.CoreExceptionEnum;
+import com.casic.missiles.service.business.IBusinessCertificatePrintService;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.validation.Valid;
+
+/**
+ *
+ * 业务调度-证书打印
+ * 1、证书打印模块是对样品检验完成生成的证书进行管理
+ * 2、另,并通过工作流审批的方式严格控制证书打印次数
+ *
+ *
+ * @author cz
+ * @since 2023-02-20
+ */
+@RestController
+@RequestMapping("/business/certificatePrint")
+public class BusinessCertificatePrintController extends ExportController {
+
+ private IBusinessCertificatePrintService certificatePrintService;
+
+ /**
+ * 证书打印列表,除了基本的列表的信息,需要判断证书打印审批中的状态,进而达到权限的控制
+ */
+ @ApiOperation("设备列表-分页")
+ @PostMapping("/listPage")
+ public ReturnDTO> CertificatePrintlistPage(@RequestBody @Valid CertificateListRequest request, BindingResult bindingResult) throws Exception {
+ if (bindingResult.hasErrors()) {
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ Page page = PageFactory.defaultPage();
+ return ReturnUtil.success(super.packForBT(certificatePrintService.CertificatePrintlistPage(request,page)));
+ }
+ //同意 拒绝 请求审批
+
+
+
+}
diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/ConvertUtils.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/ConvertUtils.java
index f7f348b..a75b8ad 100644
--- a/casic-metering-common/src/main/java/com/casic/missiles/utils/ConvertUtils.java
+++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/ConvertUtils.java
@@ -25,7 +25,6 @@
return null;
} else {
T targetObject = null;
-
try {
targetObject = target.newInstance();
BeanUtil.copyProperties(source, targetObject);
@@ -42,10 +41,8 @@
return null;
} else {
ArrayList targetList = new ArrayList(sourceList.size());
-
try {
Iterator var3 = sourceList.iterator();
-
while(var3.hasNext()) {
Object source = var3.next();
T targetObject = target.newInstance();
diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java
index 17206ce..fc9330e 100644
--- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java
+++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java
@@ -1,7 +1,13 @@
package com.casic.missiles.mapper.business;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.casic.missiles.dto.business.print.CertificateListRequest;
+import com.casic.missiles.dto.business.print.CertificateListResponse;
import com.casic.missiles.model.business.BusinessCertificateReport;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
/**
*
@@ -13,4 +19,8 @@
*/
public interface BusinessCertificateReportMapper extends BaseMapper {
+ List selectBatchForApprovalList(Page page, @Param("request") CertificateListRequest request, @Param("businessKey") List businessKey);
+
+
+
}
diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml
index 1fc6133..13456e6 100644
--- a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml
+++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml
@@ -4,27 +4,27 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -32,4 +32,45 @@
id, certificate_report_code, certificate_report_name, certificate_report_category, calibration_major, issuance_date, expiration_date, template_id, sign_id, approval_sign_id, certificate_report_file, original_record_id, print_status, print_num, remark, is_del, create_user, create_time, update_time
+
+
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java b/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java
index 82b22fd..95dbb48 100644
--- a/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java
+++ b/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java
@@ -108,4 +108,9 @@
String ORDER_STATUS = "orderStatus";
//检测状态
String MEASURE_STATUS = "measureStatus";
+ //打印状态
+ String PRINT_STATUS = "printStatus";
+ //证书类型
+ String CERTIFICATE_TYPE = "certificateType";
+
}
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java
new file mode 100644
index 0000000..97c39e6
--- /dev/null
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java
@@ -0,0 +1,56 @@
+package com.casic.missiles.controller.business;
+
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.casic.missiles.core.base.controller.ExportController;
+import com.casic.missiles.core.page.PageFactory;
+import com.casic.missiles.core.page.PageInfoBT;
+import com.casic.missiles.dto.ReturnDTO;
+import com.casic.missiles.dto.ReturnUtil;
+import com.casic.missiles.dto.business.print.CertificateListRequest;
+import com.casic.missiles.dto.business.print.CertificateListResponse;
+import com.casic.missiles.exception.BusinessException;
+import com.casic.missiles.model.exception.enums.CoreExceptionEnum;
+import com.casic.missiles.service.business.IBusinessCertificatePrintService;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.validation.Valid;
+
+/**
+ *
+ * 业务调度-证书打印
+ * 1、证书打印模块是对样品检验完成生成的证书进行管理
+ * 2、另,并通过工作流审批的方式严格控制证书打印次数
+ *
+ *
+ * @author cz
+ * @since 2023-02-20
+ */
+@RestController
+@RequestMapping("/business/certificatePrint")
+public class BusinessCertificatePrintController extends ExportController {
+
+ private IBusinessCertificatePrintService certificatePrintService;
+
+ /**
+ * 证书打印列表,除了基本的列表的信息,需要判断证书打印审批中的状态,进而达到权限的控制
+ */
+ @ApiOperation("设备列表-分页")
+ @PostMapping("/listPage")
+ public ReturnDTO> CertificatePrintlistPage(@RequestBody @Valid CertificateListRequest request, BindingResult bindingResult) throws Exception {
+ if (bindingResult.hasErrors()) {
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ Page page = PageFactory.defaultPage();
+ return ReturnUtil.success(super.packForBT(certificatePrintService.CertificatePrintlistPage(request,page)));
+ }
+ //同意 拒绝 请求审批
+
+
+
+}
diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/ConvertUtils.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/ConvertUtils.java
index f7f348b..a75b8ad 100644
--- a/casic-metering-common/src/main/java/com/casic/missiles/utils/ConvertUtils.java
+++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/ConvertUtils.java
@@ -25,7 +25,6 @@
return null;
} else {
T targetObject = null;
-
try {
targetObject = target.newInstance();
BeanUtil.copyProperties(source, targetObject);
@@ -42,10 +41,8 @@
return null;
} else {
ArrayList targetList = new ArrayList(sourceList.size());
-
try {
Iterator var3 = sourceList.iterator();
-
while(var3.hasNext()) {
Object source = var3.next();
T targetObject = target.newInstance();
diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java
index 17206ce..fc9330e 100644
--- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java
+++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java
@@ -1,7 +1,13 @@
package com.casic.missiles.mapper.business;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.casic.missiles.dto.business.print.CertificateListRequest;
+import com.casic.missiles.dto.business.print.CertificateListResponse;
import com.casic.missiles.model.business.BusinessCertificateReport;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
/**
*
@@ -13,4 +19,8 @@
*/
public interface BusinessCertificateReportMapper extends BaseMapper {
+ List selectBatchForApprovalList(Page page, @Param("request") CertificateListRequest request, @Param("businessKey") List businessKey);
+
+
+
}
diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml
index 1fc6133..13456e6 100644
--- a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml
+++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml
@@ -4,27 +4,27 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -32,4 +32,45 @@
id, certificate_report_code, certificate_report_name, certificate_report_category, calibration_major, issuance_date, expiration_date, template_id, sign_id, approval_sign_id, certificate_report_file, original_record_id, print_status, print_num, remark, is_del, create_user, create_time, update_time
+
+
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java b/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java
index 82b22fd..95dbb48 100644
--- a/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java
+++ b/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java
@@ -108,4 +108,9 @@
String ORDER_STATUS = "orderStatus";
//检测状态
String MEASURE_STATUS = "measureStatus";
+ //打印状态
+ String PRINT_STATUS = "printStatus";
+ //证书类型
+ String CERTIFICATE_TYPE = "certificateType";
+
}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutDetailResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutDetailResponse.java
index fabeb12..fff240e 100644
--- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutDetailResponse.java
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutDetailResponse.java
@@ -16,6 +16,7 @@
@Data
@ApiModel
public class SampleHandOutDetailResponse {
+
@ApiModelProperty(value = "样品id", dataType = "Long")
private Long sampleId;
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java
new file mode 100644
index 0000000..97c39e6
--- /dev/null
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java
@@ -0,0 +1,56 @@
+package com.casic.missiles.controller.business;
+
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.casic.missiles.core.base.controller.ExportController;
+import com.casic.missiles.core.page.PageFactory;
+import com.casic.missiles.core.page.PageInfoBT;
+import com.casic.missiles.dto.ReturnDTO;
+import com.casic.missiles.dto.ReturnUtil;
+import com.casic.missiles.dto.business.print.CertificateListRequest;
+import com.casic.missiles.dto.business.print.CertificateListResponse;
+import com.casic.missiles.exception.BusinessException;
+import com.casic.missiles.model.exception.enums.CoreExceptionEnum;
+import com.casic.missiles.service.business.IBusinessCertificatePrintService;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.validation.Valid;
+
+/**
+ *
+ * 业务调度-证书打印
+ * 1、证书打印模块是对样品检验完成生成的证书进行管理
+ * 2、另,并通过工作流审批的方式严格控制证书打印次数
+ *
+ *
+ * @author cz
+ * @since 2023-02-20
+ */
+@RestController
+@RequestMapping("/business/certificatePrint")
+public class BusinessCertificatePrintController extends ExportController {
+
+ private IBusinessCertificatePrintService certificatePrintService;
+
+ /**
+ * 证书打印列表,除了基本的列表的信息,需要判断证书打印审批中的状态,进而达到权限的控制
+ */
+ @ApiOperation("设备列表-分页")
+ @PostMapping("/listPage")
+ public ReturnDTO> CertificatePrintlistPage(@RequestBody @Valid CertificateListRequest request, BindingResult bindingResult) throws Exception {
+ if (bindingResult.hasErrors()) {
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ Page page = PageFactory.defaultPage();
+ return ReturnUtil.success(super.packForBT(certificatePrintService.CertificatePrintlistPage(request,page)));
+ }
+ //同意 拒绝 请求审批
+
+
+
+}
diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/ConvertUtils.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/ConvertUtils.java
index f7f348b..a75b8ad 100644
--- a/casic-metering-common/src/main/java/com/casic/missiles/utils/ConvertUtils.java
+++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/ConvertUtils.java
@@ -25,7 +25,6 @@
return null;
} else {
T targetObject = null;
-
try {
targetObject = target.newInstance();
BeanUtil.copyProperties(source, targetObject);
@@ -42,10 +41,8 @@
return null;
} else {
ArrayList targetList = new ArrayList(sourceList.size());
-
try {
Iterator var3 = sourceList.iterator();
-
while(var3.hasNext()) {
Object source = var3.next();
T targetObject = target.newInstance();
diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java
index 17206ce..fc9330e 100644
--- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java
+++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java
@@ -1,7 +1,13 @@
package com.casic.missiles.mapper.business;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.casic.missiles.dto.business.print.CertificateListRequest;
+import com.casic.missiles.dto.business.print.CertificateListResponse;
import com.casic.missiles.model.business.BusinessCertificateReport;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
/**
*
@@ -13,4 +19,8 @@
*/
public interface BusinessCertificateReportMapper extends BaseMapper {
+ List selectBatchForApprovalList(Page page, @Param("request") CertificateListRequest request, @Param("businessKey") List businessKey);
+
+
+
}
diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml
index 1fc6133..13456e6 100644
--- a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml
+++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml
@@ -4,27 +4,27 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -32,4 +32,45 @@
id, certificate_report_code, certificate_report_name, certificate_report_category, calibration_major, issuance_date, expiration_date, template_id, sign_id, approval_sign_id, certificate_report_file, original_record_id, print_status, print_num, remark, is_del, create_user, create_time, update_time
+
+
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java b/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java
index 82b22fd..95dbb48 100644
--- a/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java
+++ b/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java
@@ -108,4 +108,9 @@
String ORDER_STATUS = "orderStatus";
//检测状态
String MEASURE_STATUS = "measureStatus";
+ //打印状态
+ String PRINT_STATUS = "printStatus";
+ //证书类型
+ String CERTIFICATE_TYPE = "certificateType";
+
}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutDetailResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutDetailResponse.java
index fabeb12..fff240e 100644
--- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutDetailResponse.java
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutDetailResponse.java
@@ -16,6 +16,7 @@
@Data
@ApiModel
public class SampleHandOutDetailResponse {
+
@ApiModelProperty(value = "样品id", dataType = "Long")
private Long sampleId;
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificateListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificateListRequest.java
new file mode 100644
index 0000000..7f3be53
--- /dev/null
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificateListRequest.java
@@ -0,0 +1,46 @@
+package com.casic.missiles.dto.business.print;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+@ApiModel("设备接收")
+public class CertificateListRequest {
+
+ @ApiModelProperty(value = "表单id(前端自定义)", dataType = "String")
+ private String formId;
+
+ @ApiModelProperty(value = "证书编号", dataType = "String")
+ private String certificateNo;
+
+ @ApiModelProperty(value = "委托书编号", dataType = "String")
+ private String orderNo;
+
+ @ApiModelProperty(value = "委托方名称", dataType = "String")
+ private String cutomerName;
+
+ @ApiModelProperty(value = "样品编号", dataType = "String")
+ private String sampleNo;
+
+ @ApiModelProperty(value = "样品名称", dataType = "String")
+ private String sampleName;
+
+ @ApiModelProperty(value = "证书类型(非类别)", dataType = "String")
+ private String certificateClass;
+
+ @ApiModelProperty(value = "未打印(传0,否则不传)", dataType = "String")
+ private String printSatus;
+
+ @ApiModelProperty(value = "审批状态", dataType = "String")
+ private String approvalStatus;
+
+ @ApiModelProperty(value = "创建人id(前端不需要传)", dataType = "String")
+ private Long createUserId;
+
+ @ApiModelProperty(value = "导出ids", dataType = "List")
+ private List ids;
+
+}
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java
new file mode 100644
index 0000000..97c39e6
--- /dev/null
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java
@@ -0,0 +1,56 @@
+package com.casic.missiles.controller.business;
+
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.casic.missiles.core.base.controller.ExportController;
+import com.casic.missiles.core.page.PageFactory;
+import com.casic.missiles.core.page.PageInfoBT;
+import com.casic.missiles.dto.ReturnDTO;
+import com.casic.missiles.dto.ReturnUtil;
+import com.casic.missiles.dto.business.print.CertificateListRequest;
+import com.casic.missiles.dto.business.print.CertificateListResponse;
+import com.casic.missiles.exception.BusinessException;
+import com.casic.missiles.model.exception.enums.CoreExceptionEnum;
+import com.casic.missiles.service.business.IBusinessCertificatePrintService;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.validation.Valid;
+
+/**
+ *
+ * 业务调度-证书打印
+ * 1、证书打印模块是对样品检验完成生成的证书进行管理
+ * 2、另,并通过工作流审批的方式严格控制证书打印次数
+ *
+ *
+ * @author cz
+ * @since 2023-02-20
+ */
+@RestController
+@RequestMapping("/business/certificatePrint")
+public class BusinessCertificatePrintController extends ExportController {
+
+ private IBusinessCertificatePrintService certificatePrintService;
+
+ /**
+ * 证书打印列表,除了基本的列表的信息,需要判断证书打印审批中的状态,进而达到权限的控制
+ */
+ @ApiOperation("设备列表-分页")
+ @PostMapping("/listPage")
+ public ReturnDTO> CertificatePrintlistPage(@RequestBody @Valid CertificateListRequest request, BindingResult bindingResult) throws Exception {
+ if (bindingResult.hasErrors()) {
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ Page page = PageFactory.defaultPage();
+ return ReturnUtil.success(super.packForBT(certificatePrintService.CertificatePrintlistPage(request,page)));
+ }
+ //同意 拒绝 请求审批
+
+
+
+}
diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/ConvertUtils.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/ConvertUtils.java
index f7f348b..a75b8ad 100644
--- a/casic-metering-common/src/main/java/com/casic/missiles/utils/ConvertUtils.java
+++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/ConvertUtils.java
@@ -25,7 +25,6 @@
return null;
} else {
T targetObject = null;
-
try {
targetObject = target.newInstance();
BeanUtil.copyProperties(source, targetObject);
@@ -42,10 +41,8 @@
return null;
} else {
ArrayList targetList = new ArrayList(sourceList.size());
-
try {
Iterator var3 = sourceList.iterator();
-
while(var3.hasNext()) {
Object source = var3.next();
T targetObject = target.newInstance();
diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java
index 17206ce..fc9330e 100644
--- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java
+++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java
@@ -1,7 +1,13 @@
package com.casic.missiles.mapper.business;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.casic.missiles.dto.business.print.CertificateListRequest;
+import com.casic.missiles.dto.business.print.CertificateListResponse;
import com.casic.missiles.model.business.BusinessCertificateReport;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
/**
*
@@ -13,4 +19,8 @@
*/
public interface BusinessCertificateReportMapper extends BaseMapper {
+ List selectBatchForApprovalList(Page page, @Param("request") CertificateListRequest request, @Param("businessKey") List businessKey);
+
+
+
}
diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml
index 1fc6133..13456e6 100644
--- a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml
+++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml
@@ -4,27 +4,27 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -32,4 +32,45 @@
id, certificate_report_code, certificate_report_name, certificate_report_category, calibration_major, issuance_date, expiration_date, template_id, sign_id, approval_sign_id, certificate_report_file, original_record_id, print_status, print_num, remark, is_del, create_user, create_time, update_time
+
+
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java b/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java
index 82b22fd..95dbb48 100644
--- a/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java
+++ b/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java
@@ -108,4 +108,9 @@
String ORDER_STATUS = "orderStatus";
//检测状态
String MEASURE_STATUS = "measureStatus";
+ //打印状态
+ String PRINT_STATUS = "printStatus";
+ //证书类型
+ String CERTIFICATE_TYPE = "certificateType";
+
}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutDetailResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutDetailResponse.java
index fabeb12..fff240e 100644
--- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutDetailResponse.java
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutDetailResponse.java
@@ -16,6 +16,7 @@
@Data
@ApiModel
public class SampleHandOutDetailResponse {
+
@ApiModelProperty(value = "样品id", dataType = "Long")
private Long sampleId;
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificateListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificateListRequest.java
new file mode 100644
index 0000000..7f3be53
--- /dev/null
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificateListRequest.java
@@ -0,0 +1,46 @@
+package com.casic.missiles.dto.business.print;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+@ApiModel("设备接收")
+public class CertificateListRequest {
+
+ @ApiModelProperty(value = "表单id(前端自定义)", dataType = "String")
+ private String formId;
+
+ @ApiModelProperty(value = "证书编号", dataType = "String")
+ private String certificateNo;
+
+ @ApiModelProperty(value = "委托书编号", dataType = "String")
+ private String orderNo;
+
+ @ApiModelProperty(value = "委托方名称", dataType = "String")
+ private String cutomerName;
+
+ @ApiModelProperty(value = "样品编号", dataType = "String")
+ private String sampleNo;
+
+ @ApiModelProperty(value = "样品名称", dataType = "String")
+ private String sampleName;
+
+ @ApiModelProperty(value = "证书类型(非类别)", dataType = "String")
+ private String certificateClass;
+
+ @ApiModelProperty(value = "未打印(传0,否则不传)", dataType = "String")
+ private String printSatus;
+
+ @ApiModelProperty(value = "审批状态", dataType = "String")
+ private String approvalStatus;
+
+ @ApiModelProperty(value = "创建人id(前端不需要传)", dataType = "String")
+ private Long createUserId;
+
+ @ApiModelProperty(value = "导出ids", dataType = "List")
+ private List ids;
+
+}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificateListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificateListResponse.java
new file mode 100644
index 0000000..e8c437c
--- /dev/null
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificateListResponse.java
@@ -0,0 +1,78 @@
+package com.casic.missiles.dto.business.print;
+
+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;
+
+@Data
+@ApiModel("证书打印返回列表")
+public class CertificateListResponse {
+
+ private Long id;
+
+ @ApiModelProperty(value = "证书编号", dataType = "String")
+ private String certificateNo;
+
+ @ApiModelProperty(value = "证书名称", dataType = "String")
+ private String certificateName;
+
+ @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 orderNo;
+
+ @ApiModelProperty(value = "校验类别", dataType = "String")
+ private String measureType;
+
+ @ApiModelProperty(value = "校验类别", dataType = "String")
+ @DictCodeField(message = "校验类别不合法", cacheName = MeterDictCode.MEASURE_CATEGORY)
+ private String measureTypeName;
+
+ @ApiModelProperty(value = "检定人员", dataType = "String")
+ private String measurePersonId;
+
+ @ApiModelProperty(value = "证书类型", dataType = "String")
+ @DictCodeField(message = "证书类型不合法", cacheName = MeterDictCode.CERTIFICATE_TYPE)
+ private String certificateType;
+
+ @ApiModelProperty(value = "证书类型名称", dataType = "String")
+ private String certificateTypeName;
+
+ @ApiModelProperty(value = "打印状况", dataType = "String")
+ @DictCodeField(message = "打印状况不合法", cacheName = MeterDictCode.PRINT_STATUS)
+ private String printStatus;
+
+ @ApiModelProperty(value = "打印状态", dataType = "String")
+ private String printStatusName;
+
+ @ApiModelProperty(value = "打印次数", dataType = "String")
+ private String printNum;
+
+ @ApiModelProperty(value = "生成时间", dataType = "String")
+ private String createTime;
+
+ @ApiModelProperty(value = "审批状态", dataType = "String")
+ private String approvalStatus;
+
+ @ApiModelProperty(value = "任务id", dataType = "String")
+ private String taskId;
+
+ @ApiModelProperty(value = "审批状态", dataType = "Integer")
+ private Integer decisionItem;
+
+ @ApiModelProperty(value = "审批状态名称", dataType = "String")
+ private String approvalStatusName;
+
+}
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java
new file mode 100644
index 0000000..97c39e6
--- /dev/null
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java
@@ -0,0 +1,56 @@
+package com.casic.missiles.controller.business;
+
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.casic.missiles.core.base.controller.ExportController;
+import com.casic.missiles.core.page.PageFactory;
+import com.casic.missiles.core.page.PageInfoBT;
+import com.casic.missiles.dto.ReturnDTO;
+import com.casic.missiles.dto.ReturnUtil;
+import com.casic.missiles.dto.business.print.CertificateListRequest;
+import com.casic.missiles.dto.business.print.CertificateListResponse;
+import com.casic.missiles.exception.BusinessException;
+import com.casic.missiles.model.exception.enums.CoreExceptionEnum;
+import com.casic.missiles.service.business.IBusinessCertificatePrintService;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.validation.Valid;
+
+/**
+ *
+ * 业务调度-证书打印
+ * 1、证书打印模块是对样品检验完成生成的证书进行管理
+ * 2、另,并通过工作流审批的方式严格控制证书打印次数
+ *
+ *
+ * @author cz
+ * @since 2023-02-20
+ */
+@RestController
+@RequestMapping("/business/certificatePrint")
+public class BusinessCertificatePrintController extends ExportController {
+
+ private IBusinessCertificatePrintService certificatePrintService;
+
+ /**
+ * 证书打印列表,除了基本的列表的信息,需要判断证书打印审批中的状态,进而达到权限的控制
+ */
+ @ApiOperation("设备列表-分页")
+ @PostMapping("/listPage")
+ public ReturnDTO> CertificatePrintlistPage(@RequestBody @Valid CertificateListRequest request, BindingResult bindingResult) throws Exception {
+ if (bindingResult.hasErrors()) {
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ Page page = PageFactory.defaultPage();
+ return ReturnUtil.success(super.packForBT(certificatePrintService.CertificatePrintlistPage(request,page)));
+ }
+ //同意 拒绝 请求审批
+
+
+
+}
diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/ConvertUtils.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/ConvertUtils.java
index f7f348b..a75b8ad 100644
--- a/casic-metering-common/src/main/java/com/casic/missiles/utils/ConvertUtils.java
+++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/ConvertUtils.java
@@ -25,7 +25,6 @@
return null;
} else {
T targetObject = null;
-
try {
targetObject = target.newInstance();
BeanUtil.copyProperties(source, targetObject);
@@ -42,10 +41,8 @@
return null;
} else {
ArrayList targetList = new ArrayList(sourceList.size());
-
try {
Iterator var3 = sourceList.iterator();
-
while(var3.hasNext()) {
Object source = var3.next();
T targetObject = target.newInstance();
diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java
index 17206ce..fc9330e 100644
--- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java
+++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java
@@ -1,7 +1,13 @@
package com.casic.missiles.mapper.business;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.casic.missiles.dto.business.print.CertificateListRequest;
+import com.casic.missiles.dto.business.print.CertificateListResponse;
import com.casic.missiles.model.business.BusinessCertificateReport;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
/**
*
@@ -13,4 +19,8 @@
*/
public interface BusinessCertificateReportMapper extends BaseMapper {
+ List selectBatchForApprovalList(Page page, @Param("request") CertificateListRequest request, @Param("businessKey") List businessKey);
+
+
+
}
diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml
index 1fc6133..13456e6 100644
--- a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml
+++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml
@@ -4,27 +4,27 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -32,4 +32,45 @@
id, certificate_report_code, certificate_report_name, certificate_report_category, calibration_major, issuance_date, expiration_date, template_id, sign_id, approval_sign_id, certificate_report_file, original_record_id, print_status, print_num, remark, is_del, create_user, create_time, update_time
+
+
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java b/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java
index 82b22fd..95dbb48 100644
--- a/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java
+++ b/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java
@@ -108,4 +108,9 @@
String ORDER_STATUS = "orderStatus";
//检测状态
String MEASURE_STATUS = "measureStatus";
+ //打印状态
+ String PRINT_STATUS = "printStatus";
+ //证书类型
+ String CERTIFICATE_TYPE = "certificateType";
+
}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutDetailResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutDetailResponse.java
index fabeb12..fff240e 100644
--- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutDetailResponse.java
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutDetailResponse.java
@@ -16,6 +16,7 @@
@Data
@ApiModel
public class SampleHandOutDetailResponse {
+
@ApiModelProperty(value = "样品id", dataType = "Long")
private Long sampleId;
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificateListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificateListRequest.java
new file mode 100644
index 0000000..7f3be53
--- /dev/null
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificateListRequest.java
@@ -0,0 +1,46 @@
+package com.casic.missiles.dto.business.print;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+@ApiModel("设备接收")
+public class CertificateListRequest {
+
+ @ApiModelProperty(value = "表单id(前端自定义)", dataType = "String")
+ private String formId;
+
+ @ApiModelProperty(value = "证书编号", dataType = "String")
+ private String certificateNo;
+
+ @ApiModelProperty(value = "委托书编号", dataType = "String")
+ private String orderNo;
+
+ @ApiModelProperty(value = "委托方名称", dataType = "String")
+ private String cutomerName;
+
+ @ApiModelProperty(value = "样品编号", dataType = "String")
+ private String sampleNo;
+
+ @ApiModelProperty(value = "样品名称", dataType = "String")
+ private String sampleName;
+
+ @ApiModelProperty(value = "证书类型(非类别)", dataType = "String")
+ private String certificateClass;
+
+ @ApiModelProperty(value = "未打印(传0,否则不传)", dataType = "String")
+ private String printSatus;
+
+ @ApiModelProperty(value = "审批状态", dataType = "String")
+ private String approvalStatus;
+
+ @ApiModelProperty(value = "创建人id(前端不需要传)", dataType = "String")
+ private Long createUserId;
+
+ @ApiModelProperty(value = "导出ids", dataType = "List")
+ private List ids;
+
+}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificateListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificateListResponse.java
new file mode 100644
index 0000000..e8c437c
--- /dev/null
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificateListResponse.java
@@ -0,0 +1,78 @@
+package com.casic.missiles.dto.business.print;
+
+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;
+
+@Data
+@ApiModel("证书打印返回列表")
+public class CertificateListResponse {
+
+ private Long id;
+
+ @ApiModelProperty(value = "证书编号", dataType = "String")
+ private String certificateNo;
+
+ @ApiModelProperty(value = "证书名称", dataType = "String")
+ private String certificateName;
+
+ @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 orderNo;
+
+ @ApiModelProperty(value = "校验类别", dataType = "String")
+ private String measureType;
+
+ @ApiModelProperty(value = "校验类别", dataType = "String")
+ @DictCodeField(message = "校验类别不合法", cacheName = MeterDictCode.MEASURE_CATEGORY)
+ private String measureTypeName;
+
+ @ApiModelProperty(value = "检定人员", dataType = "String")
+ private String measurePersonId;
+
+ @ApiModelProperty(value = "证书类型", dataType = "String")
+ @DictCodeField(message = "证书类型不合法", cacheName = MeterDictCode.CERTIFICATE_TYPE)
+ private String certificateType;
+
+ @ApiModelProperty(value = "证书类型名称", dataType = "String")
+ private String certificateTypeName;
+
+ @ApiModelProperty(value = "打印状况", dataType = "String")
+ @DictCodeField(message = "打印状况不合法", cacheName = MeterDictCode.PRINT_STATUS)
+ private String printStatus;
+
+ @ApiModelProperty(value = "打印状态", dataType = "String")
+ private String printStatusName;
+
+ @ApiModelProperty(value = "打印次数", dataType = "String")
+ private String printNum;
+
+ @ApiModelProperty(value = "生成时间", dataType = "String")
+ private String createTime;
+
+ @ApiModelProperty(value = "审批状态", dataType = "String")
+ private String approvalStatus;
+
+ @ApiModelProperty(value = "任务id", dataType = "String")
+ private String taskId;
+
+ @ApiModelProperty(value = "审批状态", dataType = "Integer")
+ private Integer decisionItem;
+
+ @ApiModelProperty(value = "审批状态名称", dataType = "String")
+ private String approvalStatusName;
+
+}
diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificatePrintServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificatePrintServiceImpl.java
new file mode 100644
index 0000000..79ed0bf
--- /dev/null
+++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificatePrintServiceImpl.java
@@ -0,0 +1,147 @@
+package com.casic.missiles.service.Impl.business;
+
+import cn.hutool.core.lang.Assert;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.casic.missiles.core.application.service.AbstractDictService;
+import com.casic.missiles.core.model.auth.AuthUser;
+import com.casic.missiles.core.page.PageFactory;
+import com.casic.missiles.core.shiro.ShiroKit;
+import com.casic.missiles.dto.business.print.CertificateListRequest;
+import com.casic.missiles.dto.business.print.CertificateListResponse;
+import com.casic.missiles.dto.flowable.AllApproveDTO;
+import com.casic.missiles.dto.flowable.ToBeApprovedDTO;
+import com.casic.missiles.dto.meter.TraceSupplierApprovalListResponse;
+import com.casic.missiles.enums.ApprovalStatusEnum;
+import com.casic.missiles.enums.BusinessExceptionEnum;
+import com.casic.missiles.enums.MeterDictEnum;
+import com.casic.missiles.exception.BusinessException;
+import com.casic.missiles.mapper.business.BusinessCertificateReportMapper;
+import com.casic.missiles.model.business.BusinessCertificateReport;
+import com.casic.missiles.model.meter.MeterTraceSupplier;
+import com.casic.missiles.service.IBaseApprovalService;
+import com.casic.missiles.service.business.IBusinessCertificatePrintService;
+import com.casic.missiles.utils.ConvertUtils;
+import lombok.AllArgsConstructor;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import java.util.*;
+import java.util.stream.Collectors;
+
+@Service
+@AllArgsConstructor
+public class BusinessCertificatePrintServiceImpl extends ServiceImpl implements IBusinessCertificatePrintService {
+
+ private final IBaseApprovalService baseApprovalService;
+ private final AbstractDictService dictService;
+
+ @Override
+ public Page CertificatePrintlistPage(CertificateListRequest request, Page page) {
+ AuthUser user = ShiroKit.getUser();
+ Assert.isFalse(Objects.isNull(user), () -> {
+ throw new BusinessException(BusinessExceptionEnum.LOGIN_USER_ACQUIRE_FAILED);
+ });
+ request.setCreateUserId(user.getId());
+ return handleApprovalStatus(page, request);
+ }
+
+ private Page handleApprovalStatus(Page page, CertificateListRequest request) {
+ Page approvalList = PageFactory.defaultPage();
+ List businessKeys = new ArrayList<>();
+ List list;
+ switch (request.getApprovalStatus()) {
+ //待审批,该状态维护在flowable中
+ case ApprovalStatusEnum.TO_BE_APPROVED:
+ List toBeApprovedList = baseApprovalService.getToBeApprovedList(request.getFormId());
+ if (!CollectionUtils.isEmpty(toBeApprovedList)) {
+ businessKeys = toBeApprovedList.stream().map(ToBeApprovedDTO::getBusinessKey).distinct().collect(Collectors.toList());
+ }
+ if (!CollectionUtils.isEmpty(businessKeys)) {
+ list = this.baseMapper.selectBatchForApprovalList(page, request, businessKeys);
+ approvalList = handleApprovalListResponse(approvalList, list, ApprovalStatusEnum.TO_BE_APPROVED);
+ //DTO根据业务主键补全taskId
+ approvalList.getRecords().forEach(approval -> {
+ toBeApprovedList.forEach(toBeApprovedDTO -> {
+ if (String.valueOf(approval.getId()).equals(toBeApprovedDTO.getBusinessKey())) {
+ approval.setTaskId(toBeApprovedDTO.getTaskId());
+ //补全可选决策项
+ approval.setDecisionItem(toBeApprovedDTO.getDecisionItem());
+ }
+ });
+ });
+ }
+ break;
+// //审批中,该状态维护在flowable中
+ case ApprovalStatusEnum.IN_APPROVED:
+ businessKeys = baseApprovalService.getInApprovedList(request.getFormId());
+ if (!CollectionUtils.isEmpty(businessKeys)) {
+ list = this.baseMapper.selectBatchForApprovalList(page, request, businessKeys);
+ approvalList = handleApprovalListResponse(approvalList, list, ApprovalStatusEnum.IN_APPROVED);
+ }
+// break;
+ //已通过,该状态维护在flowable
+ case ApprovalStatusEnum.PASSED:
+ businessKeys = baseApprovalService.getPassedList(request.getFormId());
+ if (!CollectionUtils.isEmpty(businessKeys)) {
+ list = this.baseMapper.selectBatchForApprovalList(page, request, businessKeys);
+ approvalList = handleApprovalListResponse(approvalList, list, ApprovalStatusEnum.PASSED);
+ }
+ break;
+ //未通过(包括拒绝、驳回,拒绝为直接删除实例,驳回为驳回到起点),该状态维护在flowable
+ case ApprovalStatusEnum.FAILED:
+ businessKeys = baseApprovalService.getFailedList(request.getFormId()); //未通过-拒绝
+ List rejectBusinessKey = baseApprovalService.getFailedRejectList(request.getFormId()); //未通过-驳回
+ if (!CollectionUtils.isEmpty(businessKeys)) {
+ list = this.baseMapper.selectBatchForApprovalList(page, request, businessKeys);
+ approvalList = handleApprovalListResponse(approvalList, list, ApprovalStatusEnum.FAILED);
+ }
+ Page rejectApprovalList = PageFactory.defaultPage();
+ if (!CollectionUtils.isEmpty(rejectBusinessKey)) {
+ List rejectList = this.baseMapper.selectBatchForApprovalList(page, request, rejectBusinessKey);
+ rejectApprovalList = handleApprovalListResponse(approvalList, rejectList, ApprovalStatusEnum.FAILED_REJECT);
+ }
+ //合并未通过-拒绝和未通过-驳回
+ approvalList.getRecords().addAll(rejectApprovalList.getRecords());
+ break;
+ //全部
+ //区分管理员和普通用户
+ //普通用户获取自己发起的(审批中、已通过、未通过、已取消),管理员获取全部(审批中、已通过、未通过、已取消)
+ case ApprovalStatusEnum.ALL:
+ List AllApproveList = baseApprovalService.getAllList(request.getFormId());
+ if (!CollectionUtils.isEmpty(AllApproveList)) {
+ businessKeys = AllApproveList.stream().map(AllApproveDTO::getBusinessKey).collect(Collectors.toList());
+ }
+ if (!CollectionUtils.isEmpty(businessKeys)) {
+ list = this.baseMapper.selectBatchForApprovalList(page, request, businessKeys);
+ approvalList = handleAllApprovalListResponse(approvalList, list, AllApproveList);
+ }
+ break;
+ }
+ return approvalList;
+ }
+
+ private Page handleAllApprovalListResponse(Page approvalList, List list, List allApproveList) {
+
+ Map taskMap = allApproveList.stream().collect(Collectors.toMap(AllApproveDTO::getBusinessKey,AllApproveDTO::getStatus));
+ approvalList.setRecords(ConvertUtils.sourceToTarget(list, CertificateListResponse.class));
+ //状态补全
+ approvalList.getRecords().forEach(approval -> {
+ approval.setApprovalStatusName(dictService.getDictNameByCode(MeterDictEnum.APPROVAL_STATUS, taskMap.get(String.valueOf(approval.getId()))));
+ approval.setApprovalStatus(taskMap.get(String.valueOf(approval.getId())));
+ });
+ //排序
+ approvalList.setRecords(approvalList.getRecords().stream().sorted(Comparator.comparing(CertificateListResponse::getCreateTime).reversed()).collect(Collectors.toList()));
+ return approvalList;
+ }
+
+ private Page handleApprovalListResponse(Page approvalList, List list, String status) {
+ approvalList.setRecords(ConvertUtils.sourceToTarget(list, CertificateListResponse.class));
+ approvalList.getRecords().stream().forEach(result -> {
+ //审批状态两种获取方式:1、在此处设置,2、在flowable中设置业务状态,暂采取1
+ result.setApprovalStatusName(dictService.getDictNameByCode(MeterDictEnum.APPROVAL_STATUS, status));
+ });
+ return approvalList;
+ }
+
+}
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java
new file mode 100644
index 0000000..97c39e6
--- /dev/null
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java
@@ -0,0 +1,56 @@
+package com.casic.missiles.controller.business;
+
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.casic.missiles.core.base.controller.ExportController;
+import com.casic.missiles.core.page.PageFactory;
+import com.casic.missiles.core.page.PageInfoBT;
+import com.casic.missiles.dto.ReturnDTO;
+import com.casic.missiles.dto.ReturnUtil;
+import com.casic.missiles.dto.business.print.CertificateListRequest;
+import com.casic.missiles.dto.business.print.CertificateListResponse;
+import com.casic.missiles.exception.BusinessException;
+import com.casic.missiles.model.exception.enums.CoreExceptionEnum;
+import com.casic.missiles.service.business.IBusinessCertificatePrintService;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.validation.Valid;
+
+/**
+ *
+ * 业务调度-证书打印
+ * 1、证书打印模块是对样品检验完成生成的证书进行管理
+ * 2、另,并通过工作流审批的方式严格控制证书打印次数
+ *
+ *
+ * @author cz
+ * @since 2023-02-20
+ */
+@RestController
+@RequestMapping("/business/certificatePrint")
+public class BusinessCertificatePrintController extends ExportController {
+
+ private IBusinessCertificatePrintService certificatePrintService;
+
+ /**
+ * 证书打印列表,除了基本的列表的信息,需要判断证书打印审批中的状态,进而达到权限的控制
+ */
+ @ApiOperation("设备列表-分页")
+ @PostMapping("/listPage")
+ public ReturnDTO> CertificatePrintlistPage(@RequestBody @Valid CertificateListRequest request, BindingResult bindingResult) throws Exception {
+ if (bindingResult.hasErrors()) {
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ Page page = PageFactory.defaultPage();
+ return ReturnUtil.success(super.packForBT(certificatePrintService.CertificatePrintlistPage(request,page)));
+ }
+ //同意 拒绝 请求审批
+
+
+
+}
diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/ConvertUtils.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/ConvertUtils.java
index f7f348b..a75b8ad 100644
--- a/casic-metering-common/src/main/java/com/casic/missiles/utils/ConvertUtils.java
+++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/ConvertUtils.java
@@ -25,7 +25,6 @@
return null;
} else {
T targetObject = null;
-
try {
targetObject = target.newInstance();
BeanUtil.copyProperties(source, targetObject);
@@ -42,10 +41,8 @@
return null;
} else {
ArrayList targetList = new ArrayList(sourceList.size());
-
try {
Iterator var3 = sourceList.iterator();
-
while(var3.hasNext()) {
Object source = var3.next();
T targetObject = target.newInstance();
diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java
index 17206ce..fc9330e 100644
--- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java
+++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java
@@ -1,7 +1,13 @@
package com.casic.missiles.mapper.business;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.casic.missiles.dto.business.print.CertificateListRequest;
+import com.casic.missiles.dto.business.print.CertificateListResponse;
import com.casic.missiles.model.business.BusinessCertificateReport;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
/**
*
@@ -13,4 +19,8 @@
*/
public interface BusinessCertificateReportMapper extends BaseMapper {
+ List selectBatchForApprovalList(Page page, @Param("request") CertificateListRequest request, @Param("businessKey") List businessKey);
+
+
+
}
diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml
index 1fc6133..13456e6 100644
--- a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml
+++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml
@@ -4,27 +4,27 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -32,4 +32,45 @@
id, certificate_report_code, certificate_report_name, certificate_report_category, calibration_major, issuance_date, expiration_date, template_id, sign_id, approval_sign_id, certificate_report_file, original_record_id, print_status, print_num, remark, is_del, create_user, create_time, update_time
+
+
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java b/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java
index 82b22fd..95dbb48 100644
--- a/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java
+++ b/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java
@@ -108,4 +108,9 @@
String ORDER_STATUS = "orderStatus";
//检测状态
String MEASURE_STATUS = "measureStatus";
+ //打印状态
+ String PRINT_STATUS = "printStatus";
+ //证书类型
+ String CERTIFICATE_TYPE = "certificateType";
+
}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutDetailResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutDetailResponse.java
index fabeb12..fff240e 100644
--- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutDetailResponse.java
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutDetailResponse.java
@@ -16,6 +16,7 @@
@Data
@ApiModel
public class SampleHandOutDetailResponse {
+
@ApiModelProperty(value = "样品id", dataType = "Long")
private Long sampleId;
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificateListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificateListRequest.java
new file mode 100644
index 0000000..7f3be53
--- /dev/null
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificateListRequest.java
@@ -0,0 +1,46 @@
+package com.casic.missiles.dto.business.print;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+@ApiModel("设备接收")
+public class CertificateListRequest {
+
+ @ApiModelProperty(value = "表单id(前端自定义)", dataType = "String")
+ private String formId;
+
+ @ApiModelProperty(value = "证书编号", dataType = "String")
+ private String certificateNo;
+
+ @ApiModelProperty(value = "委托书编号", dataType = "String")
+ private String orderNo;
+
+ @ApiModelProperty(value = "委托方名称", dataType = "String")
+ private String cutomerName;
+
+ @ApiModelProperty(value = "样品编号", dataType = "String")
+ private String sampleNo;
+
+ @ApiModelProperty(value = "样品名称", dataType = "String")
+ private String sampleName;
+
+ @ApiModelProperty(value = "证书类型(非类别)", dataType = "String")
+ private String certificateClass;
+
+ @ApiModelProperty(value = "未打印(传0,否则不传)", dataType = "String")
+ private String printSatus;
+
+ @ApiModelProperty(value = "审批状态", dataType = "String")
+ private String approvalStatus;
+
+ @ApiModelProperty(value = "创建人id(前端不需要传)", dataType = "String")
+ private Long createUserId;
+
+ @ApiModelProperty(value = "导出ids", dataType = "List")
+ private List ids;
+
+}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificateListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificateListResponse.java
new file mode 100644
index 0000000..e8c437c
--- /dev/null
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificateListResponse.java
@@ -0,0 +1,78 @@
+package com.casic.missiles.dto.business.print;
+
+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;
+
+@Data
+@ApiModel("证书打印返回列表")
+public class CertificateListResponse {
+
+ private Long id;
+
+ @ApiModelProperty(value = "证书编号", dataType = "String")
+ private String certificateNo;
+
+ @ApiModelProperty(value = "证书名称", dataType = "String")
+ private String certificateName;
+
+ @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 orderNo;
+
+ @ApiModelProperty(value = "校验类别", dataType = "String")
+ private String measureType;
+
+ @ApiModelProperty(value = "校验类别", dataType = "String")
+ @DictCodeField(message = "校验类别不合法", cacheName = MeterDictCode.MEASURE_CATEGORY)
+ private String measureTypeName;
+
+ @ApiModelProperty(value = "检定人员", dataType = "String")
+ private String measurePersonId;
+
+ @ApiModelProperty(value = "证书类型", dataType = "String")
+ @DictCodeField(message = "证书类型不合法", cacheName = MeterDictCode.CERTIFICATE_TYPE)
+ private String certificateType;
+
+ @ApiModelProperty(value = "证书类型名称", dataType = "String")
+ private String certificateTypeName;
+
+ @ApiModelProperty(value = "打印状况", dataType = "String")
+ @DictCodeField(message = "打印状况不合法", cacheName = MeterDictCode.PRINT_STATUS)
+ private String printStatus;
+
+ @ApiModelProperty(value = "打印状态", dataType = "String")
+ private String printStatusName;
+
+ @ApiModelProperty(value = "打印次数", dataType = "String")
+ private String printNum;
+
+ @ApiModelProperty(value = "生成时间", dataType = "String")
+ private String createTime;
+
+ @ApiModelProperty(value = "审批状态", dataType = "String")
+ private String approvalStatus;
+
+ @ApiModelProperty(value = "任务id", dataType = "String")
+ private String taskId;
+
+ @ApiModelProperty(value = "审批状态", dataType = "Integer")
+ private Integer decisionItem;
+
+ @ApiModelProperty(value = "审批状态名称", dataType = "String")
+ private String approvalStatusName;
+
+}
diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificatePrintServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificatePrintServiceImpl.java
new file mode 100644
index 0000000..79ed0bf
--- /dev/null
+++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificatePrintServiceImpl.java
@@ -0,0 +1,147 @@
+package com.casic.missiles.service.Impl.business;
+
+import cn.hutool.core.lang.Assert;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.casic.missiles.core.application.service.AbstractDictService;
+import com.casic.missiles.core.model.auth.AuthUser;
+import com.casic.missiles.core.page.PageFactory;
+import com.casic.missiles.core.shiro.ShiroKit;
+import com.casic.missiles.dto.business.print.CertificateListRequest;
+import com.casic.missiles.dto.business.print.CertificateListResponse;
+import com.casic.missiles.dto.flowable.AllApproveDTO;
+import com.casic.missiles.dto.flowable.ToBeApprovedDTO;
+import com.casic.missiles.dto.meter.TraceSupplierApprovalListResponse;
+import com.casic.missiles.enums.ApprovalStatusEnum;
+import com.casic.missiles.enums.BusinessExceptionEnum;
+import com.casic.missiles.enums.MeterDictEnum;
+import com.casic.missiles.exception.BusinessException;
+import com.casic.missiles.mapper.business.BusinessCertificateReportMapper;
+import com.casic.missiles.model.business.BusinessCertificateReport;
+import com.casic.missiles.model.meter.MeterTraceSupplier;
+import com.casic.missiles.service.IBaseApprovalService;
+import com.casic.missiles.service.business.IBusinessCertificatePrintService;
+import com.casic.missiles.utils.ConvertUtils;
+import lombok.AllArgsConstructor;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import java.util.*;
+import java.util.stream.Collectors;
+
+@Service
+@AllArgsConstructor
+public class BusinessCertificatePrintServiceImpl extends ServiceImpl implements IBusinessCertificatePrintService {
+
+ private final IBaseApprovalService baseApprovalService;
+ private final AbstractDictService dictService;
+
+ @Override
+ public Page CertificatePrintlistPage(CertificateListRequest request, Page page) {
+ AuthUser user = ShiroKit.getUser();
+ Assert.isFalse(Objects.isNull(user), () -> {
+ throw new BusinessException(BusinessExceptionEnum.LOGIN_USER_ACQUIRE_FAILED);
+ });
+ request.setCreateUserId(user.getId());
+ return handleApprovalStatus(page, request);
+ }
+
+ private Page handleApprovalStatus(Page page, CertificateListRequest request) {
+ Page approvalList = PageFactory.defaultPage();
+ List businessKeys = new ArrayList<>();
+ List list;
+ switch (request.getApprovalStatus()) {
+ //待审批,该状态维护在flowable中
+ case ApprovalStatusEnum.TO_BE_APPROVED:
+ List toBeApprovedList = baseApprovalService.getToBeApprovedList(request.getFormId());
+ if (!CollectionUtils.isEmpty(toBeApprovedList)) {
+ businessKeys = toBeApprovedList.stream().map(ToBeApprovedDTO::getBusinessKey).distinct().collect(Collectors.toList());
+ }
+ if (!CollectionUtils.isEmpty(businessKeys)) {
+ list = this.baseMapper.selectBatchForApprovalList(page, request, businessKeys);
+ approvalList = handleApprovalListResponse(approvalList, list, ApprovalStatusEnum.TO_BE_APPROVED);
+ //DTO根据业务主键补全taskId
+ approvalList.getRecords().forEach(approval -> {
+ toBeApprovedList.forEach(toBeApprovedDTO -> {
+ if (String.valueOf(approval.getId()).equals(toBeApprovedDTO.getBusinessKey())) {
+ approval.setTaskId(toBeApprovedDTO.getTaskId());
+ //补全可选决策项
+ approval.setDecisionItem(toBeApprovedDTO.getDecisionItem());
+ }
+ });
+ });
+ }
+ break;
+// //审批中,该状态维护在flowable中
+ case ApprovalStatusEnum.IN_APPROVED:
+ businessKeys = baseApprovalService.getInApprovedList(request.getFormId());
+ if (!CollectionUtils.isEmpty(businessKeys)) {
+ list = this.baseMapper.selectBatchForApprovalList(page, request, businessKeys);
+ approvalList = handleApprovalListResponse(approvalList, list, ApprovalStatusEnum.IN_APPROVED);
+ }
+// break;
+ //已通过,该状态维护在flowable
+ case ApprovalStatusEnum.PASSED:
+ businessKeys = baseApprovalService.getPassedList(request.getFormId());
+ if (!CollectionUtils.isEmpty(businessKeys)) {
+ list = this.baseMapper.selectBatchForApprovalList(page, request, businessKeys);
+ approvalList = handleApprovalListResponse(approvalList, list, ApprovalStatusEnum.PASSED);
+ }
+ break;
+ //未通过(包括拒绝、驳回,拒绝为直接删除实例,驳回为驳回到起点),该状态维护在flowable
+ case ApprovalStatusEnum.FAILED:
+ businessKeys = baseApprovalService.getFailedList(request.getFormId()); //未通过-拒绝
+ List rejectBusinessKey = baseApprovalService.getFailedRejectList(request.getFormId()); //未通过-驳回
+ if (!CollectionUtils.isEmpty(businessKeys)) {
+ list = this.baseMapper.selectBatchForApprovalList(page, request, businessKeys);
+ approvalList = handleApprovalListResponse(approvalList, list, ApprovalStatusEnum.FAILED);
+ }
+ Page rejectApprovalList = PageFactory.defaultPage();
+ if (!CollectionUtils.isEmpty(rejectBusinessKey)) {
+ List rejectList = this.baseMapper.selectBatchForApprovalList(page, request, rejectBusinessKey);
+ rejectApprovalList = handleApprovalListResponse(approvalList, rejectList, ApprovalStatusEnum.FAILED_REJECT);
+ }
+ //合并未通过-拒绝和未通过-驳回
+ approvalList.getRecords().addAll(rejectApprovalList.getRecords());
+ break;
+ //全部
+ //区分管理员和普通用户
+ //普通用户获取自己发起的(审批中、已通过、未通过、已取消),管理员获取全部(审批中、已通过、未通过、已取消)
+ case ApprovalStatusEnum.ALL:
+ List AllApproveList = baseApprovalService.getAllList(request.getFormId());
+ if (!CollectionUtils.isEmpty(AllApproveList)) {
+ businessKeys = AllApproveList.stream().map(AllApproveDTO::getBusinessKey).collect(Collectors.toList());
+ }
+ if (!CollectionUtils.isEmpty(businessKeys)) {
+ list = this.baseMapper.selectBatchForApprovalList(page, request, businessKeys);
+ approvalList = handleAllApprovalListResponse(approvalList, list, AllApproveList);
+ }
+ break;
+ }
+ return approvalList;
+ }
+
+ private Page handleAllApprovalListResponse(Page approvalList, List list, List allApproveList) {
+
+ Map taskMap = allApproveList.stream().collect(Collectors.toMap(AllApproveDTO::getBusinessKey,AllApproveDTO::getStatus));
+ approvalList.setRecords(ConvertUtils.sourceToTarget(list, CertificateListResponse.class));
+ //状态补全
+ approvalList.getRecords().forEach(approval -> {
+ approval.setApprovalStatusName(dictService.getDictNameByCode(MeterDictEnum.APPROVAL_STATUS, taskMap.get(String.valueOf(approval.getId()))));
+ approval.setApprovalStatus(taskMap.get(String.valueOf(approval.getId())));
+ });
+ //排序
+ approvalList.setRecords(approvalList.getRecords().stream().sorted(Comparator.comparing(CertificateListResponse::getCreateTime).reversed()).collect(Collectors.toList()));
+ return approvalList;
+ }
+
+ private Page handleApprovalListResponse(Page approvalList, List list, String status) {
+ approvalList.setRecords(ConvertUtils.sourceToTarget(list, CertificateListResponse.class));
+ approvalList.getRecords().stream().forEach(result -> {
+ //审批状态两种获取方式:1、在此处设置,2、在flowable中设置业务状态,暂采取1
+ result.setApprovalStatusName(dictService.getDictNameByCode(MeterDictEnum.APPROVAL_STATUS, status));
+ });
+ return approvalList;
+ }
+
+}
diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java
index 9e7a6db..5eb0a4b 100644
--- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java
+++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java
@@ -130,7 +130,7 @@
@Override
public ReturnDTO statusChange(DeviceStatusChangeDTO deviceStatusChangeDTO) {
- Integer updateFalg = this.statusChangeUpdator(deviceStatusChangeDTO);
+ Integer updateFalg = this.statusChangeUpdator(deviceStatusChangeDTO,false);
if (updateFalg > 0) {
return ReturnUtil.success();
}
@@ -141,7 +141,7 @@
@Override
@Transactional
public ReturnDTO forcedTerminate(DeviceStatusChangeDTO deviceStatusChangeDTO) {
- Integer updateFlag = this.statusChangeUpdator(deviceStatusChangeDTO);
+ Integer updateFlag = this.statusChangeUpdator(deviceStatusChangeDTO,true);
//实验室状态数据的更新
Integer updateReasonFlag = reasonPopulation(deviceStatusChangeDTO);
if (updateFlag > 0 && updateReasonFlag > 0) {
@@ -193,13 +193,13 @@
}
//更新检测完成后,执行当前正在进行数据
- private Integer statusChangeUpdator(DeviceStatusChangeDTO statusChangeDTO) {
+ private Integer statusChangeUpdator(DeviceStatusChangeDTO statusChangeDTO,Boolean terminateFlag ) {
QueryWrapper queryWrapper = new QueryWrapper<>();
queryWrapper.eq("order_id", statusChangeDTO.getOrderId());
queryWrapper.eq("sample_id", statusChangeDTO.getSampleId());
- queryWrapper.eq("measure_status", "2")
- .or().eq("measure_status", "3")
- .or().eq("measure_status", "4");
+ if(terminateFlag){
+ queryWrapper.eq("sample_status", "2").or().eq("sample_status", "3").or().eq("sample_status", "4");
+ }
BusinessOrderSampleRelation businessOrderSampleRelation = new BusinessOrderSampleRelation();
businessOrderSampleRelation.setSampleStatus(statusChangeDTO.getStatus());
return this.orderSampleRelationMapper.update(businessOrderSampleRelation, queryWrapper);
diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java
new file mode 100644
index 0000000..97c39e6
--- /dev/null
+++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/business/BusinessCertificatePrintController.java
@@ -0,0 +1,56 @@
+package com.casic.missiles.controller.business;
+
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.casic.missiles.core.base.controller.ExportController;
+import com.casic.missiles.core.page.PageFactory;
+import com.casic.missiles.core.page.PageInfoBT;
+import com.casic.missiles.dto.ReturnDTO;
+import com.casic.missiles.dto.ReturnUtil;
+import com.casic.missiles.dto.business.print.CertificateListRequest;
+import com.casic.missiles.dto.business.print.CertificateListResponse;
+import com.casic.missiles.exception.BusinessException;
+import com.casic.missiles.model.exception.enums.CoreExceptionEnum;
+import com.casic.missiles.service.business.IBusinessCertificatePrintService;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.validation.Valid;
+
+/**
+ *
+ * 业务调度-证书打印
+ * 1、证书打印模块是对样品检验完成生成的证书进行管理
+ * 2、另,并通过工作流审批的方式严格控制证书打印次数
+ *
+ *
+ * @author cz
+ * @since 2023-02-20
+ */
+@RestController
+@RequestMapping("/business/certificatePrint")
+public class BusinessCertificatePrintController extends ExportController {
+
+ private IBusinessCertificatePrintService certificatePrintService;
+
+ /**
+ * 证书打印列表,除了基本的列表的信息,需要判断证书打印审批中的状态,进而达到权限的控制
+ */
+ @ApiOperation("设备列表-分页")
+ @PostMapping("/listPage")
+ public ReturnDTO> CertificatePrintlistPage(@RequestBody @Valid CertificateListRequest request, BindingResult bindingResult) throws Exception {
+ if (bindingResult.hasErrors()) {
+ throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage());
+ }
+ Page page = PageFactory.defaultPage();
+ return ReturnUtil.success(super.packForBT(certificatePrintService.CertificatePrintlistPage(request,page)));
+ }
+ //同意 拒绝 请求审批
+
+
+
+}
diff --git a/casic-metering-common/src/main/java/com/casic/missiles/utils/ConvertUtils.java b/casic-metering-common/src/main/java/com/casic/missiles/utils/ConvertUtils.java
index f7f348b..a75b8ad 100644
--- a/casic-metering-common/src/main/java/com/casic/missiles/utils/ConvertUtils.java
+++ b/casic-metering-common/src/main/java/com/casic/missiles/utils/ConvertUtils.java
@@ -25,7 +25,6 @@
return null;
} else {
T targetObject = null;
-
try {
targetObject = target.newInstance();
BeanUtil.copyProperties(source, targetObject);
@@ -42,10 +41,8 @@
return null;
} else {
ArrayList targetList = new ArrayList(sourceList.size());
-
try {
Iterator var3 = sourceList.iterator();
-
while(var3.hasNext()) {
Object source = var3.next();
T targetObject = target.newInstance();
diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java
index 17206ce..fc9330e 100644
--- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java
+++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/business/BusinessCertificateReportMapper.java
@@ -1,7 +1,13 @@
package com.casic.missiles.mapper.business;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.casic.missiles.dto.business.print.CertificateListRequest;
+import com.casic.missiles.dto.business.print.CertificateListResponse;
import com.casic.missiles.model.business.BusinessCertificateReport;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
/**
*
@@ -13,4 +19,8 @@
*/
public interface BusinessCertificateReportMapper extends BaseMapper {
+ List selectBatchForApprovalList(Page page, @Param("request") CertificateListRequest request, @Param("businessKey") List businessKey);
+
+
+
}
diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml
index 1fc6133..13456e6 100644
--- a/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml
+++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessCertificateReportMapper.xml
@@ -4,27 +4,27 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -32,4 +32,45 @@
id, certificate_report_code, certificate_report_name, certificate_report_category, calibration_major, issuance_date, expiration_date, template_id, sign_id, approval_sign_id, certificate_report_file, original_record_id, print_status, print_num, remark, is_del, create_user, create_time, update_time
+
+
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java b/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java
index 82b22fd..95dbb48 100644
--- a/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java
+++ b/casic-metering-model/src/main/java/com/casic/missiles/constants/MeterDictCode.java
@@ -108,4 +108,9 @@
String ORDER_STATUS = "orderStatus";
//检测状态
String MEASURE_STATUS = "measureStatus";
+ //打印状态
+ String PRINT_STATUS = "printStatus";
+ //证书类型
+ String CERTIFICATE_TYPE = "certificateType";
+
}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutDetailResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutDetailResponse.java
index fabeb12..fff240e 100644
--- a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutDetailResponse.java
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/SampleHandOutDetailResponse.java
@@ -16,6 +16,7 @@
@Data
@ApiModel
public class SampleHandOutDetailResponse {
+
@ApiModelProperty(value = "样品id", dataType = "Long")
private Long sampleId;
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificateListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificateListRequest.java
new file mode 100644
index 0000000..7f3be53
--- /dev/null
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificateListRequest.java
@@ -0,0 +1,46 @@
+package com.casic.missiles.dto.business.print;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+@ApiModel("设备接收")
+public class CertificateListRequest {
+
+ @ApiModelProperty(value = "表单id(前端自定义)", dataType = "String")
+ private String formId;
+
+ @ApiModelProperty(value = "证书编号", dataType = "String")
+ private String certificateNo;
+
+ @ApiModelProperty(value = "委托书编号", dataType = "String")
+ private String orderNo;
+
+ @ApiModelProperty(value = "委托方名称", dataType = "String")
+ private String cutomerName;
+
+ @ApiModelProperty(value = "样品编号", dataType = "String")
+ private String sampleNo;
+
+ @ApiModelProperty(value = "样品名称", dataType = "String")
+ private String sampleName;
+
+ @ApiModelProperty(value = "证书类型(非类别)", dataType = "String")
+ private String certificateClass;
+
+ @ApiModelProperty(value = "未打印(传0,否则不传)", dataType = "String")
+ private String printSatus;
+
+ @ApiModelProperty(value = "审批状态", dataType = "String")
+ private String approvalStatus;
+
+ @ApiModelProperty(value = "创建人id(前端不需要传)", dataType = "String")
+ private Long createUserId;
+
+ @ApiModelProperty(value = "导出ids", dataType = "List")
+ private List ids;
+
+}
diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificateListResponse.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificateListResponse.java
new file mode 100644
index 0000000..e8c437c
--- /dev/null
+++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/business/print/CertificateListResponse.java
@@ -0,0 +1,78 @@
+package com.casic.missiles.dto.business.print;
+
+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;
+
+@Data
+@ApiModel("证书打印返回列表")
+public class CertificateListResponse {
+
+ private Long id;
+
+ @ApiModelProperty(value = "证书编号", dataType = "String")
+ private String certificateNo;
+
+ @ApiModelProperty(value = "证书名称", dataType = "String")
+ private String certificateName;
+
+ @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 orderNo;
+
+ @ApiModelProperty(value = "校验类别", dataType = "String")
+ private String measureType;
+
+ @ApiModelProperty(value = "校验类别", dataType = "String")
+ @DictCodeField(message = "校验类别不合法", cacheName = MeterDictCode.MEASURE_CATEGORY)
+ private String measureTypeName;
+
+ @ApiModelProperty(value = "检定人员", dataType = "String")
+ private String measurePersonId;
+
+ @ApiModelProperty(value = "证书类型", dataType = "String")
+ @DictCodeField(message = "证书类型不合法", cacheName = MeterDictCode.CERTIFICATE_TYPE)
+ private String certificateType;
+
+ @ApiModelProperty(value = "证书类型名称", dataType = "String")
+ private String certificateTypeName;
+
+ @ApiModelProperty(value = "打印状况", dataType = "String")
+ @DictCodeField(message = "打印状况不合法", cacheName = MeterDictCode.PRINT_STATUS)
+ private String printStatus;
+
+ @ApiModelProperty(value = "打印状态", dataType = "String")
+ private String printStatusName;
+
+ @ApiModelProperty(value = "打印次数", dataType = "String")
+ private String printNum;
+
+ @ApiModelProperty(value = "生成时间", dataType = "String")
+ private String createTime;
+
+ @ApiModelProperty(value = "审批状态", dataType = "String")
+ private String approvalStatus;
+
+ @ApiModelProperty(value = "任务id", dataType = "String")
+ private String taskId;
+
+ @ApiModelProperty(value = "审批状态", dataType = "Integer")
+ private Integer decisionItem;
+
+ @ApiModelProperty(value = "审批状态名称", dataType = "String")
+ private String approvalStatusName;
+
+}
diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificatePrintServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificatePrintServiceImpl.java
new file mode 100644
index 0000000..79ed0bf
--- /dev/null
+++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/BusinessCertificatePrintServiceImpl.java
@@ -0,0 +1,147 @@
+package com.casic.missiles.service.Impl.business;
+
+import cn.hutool.core.lang.Assert;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.casic.missiles.core.application.service.AbstractDictService;
+import com.casic.missiles.core.model.auth.AuthUser;
+import com.casic.missiles.core.page.PageFactory;
+import com.casic.missiles.core.shiro.ShiroKit;
+import com.casic.missiles.dto.business.print.CertificateListRequest;
+import com.casic.missiles.dto.business.print.CertificateListResponse;
+import com.casic.missiles.dto.flowable.AllApproveDTO;
+import com.casic.missiles.dto.flowable.ToBeApprovedDTO;
+import com.casic.missiles.dto.meter.TraceSupplierApprovalListResponse;
+import com.casic.missiles.enums.ApprovalStatusEnum;
+import com.casic.missiles.enums.BusinessExceptionEnum;
+import com.casic.missiles.enums.MeterDictEnum;
+import com.casic.missiles.exception.BusinessException;
+import com.casic.missiles.mapper.business.BusinessCertificateReportMapper;
+import com.casic.missiles.model.business.BusinessCertificateReport;
+import com.casic.missiles.model.meter.MeterTraceSupplier;
+import com.casic.missiles.service.IBaseApprovalService;
+import com.casic.missiles.service.business.IBusinessCertificatePrintService;
+import com.casic.missiles.utils.ConvertUtils;
+import lombok.AllArgsConstructor;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import java.util.*;
+import java.util.stream.Collectors;
+
+@Service
+@AllArgsConstructor
+public class BusinessCertificatePrintServiceImpl extends ServiceImpl implements IBusinessCertificatePrintService {
+
+ private final IBaseApprovalService baseApprovalService;
+ private final AbstractDictService dictService;
+
+ @Override
+ public Page CertificatePrintlistPage(CertificateListRequest request, Page page) {
+ AuthUser user = ShiroKit.getUser();
+ Assert.isFalse(Objects.isNull(user), () -> {
+ throw new BusinessException(BusinessExceptionEnum.LOGIN_USER_ACQUIRE_FAILED);
+ });
+ request.setCreateUserId(user.getId());
+ return handleApprovalStatus(page, request);
+ }
+
+ private Page handleApprovalStatus(Page page, CertificateListRequest request) {
+ Page approvalList = PageFactory.defaultPage();
+ List businessKeys = new ArrayList<>();
+ List list;
+ switch (request.getApprovalStatus()) {
+ //待审批,该状态维护在flowable中
+ case ApprovalStatusEnum.TO_BE_APPROVED:
+ List toBeApprovedList = baseApprovalService.getToBeApprovedList(request.getFormId());
+ if (!CollectionUtils.isEmpty(toBeApprovedList)) {
+ businessKeys = toBeApprovedList.stream().map(ToBeApprovedDTO::getBusinessKey).distinct().collect(Collectors.toList());
+ }
+ if (!CollectionUtils.isEmpty(businessKeys)) {
+ list = this.baseMapper.selectBatchForApprovalList(page, request, businessKeys);
+ approvalList = handleApprovalListResponse(approvalList, list, ApprovalStatusEnum.TO_BE_APPROVED);
+ //DTO根据业务主键补全taskId
+ approvalList.getRecords().forEach(approval -> {
+ toBeApprovedList.forEach(toBeApprovedDTO -> {
+ if (String.valueOf(approval.getId()).equals(toBeApprovedDTO.getBusinessKey())) {
+ approval.setTaskId(toBeApprovedDTO.getTaskId());
+ //补全可选决策项
+ approval.setDecisionItem(toBeApprovedDTO.getDecisionItem());
+ }
+ });
+ });
+ }
+ break;
+// //审批中,该状态维护在flowable中
+ case ApprovalStatusEnum.IN_APPROVED:
+ businessKeys = baseApprovalService.getInApprovedList(request.getFormId());
+ if (!CollectionUtils.isEmpty(businessKeys)) {
+ list = this.baseMapper.selectBatchForApprovalList(page, request, businessKeys);
+ approvalList = handleApprovalListResponse(approvalList, list, ApprovalStatusEnum.IN_APPROVED);
+ }
+// break;
+ //已通过,该状态维护在flowable
+ case ApprovalStatusEnum.PASSED:
+ businessKeys = baseApprovalService.getPassedList(request.getFormId());
+ if (!CollectionUtils.isEmpty(businessKeys)) {
+ list = this.baseMapper.selectBatchForApprovalList(page, request, businessKeys);
+ approvalList = handleApprovalListResponse(approvalList, list, ApprovalStatusEnum.PASSED);
+ }
+ break;
+ //未通过(包括拒绝、驳回,拒绝为直接删除实例,驳回为驳回到起点),该状态维护在flowable
+ case ApprovalStatusEnum.FAILED:
+ businessKeys = baseApprovalService.getFailedList(request.getFormId()); //未通过-拒绝
+ List rejectBusinessKey = baseApprovalService.getFailedRejectList(request.getFormId()); //未通过-驳回
+ if (!CollectionUtils.isEmpty(businessKeys)) {
+ list = this.baseMapper.selectBatchForApprovalList(page, request, businessKeys);
+ approvalList = handleApprovalListResponse(approvalList, list, ApprovalStatusEnum.FAILED);
+ }
+ Page rejectApprovalList = PageFactory.defaultPage();
+ if (!CollectionUtils.isEmpty(rejectBusinessKey)) {
+ List rejectList = this.baseMapper.selectBatchForApprovalList(page, request, rejectBusinessKey);
+ rejectApprovalList = handleApprovalListResponse(approvalList, rejectList, ApprovalStatusEnum.FAILED_REJECT);
+ }
+ //合并未通过-拒绝和未通过-驳回
+ approvalList.getRecords().addAll(rejectApprovalList.getRecords());
+ break;
+ //全部
+ //区分管理员和普通用户
+ //普通用户获取自己发起的(审批中、已通过、未通过、已取消),管理员获取全部(审批中、已通过、未通过、已取消)
+ case ApprovalStatusEnum.ALL:
+ List AllApproveList = baseApprovalService.getAllList(request.getFormId());
+ if (!CollectionUtils.isEmpty(AllApproveList)) {
+ businessKeys = AllApproveList.stream().map(AllApproveDTO::getBusinessKey).collect(Collectors.toList());
+ }
+ if (!CollectionUtils.isEmpty(businessKeys)) {
+ list = this.baseMapper.selectBatchForApprovalList(page, request, businessKeys);
+ approvalList = handleAllApprovalListResponse(approvalList, list, AllApproveList);
+ }
+ break;
+ }
+ return approvalList;
+ }
+
+ private Page handleAllApprovalListResponse(Page approvalList, List list, List allApproveList) {
+
+ Map taskMap = allApproveList.stream().collect(Collectors.toMap(AllApproveDTO::getBusinessKey,AllApproveDTO::getStatus));
+ approvalList.setRecords(ConvertUtils.sourceToTarget(list, CertificateListResponse.class));
+ //状态补全
+ approvalList.getRecords().forEach(approval -> {
+ approval.setApprovalStatusName(dictService.getDictNameByCode(MeterDictEnum.APPROVAL_STATUS, taskMap.get(String.valueOf(approval.getId()))));
+ approval.setApprovalStatus(taskMap.get(String.valueOf(approval.getId())));
+ });
+ //排序
+ approvalList.setRecords(approvalList.getRecords().stream().sorted(Comparator.comparing(CertificateListResponse::getCreateTime).reversed()).collect(Collectors.toList()));
+ return approvalList;
+ }
+
+ private Page handleApprovalListResponse(Page approvalList, List list, String status) {
+ approvalList.setRecords(ConvertUtils.sourceToTarget(list, CertificateListResponse.class));
+ approvalList.getRecords().stream().forEach(result -> {
+ //审批状态两种获取方式:1、在此处设置,2、在flowable中设置业务状态,暂采取1
+ result.setApprovalStatusName(dictService.getDictNameByCode(MeterDictEnum.APPROVAL_STATUS, status));
+ });
+ return approvalList;
+ }
+
+}
diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java
index 9e7a6db..5eb0a4b 100644
--- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java
+++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/business/IBusinessDispatchServiceImpl.java
@@ -130,7 +130,7 @@
@Override
public ReturnDTO statusChange(DeviceStatusChangeDTO deviceStatusChangeDTO) {
- Integer updateFalg = this.statusChangeUpdator(deviceStatusChangeDTO);
+ Integer updateFalg = this.statusChangeUpdator(deviceStatusChangeDTO,false);
if (updateFalg > 0) {
return ReturnUtil.success();
}
@@ -141,7 +141,7 @@
@Override
@Transactional
public ReturnDTO forcedTerminate(DeviceStatusChangeDTO deviceStatusChangeDTO) {
- Integer updateFlag = this.statusChangeUpdator(deviceStatusChangeDTO);
+ Integer updateFlag = this.statusChangeUpdator(deviceStatusChangeDTO,true);
//实验室状态数据的更新
Integer updateReasonFlag = reasonPopulation(deviceStatusChangeDTO);
if (updateFlag > 0 && updateReasonFlag > 0) {
@@ -193,13 +193,13 @@
}
//更新检测完成后,执行当前正在进行数据
- private Integer statusChangeUpdator(DeviceStatusChangeDTO statusChangeDTO) {
+ private Integer statusChangeUpdator(DeviceStatusChangeDTO statusChangeDTO,Boolean terminateFlag ) {
QueryWrapper queryWrapper = new QueryWrapper<>();
queryWrapper.eq("order_id", statusChangeDTO.getOrderId());
queryWrapper.eq("sample_id", statusChangeDTO.getSampleId());
- queryWrapper.eq("measure_status", "2")
- .or().eq("measure_status", "3")
- .or().eq("measure_status", "4");
+ if(terminateFlag){
+ queryWrapper.eq("sample_status", "2").or().eq("sample_status", "3").or().eq("sample_status", "4");
+ }
BusinessOrderSampleRelation businessOrderSampleRelation = new BusinessOrderSampleRelation();
businessOrderSampleRelation.setSampleStatus(statusChangeDTO.getStatus());
return this.orderSampleRelationMapper.update(businessOrderSampleRelation, queryWrapper);
diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessCertificatePrintService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessCertificatePrintService.java
new file mode 100644
index 0000000..26a3142
--- /dev/null
+++ b/casic-metering-service/src/main/java/com/casic/missiles/service/business/IBusinessCertificatePrintService.java
@@ -0,0 +1,12 @@
+package com.casic.missiles.service.business;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.casic.missiles.dto.business.print.CertificateListRequest;
+import com.casic.missiles.dto.business.print.CertificateListResponse;
+
+public interface IBusinessCertificatePrintService {
+
+ Page CertificatePrintlistPage(CertificateListRequest request, Page responsePage);
+
+
+}