Source/UBCS/ubcs-ops/ubcs-flow/pom.xml
@@ -82,6 +82,12 @@ <artifactId>orai18n</artifactId> <version>${orai18n.version}</version> </dependency> <dependency> <groupId>com.vci.ubcs</groupId> <artifactId>ubcs-code-api</artifactId> <version>3.0.1.RELEASE</version> <scope>compile</scope> </dependency> </dependencies> <build> Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeExportAttrDTO.java
@@ -46,7 +46,7 @@ /** * æ¥è¯¢æ¡ä»¶ */ private Map<String,Object> conditionMap; private Map<String,String> conditionMap; /** * åç±»çä¸»é® @@ -101,11 +101,11 @@ this.order = order; } public Map<String, Object> getConditionMap() { public Map<String, String> getConditionMap() { return conditionMap; } public void setConditionMap(Map<String, Object> conditionMap) { public void setConditionMap(Map<String, String> conditionMap) { this.conditionMap = conditionMap; } Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/feign/IFlowEventClient.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,57 @@ /* * Copyright (c) 2018-2028, Chill Zhuang All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * Neither the name of the dreamlu.net developer nor the names of its * contributors may be used to endorse or promote products derived from * this software without specific prior written permission. * Author: Chill åºéª (smallchill@163.com) */ package com.vci.ubcs.code.feign; import com.vci.ubcs.starter.revision.model.BaseModel; import org.springblade.core.launch.constant.AppConstant; import org.springblade.core.tool.api.R; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestParam; import java.util.List; import java.util.Map; /** * 工使µäºä»¶è°ç¨ Feignæ¥å£ç±» * * @author wang1 * @since 2023-05-05 */ @FeignClient( value = AppConstant.APPLICATION_NAME_CODE, fallback = IMdmEngineFallback.class ) public interface IFlowEventClient { String API_PREFIX = "/flowEventClient"; String FLOW_START = API_PREFIX + "/flowStart"; String FLOW_TASK_COMPLATE = API_PREFIX + "/flowTaskComplate"; String FLOW_END = API_PREFIX + "/flowEnd"; /** * æµç¨å¯å¨åè°ç¨ * * @param var æµç¨å¸¸é * @return æ¥è¯¢åºçæ°æ® */ @PostMapping(FLOW_START) R<Map> flowStart(@RequestParam("var") Map var); } Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/feign/IFlowEventFallback.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,42 @@ /* * Copyright (c) 2018-2028, Chill Zhuang All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * Neither the name of the dreamlu.net developer nor the names of its * contributors may be used to endorse or promote products derived from * this software without specific prior written permission. * Author: Chill åºéª (smallchill@163.com) */ package com.vci.ubcs.code.feign; import com.vci.ubcs.starter.revision.model.BaseModel; import org.springblade.core.tool.api.R; import org.springframework.stereotype.Component; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestParam; import java.util.List; import java.util.Map; /** * Feign失败é ç½® * * @author wang1 */ @Component public class IFlowEventFallback implements IFlowEventClient { @Override @PostMapping(FLOW_START) public R<Map> flowStart(Map var){ return R.fail("è·åæ°æ®å¤±è´¥"); } } Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/feign/FlowEventClient.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,57 @@ /* * Copyright (c) 2018-2028, Chill Zhuang All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * Neither the name of the dreamlu.net developer nor the names of its * contributors may be used to endorse or promote products derived from * this software without specific prior written permission. * Author: Chill åºéª (smallchill@163.com) */ package com.vci.ubcs.code.feign; import com.vci.ubcs.code.service.MdmEngineService; import com.vci.ubcs.starter.revision.model.BaseModel; import lombok.AllArgsConstructor; import org.springblade.core.tool.api.R; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import springfox.documentation.annotations.ApiIgnore; import java.util.List; import java.util.Map; import static com.vci.ubcs.code.feign.IMdmEngineClient.SELECT_BY_TYPE_OID; /** * 工使µäºä»¶è°ç¨ Feignå®ç°ç±» * * @author wang1 * @since 2023-05-05 */ @ApiIgnore() @RestController @AllArgsConstructor public class FlowEventClient implements IFlowEventClient { /** * æµç¨å¯å¨åè°ç¨ * * @param var æµç¨å¸¸é * @return æ¥è¯¢åºçæ°æ® */ @PostMapping(FLOW_START) public R<Map> flowStart(@RequestParam("var") Map var){ System.out.println(var.toString()); return R.success("è°ç¨æå"); } } Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java
@@ -34,7 +34,6 @@ import com.vci.ubcs.starter.revision.model.BaseModel; import com.vci.ubcs.starter.util.DefaultAttrAssimtUtil; import com.vci.ubcs.starter.util.LocalFileUtil; import com.vci.ubcs.starter.util.UBCSSqlKeyword; import com.vci.ubcs.starter.web.constant.QueryOptionConstant; import com.vci.ubcs.starter.web.enumpck.BooleanEnum; import com.vci.ubcs.starter.web.enumpck.UserSecretEnum; @@ -1474,7 +1473,7 @@ CodeClassifyTemplateVO templateVO = engineService.getUsedTemplateByClassifyOid(exportAttrDTO.getCodeClassifyOid()); //å æ¥è¯¢æ°æ® String btmTypeId = classifyFullInfo.getTopClassifyVO().getBtmTypeId(); Map<String, Object> conditionMap = exportAttrDTO.getConditionMap(); Map<String, String> conditionMap = exportAttrDTO.getConditionMap(); if(conditionMap == null){ conditionMap = new HashMap<>(); } @@ -1490,7 +1489,15 @@ conditionMap.put("codeclsfpath","*" + exportAttrDTO.getCodeClassifyOid() + "*"); conditionMap.put("lastr", "1"); conditionMap.put("lastv", "1"); UBCSSqlKeyword.buildSqlwhere(conditionMap); // æ¥è¯¢åºè¡¨å String countSql = "select count(*) from " + VciBaseUtil.getTableName(btmTypeId) +" where 1=1" + " and lastr = '1'" + " and lastv='1'" + " and codeclsfpath like '%" + exportAttrDTO.getCodeClassifyOid() + "%'"; //å æ¥è¯¢æ»æ° int total = 0; if(exportAttrDTO.getEndPage()!=null && exportAttrDTO.getEndPage()>0 @@ -1504,11 +1511,11 @@ thisPage.setOrder(exportAttrDTO.getOrder()); thisPage.addDefaultDesc("createTime"); total += boService.queryCount(btmTypeId, conditionMap); total += commonsMapper.queryCountBySql(countSql); } }else{ total=boService.queryCount(btmTypeId, conditionMap); total = commonsMapper.queryCountBySql(countSql); } List<String> selectFieldList = new ArrayList<>(); if(!CollectionUtils.isEmpty(exportAttrDTO.getAttrIdIndexMap())){ @@ -1581,9 +1588,6 @@ LocalFileUtil.deleteTempFile(file,true); return zipFileName; } private /** * æ¥è¯¢æ°æ®å¹¶å¯¼åºå°excel Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmProductCodeServiceImpl.java
@@ -86,10 +86,7 @@ @Override @Transactional(rollbackFor = VciBaseException.class) public List<String> productCodeAndSaveData(CodeClassifyFullInfoBO classifyFullInfoBO, CodeClassifyTemplateVO templateVO, CodeRuleVO ruleVO, List<CodeOrderSecDTO> secDTOList, List<BaseModel> dataCBOList) throws Exception { // BatchCBO batchCBO = new BatchCBO(); // WebUtil.setPersistence(false); dataCBOList = dataCBOList.stream().sorted(((o1, o2) -> o1.getCreateTime().compareTo(o2.getCreateTime()))).collect(Collectors.toList()); // batchCBO.getCreateCbos().addAll(dataCBOList); List<String> codeList = new ArrayList<>(); /***** @@ -179,18 +176,13 @@ List<CodeSerialValue> editSerialValueList = new ArrayList<>(); maxSerialMap.forEach((serialUnit,secOidMaxMap)->{ secOidMaxMap.forEach((secOid,maxSerial)->{ // Map<String, String> conditionMap = new HashMap<>(); // conditionMap.put("codeRuleOid", ruleVO.getOid()); // conditionMap.put("serialUnit", serialUnit); // //è¿ä¸ªå段æ¯ä¸ºäºè§£å³å¤ä¸ªæµæ°´çé®é¢ // conditionMap.put("codeSecOid", secOid); QueryWrapper<CodeSerialValue> queryWrapper = new QueryWrapper<>(); queryWrapper.eq("codeRuleOid", ruleVO.getOid()); queryWrapper.eq("serialUnit", serialUnit); //è¿ä¸ªå段æ¯ä¸ºäºè§£å³å¤ä¸ªæµæ°´çé®é¢ queryWrapper.eq("codeSecOid", secOid); List<CodeSerialValue> serialValueDOS = serialValueMapper.selectList(queryWrapper); // .selectByCondition(conditionMap, new PageHelper(-1)); if (!CollectionUtils.isEmpty(serialValueDOS)) { CodeSerialValue serialValueDO = serialValueDOS.get(0); if(VciBaseUtil.getDouble(serialValueDO.getMaxSerial())<maxSerial){ @@ -209,19 +201,14 @@ }); }); if(!CollectionUtils.isEmpty(addSerialValueList)){ // batchCBO.copyFromOther(serialValueMapper.batchInsert(addSerialValueList)); for (CodeSerialValue codeSerialValue : addSerialValueList) { serialValueMapper.insert(codeSerialValue); } // serialValueMapper.ba } if(!CollectionUtils.isEmpty(editSerialValueList)){ for (CodeSerialValue codeSerialValue : editSerialValueList) { serialValueMapper.updateById(codeSerialValue); } // batchCBO.copyFromOther(serialValueMapper.batchUpdate(editSerialValueList)); } //å¤çallCode if(!CollectionUtils.isEmpty(allCodeDOList)){ @@ -231,9 +218,6 @@ List<CodeAllCode> editCodeDOs = new ArrayList<>(); ruleGroup.forEach((ruleOid,allCodeDOS)->{ VciBaseUtil.switchCollectionForOracleIn(allCodeDOS).stream().forEach(codeDOs->{ // Map<String,String> conditionMap = new HashMap<>(); // conditionMap.put("coderuleoid",ruleOid); // conditionMap.put("id",QueryOptionConstant.IN + "(" + VciBaseUtil.toInSql(codeDOs.stream().map(s->s.getId()).collect(Collectors.toList()).toArray(new String[0])) + ")"); QueryWrapper<CodeAllCode> allCodeWrapper = new QueryWrapper<>(); allCodeWrapper.eq("coderuleoid",ruleOid); allCodeWrapper.in("id", QueryOptionConstant.IN + "(" + @@ -264,21 +248,25 @@ addCodeDOs = allCodeDOList; } if(!CollectionUtils.isEmpty(editCodeDOs)){ // batchCBO.copyFromOther(allCodeMapper.batchUpdate(editCodeDOs)); codeAllCodeService.updateBatchById(editCodeDOs); } if(!CollectionUtils.isEmpty(addCodeDOs)){ //batchCBO.copyFromOther(allCodeMapper.batchInsert(addCodeDOs)); Map<String, String> statusMap = addCodeDOs.stream().collect(Collectors.toMap(s -> s.getOid(), s -> s.getLcStatus())); addCodeDOs.stream().filter(s -> StringUtils.equalsIgnoreCase("codeallcode",s.getBtmname())).forEach(s -> { s.setLcStatus(statusMap.get(s.getOid())); }); //éè¿IDæ¥è¿è¡å»é List<CodeAllCode> distinctCodeAllCOdes = addCodeDOs.stream().collect(Collectors .collectingAndThen( Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(CodeAllCode::getId))), ArrayList::new)); if( distinctCodeAllCOdes.size() != addCodeDOs.size() ){ throw new VciBaseException("ç¼ç æ°æ®éå¤ï¼æ æ³ä¿åï¼è¯·æ³¨æï¼"); } codeAllCodeService.saveBatch(addCodeDOs); } mdmEngineService.insertBatchByType(dataCBOList.get(0).getBtmname(),dataCBOList); } // WebUtil.setPersistence(true); // boService.persistenceBatch(batchCBO); return codeList; }else { List<CodeBasicSecVO> secVOList = ruleVO.getSecVOList().stream().sorted(((o1, o2) -> o1.getOrderNum().compareTo(o2.getOrderNum()))).collect(Collectors.toList()); @@ -347,7 +335,14 @@ }); //éè¿IDæ¥è¿è¡å»é List<CodeAllCode> distinctCodeAllCOdes = allCodeDOList.stream().collect(Collectors .collectingAndThen( Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(CodeAllCode::getId))), ArrayList::new)); if( distinctCodeAllCOdes.size() != allCodeDOList.size() ){ throw new VciBaseException("ç¼ç æ°æ®éå¤ï¼æ æ³ä¿åï¼è¯·æ³¨æï¼"); } codeAllCodeService.saveBatch(allCodeDOList); // iCodeWupinService.saveBatch(dataCBOList); mdmEngineService.insertBatchByType(dataCBOList.get(0).getBtmname(),dataCBOList);