From 6c391d600182930913b43e2f63b7d3cfa131cfc2 Mon Sep 17 00:00:00 2001 From: ludc Date: 星期三, 14 八月 2024 16:27:58 +0800 Subject: [PATCH] 业务类型创建索引、导出、导入等接口,属性池导入接口调整上传。 --- Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsBtmServiceImpl.java | 367 +++++++++++++++++++++++++++--- Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsLifeCycleServiceImpl.java | 2 Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/pagemodel/OsBtmTypeVO.java | 26 ++ Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/WebBtmTypeController.java | 83 ++++++ Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsBtmServiceI.java | 34 ++ Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsAttributeServiceI.java | 3 Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/OsAttributeController.java | 2 Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/po/OsBtmTypePO.java | 108 +++++++++ Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsAttributeServiceImpl.java | 32 ++ Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/model/IndexObject.java | 28 ++ Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsLinkTypeServiceImpl.java | 6 11 files changed, 629 insertions(+), 62 deletions(-) diff --git a/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/model/IndexObject.java b/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/model/IndexObject.java new file mode 100644 index 0000000..c4d6f1b --- /dev/null +++ b/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/model/IndexObject.java @@ -0,0 +1,28 @@ +package com.vci.model; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author ludc + * @date 2024/8/13 13:26 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +public class IndexObject { + + private String oid; + + private String typeName; + + private String attrNames; + + private String description; + + private String indexName; + + private String createTime; + +} diff --git a/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/pagemodel/OsBtmTypeVO.java b/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/pagemodel/OsBtmTypeVO.java index 6dc7487..94ff8ad 100644 --- a/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/pagemodel/OsBtmTypeVO.java +++ b/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/pagemodel/OsBtmTypeVO.java @@ -36,6 +36,11 @@ private String tableName; /** + * 鐖朵笟鍔$被鍨� + */ + private String fName; + + /** * 鎻忚堪 */ private String description; @@ -176,10 +181,31 @@ private Date ts; /** + * 鍖呭惈灞炴�у悕绉� + */ + private String[] apNameArray; + + /** * 鍖呭惈灞炴�� */ private List<OsBtmTypeAttributeVO> attributes; + public void setApNameArray(String[] apNameArray) { + this.apNameArray = apNameArray; + } + + public String[] getApNameArray() { + return apNameArray; + } + + public void setfName(String fName) { + this.fName = fName; + } + + public String getfName() { + return fName; + } + public void setDelimiter(String delimiter) { this.delimiter = delimiter; } diff --git a/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/po/OsBtmTypePO.java b/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/po/OsBtmTypePO.java new file mode 100644 index 0000000..2d42882 --- /dev/null +++ b/Source/plt-web/plt-web-parent/plt-web-api/src/main/java/com/vci/po/OsBtmTypePO.java @@ -0,0 +1,108 @@ +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 yuxc + * @date 2024/7/30 16:27 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +public class OsBtmTypePO extends BaseModelVO { + + /** + * 绂佹淇敼杩欎釜鍊� + */ + private static final long serialVersionUID = -2239512786206928201L; + + /** + * 鎵�鍦ㄦ暟鎹 + */ + @ExcelColumn(rowIndexColumn = true,value = "") + private String rowIndex; + + /** + * 鍚嶇О + */ + @ExcelColumn(value="鍚嶇О",nullable = false) + private String name; + + /** + * 鏍囩 + */ + @ExcelColumn(value="鏍囩") + private String lable; + + /** + * 鎻忚堪 + */ + @ExcelColumn(value="鎻忚堪") + private String description; + + /** + * 缁ф壙鑷� + */ + @ExcelColumn(value="缁ф壙鑷�") + private String fName; + + /** + * 瀹炵幇绫� + */ + @ExcelColumn(value="瀹炵幇绫�") + private String implClass; + + /** + * 鐗堟湰瑙勫垯 + */ + @ExcelColumn(value="鐗堟湰瑙勫垯") + private short revLevel; + + /** + * 鐗堟湰鍙疯鍒� + */ + @ExcelColumn(value="鐗堟湰鍙疯鍒�") + private String revRuleName; + + /** + * 鏄惁鎵嬪伐杈撳叆 + */ + @ExcelColumn(value="鏄惁鎵嬪伐杈撳叆") + private String revInput; + + /** + * 鍒嗛殧绗� + */ + @ExcelColumn(value="鍒嗛殧绗�") + private String delimiter; + + /** + * 鐗堟鍙疯鍒� + */ + @ExcelColumn(value="鐗堟鍙疯鍒�") + private short verRuleName; + + /** + * btmItemsTo + */ + @ExcelColumn(value="鐢熷懡鍛ㄦ湡") + private String lifeCycle; + + /** + * 澶囬�夌敓鍛藉懆鏈熷垪琛� + */ + @ExcelColumn(value="澶囬�夌敓鍛藉懆鏈熷垪琛�",nullable = false) + private String lifeCycles; + + /** + * 灞炴�у垪琛� + */ + @ExcelColumn(value="灞炴�у垪琛�") + private String apNameArray; + +} diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/OsAttributeController.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/OsAttributeController.java index ae35b5d..e4a6f13 100644 --- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/OsAttributeController.java +++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/OsAttributeController.java @@ -214,7 +214,7 @@ try { file.transferTo(new File(excelFileName)); if (file != null) { - return attributeService.importAttributes(file1); + return attributeService.importAttributes(file1,false); } else { return BaseResult.fail(FrameWorkLangCodeConstant.IMPORT_FAIL, new String[]{"鏃犲鍏ョ殑鏂囦欢"}); } diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/WebBtmTypeController.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/WebBtmTypeController.java index 7e6b5cf..5e6f1f0 100644 --- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/WebBtmTypeController.java +++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/WebBtmTypeController.java @@ -4,6 +4,7 @@ import com.vci.corba.omd.btm.BizType; import com.vci.corba.omd.ltm.LinkType; import com.vci.dto.OsBtmTypeDTO; +import com.vci.model.IndexObject; import com.vci.starter.web.annotation.controller.VciUnCheckRight; import com.vci.starter.web.annotation.log.VciBusinessLog; import com.vci.starter.web.enumpck.BooleanEnum; @@ -30,6 +31,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletResponse; import java.io.FileNotFoundException; @@ -39,6 +41,7 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import java.util.Map; import java.util.stream.Collectors; import static com.vci.constant.FrameWorkBusLangCodeConstant.DATA_OID_NOT_EXIST; @@ -171,7 +174,7 @@ * btmTypeDTO 閾炬帴绫诲瀷鐨勪繚瀛樺璞� * @return 淇濆瓨缁撴灉 */ - @PostMapping("/addBtmTypes") + /*@PostMapping("/addBtmTypes") public BaseResult addBtmTypes(@RequestBody List<BizType> bizTypes){ try { return btmService.addBtmTypes(bizTypes) ? BaseResult.success("涓氬姟绫诲瀷鎵归噺鍒涘缓鎴愬姛锛�"):BaseResult.fail("涓氬姟绫诲瀷鎵归噺鍒涘缓澶辫触锛�"); @@ -181,7 +184,7 @@ logger.error(exceptionMessage); return BaseResult.fail(exceptionMessage); } - } + }*/ /** * 淇敼涓氬姟绫诲瀷 @@ -318,6 +321,82 @@ } /** + * 鑾峰彇褰撳墠涓氬姟绫诲瀷涓嬬殑绱㈠紩 + * @return + * @throws PLException + */ + @GetMapping("/getIndexByCondition") + public BaseResult getIndexByCondition(BaseQueryObject baseQueryObject){ + try { + return BaseResult.dataList(btmService.getIndexByCondition(baseQueryObject.getConditionMap())); + } catch (Exception e) { + e.printStackTrace(); + String exceptionMessage = "鏌ヨ褰撳墠涓氬姟绫诲瀷涓嬬殑绱㈠紩鏃舵椂鍑虹幇閿欒锛屽師鍥狅細" + VciBaseUtil.getExceptionMessage(e); + logger.error(exceptionMessage); + return BaseResult.fail(exceptionMessage); + } + } + + /** + * 鍒涘缓绱㈠紩 + * @param indexObjectList + * @return + */ + @PostMapping("/addIndex") + public BaseResult addIndex(@RequestBody List<IndexObject> indexObjectList){ + try { + return btmService.addIndex(indexObjectList) ? BaseResult.success("鍒涘缓绱㈠紩鎴愬姛!"):BaseResult.fail("鍒涘缓绱㈠紩澶辫触!"); + } catch (Exception e) { + e.printStackTrace(); + String exceptionMessage = "鍒涘缓绱㈠紩鏃舵椂鍑虹幇閿欒锛屽師鍥狅細" + VciBaseUtil.getExceptionMessage(e); + logger.error(exceptionMessage); + return BaseResult.fail(exceptionMessage); + } + } + + /** + * 鍒犻櫎绱㈠紩 + * @param btmName + * @param indexName + * @return + */ + @DeleteMapping("/delIndex") + public BaseResult delIndex(String btmName,String indexName){ + try { + return btmService.delIndex(btmName,indexName) ? BaseResult.success("鍒犻櫎绱㈠紩鎴愬姛!"):BaseResult.fail("鍒犻櫎绱㈠紩澶辫触!"); + } catch (Exception e) { + e.printStackTrace(); + String exceptionMessage = "鍒犻櫎绱㈠紩鏃舵椂鍑虹幇閿欒锛屽師鍥狅細" + VciBaseUtil.getExceptionMessage(e); + logger.error(exceptionMessage); + return BaseResult.fail(exceptionMessage); + } + } + + /** + * 瀵煎嚭涓氬姟绫诲瀷 + * name 閾炬帴绫诲瀷鍚嶇О + * @return + */ + @GetMapping("/expData") + public void expData(String name,HttpServletResponse response) throws PLException, IOException { + btmService.expData(name, response); + } + + /** + * 瀵煎叆涓氬姟绫诲瀷 + * @param file 涓婁紶鐨勬枃浠� + * @return + */ + @PostMapping("/impData") + @VciUnCheckRight + public BaseResult impData(MultipartFile file){try { + return btmService.impData(file); + }catch (Throwable e) { + throw new VciBaseException(VciBaseUtil.getExceptionMessage(e),new String[0],e); + } + } + + /** * 鑾峰彇涓氬姟绫诲瀷鍖呭惈鐨勫睘鎬у叏閮ㄤ负灏忓啓 * @param btmId 涓氬姟绫诲瀷鍚嶇О * @return 灞炴�х殑淇℃伅 diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsAttributeServiceI.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsAttributeServiceI.java index 2f45519..f2c91dc 100644 --- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsAttributeServiceI.java +++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsAttributeServiceI.java @@ -166,9 +166,10 @@ /** * 瀵煎叆灞炴�� * @param file + * @param isContinue 绯荤粺涓嚭鐜伴噸澶嶆槸鍚﹁烦杩囨姤閿欑户缁墽琛� * @return */ - BaseResult importAttributes(File file) throws Exception; + BaseResult importAttributes(File file,boolean isContinue/*绯荤粺涓嚭鐜伴噸澶嶆槸鍚﹁烦杩囨姤閿欑户缁墽琛�*/) throws Exception; /** * 鏄惁榛樿鐨勫睘鎬� diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsBtmServiceI.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsBtmServiceI.java index e8abcb5..1256d2a 100644 --- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsBtmServiceI.java +++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsBtmServiceI.java @@ -3,6 +3,7 @@ import com.vci.corba.common.PLException; import com.vci.corba.omd.btm.BizType; import com.vci.dto.OsBtmTypeDTO; +import com.vci.model.IndexObject; import com.vci.pagemodel.OsBtmTypeAttributeVO; import com.vci.pagemodel.OsBtmTypeVO; import com.vci.pagemodel.OsERVO; @@ -11,7 +12,9 @@ import com.vci.starter.web.pagemodel.DataGrid; import com.vci.starter.web.pagemodel.PageHelper; import com.vci.starter.web.pagemodel.Tree; +import org.springframework.web.multipart.MultipartFile; +import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.text.ParseException; import java.util.Collection; @@ -187,7 +190,7 @@ * @param bizTypes * @return */ - boolean addBtmTypes(List<BizType> bizTypes); + //boolean addBtmTypes(List<BizType> bizTypes); /** * 淇敼涓氬姟绫诲瀷 @@ -249,26 +252,39 @@ BaseResult deleteAllType() throws PLException; /** - * 鏍规嵁涓氬姟绫诲瀷鍚嶇О鍜屽叾涓嬬殑灞炴�у悕绉拌幏鍙栦篃鏈夌殑绱㈠紩 - * @param btmName - * @param attrName + * 鏍规嵁涓氬姟绫诲瀷鍚嶇О鍜岀储寮曞悕绉版煡璇㈣幏鍙栧凡鏈夌殑绱㈠紩 + * @param conditionMap 鏍规嵁鏌ヨ鏉′欢浼犲弬: typename:涓氬姟绫诲瀷鍚�;indexname:绱㈠紩鍚� * @return */ - List<String> getIndexByBtmAndAttrName(String btmName,String attrName); + List<IndexObject> getIndexByCondition(Map<String,String> conditionMap) throws PLException; /** * 鏍规嵁涓氬姟绫诲瀷鍚嶇О鍜屽叾涓嬬殑灞炴�у悕绉板垹闄ょ储寮� * @param btmName - * @param attrName + * @param indexName * @return */ - boolean delIndexByBtmAndAttrName(String btmName,String attrName); + boolean delIndex(String btmName,String indexName) throws PLException; /** * 缁欎笟鍔$被鍨嬩笅鐨勬寚瀹氬睘鎬ф柊澧炵储寮� - * @param addMap 濡傦細(btmName:part attrName:name indexName: PARTNAMEINDEX) + * @param indexObjectList * @return */ - boolean addIndex(Map<String,String> addMap); + boolean addIndex(List<IndexObject> indexObjectList) throws PLException; + + /** + * 瀵煎嚭涓氬姟绫诲瀷 + * name 涓氬姟绫诲瀷鍚嶇О + * @return 鍒涘缓缁撴灉 + */ + void expData(String oid, HttpServletResponse response) throws PLException, IOException; + + /** + * 瀵煎叆涓氬姟绫诲瀷 + * @param file 涓婁紶鐨勬枃浠� + * @return + */ + BaseResult impData(MultipartFile file) throws Exception; } diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsAttributeServiceImpl.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsAttributeServiceImpl.java index c95d0bf..302d878 100644 --- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsAttributeServiceImpl.java +++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsAttributeServiceImpl.java @@ -479,6 +479,10 @@ ); //灞炴�ц嫳鏂囧悕绉版牎楠岋紙鍒ょ┖銆佺郴缁熶腑鍒ら噸銆佹槸鍚﹀叧閿瓧銆佹槸鍚﹀悎瑙勭瓑锛� checkName(osAttributeDTO.getId()); + //妫�鏌ュ睘鎬у悕鏄惁宸插瓨鍦ㄤ笌绯荤粺涓� + if(platformClientUtil.getAttributeService().checkRowIsExists(osAttributeDTO.getId())){ + throw new PLException("500",new String[]{"灞炴�у悕绉般��" + osAttributeDTO.getId() + "銆戝湪绯荤粺涓凡瀛樺湪!"}); + } //妫�鏌ラ粯璁ゅ�间笌灞炴�х被鍨嬫槸鍚﹀尮閰� checkDefValue(osAttributeDTO); //osAttributeDTO.setOid(VciBaseUtil.getPk().toUpperCase(Locale.ROOT)); @@ -693,9 +697,9 @@ throw new PLException("500",new String[]{"灞炴�у悕鏃犳晥,鍘熷洜锛氬睘鎬у悕鏄暟鎹簱鍏抽敭瀛�!"}); } //妫�鏌ュ睘鎬у悕鏄惁宸插瓨鍦ㄤ笌绯荤粺涓� - if(platformClientUtil.getAttributeService().checkRowIsExists(abName)){ + /*if(platformClientUtil.getAttributeService().checkRowIsExists(abName)){ throw new PLException("500",new String[]{"灞炴�у悕绉般��" + abName + "銆戝湪绯荤粺涓凡瀛樺湪!"}); - } + }*/ } /** @@ -997,10 +1001,12 @@ /** * 瀵煎叆灞炴�� * @param file + * @param isContinue 绯荤粺涓嚭鐜伴噸澶嶆槸鍚﹁烦杩囨姤閿欑户缁墽琛� * @return + * @throws Exception */ @Override - public BaseResult importAttributes(File file) throws Exception{ + public BaseResult importAttributes(File file, boolean isContinue) throws Exception{ VciBaseUtil.alertNotNull(file,"excel鏂囦欢"); if(!file.exists()){ throw new VciBaseException("瀵煎叆鐨別xcel鏂囦欢涓嶅瓨鍦�,{0}",new String[]{file.getPath()}); @@ -1017,13 +1023,29 @@ List<OsAttributeDTO> dtoList = new ArrayList<>(); //褰撳墠excel涓槸鍚﹂噸澶嶇敤鐨勫垽閲峂ap:锛坘ey锛氬垽閲嶅睘鎬э紝value锛氳鍙凤級 Map<String, String> excelReapeat = new HashMap<>(); - poList.stream().forEach(osAttributePO -> { + for (int i = 0; i < poList.size(); i++) { + OsAttributePO osAttributePO = poList.get(i); if(Func.isBlank(osAttributePO.getId())){//灞炴�у悕鍒ょ┖ throw new VciBaseException("绗��"+osAttributePO.getRowIndex()+"銆戣锛宎ttrnameerror"); }else if(Func.isBlank(osAttributePO.getAttributeDataType())){ throw new VciBaseException("绗��"+osAttributePO.getRowIndex()+"銆戣锛宼ypeerror"); }else if(excelReapeat.containsKey(osAttributePO.getId())){//灞炴�у悕琛ㄦ牸涓垽閲� throw new VciBaseException("绗��"+excelReapeat.get(osAttributePO.getId())+"銆戣鍜岀銆�"+osAttributePO.getRowIndex()+"銆戣鏁版嵁锛屽睘鎬у悕閲嶅"); + }else { + try { + if(platformClientUtil.getAttributeService().checkRowIsExists(osAttributePO.getId())){ + throw new PLException("500",new String[]{"灞炴�у悕绉般��" + osAttributePO.getId() + "銆戝湪绯荤粺涓凡瀛樺湪!"}); + } + } catch (PLException e) { + e.printStackTrace(); + String errorMsg = "涓庣郴缁熶腑灞炴�у悕鏌ラ噸鏃跺嚭鐜伴敊璇�,鍘熷洜锛�" + VciBaseUtil.getExceptionMessage(e); + logger.error(errorMsg); + //鏄惁璺宠繃褰撴湡閲嶅鏁版嵁 + if(isContinue){ + continue; + } + throw new VciBaseException(errorMsg); + } } //灞炴�у悕鏍¢獙 try { @@ -1076,7 +1098,7 @@ throw new VciBaseException(VciBaseUtil.getExceptionMessage(e)); } dtoList.add(osAttributeDTO); - }); + } //鎵ц淇濆瓨鎿嶄綔 dtoList.stream().forEach(dto->{ try { diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsBtmServiceImpl.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsBtmServiceImpl.java index 22c0296..aace24a 100644 --- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsBtmServiceImpl.java +++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsBtmServiceImpl.java @@ -1,12 +1,21 @@ package com.vci.web.service.impl; +import cn.hutool.core.io.FileUtil; +import cn.hutool.core.util.ZipUtil; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; +import com.vci.client.common.oq.OQTool; import com.vci.client.common.providers.ClientServiceProvider; import com.vci.client.mw.ClientSessionUtility; +import com.vci.common.qt.object.Condition; +import com.vci.common.qt.object.QueryTemplate; +import com.vci.common.utility.ObjectUtility; +import com.vci.constant.FrameWorkLangCodeConstant; import com.vci.corba.common.PLException; import com.vci.corba.omd.atm.AttributeDef; import com.vci.corba.omd.btm.BizType; +import com.vci.corba.omd.data.AttributeValue; +import com.vci.corba.omd.data.BusinessObject; import com.vci.corba.omd.etm.EnumType; import com.vci.corba.omd.lcm.Bound; import com.vci.corba.omd.lcm.LifeCycle; @@ -15,10 +24,19 @@ import com.vci.corba.omd.vrm.VersionRule; import com.vci.dto.OsBtmTypeDTO; import com.vci.dto.OsBtmTypeLinkAttributesDTO; +import com.vci.model.IndexObject; import com.vci.omd.constants.AttributeConstants; import com.vci.omd.constants.FileObjectType; import com.vci.omd.objects.OtherInfo; +import com.vci.omd.utils.ObjectTool; import com.vci.pagemodel.*; +import com.vci.po.OsBtmTypePO; +import com.vci.po.OsLinkTypePO; +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.enumpck.BooleanEnum; import com.vci.starter.web.exception.VciBaseException; @@ -26,15 +44,10 @@ import com.vci.starter.web.pagemodel.DataGrid; import com.vci.starter.web.pagemodel.PageHelper; import com.vci.starter.web.pagemodel.Tree; +import com.vci.starter.web.util.*; import com.vci.starter.web.util.BeanUtil; -import com.vci.starter.web.util.VciBaseUtil; -import com.vci.starter.web.util.VciDateUtil; -import com.vci.starter.web.util.WebThreadLocalUtil; import com.vci.web.service.*; -import com.vci.web.util.ConcurrentDateFormat; -import com.vci.web.util.Func; -import com.vci.web.util.PlatformClientUtil; -import com.vci.web.util.WebUtil; +import com.vci.web.util.*; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -42,8 +55,11 @@ import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; +import org.springframework.web.multipart.MultipartFile; +import javax.servlet.http.HttpServletResponse; import javax.swing.*; +import java.io.File; import java.io.IOException; import java.text.ParseException; import java.text.SimpleDateFormat; @@ -192,7 +208,7 @@ } vo.setDescription(btmItem.description); vo.setId(btmItem.name); - vo.setName(btmItem.label); + vo.setName(btmItem.label); vo.setLifeCycleId(btmItem.lifeCycle); vo.setAbstractFlag(btmItem.isAbstract); vo.setImplClass(btmItem.implClass); @@ -202,11 +218,13 @@ vo.setTableName(VciBaseUtil.getTableName(vo.getId())); vo.setInputRevisionFlag(btmItem.revInput); vo.setDelimiter(btmItem.delimiter); + vo.setfName(btmItem.fName); if(StringUtils.isNotBlank(vo.getRevisionRuleId()) || vo.isInputRevisionFlag()){ vo.setRevisionFlag(true); } vo.setVersionRule(String.valueOf(btmItem.verRuleName)); vo.setSubLifeCycleId(Arrays.stream(btmItem.lifeCycles).collect(Collectors.joining(","))); + vo.setApNameArray(btmItem.apNameArray); List<OsAttributeVO> attributeVOS = attributeService.listAttrByIds(Arrays.stream(btmItem.apNameArray).collect(Collectors.toList())); List<OsBtmTypeAttributeVO> btmTypeAttributeVOS = new ArrayList<>(); Optional.ofNullable(attributeVOS).orElseGet(()->new ArrayList<>()).stream().forEach(attributeVO->{ @@ -580,18 +598,20 @@ public List<Tree> getTreeBizTypes() throws PLException { List<Tree> rootTreeList = new ArrayList<>(); BizType[] bizTypes = getBizTypes(""); - BizType btItem = null; - for(int i = 0; i < bizTypes.length; i++){ - btItem = bizTypes[i]; - if(btItem.fName.equals("")){ + OsBtmTypeVO osBtmTypeVO = null; + List<OsBtmTypeVO> osBtmTypeVOS = btmDO2VOs(Arrays.asList(bizTypes)); + for(int i = 0; i < osBtmTypeVOS.size(); i++){ + osBtmTypeVO = osBtmTypeVOS.get(i); + + if(osBtmTypeVO.getfName().equals("")){ Tree tree = new Tree(); - tree.setOid(btItem.oid); + tree.setOid(osBtmTypeVO.getOid()); tree.setParentName(null); tree.setParentId(null); tree.setLeaf(true); - tree.setText(btItem.description); - tree.setAttributes(WebUtil.objectToMapString(btItem)); - tree.setChildren(getChildren(bizTypes,btItem)); + tree.setText(osBtmTypeVO.getDescription()); + tree.setAttributes(WebUtil.objectToMapString(osBtmTypeVO)); + tree.setChildren(getChildren(osBtmTypeVOS,osBtmTypeVO)); rootTreeList.add(tree); } } @@ -734,7 +754,7 @@ * @param bizTypes * @return */ - @Override +/* @Override public boolean addBtmTypes(List<BizType> bizTypes) { VciBaseUtil.alertNotNull(bizTypes,"鍒涘缓鐨勪笟鍔$被鍨嬪璞″垪琛�"); bizTypes.stream().forEach(bizType->{ @@ -747,9 +767,8 @@ throw new VciBaseException(exceptionMessage); } }); - return true; - } + }*/ /** * 妫�鏌ヤ笟鍔$被鍨嬪悕绉版槸鍚﹀悎瑙� @@ -809,7 +828,6 @@ if (dbBizType.revLevel == 1 && dto.getRevLevel()==0) { throw new PLException("500",new String[]{"鐗堟湰鍙樻洿閿欒锛氫笉鑳戒粠涓�绾у彉涓轰笉鍙慨璁�"}); } - if (dbBizType.revLevel == 2 && (dto.getRevLevel() == 1 || dto.getRevLevel() == 0)) { throw new PLException("500",new String[]{"鐗堟湰鍙樻洿閿欒锛氫笉鑳戒粠浜岀骇鍙樹负涓�绾ф垨涓嶅彲淇"}); } @@ -1119,35 +1137,304 @@ } /** - * 鏍规嵁涓氬姟绫诲瀷鍚嶇О鍜屽叾涓嬬殑灞炴�у悕绉拌幏鍙栦篃鏈夌殑绱㈠紩 - * @param btmName - * @param attrName + * 鏍规嵁涓氬姟绫诲瀷鍚嶇О鍜屽叾涓嬬殑灞炴�у悕绉拌幏鍙栧凡鏈夌殑绱㈠紩 + * @param conditionMap 鏍规嵁鏌ヨ鏉′欢浼犲弬: typename:涓氬姟绫诲瀷鍚�; * @return */ @Override - public List<String> getIndexByBtmAndAttrName(String btmName, String attrName) { - return null; + public List<IndexObject> getIndexByCondition(Map<String,String> conditionMap) throws PLException { + if(Func.isEmpty(conditionMap)){ + return new ArrayList<>(); + } + List<String> indexNameList = new ArrayList<String>(); + QueryTemplate qtl = new QueryTemplate(); + List<String> list = new ArrayList<String>(); + list.add("*"); + qtl.setBtmType("indexobject"); + qtl.setClauseList(list); + qtl.setId("p"); + qtl.setType("btm"); + qtl.setRightFlag(false); + Condition condition = OQTool.getCondition(conditionMap); + qtl.setCondition(condition); + //HashMap<String, String> indexmap = new HashMap<String, String>(); + BusinessObject findBTMObjects[] = platformClientUtil.getQueryService().findBTMObjects(qtl.getId(), OQTool.qtTOXMl(qtl).asXML()); + List<IndexObject> indexObjects = new ArrayList<>(); + for(int i = 0; i < findBTMObjects.length; i++) { + BusinessObject findBTMObject = findBTMObjects[i]; + IndexObject indexObject = new IndexObject(); + indexObject.setOid(findBTMObject.oid); + indexObject.setDescription(findBTMObject.description); + indexObject.setCreateTime(Func.format(new Date(findBTMObject.createTime),DateUtil.PATTERN_DATE)); + indexObject.setIndexName(ObjectTool.getBOAttributeValue(findBTMObject,"indexname")); + indexObject.setTypeName(ObjectTool.getBOAttributeValue(findBTMObject,"typename")); + indexObject.setAttrNames(ObjectTool.getBOAttributeValue(findBTMObject,"attrname")); + indexObjects.add(indexObject); + } + return indexObjects; } /** * 鏍规嵁涓氬姟绫诲瀷鍚嶇О鍜屽叾涓嬬殑灞炴�у悕绉板垹闄ょ储寮� * @param btmName - * @param attrName + * @param indexName * @return */ @Override - public boolean delIndexByBtmAndAttrName(String btmName, String attrName) { - return false; + public boolean delIndex(String btmName, String indexName) throws PLException { + VciBaseUtil.alertNotNull(btmName,"涓氬姟绫诲瀷鍚�",indexName,"绱㈠紩鍚�"); + Map<String, String> conditionMap = new HashMap<>(); + conditionMap.put("typename",btmName); + conditionMap.put("indexname",indexName); + List<IndexObject> bo2 = getIndexByCondition(conditionMap); + if(bo2!=null && bo2.size()>0) { + String[] indexAttr = {indexName}; + + boolean alterFlag = platformClientUtil.getBtmService().dropIndex(btmName, indexAttr); + + if (!alterFlag) { + return false; + } + for (int i = 0; i < bo2.size(); i++) { + String oid = bo2.get(i).getOid(); + BusinessObject bo = platformClientUtil.getBOFactoryService().readBusinessObject(oid, "indexobject"); + platformClientUtil.getBOFactoryService().deleteBusinessObject(bo,1); + } + } + return true; } /** * 缁欎笟鍔$被鍨嬩笅鐨勬寚瀹氬睘鎬ф柊澧炵储寮� - * @param addMap 濡傦細(btmName:part attrName:name indexName: PARTNAMEINDEX) + * @param indexObjectList * @return */ @Override - public boolean addIndex(Map<String, String> addMap) { - return false; + public boolean addIndex(List<IndexObject> indexObjectList) throws PLException { + VciBaseUtil.alertNotNull(indexObjectList,"鏂板鐨勭储寮曚俊鎭�"); + String btmName = indexObjectList.get(0).getTypeName(); + String indexNames = indexObjectList.stream().map(IndexObject::getIndexName).collect(Collectors.joining()); + String[] oldindexAttr = {indexNames}; + BusinessObject bo; + List<BusinessObject> boList = new ArrayList<>(); + //鍏堟煡璇㈠綋鍓嶆坊鍔犵储寮曟槸鍚﹀凡缁忓瓨鍦紝濡傛灉瀛樺湪灏卞厛鍒犻櫎鍐嶆柊澧炲疄鐜版浛鎹㈡搷浣� + Map<String, String> conditionMap = new HashMap<>(); + conditionMap.put("typename",btmName); + List<IndexObject> indexObjects = getIndexByCondition(conditionMap); + if(indexObjects!=null && indexObjects.size()>0){ + //绱㈠紩涓嶅瓨鍦ㄦ椂鍒犻櫎灏变細鎶ラ敊绱㈠紩涓嶅瓨鍦紝鎵�浠ヨ繖閲屾湁绱㈠紩鎵嶅幓鍒犻櫎 + boolean b = platformClientUtil.getBtmService().dropIndex(btmName, oldindexAttr); + if(b){ + for(int i = 0; i < indexObjects.size(); i ++){ + String oid = (String) indexObjects.get(i).getOid(); + bo = platformClientUtil.getBOFactoryService().readBusinessObject(oid,"indexobject"); + platformClientUtil.getBOFactoryService().deleteBusinessObject(bo,1); + } + } + } + + for(int i = 0; i < indexObjectList.size(); i ++){ + IndexObject indexObject = indexObjectList.get(i); + //bo = platformClientUtil.getBOFService().initBusinessObject("indexobject"); + bo = boService.createCBOByBtmName("indexobject"); + List<AttributeValue> attributeValues = new ArrayList<>(); + attributeValues.add(new AttributeValue("typename", btmName)); + attributeValues.add(new AttributeValue("indexname", indexObject.getIndexName())); + attributeValues.add(new AttributeValue("attrname", indexObject.getAttrNames())); + bo.newAttrValList = attributeValues.toArray(new AttributeValue[attributeValues.size()]); + bo.description = indexObject.getDescription(); + String[] indexAttr = {indexObject.getIndexName(),indexObject.getAttrNames()}; + //缁欐寚瀹氫笟鍔$被鍨嬬殑鎸囧畾灞炴�у垱寤虹储寮� + boolean alterFlag = platformClientUtil.getBtmService().addIndex(btmName, indexAttr); + //绱㈠紩鍒涘缓鎴愬姛涔嬪悗锛岄渶瑕佸瓨鍌ㄦ垚鍔熺储寮曞埌绱㈠紩琛ㄤ腑 + if(!alterFlag){ + return false; + } + boList.add(bo); + //娣诲姞绱㈠紩淇℃伅鍒扮储寮曠殑涓氬姟琛ㄤ腑 + //platformClientUtil.getBOFactoryService().createBusinessObject(bo,false,false); + } + //娣诲姞绱㈠紩淇℃伅鍒扮储寮曠殑涓氬姟琛ㄤ腑 + platformClientUtil.getBOFactoryService().batchCreateBusinessObject(boList.toArray(new BusinessObject[boList.size()]),false,false); + return true; + } + + /** + * 瀵煎嚭涓氬姟绫诲瀷 + * name 涓氬姟绫诲瀷鍚嶇О + * @return 鍒涘缓缁撴灉 + */ + @Override + public void expData(String names, HttpServletResponse response) throws PLException, IOException { + String defaultTempFolder = LocalFileUtil.getDefaultTempFolder(); + //鍐檈xcel + String excelPath = defaultTempFolder + File.separator + "btm.xls"; + //璁剧疆鍒楀悕 + List<String> columns = new ArrayList<>( + Arrays.asList("绫诲瀷鍚嶇О", "鏍囩", "缁ф壙鑷�", "瀹炵幇绫�", "鎻忚堪", "鐗堟湰瑙勫垯", "鐗堟湰鍙疯鍒�", + "鏄惁鎵嬪伐杈撳叆","鍒嗛殧绗�", "鐗堟鍙疯鍒�","鐢熷懡鍛ㄦ湡", "澶囬�夌敓鍛藉懆鏈熷垪琛�","灞炴�у垪琛�") + ); + try { + new File(excelPath).createNewFile(); + //璁剧疆鍒� + List<WriteExcelData> excelDataList = new ArrayList<>(); + //璁剧疆鍒楀ご + for (int index = 0; index < columns.size(); index++) { + excelDataList.add(new WriteExcelData(0,index, columns.get(index))); + } + HashSet<String> attributes = new HashSet<>(); + int i = 0; + for (String name : names.split(",")) { + BizType bizType = platformClientUtil.getBtmService().getBizTypeByName(name); + excelDataList.add(new WriteExcelData(i+1,0, bizType.name)); + excelDataList.add(new WriteExcelData(i+1,1, bizType.label)); + excelDataList.add(new WriteExcelData(i+1,2, bizType.fName)); + excelDataList.add(new WriteExcelData(i+1,3, bizType.implClass)); + excelDataList.add(new WriteExcelData(i+1,4, bizType.description)); + excelDataList.add(new WriteExcelData(i+1,5, bizType.revLevel)); + excelDataList.add(new WriteExcelData(i+1,6, bizType.revRuleName)); + excelDataList.add(new WriteExcelData(i+1,7, bizType.revInput)); + excelDataList.add(new WriteExcelData(i+1,8, bizType.delimiter)); + excelDataList.add(new WriteExcelData(i+1,9, bizType.verRuleName)); + excelDataList.add(new WriteExcelData(i+1,10, bizType.lifeCycle)); + excelDataList.add(new WriteExcelData(i+1,11, String.join(",",bizType.lifeCycles))); + excelDataList.add(new WriteExcelData(i+1,12, String.join(",",bizType.apNameArray))); + attributes.addAll(Arrays.asList(bizType.apNameArray)); + i++; + } + WriteExcelOption excelOption = new WriteExcelOption(excelDataList); + ExcelUtil.writeDataToFile(excelPath, excelOption); + //瀵煎嚭灞炴�� + String attrPath = attributeService.exportAttributes("btmattr", + attributes.stream().collect(Collectors.joining(",")),true); + //绉诲姩灞炴�у埌閾炬帴绫诲瀷鏂囦欢澶归噷闈㈠幓 + cn.hutool.core.io.FileUtil.move(new File(attrPath), new File(defaultTempFolder),true); + cn.hutool.core.io.FileUtil.del(attrPath.substring(0,attrPath.lastIndexOf("\\"))); + }catch (IOException e) { + throw new RuntimeException(e); + } + File zip = ZipUtil.zip(defaultTempFolder); + FileUtil.del(defaultTempFolder + File.separator); + ControllerUtil.writeFileToResponse(response,zip.getAbsoluteFile()); + } + + /** + * 瀵煎叆涓氬姟绫诲瀷 + * @param file 涓婁紶鐨勬枃浠� + * @return + */ + @Override + public BaseResult impData(MultipartFile file) throws Exception { + String defaultTempFolder = LocalFileUtil.getDefaultTempFolder(); + String fileName = defaultTempFolder + File.separator + LocalFileUtil.getFileNameForIE(file.getOriginalFilename()); + file.transferTo(new File(fileName)); + if (file == null) { + return BaseResult.fail(FrameWorkLangCodeConstant.IMPORT_FAIL, new String[]{"鏃犲鍏ョ殑鏂囦欢"}); + } + if (!fileName.endsWith(".zip") || !fileName.endsWith(".rar")) { + throw new VciBaseException("浠呰兘涓婁紶zip鍘嬬缉鏂囦欢锛岃閲嶆柊涓婁紶锛�"); + } + File unzip = ZipUtil.unzip(fileName); + File btmExcel = new File(unzip.getAbsolutePath() + File.separator + "btm.xls"); + File attrExcel = new File(unzip.getAbsolutePath() + File.separator + "btmattr.xls"); + if (!attrExcel.exists()) { + //澧炲姞瑙e帇鐨勮矾寰勶紝鐪嬫枃浠惰繕鍦ㄦ病鏈� + attrExcel = new File(unzip.getAbsolutePath() + File.separator + unzip.getName() + File.separator + "btmattr.xls"); + if (!attrExcel.exists()) { + return BaseResult.fail(FrameWorkLangCodeConstant.IMPORT_FAIL, new String[]{"娌℃湁瀵煎叆鐨勫睘鎬ф枃浠躲�傚鍏ョ粓姝紒"}); + } + } + //TODO锛氬鍏ュ睘鎬э紝浣嗘槸杩欎釜閫昏緫瀹為檯涓婂瓨鍦ㄤ竴浜涢棶棰橈紝瀵煎叆鐨勫睘鎬у彧鏄笟鍔$被鍨嬬殑灞炴�т笉搴旇鍘荤粰灞炴�ф睜瀵煎叆锛屽彲鑳芥槸鎯崇殑灞炴�т笉瀛樺湪鐨勫氨鏂板涓�娆� + BaseResult baseResult = attributeService.importAttributes(attrExcel,true); + if(!baseResult.isSuccess()){ + //鍒犻櫎涓婁紶鐨勬枃浠跺す + FileUtil.del(defaultTempFolder + File.separator); + return baseResult; + } + //鍏ヤ笟鍔$被鍨� + if (!btmExcel.exists()) { + //澧炲姞瑙e帇鐨勮矾寰勶紝鐪嬫枃浠惰繕鍦ㄦ病鏈� + btmExcel = new File(unzip.getAbsolutePath() + File.separator + unzip.getName() + File.separator + "btm.xls"); + if (!btmExcel.exists()) { + //鍒犻櫎涓婁紶鐨勬枃浠跺す + FileUtil.del(defaultTempFolder + File.separator); + return BaseResult.fail(FrameWorkLangCodeConstant.IMPORT_FAIL, new String[]{"娌℃湁瀵煎叆鐨勯摼鎺ユ枃浠躲�傚鍏ョ粓姝紒"}); + } + } + try{ + //1銆佽鍙杄xcel涓殑鏁版嵁锛岀粍鎴愬璞� + ReadExcelOption excelOption = new ReadExcelOption(); + List<OsBtmTypePO> poList = ExcelUtil.readDataObjectFromExcel(btmExcel, OsBtmTypePO.class,excelOption,(value, po, fieldName)->{}); + //鍘婚櫎閮芥槸绌虹殑鎯呭喌 + if(CollectionUtils.isEmpty(poList)){ + return BaseResult.fail(ExcelLangCodeConstant.IMPORT_CONTENT_NULL,new String[]{}); + } + //褰撳墠excel涓槸鍚﹂噸澶嶇敤鐨勫垽閲峂ap:锛坘ey锛氬垽閲嶅睘鎬э紝value锛氳鍙凤級 + Map<String, String> excelReapeat = new HashMap<>(); + int maxLength = platformClientUtil.getLinkTypeService().getLTNameMaxLength(); + + //鍒ゆ柇蹇呭~灞炴�ф槸鍚︿负绌猴紝鐢ㄦ埛鏄惁宸插瓨鍦紝浠ュ強閮ㄩ棬鏄惁濉敊绛夋牎楠岄�昏緫 + poList.stream().forEach(osBtmTypePO -> { + if(Func.isBlank(osBtmTypePO.getName())){//灞炴�у悕鍒ょ┖ + throw new VciBaseException("绗��"+osBtmTypePO.getRowIndex()+"銆戣锛宯ame"); + }else if(osBtmTypePO.getName().length() > maxLength){ + throw new VciBaseException("绗��"+osBtmTypePO.getRowIndex()+"銆戣锛屼笟鍔$被鍨嬪悕闀垮害涓嶈兘瓒呰繃" + maxLength); + }else if(!osBtmTypePO.getName().matches("^[A-Za-z]+$")){ + throw new VciBaseException("绗��"+osBtmTypePO.getRowIndex()+"銆戣锛屼笟鍔$被鍨嬪悕绉板彧鑳戒负鑻辨枃瀛楁瘝"); + }else if (osBtmTypePO.getName().length() > maxLength) { + throw new VciBaseException("绗��"+osBtmTypePO.getRowIndex()+"銆戣锛屼笟鍔$被鍨嬪悕闀垮害涓嶈兘瓒呰繃" + maxLength); + }else if(excelReapeat.containsKey(osBtmTypePO.getName())){//涓氬姟绫诲瀷鍚嶅湪琛ㄦ牸涓垽閲� + throw new VciBaseException("绗��"+excelReapeat.get(osBtmTypePO.getName())+"銆戣鍜岀銆�"+osBtmTypePO.getRowIndex()+"銆戣鏁版嵁锛屼笟鍔$被鍨嬪悕閲嶅"); + }else if (Func.isBlank(osBtmTypePO.getLifeCycle())) { + throw new VciBaseException("绗��"+osBtmTypePO.getRowIndex()+"銆戣锛岀敓鍛藉懆鏈熶笉鑳戒负绌�"); + }else if ("true".equalsIgnoreCase(osBtmTypePO.getRevInput()) && Func.isBlank(osBtmTypePO.getRevRuleName())) { + throw new VciBaseException("绗��"+osBtmTypePO.getRowIndex()+"銆戣锛岀増鏈彿瑙勫垯涓嶈兘涓虹┖"); + } + try { + BizType historyBtm = platformClientUtil.getBtmService().getBizTypeByName(osBtmTypePO.getName()); + //宸叉湁姝ゆ暟鎹繘琛屽垹闄よ鐩� + if(historyBtm != null && !historyBtm.name.equals("")){ + platformClientUtil.getBtmService().deleteBizType(historyBtm); + } + } catch (PLException e) { + throw new RuntimeException(e); + } + + //灞炴�у悕excel涓垽閲嶅鐞� + excelReapeat.put(osBtmTypePO.getName(),osBtmTypePO.getRowIndex()); + BizType bizType = new BizType(); + bizType.name = osBtmTypePO.getName(); + bizType.label = osBtmTypePO.getLable(); + bizType.description = osBtmTypePO.getDescription(); + bizType.fName = osBtmTypePO.getFName(); + bizType.implClass = osBtmTypePO.getImplClass(); + bizType.revLevel = osBtmTypePO.getRevLevel(); + bizType.revRuleName = osBtmTypePO.getRevRuleName(); + bizType.revInput = Boolean.parseBoolean(osBtmTypePO.getRevInput().toLowerCase(Locale.ROOT)); + bizType.delimiter = osBtmTypePO.getDelimiter(); + bizType.verRuleName = osBtmTypePO.getVerRuleName(); + bizType.lifeCycle = osBtmTypePO.getLifeCycle(); + bizType.lifeCycles = osBtmTypePO.getLifeCycles().split(","); + bizType.apNameArray = osBtmTypePO.getApNameArray().split(","); + String userId = WebUtil.getCurrentUserId(); + bizType.modifier = userId; + bizType.creator = userId; + try { + platformClientUtil.getBtmService().addBizType(bizType); + } catch (PLException e) { + throw new RuntimeException(e); + } + }); + }catch (Exception e){ + if(logger.isErrorEnabled()){ + logger.error("璇诲彇excel鍐呭鏃舵垨淇濆瓨涓氬姟绫诲瀷淇℃伅鏃跺嚭鐜颁簡閿欒锛屽叿浣撳師鍥狅細",VciBaseUtil.getExceptionMessage(e)); + } + e.printStackTrace(); + return BaseResult.fail(VciBaseUtil.getExceptionMessage(e),new String[]{},e); + } + //鍒犻櫎涓婁紶鐨勬枃浠跺す + FileUtil.del(defaultTempFolder + File.separator); + return BaseResult.success("涓氬姟绫诲瀷瀵煎叆鎴愬姛锛�"); } /** @@ -1186,21 +1473,21 @@ return flag; } - private List<Tree> getChildren(BizType[] bizTypes,BizType parentBIzType){ + private List<Tree> getChildren(List<OsBtmTypeVO> osBtmTypeVOS,OsBtmTypeVO parentBIzType){ List<Tree> trees= new ArrayList<>(); - for (BizType bizType : bizTypes) { - if(StringUtils.isBlank(bizType.fName)){ + for (OsBtmTypeVO bizType : osBtmTypeVOS) { + if(StringUtils.isBlank(bizType.getfName())){ continue; } - if(bizType.fName.equals(parentBIzType.name)){ + if(bizType.getfName().equals(parentBIzType.getName())){ Tree tree = new Tree(); - tree.setOid(bizType.oid); - tree.setParentName(parentBIzType.fName); - tree.setParentId(parentBIzType.oid); + tree.setOid(bizType.getOid()); + tree.setParentName(parentBIzType.getfName()); + tree.setParentId(parentBIzType.getOid()); tree.setLeaf(true); - tree.setText(bizType.description); + tree.setText(bizType.getDescription()); tree.setAttributes(WebUtil.objectToMapString(bizType)); - tree.setChildren(getChildren(bizTypes,bizType)); + tree.setChildren(getChildren(osBtmTypeVOS,bizType)); trees.add(tree); } } diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsLifeCycleServiceImpl.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsLifeCycleServiceImpl.java index bbf8729..26e995a 100644 --- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsLifeCycleServiceImpl.java +++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsLifeCycleServiceImpl.java @@ -713,7 +713,7 @@ throw new PLException("500",new String[]{"璇峰嬀閫夎瀵煎嚭鐨勭敓鍛藉懆鏈熸ā鏉�!"}); } //鐣岄潰娌′紶鍚嶇О锛屼娇鐢ㄩ粯璁ゅ鍑哄悕绉� - exportFileName = Func.isBlank(exportFileName) ? "鐗堟湰瑙勫垯瀵煎嚭_" + Func.format(new Date(),"yyyy-MM-dd HHmmss.sss"):exportFileName; + exportFileName = Func.isBlank(exportFileName) ? "鐢熷懡鍛ㄦ湡瀵煎嚭_" + Func.format(new Date(),"yyyy-MM-dd HHmmss.sss"):exportFileName; //璁剧疆鍒楀悕 List<String> columns = this.getCloumns(flag); diff --git a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsLinkTypeServiceImpl.java b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsLinkTypeServiceImpl.java index bd33e47..c9cf8d5 100644 --- a/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsLinkTypeServiceImpl.java +++ b/Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsLinkTypeServiceImpl.java @@ -611,7 +611,7 @@ return BaseResult.fail(FrameWorkLangCodeConstant.IMPORT_FAIL, new String[]{"娌℃湁瀵煎叆鐨勫睘鎬ф枃浠躲�傚鍏ョ粓姝紒"}); } } - BaseResult baseResult = attributeService.importAttributes(attrExcel); + BaseResult baseResult = attributeService.importAttributes(attrExcel,true); if(!baseResult.isSuccess()){ //鍒犻櫎涓婁紶鐨勬枃浠跺す FileUtil.del(defaultTempFolder + File.separator); @@ -648,7 +648,7 @@ }else if(!osLinkTypePO.getName().matches("^[A-Za-z]+$")){ throw new VciBaseException("绗��"+osLinkTypePO.getRowIndex()+"銆戣锛岄摼鎺ョ被鍨嬪悕绉板彧鑳戒负鑻辨枃瀛楁瘝"); }else if(excelReapeat.containsKey(osLinkTypePO.getName())){//灞炴�у悕琛ㄦ牸涓垽閲� - throw new VciBaseException("绗��"+excelReapeat.get(osLinkTypePO.getName())+"銆戣鍜岀銆�"+osLinkTypePO.getRowIndex()+"銆戣鏁版嵁锛屽睘鎬у悕閲嶅"); + throw new VciBaseException("绗��"+excelReapeat.get(osLinkTypePO.getName())+"銆戣鍜岀銆�"+osLinkTypePO.getRowIndex()+"銆戣鏁版嵁锛岄摼鎺ョ被鍨嬪悕閲嶅"); } try { LinkType historyLink = platformClientUtil.getLinkTypeService().getLinkType(osLinkTypePO.getName()); @@ -687,7 +687,7 @@ }); }catch (Exception e){ if(logger.isErrorEnabled()){ - logger.error("璇诲彇excel鍐呭鏃舵垨淇濆瓨鐢ㄦ埛淇℃伅鏃跺嚭鐜颁簡閿欒锛屽叿浣撳師鍥狅細",VciBaseUtil.getExceptionMessage(e)); + logger.error("璇诲彇excel鍐呭鏃舵垨淇濆瓨閾炬帴绫诲瀷淇℃伅鏃跺嚭鐜颁簡閿欒锛屽叿浣撳師鍥狅細",VciBaseUtil.getExceptionMessage(e)); } e.printStackTrace(); return BaseResult.fail(VciBaseUtil.getExceptionMessage(e),new String[]{},e); -- Gitblit v1.9.3