From 2c1091471c027641d0e73ec7d50a4a0464e86d8f Mon Sep 17 00:00:00 2001 From: xyc <jc_xiong@hotmail.com> Date: 星期二, 16 七月 2024 16:02:26 +0800 Subject: [PATCH] 修改bug:解析RBD,当参数2、3未设置时,会空指针错误。 --- modules/mainPart/src/main/java/com/zt/life/modules/mainPart/basicInfo/service/XhProductModelService.java | 262 ++++++++++++++++++++++++++++++++++++++------------- 1 files changed, 194 insertions(+), 68 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 ad9d5a7..b942504 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 @@ -8,14 +8,12 @@ import com.zt.common.utils.TreeUtils; import com.zt.common.utils.UUIDUtil; import com.zt.core.shiro.ImportUtil; -import com.zt.life.core.model.ZtProduct; import com.zt.life.modules.mainPart.basicInfo.dao.XhProductModelDao; 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 com.zt.modules.sys.model.SysDictData; -import com.zt.modules.sys.model.SysDictType; import org.apache.commons.lang3.StringUtils; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.Row; @@ -27,11 +25,7 @@ import com.zt.common.db.query.QueryFilter; import org.springframework.web.multipart.MultipartFile; -import java.text.DateFormat; -import java.text.SimpleDateFormat; import java.util.*; -import java.util.regex.Pattern; -import java.util.stream.Collectors; /** @@ -42,7 +36,11 @@ */ @Service public class XhProductModelService extends BaseService<XhProductModelDao, XhProductModel> { - @Autowired ParamDataService paramDataService; + @Autowired + ParamDataService paramDataService; + @Autowired + SysPictureBaseService sysPictureBaseService; + /** * 鍒嗛〉鏌ヨ * @@ -67,17 +65,17 @@ List<XhProductModel> productList = null; if (showXdy) { productList = baseDao.selectList(new QueryWrapper<XhProductModel>().eq(Constant.TableColumn.IS_DELETE, - Constant.Bool.NO).gt("product_type", 1).orderByAsc(Constant.TableColumn.SORT)); + Constant.Bool.NO).lt("product_type", 5).orderByAsc(Constant.TableColumn.SORT)); } else { if (ztShow == 1) { productList = baseDao.selectList(new QueryWrapper<XhProductModel>().eq(Constant.TableColumn.IS_DELETE, - Constant.Bool.NO).gt("product_type", 1).ne("product_type", 10).orderByAsc(Constant.TableColumn.SORT)); + 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).gt("product_type", 2).ne("product_type", 10).orderByAsc(Constant.TableColumn.SORT)); + 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).gt("product_type", 3).ne("product_type", 10).orderByAsc(Constant.TableColumn.SORT)); + Constant.Bool.NO).lt("product_type", 3).ne("product_type", 10).orderByAsc(Constant.TableColumn.SORT)); } } @@ -125,7 +123,18 @@ repairType.put("濞佸竷灏斿垎甯�", 2); Map<String, Integer> isOrNot = new HashMap<>(); isOrNot.put("鏄�", 1); - isOrNot.put("鍚�", 2); + 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 { // 鑾峰彇瀵煎叆鏂囦欢鐨勫悗缂�鍚� String fileName = mutFile.getOriginalFilename(); @@ -142,72 +151,181 @@ //List<LifeManagement> lifeManagementList = new ArrayList<LifeManagement>(); String xt = null; String fxt = null; - if (sheets == 1) { - for (int i = 0; i < sheets; i++) { - Sheet sheet = workbook.getSheetAt(i); - int num = sheet.getLastRowNum(); // 涓�鍏辨湁澶氬皯琛� - for (int j = 1; j <= num; j++) { - CacheUtils.put(progressId, "speed", CommonUtils.getPercent(j, num)); - CacheUtils.put(progressId, "msg", "鍏�" + num + "琛岋紝宸插畬鎴愮" + j + "琛�"); - DictTypeDto lifeManagement = new DictTypeDto(); - boolean isErr = 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 (com.zt.core.shiro.ImportUtil.getCellValue(row, 1, pattern) != null) { - xt = com.zt.core.shiro.ImportUtil.getCellValue(row, 1, pattern); //绯荤粺 - } - if (com.zt.core.shiro.ImportUtil.getCellValue(row, 2, pattern) != null) { - 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 + Long xtId = null; + Long fxtId = null; - XhProductModel xhProductModel = new XhProductModel(); - xhProductModel.setShipId(shipId); - Long id =UUIDUtil.generateId(); - xhProductModel.setId(id); + + //瀵煎叆棰勮鍙傛暟 + ParamData itemEntity1 = new ParamData(); + itemEntity1.setShipId(shipId); + itemEntity1.setProductId(shipId); + itemEntity1.setPageCode("expect"); + paramDataService.insert(itemEntity1); + + 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++) { + 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 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 + + 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) { + xhProductModel.setPid(shipId); + xhProductModel.setId(xtId); xhProductModel.setName(xt); xhProductModel.setProductType("3"); + xhProductModel.setSort(Integer.valueOf(sort)); + defultImg = sysPictureBaseService.getDefaultImg(3).getId(); + xhProductModel.setOperatImg(defultImg); this.insert(xhProductModel); //瀵煎叆棰勮鍙傛暟 ParamData itemEntity = new ParamData(); - //缁戝畾璁惧ID - itemEntity.setProductId(id); - itemEntity.setName(sb); - itemEntity.setReliabDistribType(reliabType.get(reliabDistribType)); - itemEntity.setBasicJoinCompute(isOrNot.get(basicJoinCompute)); - itemEntity.setBasicMtbfRegulate(basicMtbfRegulate); - itemEntity.setBasicMtbfRegulSuccRate(basicMtbfRegulSuccRate); - itemEntity.setBasicMtbfOperatingRatio(basicMtbfOperatingRatio); - itemEntity.setTaskMtbcfRegulate(taskMtbcfRegulate); - itemEntity.setTaskMtbcfOtherParams(taskMtbcfOtherParams2 + "," + taskMtbcfOtherParams3); - itemEntity.setTaskMtbcfRegulSuccRate(taskMtbcfRegulSuccRate); - itemEntity.setTaskMtbcfOperatingRatio(taskMtbcfOperatingRatio); - itemEntity.setRepairable(isOrNot.get(repairable)); - itemEntity.setRepairDistribType(repairType.get(repairDistribType)); - itemEntity.setRepairMttcr(repairMttcr); - itemEntity.setRepairMttcrOtherParams(repairMttcrOtherParams2 + "," + repairMttcrOtherParams3); + itemEntity.setShipId(shipId); + itemEntity.setProductId(xtId); + itemEntity.setPageCode("expect"); paramDataService.insert(itemEntity); } + + + if (StringUtils.isNotBlank(fxt) && isToggleFxt) { + xhProductModel.setPid(xtId); + xhProductModel.setId(fxtId); + xhProductModel.setName(fxt); + xhProductModel.setProductType("4"); + xhProductModel.setSort(Integer.valueOf(sort)); + defultImg = sysPictureBaseService.getDefaultImg(4).getId(); + xhProductModel.setOperatImg(defultImg); + this.insert(xhProductModel); + + //瀵煎叆棰勮鍙傛暟 + ParamData itemEntity = new ParamData(); + itemEntity.setShipId(shipId); + itemEntity.setProductId(fxtId); + itemEntity.setPageCode("expect"); + paramDataService.insert(itemEntity); + } + + Long sbId = UUIDUtil.generateId(); + if (StringUtils.isNotBlank(fxt)) { + xhProductModel.setPid(fxtId); + } else { + xhProductModel.setPid(xtId); + } + xhProductModel.setId(sbId); + xhProductModel.setName(sb); + xhProductModel.setProductType("5"); + xhProductModel.setSort(Integer.valueOf(sort)); + defultImg = sysPictureBaseService.getDefaultImg(5).getId(); + xhProductModel.setOperatImg(defultImg); + this.insert(xhProductModel); + + //瀵煎叆棰勮鍙傛暟 + ParamData itemEntity = new ParamData(); + //缁戝畾璁惧ID + itemEntity.setShipId(shipId); + itemEntity.setProductId(sbId); + itemEntity.setPageCode("expect"); + 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.setRepairable(isOrNot.get(repairable)); + itemEntity.setRepairDistribType(repairType.get(repairDistribType)); + if (StringUtils.isNotBlank(repairMttcr)){ + itemEntity.setRepairMttcr(Double.valueOf(repairMttcr)); + } + if (StringUtils.isNotBlank(repairMttcrOtherParams2)){ + itemEntity.setRepairMttcrOtherParams2(Double.valueOf(repairMttcrOtherParams2)); + } + if (StringUtils.isNotBlank(repairMttcrOtherParams3)){ + itemEntity.setRepairMttcrOtherParams3(Double.valueOf(repairMttcrOtherParams3)); + } + paramDataService.insert(itemEntity); } } + } catch (Exception e) { e.printStackTrace(); ImportUtil.updateErrMap(errMap, "瀵煎叆寮傚父" + e.getMessage(), "", row1); @@ -232,4 +350,12 @@ list.add(errMap); return list; } + + private void deleteByShipId(Long shipId) { + baseDao.deleteByShipId(shipId); + } + + private List<XhProductModel> getByShipId(Long shipId) { + return baseDao.getByShipId(shipId); + } } -- Gitblit v1.9.1