From 6d21c8f6f4cc834c5d309a9ee5005158a31c0722 Mon Sep 17 00:00:00 2001
From: cuijian <cuijian@xalxzn.com>
Date: 星期二, 24 十月 2023 18:45:29 +0800
Subject: [PATCH] 问题修改

---
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/OperationCertificateDetail.java          |   19 +++
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/OperationCertificateController.java  |    7 
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/OperationCertificateApply.java           |    5 +
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/OperationCertificateDetailMapper.xml |    7 +
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/InspectionProjectController.java     |  151 +++++++++++++++++++++++++++++
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/vo/InspectionProjectImportVo.java               |   51 ++++++++++
 lxzn-module-eam/src/main/java/org/jeecg/modules/eam/vo/OperationCertificateApplyPage.java           |    5 +
 7 files changed, 232 insertions(+), 13 deletions(-)

diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/InspectionProjectController.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/InspectionProjectController.java
index 8352c39..0639339 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/InspectionProjectController.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/InspectionProjectController.java
@@ -1,14 +1,26 @@
 package org.jeecg.modules.eam.controller;
 
+import java.io.IOException;
 import java.math.BigDecimal;
+import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
+import java.util.Map;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import org.apache.shiro.SecurityUtils;
 import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.constant.CommonConstant;
 import org.jeecg.common.system.query.QueryGenerator;
-import org.jeecg.modules.eam.entity.InspectionProject;
-import org.jeecg.modules.eam.entity.InspectionProjectCategory;
+import org.jeecg.common.system.vo.LoginUser;
+import org.jeecg.common.util.ImportExcelUtil;
+import org.jeecg.modules.base.entity.Unit;
+import org.jeecg.modules.base.service.IUnitService;
+import org.jeecg.modules.eam.entity.*;
 import org.jeecg.modules.eam.service.IInspectionProjectService;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -18,8 +30,18 @@
 
 import org.jeecg.modules.eam.service.IInspectionProjectCategoryService;
 import org.jeecg.common.system.base.controller.JeecgController;
+import org.jeecg.modules.eam.vo.InspectionProjectImportVo;
+import org.jeecg.modules.system.entity.SysDict;
+import org.jeecg.modules.system.entity.SysDictItem;
+import org.jeecg.modules.system.service.ISysDictItemService;
+import org.jeecg.modules.system.service.ISysDictService;
+import org.jeecgframework.poi.excel.ExcelImportUtil;
+import org.jeecgframework.poi.excel.entity.ImportParams;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+import org.springframework.web.multipart.MultipartHttpServletRequest;
 import org.springframework.web.servlet.ModelAndView;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -40,6 +62,12 @@
 	private IInspectionProjectService inspectionProjectService;
 	@Autowired
 	private IInspectionProjectCategoryService inspectionProjectCategoryService;
+	@Autowired
+	private ISysDictService sysDictService;
+	@Autowired
+	private ISysDictItemService sysDictItemService;
+	@Autowired
+	private IUnitService unitService;
 
 	/**
 	 * 鍒嗛〉鍒楄〃鏌ヨ
@@ -212,8 +240,123 @@
     */
     //@RequiresPermissions("mom_eam_inspection_project:importExcel")
     @RequestMapping(value = "/importExcel", method = RequestMethod.POST)
