From b0da1daebd1a50eea777e9524eb7bb485efd55ab Mon Sep 17 00:00:00 2001 From: 田源 <lastanimals@163.com> Date: 星期四, 20 七月 2023 18:51:43 +0800 Subject: [PATCH] Merge branch 'master' of http://dev.vci-tech.com:1065/r/ubcs --- Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/feign/IFlowEventClient.java | 57 ++++++++++++++ Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java | 20 +++-- Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/feign/FlowEventClient.java | 57 ++++++++++++++ Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeExportAttrDTO.java | 6 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmProductCodeServiceImpl.java | 39 ++++----- Source/UBCS/ubcs-ops/ubcs-flow/pom.xml | 6 + Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/feign/IFlowEventFallback.java | 42 ++++++++++ 7 files changed, 194 insertions(+), 33 deletions(-) diff --git a/Source/UBCS/ubcs-ops/ubcs-flow/pom.xml b/Source/UBCS/ubcs-ops/ubcs-flow/pom.xml index 709c45e..3906de0 100644 --- a/Source/UBCS/ubcs-ops/ubcs-flow/pom.xml +++ b/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> diff --git a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeExportAttrDTO.java b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeExportAttrDTO.java index 4dd340d..8f8ff61 100644 --- a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/dto/CodeExportAttrDTO.java +++ b/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; } diff --git a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/feign/IFlowEventClient.java b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/feign/IFlowEventClient.java new file mode 100644 index 0000000..c2b8e24 --- /dev/null +++ b/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); + +} diff --git a/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/feign/IFlowEventFallback.java b/Source/UBCS/ubcs-service-api/ubcs-code-api/src/main/java/com/vci/ubcs/code/feign/IFlowEventFallback.java new file mode 100644 index 0000000..20ba323 --- /dev/null +++ b/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("鑾峰彇鏁版嵁澶辫触"); + } + +} diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/feign/FlowEventClient.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/feign/FlowEventClient.java new file mode 100644 index 0000000..313be95 --- /dev/null +++ b/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("璋冪敤鎴愬姛"); + } + +} diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java index 7e0986d..c112d85 100644 --- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmIOServiceImpl.java +++ b/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 diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmProductCodeServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmProductCodeServiceImpl.java index 519f132..f1b5117 100644 --- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmProductCodeServiceImpl.java +++ b/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); -- Gitblit v1.9.3