From 664db98c9e8595ce4dd636a27f480e3a08b81ff5 Mon Sep 17 00:00:00 2001 From: xyc <jc_xiong@hotmail.com> Date: 星期五, 21 二月 2025 11:13:51 +0800 Subject: [PATCH] 新增可忽略的维修时间 --- modules/mainPart/src/main/java/com/zt/life/modules/mainPart/basicInfo/service/XhProductModelService.java | 597 +++++++++++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 456 insertions(+), 141 deletions(-) diff --git a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/basicInfo/service/XhProductModelService.java b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/basicInfo/service/XhProductModelService.java index b942504..e0f5dbd 100644 --- a/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/basicInfo/service/XhProductModelService.java +++ b/modules/mainPart/src/main/java/com/zt/life/modules/mainPart/basicInfo/service/XhProductModelService.java @@ -1,5 +1,7 @@ package com.zt.life.modules.mainPart.basicInfo.service; +import com.alibaba.excel.EasyExcelFactory; +import com.alibaba.excel.ExcelWriter; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.zt.common.constant.Constant; import com.zt.common.service.BaseService; @@ -8,14 +10,17 @@ import com.zt.common.utils.TreeUtils; import com.zt.common.utils.UUIDUtil; import com.zt.core.shiro.ImportUtil; +import com.zt.life.export.service.DownloadService; import com.zt.life.modules.mainPart.basicInfo.dao.XhProductModelDao; +import com.zt.life.modules.mainPart.basicInfo.dto.ProductDto; import com.zt.life.modules.mainPart.basicInfo.model.ParamData; import com.zt.life.modules.mainPart.basicInfo.model.ProductImg; import com.zt.life.modules.mainPart.basicInfo.model.XhProductModel; import com.zt.life.modules.mainPart.sysPictureBase.service.SysPictureBaseService; -import com.zt.modules.sys.dto.DictTypeDto; import org.apache.commons.lang3.StringUtils; import org.apache.poi.hssf.usermodel.HSSFWorkbook; +import org.apache.poi.openxml4j.exceptions.InvalidFormatException; +import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; @@ -25,7 +30,11 @@ import com.zt.common.db.query.QueryFilter; import org.springframework.web.multipart.MultipartFile; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.*; import java.util.*; +import java.util.stream.Collectors; /** @@ -61,23 +70,71 @@ super.deleteLogic(ids); } - public List<XhProductModel> getAllTree(Boolean showXdy, Integer ztShow) { - List<XhProductModel> productList = null; + public List<XhProductModel> getAllTree(Boolean showXdy, Integer ztShow, Long productId) { + List<XhProductModel> productList = new ArrayList<>(); if (showXdy) { - productList = baseDao.selectList(new QueryWrapper<XhProductModel>().eq(Constant.TableColumn.IS_DELETE, - Constant.Bool.NO).lt("product_type", 5).orderByAsc(Constant.TableColumn.SORT)); - } else { - if (ztShow == 1) { + if (productId != null) { productList = baseDao.selectList(new QueryWrapper<XhProductModel>().eq(Constant.TableColumn.IS_DELETE, - Constant.Bool.NO).lt("product_type", 5).ne("product_type", 10).orderByAsc(Constant.TableColumn.SORT)); - } else if (ztShow == 2) { + Constant.Bool.NO).ne("product_type", 5).and(wrapper -> wrapper.eq("ship_id", productId).or().eq("id", productId)).orderByAsc(Constant.TableColumn.SORT)); + } else { productList = baseDao.selectList(new QueryWrapper<XhProductModel>().eq(Constant.TableColumn.IS_DELETE, - Constant.Bool.NO).lt("product_type", 4).ne("product_type", 10).orderByAsc(Constant.TableColumn.SORT)); - } else if (ztShow == 3) { - productList = baseDao.selectList(new QueryWrapper<XhProductModel>().eq(Constant.TableColumn.IS_DELETE, - Constant.Bool.NO).lt("product_type", 3).ne("product_type", 10).orderByAsc(Constant.TableColumn.SORT)); + Constant.Bool.NO).ne("product_type", 5).orderByAsc(Constant.TableColumn.SORT)); } - + } else { + if (productId == null) { + if (ztShow == 1) { + productList = baseDao.selectList(new QueryWrapper<XhProductModel>().eq(Constant.TableColumn.IS_DELETE, + Constant.Bool.NO).lt("product_type", 5).ne("product_type", 10).orderByAsc(Constant.TableColumn.SORT)); + } else if (ztShow == 2) { + productList = baseDao.selectList(new QueryWrapper<XhProductModel>().eq(Constant.TableColumn.IS_DELETE, + Constant.Bool.NO).lt("product_type", 4).ne("product_type", 10).orderByAsc(Constant.TableColumn.SORT)); + } else if (ztShow == 3) { + productList = baseDao.selectList(new QueryWrapper<XhProductModel>().eq(Constant.TableColumn.IS_DELETE, + Constant.Bool.NO).lt("product_type", 3).ne("product_type", 10).orderByAsc(Constant.TableColumn.SORT)); + } else if (ztShow == 4) { + productList = baseDao.selectList(new QueryWrapper<XhProductModel>().eq(Constant.TableColumn.IS_DELETE, + Constant.Bool.NO).lt("product_type", 5).ne("product_type", 1).orderByAsc(Constant.TableColumn.SORT)); + } else if (ztShow == 5) { + productList = baseDao.selectList(new QueryWrapper<XhProductModel>().eq(Constant.TableColumn.IS_DELETE, + Constant.Bool.NO).gt("product_type", 1).orderByAsc(Constant.TableColumn.SORT)); + } + } else { + if (ztShow == 4) { + productList = baseDao.selectList(new QueryWrapper<XhProductModel>().eq(Constant.TableColumn.IS_DELETE, + Constant.Bool.NO).lt("product_type", 5).ne("product_type", 1).and(wrapper -> wrapper.eq("ship_id", productId).or().eq("id", productId)).orderByAsc(Constant.TableColumn.SORT)); + } else if (ztShow == 5) { + List<XhProductModel> dbList = baseDao.getProductListByShip(productId, 2, 5); + for (XhProductModel row : dbList) { + int sameNum = row.getSameSbNum() == null ? 1 : row.getSameSbNum(); + for (int i = 1; i <= sameNum; i++) { + try { + XhProductModel newRow = null; + if (sameNum > 1) { + newRow = row.clone(); + } + else + newRow = row; + if ("5".equals(newRow.getProductType())){ + newRow.setDeviceNo(i); + newRow.setDataId(row.getId().toString() + "-" + i); + if (i>1){ + newRow.setName(row.getName() + "-" + i); + } + } + else{ + newRow.setDeviceNo(0); + newRow.setDataId(row.getId().toString()); + } + productList.add(newRow); + } catch (CloneNotSupportedException e) { + e.printStackTrace(); + } + } + } + productList.sort(Comparator.comparing(XhProductModel::getSort, Comparator.naturalOrder()) + .thenComparing(XhProductModel::getDeviceNo, Comparator.naturalOrder())); + } + } } return TreeUtils.build(productList); } @@ -89,8 +146,8 @@ return baseDao.getNo(pid, productType); } - public List<XhProductModel> getProductList() { - List<XhProductModel> ProductList = baseDao.getProductList(); + public List<XhProductModel> getProductList(Long shipId, Integer type) { + List<XhProductModel> ProductList = baseDao.getProductList(shipId, type); return TreeUtils.build(ProductList); } @@ -105,7 +162,7 @@ } public List<Map<String, Object>> importProductExcel(MultipartFile mutFile, String progressId, Long shipId) { - int count = 0; + Map<Long, XhProductModel> imgMap = new HashMap<>(); Date beginDate = new Date(); List<Map<String, Object>> list = new ArrayList<>();//瀛樺偍鎵�鏈夌殑瀵煎叆鐘舵�� Map<String, Object> map;//瀛樺偍姣忎竴琛岀殑鐘舵�� @@ -116,24 +173,14 @@ Map<String, Object> errMap = new HashMap<>(); Map<String, Integer> reliabType = new HashMap<>(); reliabType.put("鎸囨暟鍒嗗竷", 1); - reliabType.put("浜岄」鍒嗗竷", 2); - reliabType.put("濞佸竷灏斿垎甯�", 3); + reliabType.put("濞佸竷灏斿垎甯�", 2); + reliabType.put("浜岄」鍒嗗竷", 3); Map<String, Integer> repairType = new HashMap<>(); repairType.put("鎸囨暟鍒嗗竷", 1); repairType.put("濞佸竷灏斿垎甯�", 2); Map<String, Integer> isOrNot = new HashMap<>(); isOrNot.put("鏄�", 1); isOrNot.put("鍚�", 0); - - //鑾峰彇鏄惁鏈夋暟鎹紝濡傛灉鏈夊垯鍒犻櫎鏁版嵁 - List<XhProductModel> productList = this.getByShipId(shipId); - List<ParamData> dataList = paramDataService.getByShipId(shipId); - if (productList.size() > 0) { - this.deleteByShipId(shipId); - } - if (dataList.size()>0){ - paramDataService.deleteByShipId(shipId); - } try { // 鑾峰彇瀵煎叆鏂囦欢鐨勫悗缂�鍚� @@ -148,181 +195,224 @@ assert workbook != null; //鏂█濡傛灉[boolean琛ㄨ揪寮廬涓簍rue锛屽垯绋嬪簭缁х画鎵ц銆� 濡傛灉涓篺alse锛屽垯绋嬪簭鎶涘嚭AssertionError锛屽苟缁堟鎵ц銆� int sheets = workbook.getNumberOfSheets(); - //List<LifeManagement> lifeManagementList = new ArrayList<LifeManagement>(); - String xt = null; - String fxt = null; - Long xtId = null; - Long fxtId = null; + Long curXtId = null; + Long curFxtId = null; + Long curSbId; + String curXtName = ""; + String curFxtName = ""; + Map<String, XhProductModel> modelMap = new HashMap<>(); + List<XhProductModel> prductList = baseDao.getProductPath(shipId); - //瀵煎叆棰勮鍙傛暟 - ParamData itemEntity1 = new ParamData(); - itemEntity1.setShipId(shipId); - itemEntity1.setProductId(shipId); - itemEntity1.setPageCode("expect"); - paramDataService.insert(itemEntity1); + for (XhProductModel product : prductList) { + if (StringUtils.isNotBlank(product.getNamePath())) { + modelMap.put(product.getNamePath(), product); + } + } + boolean insertXt; + boolean insertFxt; + Boolean insertSb; for (int i = 0; i < sheets; i++) { Sheet sheet = workbook.getSheetAt(i); int num = sheet.getLastRowNum(); // 涓�鍏辨湁澶氬皯琛� String sheetName = sheet.getSheetName(); //鑾峰彇褰撳墠sheet鍚嶇О for (int j = 1; j <= num; j++) { + insertXt = false; + insertFxt = false; + insertSb = false; CacheUtils.put(progressId, "speed", CommonUtils.getPercent(j, num)); CacheUtils.put(progressId, "msg", "鍏�" + num + "琛岋紝宸插畬鎴愮" + j + "琛�"); - DictTypeDto lifeManagement = new DictTypeDto(); - boolean isToggleXt = false; - boolean isToggleFxt = false; + row1 = j + 1; String pattern = "yyyy-MM-dd"; Row row = sheet.getRow(row1); String sort = com.zt.core.shiro.ImportUtil.getCellValue(row, 0, pattern); //搴忓彿 - if (StringUtils.isNotBlank(com.zt.core.shiro.ImportUtil.getCellValue(row, 1, pattern))) { - if (!com.zt.core.shiro.ImportUtil.getCellValue(row, 1, pattern).equals(xt)) { - isToggleXt = true; - xtId = UUIDUtil.generateId(); - } - xt = com.zt.core.shiro.ImportUtil.getCellValue(row, 1, pattern); //绯荤粺 - } - if (StringUtils.isNotBlank(com.zt.core.shiro.ImportUtil.getCellValue(row, 2, pattern)) && !isToggleXt) { - fxt = com.zt.core.shiro.ImportUtil.getCellValue(row, 2, pattern); //鍒嗙郴缁� - fxtId = UUIDUtil.generateId(); - isToggleFxt = true; - } else if (isToggleXt) { - if (StringUtils.isNotBlank(com.zt.core.shiro.ImportUtil.getCellValue(row, 2, pattern))) { - fxt = com.zt.core.shiro.ImportUtil.getCellValue(row, 2, pattern); //鍒嗙郴缁� - fxtId = UUIDUtil.generateId(); - isToggleFxt = true; - } else { - fxt = null; - isToggleFxt = true; - } - } - + String xt = com.zt.core.shiro.ImportUtil.getCellValue(row, 1, pattern); //绯荤粺 + String fxt = com.zt.core.shiro.ImportUtil.getCellValue(row, 2, pattern); String sb = com.zt.core.shiro.ImportUtil.getCellValue(row, 3, pattern); //璁惧 - String reliabDistribType = com.zt.core.shiro.ImportUtil.getCellValue(row, 4, pattern); //鍙潬鎬у垎甯冪被鍨� - String basicJoinCompute = com.zt.core.shiro.ImportUtil.getCellValue(row, 5, pattern); //鍙傚姞璁$畻 - String basicMtbfRegulate = com.zt.core.shiro.ImportUtil.getCellValue(row, 6, pattern); //mtbf - String basicMtbfRegulSuccRate = com.zt.core.shiro.ImportUtil.getCellValue(row, 7, pattern); //鎴愬姛鐜� - String basicMtbfOperatingRatio = com.zt.core.shiro.ImportUtil.getCellValue(row, 8, pattern); //杩愯姣� - String taskMtbcfRegulate = com.zt.core.shiro.ImportUtil.getCellValue(row, 9, pattern); //mtbcf - String taskMtbcfOtherParams2 = com.zt.core.shiro.ImportUtil.getCellValue(row, 10, pattern); //mtbcf鍏朵粬鍙傛暟2 - String taskMtbcfOtherParams3 = com.zt.core.shiro.ImportUtil.getCellValue(row, 11, pattern); //mtbcf鍏朵粬鍙傛暟3 - String taskMtbcfRegulSuccRate = com.zt.core.shiro.ImportUtil.getCellValue(row, 12, pattern); //mtbcf鎴愬姛鐜� - String taskMtbcfOperatingRatio = com.zt.core.shiro.ImportUtil.getCellValue(row, 13, pattern); //mtbcf杩愯姣� - String repairable = com.zt.core.shiro.ImportUtil.getCellValue(row, 14, pattern); //鏄惁鍙淮淇� - String repairDistribType = com.zt.core.shiro.ImportUtil.getCellValue(row, 15, pattern); //缁翠慨鍙戝竷绫诲瀷 - String repairMttcr = com.zt.core.shiro.ImportUtil.getCellValue(row, 16, pattern); //mttcr - String repairMttcrOtherParams2 = com.zt.core.shiro.ImportUtil.getCellValue(row, 17, pattern); //mttcr鍏朵粬鍙傛暟2 - String repairMttcrOtherParams3 = com.zt.core.shiro.ImportUtil.getCellValue(row, 18, pattern); //mttcr鍏朵粬鍙傛暟3 + String sameSbNumStr = com.zt.core.shiro.ImportUtil.getCellValue(row, 4, pattern); //鍚岀被璁惧鏁伴噺 + String equipType = com.zt.core.shiro.ImportUtil.getCellValue(row, 5, pattern); //璁惧绫诲瀷 + String reliabDistribType = com.zt.core.shiro.ImportUtil.getCellValue(row, 6, pattern); //鍙潬鎬у垎甯冪被鍨� + String basicJoinCompute = com.zt.core.shiro.ImportUtil.getCellValue(row, 7, pattern); //鍙傚姞璁$畻 + String basicMtbfRegulateStr = com.zt.core.shiro.ImportUtil.getCellValue(row, 8, pattern); //mtbf + String basicMtbfRegulSuccRateStr = com.zt.core.shiro.ImportUtil.getCellValue(row, 9, pattern); //鎴愬姛鐜� + String basicMtbfOperatingRatioStr = com.zt.core.shiro.ImportUtil.getCellValue(row, 10, pattern); //杩愯姣� + String taskMtbcfRegulateStr = com.zt.core.shiro.ImportUtil.getCellValue(row, 11, pattern); //mtbcf + String taskMtbcfOtherParams2Str = com.zt.core.shiro.ImportUtil.getCellValue(row, 12, pattern); //mtbcf鍏朵粬鍙傛暟2 + String taskMtbcfOtherParams3Str = com.zt.core.shiro.ImportUtil.getCellValue(row, 13, pattern); //mtbcf鍏朵粬鍙傛暟3 + String taskMtbcfRegulSuccRateStr = com.zt.core.shiro.ImportUtil.getCellValue(row, 14, pattern); //mtbcf鎴愬姛鐜� + String taskMtbcfOperatingRatioStr = com.zt.core.shiro.ImportUtil.getCellValue(row, 15, pattern); //mtbcf杩愯姣� + String repairable = com.zt.core.shiro.ImportUtil.getCellValue(row, 16, pattern); //鏄惁鍙淮淇� + String repairDistribType = com.zt.core.shiro.ImportUtil.getCellValue(row, 17, pattern); //缁翠慨鍙戝竷绫诲瀷 + String repairMttcrStr = com.zt.core.shiro.ImportUtil.getCellValue(row, 18, pattern); //mttcr + String repairMttcrOtherParams2Str = com.zt.core.shiro.ImportUtil.getCellValue(row, 19, pattern); //mttcr鍏朵粬鍙傛暟2 + String repairMttcrOtherParams3Str = com.zt.core.shiro.ImportUtil.getCellValue(row, 20, pattern); //mttcr鍏朵粬鍙傛暟3 + String negligibleRepairTimeStr = com.zt.core.shiro.ImportUtil.getCellValue(row, 21, pattern); //鍙拷鐣ョ殑缁翠慨鏃堕棿 + + Integer sameSbNum = StringUtils.isNotBlank(sameSbNumStr) ? Integer.parseInt(sameSbNumStr) : 1; + Double basicMtbfRegulate = StringUtils.isNotBlank(basicMtbfRegulateStr) ? Double.valueOf(basicMtbfRegulateStr) : null; + Double basicMtbfRegulSuccRate = StringUtils.isNotBlank(basicMtbfRegulSuccRateStr) ? Double.valueOf(basicMtbfRegulSuccRateStr) : null; + Double basicMtbfOperatingRatio = StringUtils.isNotBlank(basicMtbfOperatingRatioStr) ? Double.parseDouble(basicMtbfOperatingRatioStr) : 1.0; + Double taskMtbcfRegulate = StringUtils.isNotBlank(taskMtbcfRegulateStr) ? Double.parseDouble(taskMtbcfRegulateStr) : null; + Double taskMtbcfOtherParams2 = StringUtils.isNotBlank(taskMtbcfOtherParams2Str) ? Double.parseDouble(taskMtbcfOtherParams2Str) : null; + Double taskMtbcfOtherParams3 = StringUtils.isNotBlank(taskMtbcfOtherParams3Str) ? Double.parseDouble(taskMtbcfOtherParams3Str) : null; + Double taskMtbcfRegulSuccRate = StringUtils.isNotBlank(taskMtbcfRegulSuccRateStr) ? Double.parseDouble(taskMtbcfRegulSuccRateStr) : null; + Double taskMtbcfOperatingRatio = StringUtils.isNotBlank(taskMtbcfOperatingRatioStr) ? Double.parseDouble(taskMtbcfOperatingRatioStr) : 1.0; + Double repairMttcr = StringUtils.isNotBlank(repairMttcrStr) ? Double.parseDouble(repairMttcrStr) : null; + Double repairMttcrOtherParams2 = StringUtils.isNotBlank(repairMttcrOtherParams2Str) ? Double.parseDouble(repairMttcrOtherParams2Str) : null; + Double repairMttcrOtherParams3 = StringUtils.isNotBlank(repairMttcrOtherParams3Str) ? Double.parseDouble(repairMttcrOtherParams3Str) : null; + Double negligibleRepairTime = StringUtils.isNotBlank(negligibleRepairTimeStr) ? Double.parseDouble(negligibleRepairTimeStr) : null; + + + if (StringUtils.isBlank(sb)) + continue; + + if (StringUtils.isBlank(xt)) { + if (StringUtils.isBlank(curXtName)) + continue; + else + xt = curXtName; + } else { + if (StringUtils.isBlank(curXtName) || !xt.equals(curXtName)) { + curXtName = xt; + if (modelMap.get(curXtName) == null) { + curXtId = UUIDUtil.generateId(); + insertXt = true; + } else { + curXtId = modelMap.get(curXtName).getId(); + } + curFxtId = null; + curFxtName = ""; + } + } + String fxtPath = ""; + if (StringUtils.isNotBlank(fxt) && !fxt.equals(curFxtName)) { + curFxtName = fxt; + fxtPath = curXtName + "," + curFxtName; + if (modelMap.get(fxtPath) == null) { + curFxtId = UUIDUtil.generateId(); + insertFxt = true; + } else { + curFxtId = modelMap.get(fxtPath).getId(); + } + } + + Long paramId = null; + String sbPath = curXtName + "," + (StringUtils.isBlank(curFxtName) ? "" : curFxtName + ",") + sb; + if (modelMap.get(sbPath) == null) { + curSbId = UUIDUtil.generateId(); + insertSb = true; + } else { + curSbId = modelMap.get(sbPath).getId(); + paramId = modelMap.get(sbPath).getParamId(); + } if (StringUtils.isEmpty(sb)) { com.zt.life.util.ImportUtil.updateErrMap(errMap, "娌℃湁濉啓璁惧鍚嶇О", sheetName, row1); continue; } + //瀵煎叆鍨嬪彿浜у搧缁撴灉搴� XhProductModel xhProductModel = new XhProductModel(); - Long defultImg = null; xhProductModel.setShipId(shipId); //娣诲姞绯荤粺 - if (isToggleXt) { + if (insertXt) { xhProductModel.setPid(shipId); - xhProductModel.setId(xtId); + xhProductModel.setId(curXtId); xhProductModel.setName(xt); xhProductModel.setProductType("3"); xhProductModel.setSort(Integer.valueOf(sort)); defultImg = sysPictureBaseService.getDefaultImg(3).getId(); xhProductModel.setOperatImg(defultImg); + xhProductModel.setNamePath(curXtName); this.insert(xhProductModel); + imgMap = (Map<Long, XhProductModel>) CacheUtils.get("sysImgCache", "sysImgCache"); + imgMap.put(xhProductModel.getId(), xhProductModel); //瀵煎叆棰勮鍙傛暟 ParamData itemEntity = new ParamData(); itemEntity.setShipId(shipId); - itemEntity.setProductId(xtId); - itemEntity.setPageCode("expect"); + itemEntity.setProductId(curXtId); + itemEntity.setBasicUnitNum(1); paramDataService.insert(itemEntity); } - if (StringUtils.isNotBlank(fxt) && isToggleFxt) { - xhProductModel.setPid(xtId); - xhProductModel.setId(fxtId); + if (insertFxt) { + xhProductModel.setPid(curXtId); + xhProductModel.setId(curFxtId); xhProductModel.setName(fxt); xhProductModel.setProductType("4"); xhProductModel.setSort(Integer.valueOf(sort)); defultImg = sysPictureBaseService.getDefaultImg(4).getId(); xhProductModel.setOperatImg(defultImg); + xhProductModel.setNamePath(fxtPath); this.insert(xhProductModel); + imgMap = (Map<Long, XhProductModel>) CacheUtils.get("sysImgCache", "sysImgCache"); + imgMap.put(xhProductModel.getId(), xhProductModel); //瀵煎叆棰勮鍙傛暟 ParamData itemEntity = new ParamData(); itemEntity.setShipId(shipId); - itemEntity.setProductId(fxtId); - itemEntity.setPageCode("expect"); + itemEntity.setProductId(curFxtId); + itemEntity.setBasicUnitNum(1); paramDataService.insert(itemEntity); } - Long sbId = UUIDUtil.generateId(); - if (StringUtils.isNotBlank(fxt)) { - xhProductModel.setPid(fxtId); - } else { - xhProductModel.setPid(xtId); - } - xhProductModel.setId(sbId); + xhProductModel.setPid(curFxtId == null ? curXtId : curFxtId); + xhProductModel.setId(curSbId); xhProductModel.setName(sb); + xhProductModel.setSameSbNum(sameSbNum); + xhProductModel.setEquipType(equipType); xhProductModel.setProductType("5"); xhProductModel.setSort(Integer.valueOf(sort)); defultImg = sysPictureBaseService.getDefaultImg(5).getId(); xhProductModel.setOperatImg(defultImg); - this.insert(xhProductModel); + xhProductModel.setNamePath(sbPath); + if (insertSb) { + this.insert(xhProductModel); + imgMap = (Map<Long, XhProductModel>) CacheUtils.get("sysImgCache", "sysImgCache"); + imgMap.put(xhProductModel.getId(), xhProductModel); + } else { + this.update(xhProductModel); + imgMap = (Map<Long, XhProductModel>) CacheUtils.get("sysImgCache", "sysImgCache"); + imgMap.put(xhProductModel.getId(), xhProductModel); + } //瀵煎叆棰勮鍙傛暟 ParamData itemEntity = new ParamData(); //缁戝畾璁惧ID itemEntity.setShipId(shipId); - itemEntity.setProductId(sbId); - itemEntity.setPageCode("expect"); + itemEntity.setProductId(curSbId); + itemEntity.setBasicUnitNum(sameSbNum); itemEntity.setReliabDistribType(reliabType.get(reliabDistribType)); itemEntity.setBasicJoinCompute(isOrNot.get(basicJoinCompute)); - if (StringUtils.isNotBlank(basicMtbfRegulate)){ - itemEntity.setBasicMtbfRegulate(Double.valueOf(basicMtbfRegulate)); - } - if (StringUtils.isNotBlank(basicMtbfRegulSuccRate)){ - itemEntity.setBasicMtbfRegulSuccRate(Double.valueOf(basicMtbfRegulSuccRate)); - } - if (StringUtils.isNotBlank(basicMtbfOperatingRatio)){ - itemEntity.setBasicMtbfOperatingRatio(Double.valueOf(basicMtbfOperatingRatio)); - } - if (StringUtils.isNotBlank(taskMtbcfRegulate)){ - itemEntity.setTaskMtbcfRegulate(Double.valueOf(taskMtbcfRegulate)); - } - if (StringUtils.isNotBlank(taskMtbcfOtherParams2)){ - itemEntity.setTaskMtbcfOtherParams2(Double.valueOf(taskMtbcfOtherParams2)); - } - if (StringUtils.isNotBlank(taskMtbcfOtherParams3)){ - itemEntity.setTaskMtbcfOtherParams3(Double.valueOf(taskMtbcfOtherParams3)); - } - if (StringUtils.isNotBlank(taskMtbcfRegulSuccRate)){ - itemEntity.setTaskMtbcfRegulSuccRate(Double.valueOf(taskMtbcfRegulSuccRate)); - } - if (StringUtils.isNotBlank(taskMtbcfOperatingRatio)){ - itemEntity.setTaskMtbcfOperatingRatio(Double.valueOf(taskMtbcfOperatingRatio)); - } + itemEntity.setBasicMtbfRegulate(basicMtbfRegulate); + itemEntity.setBasicMtbfRegulSuccRate(basicMtbfRegulSuccRate); + itemEntity.setBasicMtbfOperatingRatio(basicMtbfOperatingRatio); + itemEntity.setTaskMtbcfRegulate(taskMtbcfRegulate); + itemEntity.setTaskMtbcfOtherParams2(taskMtbcfOtherParams2); + itemEntity.setTaskMtbcfOtherParams3(taskMtbcfOtherParams3); + itemEntity.setTaskMtbcfRegulSuccRate(taskMtbcfRegulSuccRate); + itemEntity.setTaskMtbcfOperatingRatio(taskMtbcfOperatingRatio); itemEntity.setRepairable(isOrNot.get(repairable)); itemEntity.setRepairDistribType(repairType.get(repairDistribType)); - if (StringUtils.isNotBlank(repairMttcr)){ - itemEntity.setRepairMttcr(Double.valueOf(repairMttcr)); + itemEntity.setRepairMttcr(repairMttcr); + itemEntity.setRepairMttcrOtherParams2(repairMttcrOtherParams2); + itemEntity.setRepairMttcrOtherParams3(repairMttcrOtherParams3); + itemEntity.setNegligibleRepairTime(negligibleRepairTime); + + if (modelMap.get(sbPath) == null) { + paramDataService.insert(itemEntity); + } else { + itemEntity.setId(paramId); + paramDataService.update(itemEntity); } - if (StringUtils.isNotBlank(repairMttcrOtherParams2)){ - itemEntity.setRepairMttcrOtherParams2(Double.valueOf(repairMttcrOtherParams2)); - } - if (StringUtils.isNotBlank(repairMttcrOtherParams3)){ - itemEntity.setRepairMttcrOtherParams3(Double.valueOf(repairMttcrOtherParams3)); - } - paramDataService.insert(itemEntity); } } @@ -331,13 +421,7 @@ ImportUtil.updateErrMap(errMap, "瀵煎叆寮傚父" + e.getMessage(), "", row1); //err++; } - /* if (batchList.size() > 0 && err == 0) { - super.insertBatch(batchList, 100); - baseDao.updateOldId(); - } - if (batchUpdateList.size() > 0) { - super.updateBatch(batchUpdateList, 100); - }*/ + Date nowDate = new Date(); String msg = "浜у搧妯″瀷瀵煎叆鏃堕棿锛�" + CommonUtils.getDatePoor(nowDate, beginDate) + "\r\n"; System.out.println(msg); @@ -351,11 +435,242 @@ return list; } - private void deleteByShipId(Long shipId) { + public void deleteByShipId(Long shipId) { baseDao.deleteByShipId(shipId); } private List<XhProductModel> getByShipId(Long shipId) { return baseDao.getByShipId(shipId); } + + public void deleteByPid(Long id) { + baseDao.deleteByPid(id); + } + + public Long[] getByPid(Long id) { + return baseDao.getByPid(id); + } + + public void exportDataExcel(HttpServletRequest request, HttpServletResponse response, Long shipId, String name) { + Map<Integer, String> reliabType = new HashMap<>(); + reliabType.put(1, "鎸囨暟鍒嗗竷"); + reliabType.put(3, "浜岄」鍒嗗竷"); + reliabType.put(2, "濞佸竷灏斿垎甯�"); + Map<Integer, String> repairType = new HashMap<>(); + repairType.put(1, "鎸囨暟鍒嗗竷"); + repairType.put(2, "濞佸竷灏斿垎甯�"); + Map<Integer, String> isOrNot = new HashMap<>(); + isOrNot.put(1, "鏄�"); + isOrNot.put(0, "鍚�"); + + List<ProductDto> data = baseDao.getProductByShip(shipId); + data = TreeUtils.build(data); + List<ProductDto> List = new ArrayList<>(); + this.writeList(data, List); + // 璇诲彇妯℃澘鏂囦欢 + try (InputStream inputStream = getClass().getResourceAsStream("/浜у搧缁撴瀯鏍戝鍑烘ā鏉�.xlsx")) { + Workbook workbook = new XSSFWorkbook(inputStream); + // 鑾峰彇绗竴涓伐浣滆〃 + Sheet sheet = workbook.getSheetAt(0); + List.sort((o1, o2) -> { + String[] parentList1 = o1.getNamePath().split(","); + String[] parentList2 = o2.getNamePath().split(","); + String xt1 = parentList1.length > 0 ? parentList1[0] : ""; + String xt2 = parentList2.length > 0 ? parentList2[0] : ""; + + // 棣栧厛姣旇緝xt鍊� + int xtCompare = xt1.compareTo(xt2); + if (xtCompare != 0) { + return xtCompare; + } + + // 濡傛灉xt鐩稿悓锛屾瘮杈僷arentList鐨勯暱搴︼紝纭繚parentList.length = 2鐨勬暟鎹帓鍦ㄥ墠闈� + return Integer.compare(parentList1.length, parentList2.length); + }); + int num = 0; + String xt = ""; + String fxt = ""; + String sb = ""; + for (int i = 0; i < List.size(); i++) { + num = num + 1; + String[] parentList = List.get(i).getNamePath().split(","); + Row row = sheet.createRow(sheet.getLastRowNum() + 1); // 鍒涘缓鏂拌 + Cell cell = row.createCell(0); + cell.setCellValue(num); + if (!xt.equals(parentList[0])) { + xt = parentList[0]; + cell = row.createCell(1); + cell.setCellValue(xt); + } + if (parentList.length > 2) { + if (!fxt.equals(parentList[1])) { + fxt = parentList[1]; + cell = row.createCell(2); + cell.setCellValue(fxt); + } + if (!sb.equals(parentList[2])) { + sb = parentList[2]; + cell = row.createCell(3); + cell.setCellValue(sb); + } + } else { + if (!sb.equals(parentList[1])) { + sb = parentList[1]; + cell = row.createCell(3); + cell.setCellValue(sb); + } + } + cell = row.createCell(4); + cell.setCellValue(List.get(i).getSameSbNum()); + + cell = row.createCell(5); + if (StringUtils.isNotBlank(List.get(i).getEquipType())) { + cell.setCellValue(List.get(i).getEquipType()); + } + cell = row.createCell(6); + String type = reliabType.get(List.get(i).getReliabDistribType()); + cell.setCellValue(type); + cell = row.createCell(7); + String isNot = isOrNot.get(List.get(i).getBasicJoinCompute()); + cell.setCellValue(isNot); + cell = row.createCell(8); + if (List.get(i).getBasicMtbfRegulate() != null) { + cell.setCellValue(List.get(i).getBasicMtbfRegulate()); + } + cell = row.createCell(9); + if (List.get(i).getBasicMtbfRegulSuccRate() != null) { + cell.setCellValue(List.get(i).getBasicMtbfRegulSuccRate()); + } + cell = row.createCell(10); + if (List.get(i).getBasicMtbfOperatingRatio() != null) { + cell.setCellValue(List.get(i).getBasicMtbfOperatingRatio()); + } else { + cell.setCellValue(1.0); + } + cell = row.createCell(11); + if (List.get(i).getTaskMtbcfRegulate() != null) { + cell.setCellValue(List.get(i).getTaskMtbcfRegulate()); + } + cell = row.createCell(12); + if (List.get(i).getTaskMtbcfOtherParams2() != null) { + cell.setCellValue(List.get(i).getTaskMtbcfOtherParams2()); + } + cell = row.createCell(13); + if (List.get(i).getTaskMtbcfOtherParams3() != null) { + cell.setCellValue(List.get(i).getTaskMtbcfOtherParams3()); + } + cell = row.createCell(14); + if (List.get(i).getTaskMtbcfRegulSuccRate() != null) { + cell.setCellValue(List.get(i).getTaskMtbcfRegulSuccRate()); + } + cell = row.createCell(15); + if (List.get(i).getTaskMtbcfOperatingRatio() != null) { + cell.setCellValue(List.get(i).getTaskMtbcfOperatingRatio()); + } else { + cell.setCellValue(1.0); + } + cell = row.createCell(16); + if (List.get(i).getRepairable() != null) { + isNot = isOrNot.get(List.get(i).getRepairable()); + cell.setCellValue(isNot); + } + cell = row.createCell(17); + if (List.get(i).getRepairDistribType() != null) { + type = repairType.get(List.get(i).getRepairDistribType()); + cell.setCellValue(type); + } + cell = row.createCell(18); + if (List.get(i).getRepairMttcr() != null) { + cell.setCellValue(List.get(i).getRepairMttcr()); + } + cell = row.createCell(19); + if (List.get(i).getRepairMttcrOtherParams2() != null) { + cell.setCellValue(List.get(i).getRepairMttcrOtherParams2()); + } + cell = row.createCell(20); + if (List.get(i).getRepairMttcrOtherParams3() != null) { + cell.setCellValue(List.get(i).getRepairMttcrOtherParams3()); + } + } + response.setContentType("application/octet-stream;charset=UTF-8"); + String encodedFilename = DownloadService.getNameEncoder(request, name + "_浜у搧缁撴瀯鏍�.xlsx"); + response.addHeader("Content-Disposition", "attachment;filename=" + encodedFilename); + workbook.write(response.getOutputStream()); + + } catch ( + IOException e) { + e.printStackTrace(); + } + + } + + private void writeList(List<ProductDto> data, List<ProductDto> List) { + for (ProductDto dto : data) { + List.add(dto); + writeList(dto.getChildren(), List); + } + } + + public void refreshCache() { + List<XhProductModel> productList = baseDao.getProductListAll(); + Map<Long, XhProductModel> imgMap = new HashMap<>(); + for (XhProductModel product : productList) { + imgMap.put(product.getId(), product); + } + CacheUtils.put("sysImgCache", "sysImgCache", imgMap); + } + + public void getImg(HttpServletResponse response, Long id) { + Map<Long, XhProductModel> imgMap = new HashMap<>(); + imgMap = (Map<Long, XhProductModel>) CacheUtils.get("sysImgCache", "sysImgCache"); + XhProductModel product = imgMap.get(id); + sysPictureBaseService.getSvgImage(response, product.getOperatImg()); + } + + public void insertProduct(XhProductModel xhProductModel) { + Integer no = this.getNo(xhProductModel.getPid(), xhProductModel.getProductType()); + if (xhProductModel.getSort() == null || xhProductModel.getSort() < no) { + xhProductModel.setSort(no + 1); + } + if (xhProductModel.getProductType().equals("2")) { + Long id = UUIDUtil.generateId(); + xhProductModel.setId(id); + xhProductModel.setShipId(id); + this.insert(xhProductModel); + + ParamData data = new ParamData(); + data.setShipId(id); + data.setProductId(id); + + paramDataService.insert(data); + } else { + xhProductModel.setNamePath(xhProductModel.getNamePath() + "," + xhProductModel.getName()); + this.insert(xhProductModel); + ParamData data = new ParamData(); + data.setShipId(xhProductModel.getShipId()); + data.setProductId(xhProductModel.getId()); + paramDataService.insert(data); + } + Map<Long, XhProductModel> imgMap = new HashMap<>(); + imgMap = (Map<Long, XhProductModel>) CacheUtils.get("sysImgCache", "sysImgCache"); + imgMap.put(xhProductModel.getId(), xhProductModel); + } + + public void updateProduct(XhProductModel xhProductModel) { + XhProductModel oldXh = this.get(xhProductModel.getId()); + if (oldXh != null) { + if (!oldXh.getPid().equals(xhProductModel.getPid())) { + XhProductModel parentXh = this.get(xhProductModel.getPid()); + if (parentXh.getProductType().equals("3")) { + xhProductModel.setNamePath(parentXh.getName() + "," + xhProductModel.getName()); + } else if (parentXh.getProductType().equals("4")) { + xhProductModel.setNamePath(parentXh.getNamePath() + "," + xhProductModel.getName()); + } + } + } + this.update(xhProductModel); + Map<Long, XhProductModel> imgMap = new HashMap<>(); + imgMap = (Map<Long, XhProductModel>) CacheUtils.get("sysImgCache", "sysImgCache"); + imgMap.put(xhProductModel.getId(), xhProductModel); + } } -- Gitblit v1.9.1