Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/dto/OsRevisionRuleDTO.java
@@ -64,7 +64,6 @@ */ private Date ts; /** * å建人 */ Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/po/OsRevisionRulePO.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,78 @@ package com.vci.po; import com.vci.starter.poi.annotation.ExcelColumn; import com.vci.starter.web.pagemodel.BaseModelVO; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; /** * 屿§æ± å¯¼å ¥å¯¹è±¡ * @author ludc * @date 2024/7/19 11:11 */ @Data @AllArgsConstructor @NoArgsConstructor public class OsRevisionRulePO extends BaseModelVO { /** * ç¦æ¢ä¿®æ¹è¿ä¸ªå¼ */ private static final long serialVersionUID = -2239512786206928201L; /** * æå¨æ°æ®è¡ */ @ExcelColumn(rowIndexColumn = true,value = "") private String rowIndex; /** * 屿§è±æåç§° */ @ExcelColumn(value="åç§°",nullable = false) private String id; /** * æ ç¾ */ @ExcelColumn(value="æ ç¾") private String name; /** * è·³è·å符 */ @ExcelColumn(value="è·³è·å符") private String jumpCharacter; /** * åå§å¼ */ @ExcelColumn(value="åå§å¼",nullable = false) private String initialValue; /** * æ¥é¿ */ @ExcelColumn(value="æ¥é¿",nullable = false) private String stepLength; /** * åç¼ */ @ExcelColumn(value="åç¼") private String prefixion; /** * åç¼ */ @ExcelColumn(value="åç¼") private String suffix; /** * æè¿° */ @ExcelColumn(value="æè¿°") private String description; } Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/po/OsStatusPO.java
@@ -7,7 +7,7 @@ import lombok.NoArgsConstructor; /** * 屿§æ± å¯¼å ¥å¯¹è±¡ * ç¶ææ± å¯¼å ¥å¯¹è±¡ * @author ludc * @date 2024/7/19 11:11 */ @@ -42,8 +42,8 @@ /** * 屿§ç±»å */ @ExcelColumn(value="å¾ç(è·¯å¾)") private String imagePath; //@ExcelColumn(value="å¾ç(è·¯å¾)") //private String imagePath; /** * æè¿° Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/OsRevisionRuleController.java
@@ -1,15 +1,29 @@ package com.vci.web.controller; import com.vci.constant.FrameWorkLangCodeConstant; import com.vci.dto.OsRevisionRuleDTO; import com.vci.pagemodel.OsRevisionRuleVO; import com.vci.starter.web.annotation.controller.VciUnCheckRight; import com.vci.starter.web.annotation.log.VciBusinessLog; import com.vci.starter.web.exception.VciBaseException; import com.vci.starter.web.pagemodel.BaseResult; import com.vci.starter.web.util.ControllerUtil; import com.vci.starter.web.util.LocalFileUtil; import com.vci.starter.web.util.VciBaseUtil; import com.vci.web.service.OsRevisionRuleServiceI; import com.vci.web.util.Func; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletResponse; import java.io.File; import java.io.IOException; import java.util.Date; import java.util.List; /** * çæ¬è§åæ§å¶å¨ @@ -33,7 +47,6 @@ * @return */ @GetMapping("/getVersionRuleAllList") @VciUnCheckRight public BaseResult getVersionRuleAllList(){ try { return BaseResult.dataList(revisionRuleServiceI.selectAllRevision()); @@ -51,7 +64,6 @@ * @return */ @GetMapping("/getUsedVersionRuleList") @VciUnCheckRight public BaseResult getUsedVersionRuleList(String vrName){ try { return BaseResult.dataList(revisionRuleServiceI.getUsedVersionRuleList(vrName)); @@ -69,7 +81,6 @@ * @return */ @PostMapping("/addVersionRule") @VciUnCheckRight public BaseResult addVersionRule(@RequestBody OsRevisionRuleDTO osRevisionRuleDTO){ try { return revisionRuleServiceI.addVersionRule(osRevisionRuleDTO) ? BaseResult.success("çæ¬è§åæ·»å æåï¼"):BaseResult.fail("çæ¬è§åæ·»å 失败ï¼"); @@ -86,17 +97,104 @@ * @param osRevisionRuleDTO çæ¬è§åæ°æ®ä¼ è¾å¯¹è±¡ * @return */ @PostMapping("/updateVersionRule") @VciUnCheckRight @PutMapping("/updateVersionRule") public BaseResult updateVersionRule(@RequestBody OsRevisionRuleDTO osRevisionRuleDTO){ try { return revisionRuleServiceI.updateVersionRule(osRevisionRuleDTO) ? BaseResult.success("çæ¬è§åæ·»å æåï¼"):BaseResult.fail("çæ¬è§åæ·»å 失败ï¼"); return revisionRuleServiceI.updateVersionRule(osRevisionRuleDTO) ? BaseResult.success("çæ¬è§åä¿®æ¹æåï¼"):BaseResult.fail("çæ¬è§åä¿®æ¹å¤±è´¥ï¼"); }catch (Exception e) { e.printStackTrace(); String exceptionMessage = "å¢å 屿§æ¶åºç°é误ï¼åå ï¼" + VciBaseUtil.getExceptionMessage(e); String exceptionMessage = "ä¿®æ¹çæ¬è§åæ¶åºç°é误ï¼åå ï¼" + VciBaseUtil.getExceptionMessage(e); logger.error(exceptionMessage); return BaseResult.fail(exceptionMessage); } } /** * å é¤çæ¬è§å * @param osRevisionRuleDTOS çæ¬è§åæ°æ®ä¼ è¾å¯¹è±¡ * @return */ @DeleteMapping("/deleteVersionRule") public BaseResult deleteVersionRule(@RequestBody List<OsRevisionRuleDTO> osRevisionRuleDTOS){ try { return revisionRuleServiceI.deleteVersionRule(osRevisionRuleDTOS) ? BaseResult.success("çæ¬è§åå 餿åï¼"):BaseResult.fail("çæ¬è§åå é¤å¤±è´¥ï¼"); }catch (Exception e) { e.printStackTrace(); String exceptionMessage = "å é¤çæ¬è§åæ¶åºç°é误ï¼åå ï¼" + VciBaseUtil.getExceptionMessage(e); logger.error(exceptionMessage); return BaseResult.fail(exceptionMessage); } } /** * 导åºéä¸ççæ¬è§å * @param exportFileName 导åºçæä»¶å * @param vrNames éè¦å¯¼åºçè§åè±æåç§° * @param response */ @GetMapping( "/exportVersionRule") @VciBusinessLog(operateName = "导åºçæ¬è§å") public void exportVersionRule(String exportFileName,String vrNames, HttpServletResponse response){ try { String excelPath = revisionRuleServiceI.exportVersionRule(exportFileName,vrNames,false); ControllerUtil.writeFileToResponse(response,excelPath); } catch (Exception e) { String msg = "导åºçæ¬è§åæ¶åºç°é误ï¼åå ï¼" + VciBaseUtil.getExceptionMessage(e); try { //åºéæ¶ e.printStackTrace(); ControllerUtil.writeDataToResponse(response,"error_" + Func.format(new Date(),"yyyy-MM-dd HHmmss.sss") + ".txt", StringUtils.isNotBlank(msg)?msg.getBytes():new byte[0],null); } catch (IOException ioException) { ioException.printStackTrace(); } } } /** * ä¸è½½çæ¬è§åå¯¼å ¥æ¨¡æ¿ * @param exportFileName * @param response */ @GetMapping( "/downloadAttributeTemplate") @VciBusinessLog(operateName = "导åºçæ¬è§å") public void downloadVersionRuleTemplate(String exportFileName, HttpServletResponse response){ try { String excelPath = revisionRuleServiceI.downloadVersionRuleTemplate(exportFileName); ControllerUtil.writeFileToResponse(response,excelPath); } catch (Exception e) { String msg = "ä¸è½½çæ¬è§åå¯¼å ¥æ¨¡æ¿æ¶åºç°é误ï¼åå ï¼" + VciBaseUtil.getExceptionMessage(e); try { //åºéæ¶ e.printStackTrace(); ControllerUtil.writeDataToResponse(response,"error_" + Func.format(new Date(),"yyyy-MM-dd HHmmss.sss") + ".txt", StringUtils.isNotBlank(msg)?msg.getBytes():new byte[0],null); } catch (IOException ioException) { ioException.printStackTrace(); } } } /** * å¯¼å ¥çæ¬è§å * @param file * @return */ @PostMapping("/importVersionRules") @VciBusinessLog(operateName = "å¯¼å ¥çæ¬è§å") public BaseResult importVersionRules(MultipartFile file){ String excelFileName = LocalFileUtil.getDefaultTempFolder() + File.separator + LocalFileUtil.getFileNameForIE(file.getOriginalFilename()); File file1 = new File(excelFileName); try { file.transferTo(new File(excelFileName)); if (file != null) { return revisionRuleServiceI.importVersionRules(file1); } else { return BaseResult.fail(FrameWorkLangCodeConstant.IMPORT_FAIL, new String[]{"æ å¯¼å ¥çæä»¶"}); } }catch (Throwable e) { throw new VciBaseException(VciBaseUtil.getExceptionMessage(e),new String[0],e); }finally { file1.delete(); } } } Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsRevisionRuleServiceI.java
@@ -4,7 +4,9 @@ import com.vci.corba.omd.vrm.VersionRule; import com.vci.dto.OsRevisionRuleDTO; import com.vci.pagemodel.OsRevisionRuleVO; import com.vci.starter.web.pagemodel.BaseResult; import java.io.File; import java.util.Collection; import java.util.List; import java.util.Map; @@ -43,6 +45,13 @@ boolean updateVersionRule(OsRevisionRuleDTO osRevisionRuleDTO) throws PLException; /** * å é¤çæ¬è§å * @param osRevisionRuleDTOS * @return */ boolean deleteVersionRule(List<OsRevisionRuleDTO> osRevisionRuleDTOS) throws PLException; /** * æ°æ®å¯¹è±¡è½¬æ¢ä¸ºæ¾ç¤ºå¯¹è±¡ * @param versionRules æ°æ®å¯¹è±¡ * @return æ¾ç¤ºå¯¹è±¡ @@ -64,10 +73,41 @@ OsRevisionRuleVO getRevisionRuleById(String id); /** * 使ç¨å¤ä¸ªç¼å·è·åè§åçå¼ * @param vrIdList ç¼å· * @return æ¾ç¤ºå¯¹è±¡ */ List<OsRevisionRuleVO> getRevisionRuleByIds(Collection<String> vrIdList); /** * æ¥è¯¢åºç¨èå´ * @param vrName çæ¬è§åè±æåç§° * @return */ List<Map<String, String>> getUsedVersionRuleList(String vrName) throws PLException; /** * 导åºéä¸ççæ¬è§å * @param exportFileName 导åºçæä»¶å * @param vrNames éè¦å¯¼åºççæ¬è§ååç§° * @param flag æ§å¶å¯¼åºçå忝å¦åå¯¼å ¥æ¨¡æ¿ä¸è´ * @return */ String exportVersionRule(String exportFileName,String vrNames,boolean flag/*æ§å¶å¯¼åºçå忝å¦åå¯¼å ¥æ¨¡æ¿ä¸è´*/) throws PLException; /** * ä¸è½½çæ¬è§åå¯¼å ¥æ¨¡æ¿ * @param exportFileName * @return * @throws PLException */ String downloadVersionRuleTemplate(String exportFileName) throws Exception; /** * å¯¼å ¥çæ¬è§å * @param file * @return */ BaseResult importVersionRules(File file) throws Exception; } Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsAttributeServiceImpl.java
@@ -481,8 +481,7 @@ checkName(osAttributeDTO.getId()); //æ£æ¥é»è®¤å¼ä¸å±æ§ç±»åæ¯å¦å¹é checkDefValue(osAttributeDTO); //dto对象转æ¢ä¸ºå卿é对象 osAttributeDTO.setOid(VciBaseUtil.getPk().toUpperCase(Locale.ROOT)); //osAttributeDTO.setOid(VciBaseUtil.getPk().toUpperCase(Locale.ROOT)); AttributeDef attributeDef = this.osAttributeDTO2AttributeDef(osAttributeDTO); return platformClientUtil.getAttributeService().addAttributeDef(attributeDef); } @@ -695,7 +694,7 @@ } //æ£æ¥å±æ§åæ¯å¦å·²åå¨ä¸ç³»ç»ä¸ if(platformClientUtil.getAttributeService().checkRowIsExists(abName)){ throw new PLException("500",new String[]{"屿§åç§°å¨ç³»ç»ä¸å·²åå¨!"}); throw new PLException("500",new String[]{"屿§åç§°ã" + abName + "ãå¨ç³»ç»ä¸å·²åå¨!"}); } } @@ -890,8 +889,8 @@ excelDataList.add(new WriteExcelData(0,index, columns.get(index))); } //æç §å±æ§åæ¥è¯¢å±æ§ï¼ç¶åå¤ç屿§å¯¼åº List<String> enumNameList = Func.toStrList(attrNames); List<OsAttributeVO> osAttributeVOS = this.listAttrByIds(enumNameList); List<String> attrameList = Func.toStrList(attrNames); List<OsAttributeVO> osAttributeVOS = this.listAttrByIds(attrameList); if(Func.isEmpty(osAttributeVOS)){ excelDataList.add(new WriteExcelData(1,1, "æ ¹æ®å±æ§åç§°æªæ¥è¯¢å°å±æ§ä¿¡æ¯ï¼è¯·å·æ°åå°è¯éæ°å¯¼åºï¼")); }else{ @@ -1018,10 +1017,9 @@ List<OsAttributeDTO> dtoList = new ArrayList<>(); //å½åexcel䏿¯å¦éå¤ç¨çå¤éMap:ï¼keyï¼å¤é屿§ï¼valueï¼è¡å·ï¼ Map<String, String> excelReapeat = new HashMap<>(); //å¤æå¿ å¡«å±æ§æ¯å¦ä¸ºç©ºï¼ç¨æ·æ¯å¦å·²åå¨ï¼ä»¥åé¨é¨æ¯å¦å¡«éçæ ¡éªé»è¾ poList.stream().forEach(osAttributePO -> { if(Func.isBlank(osAttributePO.getId())){//屿§åå¤ç©º throw new VciBaseException("第ã"+osAttributePO.getRowIndex()+"ãè¡ï¼enumnameerror"); throw new VciBaseException("第ã"+osAttributePO.getRowIndex()+"ãè¡ï¼attrnameerror"); }else if(Func.isBlank(osAttributePO.getAttributeDataType())){ throw new VciBaseException("第ã"+osAttributePO.getRowIndex()+"ãè¡ï¼typeerror"); }else if(excelReapeat.containsKey(osAttributePO.getId())){//屿§åè¡¨æ ¼ä¸å¤é @@ -1037,7 +1035,7 @@ //屿§åexcelä¸å¤éå¤ç excelReapeat.put(osAttributePO.getId(),osAttributePO.getRowIndex()); OsAttributeDTO osAttributeDTO = new OsAttributeDTO(); //æ¥è¯¢æä¸¾æ¯å¦åå¨ï¼å¡«åäºæä¸¾ä½æ²¡å¡«ååå¼èå´ï¼è¿æ¶åç´æ¥ä½¿ç¨æä¸¾é¡¹å¼ä½ä¸ºé»è®¤çrange //æ¥è¯¢å±æ§æ¯å¦åå¨ï¼å¡«åäºæä¸¾ä½æ²¡å¡«ååå¼èå´ï¼è¿æ¶åç´æ¥ä½¿ç¨æä¸¾é¡¹å¼ä½ä¸ºé»è®¤çrange if(Func.isNotBlank(osAttributePO.getEnumId()) && Func.isBlank(osAttributePO.getRange())){ try { OsEnumVO enumVO = enumService.getEnumTypeById(osAttributePO.getEnumId()); @@ -1075,7 +1073,7 @@ checkDefValue(osAttributeDTO); } catch (PLException e) { e.printStackTrace(); throw new VciBaseException(e.getMessage()); throw new VciBaseException(VciBaseUtil.getExceptionMessage(e)); } dtoList.add(osAttributeDTO); }); @@ -1098,7 +1096,7 @@ e.printStackTrace(); return BaseResult.fail(VciBaseUtil.getExceptionMessage(e),new String[]{},e); } return BaseResult.success("æä¸¾å¯¼å ¥æåï¼"); return BaseResult.success("屿§å¯¼å ¥æåï¼"); } /** Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsEnumServiceImpl.java
@@ -605,7 +605,7 @@ } //å½åexcel䏿¯å¦éå¤ç¨çå¤éMap:ï¼keyï¼å¤é屿§ï¼valueï¼è¡å·ï¼ Map<String, String> excelReapeat = new HashMap<>(); //å¤æå¿ å¡«å±æ§æ¯å¦ä¸ºç©ºï¼ç¨æ·æ¯å¦å·²åå¨ï¼ä»¥åé¨é¨æ¯å¦å¡«éçæ ¡éªé»è¾ //å¤æå¿ å¡«å±æ§æ¯å¦ä¸ºç©ºçç List<String> finalRepeatEnumId = repeatEnumId; newPOList.stream().forEach(osEnumPO -> { if(Func.isBlank(osEnumPO.getId())){//æä¸¾å @@ -618,7 +618,7 @@ throw new VciBaseException("第ã"+osEnumPO.getRowIndex()+"ãè¡æ°æ®ï¼æä¸¾åç§°åªè½ä¸ºè±æåæ¯"); }else if(excelReapeat.containsKey(osEnumPO.getId())){//æä¸¾åè¡¨æ ¼ä¸å¤é throw new VciBaseException("第ã"+excelReapeat.get(osEnumPO.getId())+"ãè¡å第ã"+osEnumPO.getRowIndex()+"ãè¡æ°æ®ï¼æä¸¾åéå¤"); }else if (Func.isNotEmpty(osEnumVOList) && finalRepeatEnumId.contains(osEnumPO.getId())){//2ã夿æä¸¾åæ¯å¦ä¸ç³»ç»ä¸éå¤ }else if (Func.isNotEmpty(finalRepeatEnumId) && finalRepeatEnumId.contains(osEnumPO.getId())){//2ã夿æä¸¾åæ¯å¦ä¸ç³»ç»ä¸éå¤ throw new VciBaseException("第ã"+osEnumPO.getRowIndex()+"ãè¡ï¼æä¸¾åå¨ç³»ç»ä¸å·²ç»åå¨,请修æ¹!"); } //å 对æä¸¾åexcelä¸éè¦å¤éå¤ç @@ -697,7 +697,7 @@ */ private EnumType osEnumDTO2EnumType(OsEnumDTO osEnumDTO){ EnumType enumType = new EnumType(); enumType.oid = osEnumDTO.getOid(); //enumType.oid = osEnumDTO.getOid(); //æä¸¾åç»ä¸è½¬æå°åï¼é¿å åæåºç°å ¶ä»é®é¢ enumType.name = osEnumDTO.getId().toLowerCase(Locale.ROOT); enumType.label = osEnumDTO.getName(); Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsRevisionRuleServiceImpl.java
@@ -2,24 +2,43 @@ import com.vci.client.mw.ClientSessionUtility; import com.vci.corba.common.PLException; import com.vci.corba.omd.stm.StatePool; import com.vci.corba.omd.vrm.VersionRule; import com.vci.dto.OsAttributeDTO; import com.vci.dto.OsRevisionRuleDTO; import com.vci.dto.OsStatusDTO; import com.vci.pagemodel.OsAttributeVO; import com.vci.pagemodel.OsEnumVO; import com.vci.pagemodel.OsStatusVO; import com.vci.po.OsAttributePO; import com.vci.po.OsEnumPO; import com.vci.po.OsRevisionRulePO; import com.vci.starter.poi.bo.ReadExcelOption; import com.vci.starter.poi.bo.WriteExcelData; import com.vci.starter.poi.bo.WriteExcelOption; import com.vci.starter.poi.constant.ExcelLangCodeConstant; import com.vci.starter.poi.util.ExcelUtil; import com.vci.starter.web.annotation.log.VciUnLog; import com.vci.starter.web.util.VciBaseUtil; import com.vci.starter.web.util.VciDateUtil; import com.vci.starter.web.exception.VciBaseException; import com.vci.starter.web.pagemodel.BaseResult; import com.vci.starter.web.util.*; import com.vci.pagemodel.OsRevisionRuleVO; import com.vci.starter.web.util.WebThreadLocalUtil; import com.vci.web.service.OsRevisionRuleServiceI; import com.vci.web.util.Func; import com.vci.web.util.PlatformClientUtil; import com.vci.web.util.WebUtil; import org.apache.commons.lang3.StringUtils; import org.apache.poi.hssf.util.HSSFColor; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import javax.swing.*; import java.awt.*; import java.io.File; import java.util.*; import java.util.List; import java.util.stream.Collectors; @@ -44,6 +63,16 @@ @Autowired(required = false) @Lazy private OsRevisionRuleServiceI self; /** * æ¥å¿ */ private Logger logger = LoggerFactory.getLogger(getClass()); /** * å¿ å¡«å */ private List<Integer> ColumnNameisRed = new ArrayList<Integer>(); /** * æ¥è¯¢ææççæ¬è§å @@ -82,7 +111,7 @@ //çæ¬è§ååè§æ£éª this.checkVersionRule(osRevisionRuleDTO); //æ¥é VersionRule vr = platformClientUtil.getVersionService().getVersionRule(osRevisionRuleDTO.getName()); VersionRule vr = platformClientUtil.getVersionService().getVersionRule(osRevisionRuleDTO.getId()); //nameä¸ä¸ºç©º if(Func.isNotEmpty(vr) && !"".equals(vr.name)){ throw new PLException("500",new String[]{"åç§°éå¤è¯·æ´æ¢åç§°!"}); @@ -108,6 +137,50 @@ throw new PLException("500",new String[]{"ä¿®æ¹ççæ¬è§åå¨ç³»ç»ä¸ä¸åå¨!"}); } return platformClientUtil.getVersionService().modifyVersionRule(this.dto2VersionRule(osRevisionRuleDTO)); } /** * å é¤çæ¬è§å * @param osRevisionRuleDTOS * @return */ @Override public boolean deleteVersionRule(List<OsRevisionRuleDTO> osRevisionRuleDTOS) throws PLException { VciBaseUtil.alertNotNull(osRevisionRuleDTOS,"å¾ å é¤ç屿§å表"); //夿è¦å é¤ççæ¬è§åæ¯å¦æè¢«å¼ç¨ osRevisionRuleDTOS.stream().forEach(item->{ String vrName = item.getId(); try { String[] btNamesByVerName = platformClientUtil.getBtmService().getBTNamesByVerName(vrName); if(btNamesByVerName != null && btNamesByVerName.length > 0){ throw new VciBaseException("è¯¥çæ¬å·²è¢«ä½¿ç¨ä¸å 许å é¤"); } } catch (PLException e) { logger.error(e.getMessage()); e.printStackTrace(); throw new VciBaseException(e.getMessage()); } }); //å¹³å°çdeleteStatusæ¹æ³å¿ ä¼ ä¸ä¸ªåæ°ï¼oidãnameåts List<VersionRule> vrList = new ArrayList<>(); for(OsRevisionRuleDTO vrDTO : osRevisionRuleDTOS){ //oidåtså¤ç©º String oid = vrDTO.getOid(); //id主è¦ç¨æ¥å¯¹ç¼åæ°æ®å é¤ String id = vrDTO.getId(); //åå°ä¼ç¨tsè¿è¡æ°æ®ä¸è´æ§æ ¡éª Date ts = vrDTO.getTs(); if(Func.isBlank(oid) || Func.isBlank(id) || Func.isEmpty(ts)){ throw new PLException("500",new String[]{"å¾ å é¤çç¶æå表ä¸ä¸»é®ãoidããè°æ´æ¶é´ãtsããç¶æåç§°ãnameãä¸è½ä¸ºç©ºï¼"}); } VersionRule vr = new VersionRule(); vr.oid = oid; vr.name = id; vr.ts = Func.format(ts,VciDateUtil.DateTimeMillFormat); vrList.add(vr); } return platformClientUtil.getVersionService().deleteVersionRules(vrList.toArray(new VersionRule[vrList.size()])); } /** @@ -142,7 +215,7 @@ if(Func.isNotBlank(dto.getPrefixion()) && (dto.getPrefixion().matches(regex3))){ throw new PLException("500",new String[]{"åç¼ä¸è½ä»¥ç©ºæ ¼å¼å¤´"}); } if (dto.getPrefixion().length() + dto.getPrefixion().length() > 32) { if (Func.isNotBlank(dto.getPrefixion()) && dto.getPrefixion().length() > 32) { throw new PLException("500",new String[]{"åç¼ä¸è½è¶ è¿32个å符"}); } //åç¼ç¸å ³å¤æ @@ -150,7 +223,7 @@ if(Func.isNotBlank(dto.getSuffix()) && (dto.getSuffix().matches(regex4))){ throw new PLException("500",new String[]{"åç¼ä¸è½ä»¥ç©ºæ ¼ç»å°¾"}); } if (dto.getSuffix().length() + dto.getSuffix().length() > 32) { if (Func.isNotBlank(dto.getSuffix()) && dto.getSuffix().length() > 32) { throw new PLException("500",new String[]{"åç¼ä¸è½è¶ è¿32个å符"}); } if (dto.getId().length() > 255) { @@ -164,6 +237,7 @@ */ private VersionRule dto2VersionRule(OsRevisionRuleDTO osRevisionRuleDTO){ VersionRule newVR = new VersionRule(); newVR.oid = osRevisionRuleDTO.getOid(); newVR.name = osRevisionRuleDTO.getId(); newVR.tag = osRevisionRuleDTO.getName(); newVR.description = osRevisionRuleDTO.getDescription(); @@ -172,8 +246,9 @@ newVR.stepLength = osRevisionRuleDTO.getStepLength(); newVR.prefixion = osRevisionRuleDTO.getPrefixion(); newVR.suffix = osRevisionRuleDTO.getSuffix(); String userName = "developer";//WebThreadLocalUtil.getCurrentUserSessionInfoInThread().getUserId(); String userName = WebThreadLocalUtil.getCurrentUserSessionInfoInThread().getUserId(); long timeMillis = System.currentTimeMillis(); newVR.ts = Func.format((Func.isNotEmpty(osRevisionRuleDTO.getTs()) ? osRevisionRuleDTO.getTs():new Date()),VciDateUtil.DateTimeMillFormat); newVR.creator = Func.isBlank(osRevisionRuleDTO.getCreator()) ? userName:osRevisionRuleDTO.getCreator(); newVR.createTime = Func.isEmpty(osRevisionRuleDTO.getCreateTime()) ? timeMillis:osRevisionRuleDTO.getCreateTime().getTime(); newVR.modifier = userName; @@ -213,7 +288,7 @@ try { ruleVO.setCreateTime(VciDateUtil.long2Date(versionRule.createTime)); ruleVO.setLastModifyTime(VciDateUtil.long2Date(versionRule.modifyTime)); ruleVO.setTs(VciDateUtil.str2Date(versionRule.ts,VciDateUtil.DateTimeFormat)); ruleVO.setTs(VciDateUtil.str2Date(versionRule.ts,VciDateUtil.DateTimeMillFormat)); } catch (Exception e) { e.printStackTrace(); } @@ -245,6 +320,27 @@ } /** * 使ç¨å¤ä¸ªç¼å·è·åè§åçå¼ * @param vrIdList ç¼å· * @return æ¾ç¤ºå¯¹è±¡ */ @Override public List<OsRevisionRuleVO> getRevisionRuleByIds(Collection<String> vrIdList) { if(Func.isEmpty(vrIdList)){ return null; } Map<String, OsRevisionRuleVO> revisionRuleVOMap = self.selectAllRevisionMap(); List<OsRevisionRuleVO> versionRuleList = new ArrayList<>(); vrIdList.stream().forEach(vrId->{ OsRevisionRuleVO versionRuleVO = revisionRuleVOMap.getOrDefault(vrId.toLowerCase(Locale.ROOT),null); if(versionRuleVO!=null){ versionRuleList.add(versionRuleVO); } }); return versionRuleList; } /** * æ¥è¯¢åºç¨èå´ * @param vrName çæ¬è§åè±æåç§° * @return @@ -269,6 +365,210 @@ } /** * 导åºéä¸ççæ¬è§å * @param exportFileName 导åºçæä»¶å * @param vrNames éè¦å¯¼åºççæ¬è§ååç§° * @param flag æ§å¶å¯¼åºçå忝å¦åå¯¼å ¥æ¨¡æ¿ä¸è´ * @return */ @Override public String exportVersionRule(String exportFileName, String vrNames, boolean flag) throws PLException { if(Func.isBlank(vrNames)){ throw new PLException("500",new String[]{"请å¾éè¦å¯¼åºççæ¬è§å!"}); } //ç颿²¡ä¼ åç§°ï¼ä½¿ç¨é»è®¤å¯¼åºåç§° exportFileName = Func.isBlank(exportFileName) ? "çæ¬è§å导åº_" + Func.format(new Date(),"yyyy-MM-dd HHmmss.sss"):exportFileName; //设置åå List<String> columns = this.getCloumns(flag); //åexcel String excelPath = LocalFileUtil.getDefaultTempFolder() + File.separator + exportFileName + ".xls"; try { new File(excelPath).createNewFile(); } catch (Throwable e) { throw new VciBaseException(LangBaseUtil.getErrorMsg(e), new String[]{excelPath}, e); } //设置å List<WriteExcelData> excelDataList = new ArrayList<>(); //设置å头 for (int index = 0; index < columns.size(); index++) { excelDataList.add(new WriteExcelData(0,index, columns.get(index))); } //æç §çæ¬è§ååæ¥è¯¢ï¼ç¶åå¤ççæ¬è§åå¯¼åº List<String> vrIdList = Func.toStrList(vrNames); List<OsRevisionRuleVO> revisionRuleVOList = this.getRevisionRuleByIds(vrIdList); if(Func.isEmpty(revisionRuleVOList)){ excelDataList.add(new WriteExcelData(1,1, "æ ¹æ®åç§°æªæ¥è¯¢å°çæ¬è§åä¿¡æ¯ï¼è¯·å·æ°åå°è¯éæ°å¯¼åºï¼")); }else{ for (int i = 0; i < revisionRuleVOList.size(); i++) { OsRevisionRuleVO revisionRuleVO = revisionRuleVOList.get(i); excelDataList.add(new WriteExcelData(i+1,0, revisionRuleVO.getId())); excelDataList.add(new WriteExcelData(i+1,1, revisionRuleVO.getName())); excelDataList.add(new WriteExcelData(i+1,2, revisionRuleVO.getJumpCharacter())); excelDataList.add(new WriteExcelData(i+1,3, revisionRuleVO.getInitialValue())); excelDataList.add(new WriteExcelData(i+1,4, revisionRuleVO.getStepLength())); excelDataList.add(new WriteExcelData(i+1,5, revisionRuleVO.getPrefixion())); excelDataList.add(new WriteExcelData(i+1,6, revisionRuleVO.getSuffix())); excelDataList.add(new WriteExcelData(i+1,7, revisionRuleVO.getDescription())); if(!flag){ excelDataList.add(new WriteExcelData(i+1,8, Func.format(revisionRuleVO.getCreateTime(),"yyyyå¹´MMæddæ¥ hh:mm:ss"))); } } } WriteExcelOption excelOption = new WriteExcelOption(excelDataList); ExcelUtil.writeDataToFile(excelPath, excelOption); return excelPath; } /** * ä¸è½½çæ¬è§åå¯¼å ¥æ¨¡æ¿ * @param exportFileName * @return * @throws PLException */ @Override public String downloadVersionRuleTemplate(String exportFileName) throws Exception { //ç颿²¡ä¼ åç§°ï¼ä½¿ç¨é»è®¤å¯¼åºåç§° exportFileName = Func.isBlank(exportFileName) ? "çæ¬è§åå¯¼å ¥æ¨¡æ¿_" + Func.format(new Date(),"yyyy-MM-dd HHmmss.sss"):exportFileName; //设置åå List<String> columns = this.getCloumns(true); //è®¾ç½®å¿ å¡«å ColumnNameisRed.clear(); ColumnNameisRed.add(0); ColumnNameisRed.add(3); ColumnNameisRed.add(4); //åexcel String excelPath = LocalFileUtil.getDefaultTempFolder() + File.separator + exportFileName + ".xls"; try { new File(excelPath).createNewFile(); } catch (Throwable e) { throw new VciBaseException(LangBaseUtil.getErrorMsg(e), new String[]{excelPath}, e); } //设置å List<WriteExcelData> excelDataList = new ArrayList<>(); //设置å头 for (int index = 0; index < columns.size(); index++) { //夿æ¯å¦ä¸ºå¿ å¡«åï¼ç»å¿ å¡«å设置é¢è² if(ColumnNameisRed.contains(index)){ WriteExcelData excelData = new WriteExcelData(0, index, columns.get(index)); excelData.setFontColor(String.valueOf(HSSFColor.HSSFColorPredefined.RED.getIndex())); excelDataList.add(excelData); }else{ excelDataList.add(new WriteExcelData(0,index, columns.get(index))); } } WriteExcelOption excelOption = new WriteExcelOption(excelDataList); ExcelUtil.writeDataToFile(excelPath, excelOption); return excelPath; } /** * å¯¼å ¥çæ¬è§å * @param file * @return */ @Override public BaseResult importVersionRules(File file) throws Exception { VciBaseUtil.alertNotNull(file,"excelæä»¶"); if(!file.exists()){ throw new VciBaseException("å¯¼å ¥çexcelæä»¶ä¸åå¨,{0}",new String[]{file.getPath()}); } try{ //1ã读åexcelä¸çæ°æ®ï¼ç»æå¯¹è±¡ ReadExcelOption excelOption = new ReadExcelOption(); List<OsRevisionRulePO> poList = ExcelUtil.readDataObjectFromExcel(file, OsRevisionRulePO.class,excelOption,(value, po, fieldName)->{}); //å»é¤é½æ¯ç©ºçæ åµ if(CollectionUtils.isEmpty(poList)){ return BaseResult.fail(ExcelLangCodeConstant.IMPORT_CONTENT_NULL,new String[]{}); } //excelå¤éï¼æ°æ®æ ¡éªï¼dto对象转æ¢ï¼åå¨å¯¹è±¡è½¬æ¢ï¼æ§è¡ä¿å List<OsRevisionRuleDTO> dtoList = new ArrayList<>(); //å½åexcel䏿¯å¦éå¤ç¨çå¤éMap:ï¼keyï¼å¤éçæ¬è§ååï¼valueï¼è¡å·ï¼ Map<String, String> excelReapeat = new HashMap<>(); //æ°æ®åºæ¥è¯¢æ¯å¦æå·²åå¨çæä¸¾åï¼æ¹ä¾¿åç»åå¤éå¤ç List<OsRevisionRuleVO> versionRuleVOList = this.getRevisionRuleByIds(poList.stream().map(OsRevisionRulePO::getId).collect(Collectors.toSet())); List<String> repeatVrId = new ArrayList<>(); if(Func.isNotEmpty(versionRuleVOList)){ repeatVrId = versionRuleVOList.stream().map(OsRevisionRuleVO::getId).collect(Collectors.toList()); } //å¤æå¿ å¡«å±æ§æ¯å¦ä¸ºç©ºåå ¶ä»æ ¡éª List<String> finalRepeatVrId = repeatVrId; poList.stream().forEach(vrPO -> { if(Func.isBlank(vrPO.getId())){//çæ¬è§ååå¤ç©º throw new VciBaseException("第ã"+vrPO.getRowIndex()+"ãè¡ï¼versionrulenameerror"); }else if(excelReapeat.containsKey(vrPO.getId())){//çæ¬è§ååè¡¨æ ¼ä¸å¤é throw new VciBaseException("第ã"+excelReapeat.get(vrPO.getId())+"ãè¡å第ã"+vrPO.getRowIndex()+"ãè¡æ°æ®ï¼åç§°éå¤"); }else if (Func.isNotEmpty(finalRepeatVrId) && finalRepeatVrId.contains(vrPO.getId())){//夿åç§°æ¯å¦ä¸ç³»ç»ä¸éå¤ throw new VciBaseException("第ã"+vrPO.getRowIndex()+"ãè¡ï¼åç§°å¨ç³»ç»ä¸å·²ç»åå¨,请修æ¹!"); } //çæ¬è§ååexcelä¸å¤éå¤ç excelReapeat.put(vrPO.getId(),vrPO.getRowIndex()); OsRevisionRuleDTO revisionRuleDTO = new OsRevisionRuleDTO(); //revisionRuleDTO.setOid(VciBaseUtil.getPk().toUpperCase(Locale.ROOT)); revisionRuleDTO.setId(vrPO.getId()); revisionRuleDTO.setName(vrPO.getName()); revisionRuleDTO.setJumpCharacter(vrPO.getJumpCharacter()); revisionRuleDTO.setInitialValue(vrPO.getInitialValue()); revisionRuleDTO.setStepLength(vrPO.getStepLength()); revisionRuleDTO.setPrefixion(vrPO.getPrefixion()); revisionRuleDTO.setSuffix(vrPO.getSuffix()); revisionRuleDTO.setDescription(vrPO.getDescription()); try { //æ£æ¥çæ¬è§åæ¯å¦åè§ checkVersionRule(revisionRuleDTO); } catch (PLException e) { e.printStackTrace(); throw new VciBaseException(VciBaseUtil.getExceptionMessage(e)); } dtoList.add(revisionRuleDTO); }); //æ§è¡ä¿åæä½ dtoList.stream().forEach(dto->{ try { boolean b = platformClientUtil.getVersionService().addVersionRule(dto2VersionRule(dto)); if(!b){ throw new VciBaseException("save and return false"); } } catch (PLException e) { e.printStackTrace(); throw new VciBaseException("æ§è¡ä¿åæ¶åºç°é误ï¼éè¯¯çæ¬è§å对象å为ï¼ã" + dto.getId() + "ãï¼åå ï¼"+VciBaseUtil.getExceptionMessage(e)); } }); }catch (Exception e){ if(logger.isErrorEnabled()){ logger.error("读åexcelå å®¹æ¶æä¿åç¨æ·ä¿¡æ¯æ¶åºç°äºé误ï¼å ·ä½åå ï¼",VciBaseUtil.getExceptionMessage(e)); } e.printStackTrace(); return BaseResult.fail(VciBaseUtil.getExceptionMessage(e),new String[]{},e); } return BaseResult.success("æä¸¾å¯¼å ¥æåï¼"); } /** * è·åå¯¼åºæå¯¼å ¥æ¨¡æ¿çåå * @param flag æ¯å¦è·åå¯¼å ¥æ¨¡æ¿åå * @return */ private List<String> getCloumns(boolean flag){ if(flag){ return new ArrayList<>( Arrays.asList( "åç§°", "æ ç¾", "è·³è·å符ï¼ä»¥éå·åéï¼", "åå§å¼", "æ¥é¿", "åç¼", "åç¼", "æè¿°" ) ); } return new ArrayList<>( Arrays.asList( "åç§°", "æ ç¾", "è·³è·å符", "åå§å¼", "æ¥é¿", "åç¼", "åç¼", "æè¿°", "å建æ¶é´" ) ); } /** * æ¸ é¤ç¼å */ @Override Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsStatusServiceImpl.java
@@ -1,11 +1,7 @@ package com.vci.web.service.impl; import com.vci.corba.common.PLException; import com.vci.corba.omd.atm.AttributeDef; import com.vci.corba.omd.stm.StatePool; import com.vci.dto.OsAttributeDTO; import com.vci.pagemodel.OsEnumVO; import com.vci.po.OsAttributePO; import com.vci.po.OsStatusPO; import com.vci.starter.poi.bo.ReadExcelOption; import com.vci.starter.poi.bo.WriteExcelData; @@ -365,14 +361,11 @@ statePool.name = id; statePool.ts = Func.format(ts,VciDateUtil.DateTimeMillFormat); statePoolList.add(statePool); boolean res = platformClientUtil.getStatePoolService().deleteStatePool(statePool); if(!res){ throw new PLException("500",new String[]{"å é¤ç¶æå称为ã" + id + "ãçæ°æ®æ¶åºç°é误!"}); } } boolean res = platformClientUtil.getStatePoolService().deleteStatePools(statePoolList.toArray(new StatePool[statePoolList.size()])); //clearCache(); self.selectAllStatusMap(); return true; return res; } /** @@ -386,7 +379,7 @@ statePool.oid = statusDTO.getOid(); statePool.id = ""; statePool.name = statusDTO.getId(); statePool.imagePath = statusDTO.getImagePath(); //statePool.imagePath = statusDTO.getImagePath(); statePool.description = statusDTO.getDescription()==null?"":statusDTO.getDescription(); String userId = WebThreadLocalUtil.getCurrentUserSessionInfoInThread().getUserId(); long now = VciDateUtil.getNowTime(); @@ -435,7 +428,7 @@ OsStatusVO osStatusVO = this.getObjectByOid(oid); excelDataList.add(new WriteExcelData(i.get(),0, osStatusVO.getId())); excelDataList.add(new WriteExcelData(i.get(),1, osStatusVO.getName())); excelDataList.add(new WriteExcelData(i.get(),2, osStatusVO.getImagePath())); //excelDataList.add(new WriteExcelData(i.get(),2, osStatusVO.getImagePath())); excelDataList.add(new WriteExcelData(i.get(),3, osStatusVO.getDescription())); i.getAndIncrement(); }); @@ -493,10 +486,10 @@ private List<String> getCloumns(boolean flag){ if(flag){ return new ArrayList<>( Arrays.asList("åç§°(ä¸è½ä¸ºç©º)", "æ ç¾(对åç§°çè§£é)","å¾ç(è·¯å¾)", "æè¿°(å¯ä»¥ä¸ºç©º)") Arrays.asList("åç§°(ä¸è½ä¸ºç©º)", "æ ç¾(对åç§°çè§£é)"/*,"å¾ç(è·¯å¾)"*/, "æè¿°(å¯ä»¥ä¸ºç©º)") ); } return new ArrayList<>(Arrays.asList("åç§°", "æ ç¾", "å¾ç", "æè¿°")); return new ArrayList<>(Arrays.asList("åç§°", "æ ç¾"/*, "å¾ç"*/, "æè¿°")); } /** @@ -522,7 +515,6 @@ List<StatePool> statePoolList = new ArrayList<>(); //å½åexcel䏿¯å¦éå¤ç¨çå¤éMap:ï¼keyï¼å¤é屿§ï¼valueï¼è¡å·ï¼ Map<String, String> excelReapeat = new HashMap<>(); //å¤æå¿ å¡«å±æ§æ¯å¦ä¸ºç©ºï¼ç¨æ·æ¯å¦å·²åå¨ï¼ä»¥åé¨é¨æ¯å¦å¡«éçæ ¡éªé»è¾ poList.stream().forEach(osStatusPO -> { try { StatePool dbStatePool = platformClientUtil.getStatePoolService().getStatePool(osStatusPO.getId()); @@ -532,14 +524,14 @@ } catch (PLException e) { e.printStackTrace(); logger.error(e.getMessage()); throw new VciBaseException(e.getMessage()); throw new VciBaseException(VciBaseUtil.getExceptionMessage(e)); } if(Func.isBlank(osStatusPO.getId())){//屿§åå¤ç©º throw new VciBaseException("第ã"+osStatusPO.getRowIndex()+"ãè¡ï¼enumnameerror"); if(Func.isBlank(osStatusPO.getId())){//ç¶æåå¤ç©º throw new VciBaseException("第ã"+osStatusPO.getRowIndex()+"ãè¡ï¼statusnameerror"); }else if(!osStatusPO.getId().matches("[a-z A-Z]*")){ // ç¶ææ± åç§°åªè½ä¸ºè±æåæ¯ throw new VciBaseException("åç§°åªè½ä¸ºè±æï¼"); }else if(excelReapeat.containsKey(osStatusPO.getId())){//屿§åè¡¨æ ¼ä¸å¤é }else if(excelReapeat.containsKey(osStatusPO.getId())){//ç¶æåè¡¨æ ¼ä¸å¤é throw new VciBaseException("第ã"+excelReapeat.get(osStatusPO.getId())+"ãè¡å第ã"+osStatusPO.getRowIndex()+"ãè¡æ°æ®ï¼åç§°éå¤"); } //ç¶æåexcelä¸å¤éå¤ç @@ -548,7 +540,7 @@ osStatusDTO.setOid(VciBaseUtil.getPk().toUpperCase(Locale.ROOT)); osStatusDTO.setId(osStatusPO.getId()); osStatusDTO.setName(osStatusPO.getName()); osStatusDTO.setImagePath(osStatusPO.getImagePath()); //osStatusDTO.setImagePath(osStatusPO.getImagePath()); osStatusDTO.setDescription(osStatusPO.getDescription()); statePoolList.add(statusDTO2DO(osStatusDTO)); @@ -562,7 +554,7 @@ e.printStackTrace(); return BaseResult.fail(VciBaseUtil.getExceptionMessage(e),new String[]{},e); } return BaseResult.success("æä¸¾å¯¼å ¥æåï¼"); return BaseResult.success("ç¶æå¯¼å ¥æåï¼"); } /**