From a8ddac646d5129e9818ea82f404d0c0a8d2bc239 Mon Sep 17 00:00:00 2001
From: Lius <Lius2225@163.com>
Date: 星期四, 09 十一月 2023 10:39:25 +0800
Subject: [PATCH] 设备参数阈值管理接口
---
lxzn-module-eam/src/main/java/org/jeecg/modules/eam/controller/OperationCertificateController.java | 203 ++++++++++++++++++++++++++++++++++++++++----------
1 files changed, 162 insertions(+), 41 deletions(-)
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 12d2511..44c0bc0 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
@@ -3,6 +3,7 @@
import java.io.UnsupportedEncodingException;
import java.io.IOException;
import java.net.URLDecoder;
+import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.util.*;
import java.util.stream.Collectors;
@@ -10,8 +11,20 @@
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import org.apache.poi.hssf.usermodel.HSSFDateUtil;
+import org.jeecg.common.constant.CommonConstant;
import org.jeecg.common.util.DateUtils;
-import org.jeecg.modules.eam.entity.OperationCertificateApplyDetail;
+import org.jeecg.common.util.ImportExcelUtil;
+import org.jeecg.modules.eam.entity.*;
+import org.jeecg.modules.eam.service.*;
+import org.jeecg.modules.eam.vo.OperationCertificateImportVo;
+import org.jeecg.modules.system.entity.SysDict;
+import org.jeecg.modules.system.entity.SysDictItem;
+import org.jeecg.modules.system.entity.SysUser;
+import org.jeecg.modules.system.service.ISysDictItemService;
+import org.jeecg.modules.system.service.ISysDictService;
+import org.jeecg.modules.system.service.ISysUserService;
import org.jeecg.modules.system.service.SysIdentityService;
import org.jeecgframework.poi.excel.ExcelImportUtil;
import org.jeecgframework.poi.excel.def.NormalExcelConstants;
@@ -23,11 +36,7 @@
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.common.util.oConvertUtils;
-import org.jeecg.modules.eam.entity.OperationCertificateDetail;
-import org.jeecg.modules.eam.entity.OperationCertificate;
import org.jeecg.modules.eam.vo.OperationCertificatePage;
-import org.jeecg.modules.eam.service.IOperationCertificateService;
-import org.jeecg.modules.eam.service.IOperationCertificateDetailService;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@@ -60,7 +69,17 @@
private IOperationCertificateDetailService operationCertificateDetailService;
@Autowired
- private SysIdentityService sysIdentityService;
+ private IdentityService identityService;
+ @Autowired
+ private ISysUserService userService;
+ @Autowired
+ private IEamEquipmentService equipmentService;
+ @Autowired
+ private IProfessionService professionService;
+ @Autowired
+ private ISysDictService sysDictService;
+ @Autowired
+ private ISysDictItemService sysDictItemService;
/**
* 鍒嗛〉鍒楄〃鏌ヨ
@@ -104,15 +123,18 @@
@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.setUserId(operationCertificateApplyDetail.getUserId());
+ operationCertificate.setNum(identityService.getNumByTypeAndLength("OperationCertificate", 4));
+ SysUser sysUser = userService.getById(operationCertificateApplyDetail.getUserId());
+ if(sysUser != null){
+ operationCertificate.setUserId(sysUser.getUsername());
+ }
operationCertificate.setEquipmentIds(operationCertificateApplyDetail.getEquipmentIds());
operationCertificate.setCurrentCycleScore(12);
operationCertificate.setIssueDate(new Date());
@@ -258,36 +280,135 @@
*/
//@RequiresPermissions("org.jeecg.modules.mdc:mom_eam_operation_certificate:importExcel")
@RequestMapping(value = "/importExcel", method = RequestMethod.POST)
- public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
- MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
- Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
- for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
- // 鑾峰彇涓婁紶鏂囦欢瀵硅薄
- MultipartFile file = entity.getValue();
- ImportParams params = new ImportParams();
- params.setTitleRows(2);
- params.setHeadRows(1);
- params.setNeedSave(true);
- try {
- List<OperationCertificatePage> list = ExcelImportUtil.importExcel(file.getInputStream(), OperationCertificatePage.class, params);
- for (OperationCertificatePage page : list) {
- OperationCertificate po = new OperationCertificate();
- BeanUtils.copyProperties(page, po);
- operationCertificateService.saveMain(po, page.getOperationCertificateDetailList());
- }
- return Result.OK("鏂囦欢瀵煎叆鎴愬姛锛佹暟鎹鏁�:" + list.size());
- } catch (Exception e) {
- log.error(e.getMessage(),e);
- return Result.error("鏂囦欢瀵煎叆澶辫触:"+e.getMessage());
- } finally {
- try {
- file.getInputStream().close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
- return Result.OK("鏂囦欢瀵煎叆澶辫触锛�");
- }
-
+ public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) throws IOException {
+ MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
+ Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
+ // 閿欒淇℃伅
+ List<String> errorMessage = new ArrayList<>();
+ int successLines = 0, errorLines = 0,totalLines = 0,partSuccessLines = 0;
+ for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
+ // 鑾峰彇涓婁紶鏂囦欢瀵硅薄
+ MultipartFile file = entity.getValue();
+ ImportParams params = new ImportParams();
+ params.setNeedSave(true);
+ try {
+ List<OperationCertificateImportVo> list = ExcelImportUtil.importExcel(file.getInputStream(), OperationCertificateImportVo.class, params);
+ totalLines = list.size();
+ for (int i = 0; i < list.size(); i++) {
+ OperationCertificateImportVo operationCertificateImportVo = list.get(i);
+ OperationCertificate operationCertificate = new OperationCertificate();
+ operationCertificate.setNum(identityService.getNumByTypeAndLength("OperationCertificate",4));
+ //鏍规嵁浜哄憳濮撳悕鏌ヨ浜哄憳id
+ List<SysUser> userList = userService.lambdaQuery().eq(SysUser::getRealname,operationCertificateImportVo.getName().trim())
+ .eq(SysUser::getWorkNo,operationCertificateImportVo.getWorkNo().trim()).eq(SysUser::getDelFlag, CommonConstant.DEL_FLAG_0).list();
+ if(CollectionUtils.isEmpty(userList)){
+ errorMessage.add("绗�" + (i + 1) + "琛屽鍏ュけ璐�,鍘熷洜:浜哄憳涓嶅瓨鍦ㄦ垨宸ヤ綔璇佸彿涓庝汉鍛樺鍚嶄笉鍖归厤,璇峰厛缁存姢浜哄憳淇℃伅;");
+ errorLines++;
+ continue;
+ }else{
+ operationCertificate.setUserId(userList.get(0).getUsername());
+ }
+ //宸ョ鏌ヨ
+ Profession profession = professionService.lambdaQuery().eq(Profession::getName,operationCertificateImportVo.getProfession().trim()).eq(Profession::getDelFlag,CommonConstant.DEL_FLAG_0).one();
+ if(profession == null){
+ Profession profession1 = new Profession();
+ profession1.setNum(identityService.getNumByTypeAndLength("Profession",4));
+ profession1.setName(operationCertificateImportVo.getProfession().trim());
+ professionService.save(profession1);
+ operationCertificate.setProfession(profession1.getId());
+ }else {
+ operationCertificate.setProfession(profession.getId());
+ }
+ //鎶�鑳界瓑绾у垽鏂�
+ if(CollectionUtils.isEmpty(sysDictItemService.lambdaQuery().eq(SysDictItem::getDictId,sysDictService.lambdaQuery().eq(SysDict::getDictCode,"technical_level").one().getId()).eq(SysDictItem::getItemText,operationCertificateImportVo.getTechnicalLevel().trim()).list())){
+ errorMessage.add("绗�" + (i + 1) + "琛屽鍏ュけ璐�,鍘熷洜:鎶�鑳界瓑绾т笉瀛樺湪,璇峰厛缁存姢鎶�鑳界瓑绾�;");
+ errorLines++;
+ continue;
+ }else{
+ operationCertificate.setTechnicalLevel(sysDictItemService.lambdaQuery().eq(SysDictItem::getDictId,sysDictService.lambdaQuery().eq(SysDict::getDictCode,"technical_level").one().getId()).eq(SysDictItem::getItemText,operationCertificateImportVo.getTechnicalLevel().trim()).one().getItemValue());
+ }
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+ operationCertificate.setIssueDate(operationCertificateImportVo.getIssueDate());
+ operationCertificate.setStartTime(operationCertificateImportVo.getIssueDate());
+ Date currentDate = operationCertificateImportVo.getIssueDate();
+ Calendar c = Calendar.getInstance();
+ c.setTime(currentDate);
+ c.add(Calendar.YEAR, 1);
+ currentDate = c.getTime();
+ operationCertificate.setEndTime(currentDate);
+ operationCertificate.setCurrentCycleScore(12);
+ operationCertificate.setRemark(operationCertificateImportVo.getRemark());
+ List<String> equipments = Arrays.asList(operationCertificateImportVo.getEquipmentNum().split("/"));
+ List<String> equipmentIds = new ArrayList<>();
+ int a = 0;
+ for(int j = 0; j<equipments.size();j++){
+ List<Equipment> equipmentList = equipmentService.lambdaQuery().eq(Equipment::getNum,equipments.get(j)).eq(Equipment::getDelFlag,CommonConstant.DEL_FLAG_0).list();
+ if(CollectionUtils.isNotEmpty(equipmentList)){
+ equipmentIds.add(equipmentList.get(0).getId());
+ }else {
+ errorMessage.add("绗�" + (i + 1) + "琛岀粺涓�缂栧彿涓�"+equipments.get(j)+"鐨勮澶囧鍏ュけ璐�,鍘熷洜:璁惧鍙拌处涓笉瀛樺湪璇ヨ澶�,璇峰厛缁存姢璁惧淇℃伅;");
+ a++;
+ continue;
+ }
+ }
+ if(a == equipments.size()){
+ errorLines++;
+ a = 0;
+ continue;
+ }else if(a > 0 && a < equipments.size()){
+ partSuccessLines++;
+ a = 0;
+ }
+ if(CollectionUtils.isEmpty(equipmentIds)){
+ errorMessage.add("绗�" + (i + 1) + "琛屽鍏ュけ璐�,鍘熷洜:璁惧涓嶅瓨鍦�,璇峰厛缁存姢璁惧淇℃伅;");
+ errorLines++;
+ continue;
+ }else{
+ operationCertificate.setEquipmentIds(equipmentIds.stream().map(String::toString).collect(Collectors.joining(",")));
+ }
+ operationCertificate.setStatus("1");
+ //鏌ヨ褰撳墠浜哄憳鏄惁宸叉湁鎿嶄綔璇�
+ List<OperationCertificate> operationCertificateList = operationCertificateService.lambdaQuery().eq(OperationCertificate::getUserId,userList.get(0).getUsername()).eq(OperationCertificate::getDelFlag,CommonConstant.DEL_FLAG_0).list();
+ if(CollectionUtils.isEmpty(operationCertificateList)){
+ operationCertificateService.save(operationCertificate);
+ }else {
+ //灏嗚澶囧鍔犲埌鎿嶄綔璇�
+ String newEquipmentIds = operationCertificateList.get(0).getEquipmentIds().concat(",").concat(operationCertificate.getEquipmentIds());
+ operationCertificate.setId(operationCertificateList.get(0).getId());
+ HashSet<String> set = new HashSet<String>(Arrays.asList(newEquipmentIds.split(",")));
+ operationCertificate.setEquipmentIds(set.stream().collect(Collectors.joining(",")));
+ operationCertificateService.updateById(operationCertificate);
+ }
+ 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.imporReturnOperationCertificate(totalLines,partSuccessLines,errorLines, successLines, errorMessage);
+ }
+ /**
+ * 閫氳繃涓昏〃ID鏌ヨ
+ * @return
+ */
+ //@AutoLog(value = "鎿嶄綔璇佺鐞嗘槑缁�-閫氳繃涓昏〃ID鏌ヨ")
+ @ApiOperation(value="鎿嶄綔璇佺鐞嗘槑缁�-閫氳繃涓昏〃ID鏌ヨ", notes="鎿嶄綔璇佺鐞嗘槑缁�-閫氳繃涓昏〃ID鏌ヨ")
+ @GetMapping(value = "/listOperationCertificateDetailByMainId")
+ public Result<IPage<OperationCertificateDetail>> listOperationCertificateDetailByMainId(OperationCertificateDetail operationCertificateDetail,
+ @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
+ @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
+ HttpServletRequest req) {
+ QueryWrapper<OperationCertificateDetail> queryWrapper = QueryGenerator.initQueryWrapper(operationCertificateDetail, req.getParameterMap());
+ Page<OperationCertificateDetail> page = new Page<OperationCertificateDetail>(pageNo, pageSize);
+ IPage<OperationCertificateDetail> pageList = operationCertificateDetailService.page(page, queryWrapper);
+ return Result.OK(pageList);
+ }
}
--
Gitblit v1.9.3