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