-    public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
-        return super.importExcel(request, response, InspectionProject.class);
+	@Transactional(rollbackFor = Exception.class)
+    public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) throws IOException {
+		MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
+		LoginUser user= (LoginUser) SecurityUtils.getSubject().getPrincipal();
+		Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
+		// 閿欒淇℃伅
+		List<String> errorMessage = new ArrayList<>();
+		int successLines = 0, errorLines = 0;
+		for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
+			MultipartFile file = entity.getValue();
+			ImportParams params = new ImportParams();
+			params.setNeedSave(true);
+			try {
+				List<InspectionProjectImportVo> list = ExcelImportUtil.importExcel(file.getInputStream(), InspectionProjectImportVo.class, params);
+				for (int i = 0; i < list.size(); i++) {
+					InspectionProjectImportVo inspectionProjectImportVo = list.get(i);
+					InspectionProject inspectionProject = new InspectionProject();
+					InspectionProjectCategory inspectionProjectCategory = inspectionProjectCategoryService.getOne(new QueryWrapper<InspectionProjectCategory>().eq("name", inspectionProjectImportVo.getInspectionProjectCategoryId()), false);
+					Unit unit = unitService.getOne(new QueryWrapper<Unit>().eq("name",inspectionProjectImportVo.getUnitId()),false);
+					inspectionProject.setInspectionTool(inspectionProjectImportVo.getInspectionTool());
+					if (StringUtils.isBlank(inspectionProjectImportVo.getNum())) {
+						errorMessage.add("绗�" + (i + 1) + "琛屽鍏ュけ璐�,鍘熷洜:鐐规椤圭洰缂栫爜缂哄け,璇峰~鍐欏繀濉」鍚庡啀瀵煎叆;");
+						errorLines++;
+						continue;
+					}else {
+						inspectionProject.setNum(inspectionProjectImportVo.getNum());
+					}
+					if(StringUtils.isBlank(inspectionProjectImportVo.getName())){
+						errorMessage.add("绗�"+(i+1)+"琛屽鍏ュけ璐�,鍘熷洜:鐐规椤圭洰鍚嶇О缂哄け,璇峰~鍐欏繀濉」鍚庡啀瀵煎叆;");
+						errorLines++;
+						continue;
+					}else {
+						inspectionProject.setNum(inspectionProjectImportVo.getName());
+					}
+					if(StringUtils.isBlank(inspectionProjectImportVo.getTestValueType())){
+						errorMessage.add("绗�"+(i+1)+"琛屽鍏ュけ璐�,鍘熷洜:妫�楠屽�肩被鍨嬬己澶�,璇峰~鍐欏繀濉」鍚庡啀瀵煎叆;");
+						errorLines++;
+						continue;
+					}else if(CollectionUtils.isEmpty(sysDictItemService.lambdaQuery().eq(SysDictItem::getDictId,sysDictService.lambdaQuery().eq(SysDict::getDictCode,"test_value_type").one().getId()).eq(SysDictItem::getItemText,inspectionProjectImportVo.getTestValueType()).list())){
+						errorMessage.add("绗�" + (i + 1) + "琛屽鍏ュけ璐�,鍘熷洜:妫�楠屽�肩被鍨嬩笉瀛樺湪,璇峰厛缁存姢妫�楠屽�肩被鍨�;");
+						errorLines++;
+						continue;
+					}else {
+						inspectionProject.setTestValueType(sysDictItemService.lambdaQuery().eq(SysDictItem::getDictId,sysDictService.lambdaQuery().eq(SysDict::getDictCode,"test_value_type").one().getId()).eq(SysDictItem::getItemText,inspectionProjectImportVo.getInspectionMethod()).one().getItemValue());
+					}
+					if(ObjectUtils.isNull(inspectionProjectCategory)) {
+						errorMessage.add("绗�"+(i+1)+"琛屽鍏ュけ璐�,鍘熷洜:璇ョ偣妫�椤圭洰鍒嗙被涓嶅瓨鍦紝璇峰厛缁存姢鐐规椤圭洰鍒嗙被;");
+						errorLines++;
+						continue;
+					}else {
+						inspectionProject.setInspectionProjectCategoryId(inspectionProjectCategory.getId());
+					}
+					if("鏋氫妇鍨�".equals(inspectionProjectImportVo.getTestValueType())){
+						if(ObjectUtils.isNull(inspectionProjectImportVo.getDetectionStandard())){
+							errorMessage.add("绗�"+(i+1)+"琛屽鍏ュけ璐�,鍘熷洜:妫�娴嬫爣鍑嗙己澶憋紝璇峰~鍐欏繀濉」鍚庡啀瀵煎叆;");
+							errorLines++;
+							continue;
+						}else {
+							inspectionProject.setDetectionStandard(inspectionProjectImportVo.getDetectionStandard());
+						}
+					}
+					if("鏁板�煎瀷".equals(inspectionProjectImportVo.getTestValueType())){
+						if(ObjectUtils.isNull(inspectionProjectImportVo.getSurfaceValue())){
+							errorMessage.add("绗�"+(i+1)+"琛屽鍏ュけ璐�,鍘熷洜:鍚嶄箟鍊肩己澶憋紝璇峰~鍐欏繀濉」鍚庡啀瀵煎叆;");
+							errorLines++;
+							continue;
+						}else{
+							inspectionProject.setSurfaceValue(inspectionProjectImportVo.getSurfaceValue());
+						}
+						if(ObjectUtils.isNull(inspectionProjectImportVo.getUpValue())){
+							errorMessage.add("绗�"+(i+1)+"琛屽鍏ュけ璐�,鍘熷洜:涓婂亸宸己澶憋紝璇峰~鍐欏繀濉」鍚庡啀瀵煎叆;");
+							errorLines++;
+							continue;
+						}else{
+							inspectionProject.setUpValue(inspectionProjectImportVo.getUpValue());
+						}
+						if(ObjectUtils.isNull(inspectionProjectImportVo.getDownValue())){
+							errorMessage.add("绗�"+(i+1)+"琛屽鍏ュけ璐�,鍘熷洜:涓嬪亸宸己澶憋紝璇峰~鍐欏繀濉」鍚庡啀瀵煎叆;");
+							errorLines++;
+							continue;
+						}else {
+							inspectionProject.setDownValue(inspectionProjectImportVo.getDownValue());
+						}
+					}
+					if(CollectionUtils.isEmpty(sysDictItemService.lambdaQuery().eq(SysDictItem::getDictId,sysDictService.lambdaQuery().eq(SysDict::getDictCode,"inspection_method").one().getId()).eq(SysDictItem::getItemText,inspectionProjectImportVo.getInspectionMethod()).list())){
+						errorMessage.add("绗�" + (i + 1) + "琛屽鍏ュけ璐�,鍘熷洜:鐐规鏂规硶涓嶅瓨鍦�,璇峰厛缁存姢鐐规鏂规硶;");
+						errorLines++;
+						continue;
+					}else{
+						inspectionProject.setInspectionMethod(sysDictItemService.lambdaQuery().eq(SysDictItem::getDictId,sysDictService.lambdaQuery().eq(SysDict::getDictCode,"inspection_method").one().getId()).eq(SysDictItem::getItemText,inspectionProjectImportVo.getInspectionMethod()).one().getItemValue());
+					}
+					if(ObjectUtils.isNull(unit)){
+						errorMessage.add("绗�" + (i + 1) + "琛屽鍏ュけ璐�,鍘熷洜:璁¢噺鍗曚綅涓嶅瓨鍦�,璇峰厛缁存姢璁¢噺鍗曚綅;");
+						errorLines++;
+						continue;
+					}else {
+						inspectionProject.setUnitId(unit.getId());
+					}
+					List<InspectionProject> inspectionProjectList = inspectionProjectService.lambdaQuery().eq(InspectionProject::getNum,inspectionProjectImportVo.getNum()).eq(InspectionProject::getDelFlag,CommonConstant.DEL_FLAG_0).list();
+					if(CollectionUtils.isEmpty(inspectionProjectList)){
+						inspectionProjectService.save(inspectionProject);
+						successLines++;
+					}
+				}
+			} catch (Exception e) {
+				errorMessage.add("鍙戠敓寮傚父锛�" + e.getMessage());
+				log.error(e.getMessage(), e);
+				return (Result<?>) errorMessage;
+			} finally {
+				try {
+					file.getInputStream().close();
+				} catch (IOException e) {
+					log.error(e.getMessage(), e);
+				}
+			}
+		}
+        return ImportExcelUtil.imporReturnRes(errorLines, successLines, errorMessage);
     }
 
 }
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/OperationCertificateController.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/OperationCertificateController.java
index 6f3dd5d..a7628da 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/OperationCertificateController.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/OperationCertificateController.java
@@ -12,6 +12,7 @@
 
 import org.jeecg.common.util.DateUtils;
 import org.jeecg.modules.eam.entity.OperationCertificateApplyDetail;
+import org.jeecg.modules.eam.service.IdentityService;
 import org.jeecg.modules.system.service.SysIdentityService;
 import org.jeecgframework.poi.excel.ExcelImportUtil;
 import org.jeecgframework.poi.excel.def.NormalExcelConstants;
@@ -60,7 +61,7 @@
 	private IOperationCertificateDetailService operationCertificateDetailService;
 
 	 @Autowired
-	 private SysIdentityService sysIdentityService;
+	 private IdentityService identityService;
 	
 	/**
 	 * 鍒嗛〉鍒楄〃鏌ヨ
@@ -104,14 +105,14 @@
 	 @PostMapping(value = "/addOperationCertificate")
 	 public Result<String> addOperationCertificate(@RequestBody List<OperationCertificateApplyDetail> operationCertificateList) {
 		for(OperationCertificateApplyDetail operationCertificateApplyDetail : operationCertificateList){
-			if("Y".equals(operationCertificateApplyDetail.getExaminationConclusion())){
+			if("pass".equals(operationCertificateApplyDetail.getExaminationConclusion())){
 				Date currentDate = new Date();
 				Calendar c = Calendar.getInstance();
 				c.setTime(currentDate);
 				c.add(Calendar.YEAR, 1);
 				currentDate = c.getTime();
 				OperationCertificate operationCertificate = new OperationCertificate();
-				operationCertificate.setNum(sysIdentityService.getNumByTypeAndLength("OperationCertificate", 4));
+				operationCertificate.setNum(identityService.getNumByTypeAndLength("OperationCertificate", 4));
 				operationCertificate.setUserId(operationCertificateApplyDetail.getUserId());
 				operationCertificate.setEquipmentIds(operationCertificateApplyDetail.getEquipmentIds());
 				operationCertificate.setCurrentCycleScore(12);
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/OperationCertificateApply.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/OperationCertificateApply.java
index 4742e6b..fe1ad59 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/OperationCertificateApply.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/OperationCertificateApply.java
@@ -53,6 +53,11 @@
     @Dict(dictTable = "sys_user", dicText = "realname", dicCode = "id")
     @ApiModelProperty(value = "鐢宠浜�")
     private String applicant;
+    /**鍔炵悊浜�*/
+    @Excel(name = "鍔炵悊浜�", width = 15, dictTable = "sys_user", dicText = "realname", dicCode = "id")
+    @Dict(dictTable = "sys_user", dicText = "realname", dicCode = "id")
+    @ApiModelProperty(value = "鍔炵悊浜�")
+    private String handlePerson;
 	/**瀹℃牳鐘舵��*/
 	@Excel(name = "瀹℃牳鐘舵��", width = 15, dicCode = "certificate_apply_status")
     @Dict(dicCode = "certificate_apply_status")
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/OperationCertificateDetail.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/OperationCertificateDetail.java
index 2fa74d4..5c6678e 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/OperationCertificateDetail.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/entity/OperationCertificateDetail.java
@@ -1,10 +1,8 @@
 package org.jeecg.modules.eam.entity;
 
 import java.io.Serializable;
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableId;
-import com.baomidou.mybatisplus.annotation.TableName;
-import com.baomidou.mybatisplus.annotation.TableLogic;
+
+import com.baomidou.mybatisplus.annotation.*;
 import lombok.Data;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import org.jeecg.common.aspect.annotation.Dict;
@@ -76,4 +74,17 @@
 	@Excel(name = "灞炴�у瓧娈�5", width = 15)
     @ApiModelProperty(value = "灞炴�у瓧娈�5")
     private String uda5;
+
+
+    @ApiModelProperty(value = "鎵i櫎鍒嗘暟")
+    @TableField(exist = false)
+    private Integer deductionScore;
+
+    @ApiModelProperty(value = "鎵e垎椤瑰唴瀹�")
+    @TableField(exist = false)
+    private String deductionScoreName;
+
+    @ApiModelProperty(value = "鎵e垎璁惧")
+    @TableField(exist = false)
+    private String equipmentName;
 }
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/OperationCertificateDetailMapper.xml b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/OperationCertificateDetailMapper.xml
index 6fca9a7..7be6dd5 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/OperationCertificateDetailMapper.xml
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/mapper/xml/OperationCertificateDetailMapper.xml
@@ -9,8 +9,11 @@
 			 operation_certificate_id = #{mainId} 	</delete>
 	
 	<select id="selectByMainId" parameterType="java.lang.String" resultType="org.jeecg.modules.eam.entity.OperationCertificateDetail">
-		SELECT * 
-		FROM  mom_eam_operation_certificate_detail
+		SELECT t1.*,t3.name equipmentName,t4.deduction_score deductionScore,t4.content deductionScoreName
+		FROM  mom_eam_operation_certificate_detail t1
+		left join mom_eam_operation_certificate t2 on t1.operation_certificate_id = t2.id
+		left join mom_eam_equipment t3 on t3.id = t1.equipment_id
+		left join mom_eam_base_deduction_item t4 on t4.id = t1.deduction_item
 		WHERE
 			 operation_certificate_id = #{mainId} 	</select>
 </mapper>
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/vo/InspectionProjectImportVo.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/vo/InspectionProjectImportVo.java
new file mode 100644
index 0000000..643baf0
--- /dev/null
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/vo/InspectionProjectImportVo.java
@@ -0,0 +1,51 @@
+package org.jeecg.modules.eam.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.experimental.Accessors;
+import org.jeecgframework.poi.excel.annotation.Excel;
+
+import java.math.BigDecimal;
+
+
+@Data
+@Accessors(chain = true)
+public class InspectionProjectImportVo {
+
+    @Excel(name= "鐐规椤圭洰鍒嗙被")
+    private String inspectionProjectCategoryId;
+
+    @Excel(name="鐐规椤圭洰缂栫爜")
+    private String num;
+
+    @Excel(name = "鐐规椤圭洰鍚嶇О")
+    private String name;
+
+    @Excel(name = "璁¢噺鍗曚綅",dictTable = "mom_base_unit", dicCode = "id", dicText = "name")
+    private String unitId;
+
+    @Excel(name = "妫�楠屽�肩被鍨�",dicCode = "test_value_type")
+    private String testValueType;
+
+    @Excel(name = "鐐规鏂规硶",dicCode = "inspection_method")
+    private String inspectionMethod;
+
+    @Excel(name = "妫�娴嬫爣鍑�")
+    private String detectionStandard;
+
+    @Excel(name = "鐐规宸ュ叿")
+    private String inspectionTool;
+
+    @Excel(name = "鍚嶄箟鍊�")
+    private BigDecimal surfaceValue;
+
+    @Excel(name = "涓婂亸宸�")
+    private BigDecimal upValue;
+
+    @Excel(name = "涓嬪亸宸�")
+    private BigDecimal downValue;
+
+    @Excel(name = "澶囨敞")
+    private String remark;
+
+}
diff --git a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/vo/OperationCertificateApplyPage.java b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/vo/OperationCertificateApplyPage.java
index 53ce328..492791b 100644
--- a/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/vo/OperationCertificateApplyPage.java
+++ b/lxzn-module-eam/src/main/java/org/jeecg/modules/eam/vo/OperationCertificateApplyPage.java
@@ -52,6 +52,11 @@
     @Dict(dictTable = "sys_user", dicText = "realname", dicCode = "id")
 	@ApiModelProperty(value = "鐢宠浜�")
     private String applicant;
+	/**鍔炵悊浜�*/
+	@Excel(name = "鍔炵悊浜�", width = 15, dictTable = "sys_user", dicText = "realname", dicCode = "id")
+	@Dict(dictTable = "sys_user", dicText = "realname", dicCode = "id")
+	@ApiModelProperty(value = "鍔炵悊浜�")
+	private String handlePerson;
 	/**瀹℃牳鐘舵��*/
 	@Excel(name = "瀹℃牳鐘舵��", width = 15, dicCode = "certificate_apply_status")
     @Dict(dicCode = "certificate_apply_status")

--
Gitblit v1.9.3