From d888c408cb8f54f680b526b664be81d903eee45e Mon Sep 17 00:00:00 2001
From: ludc
Date: 星期五, 20 十月 2023 13:11:12 +0800
Subject: [PATCH] 前端代码打包
---
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeBasicSecServiceImpl.java | 188 ++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 168 insertions(+), 20 deletions(-)
diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeBasicSecServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeBasicSecServiceImpl.java
index ea4666f..975cd6a 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeBasicSecServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeBasicSecServiceImpl.java
@@ -52,6 +52,7 @@
import org.springframework.util.CollectionUtils;
import javax.annotation.Resource;
+import java.rmi.ServerException;
import java.util.*;
import java.util.stream.Collectors;
@@ -114,7 +115,7 @@
/**
* 涓婂眰鍒嗙被鐮佹鐨勫睘鎬у悕绉�
*/
- private static final String PARENT_FIELD_NAME = "parentclassifysecoid";
+ private static final String PARENT_FIELD_NAME = "parentClassifySecOid";
/**
* 涓婄骇鍒嗙被鐮佸�肩殑灞炴�у悕绉�
@@ -170,10 +171,10 @@
// 灏嗚浣滀负鍒犻櫎鏉′欢鐨勫�兼斁鍦ㄤ竴涓泦鍚堥噷闈�
Set<String> fixedSecOidSet = fixedSecList.stream().map(CodeBasicSec::getOid).collect(Collectors.toSet());
// 閫氳繃澶栭敭杩涜鏌ヨ
- List<CodeFixedValue> fixedValueS = fixedValueMapper.selectList(Wrappers.<CodeFixedValue>query().lambda().in(CodeFixedValue::getCodeFixedSecOid,fixedSecOidSet));
- if(!fixedValueS.isEmpty()){
+ List<CodeFixedValue> fixedValues = fixedValueMapper.selectList(Wrappers.<CodeFixedValue>query().lambda().in(CodeFixedValue::getCodeFixedSecOid,fixedSecOidSet));
+ if(!fixedValues.isEmpty()){
// 鏍规嵁鏌ヨ鍑烘潵鐨刬d鎵ц鍥哄畾鐮佹鎵ц鍒犻櫎
- deletFlag = fixedValueMapper.deleteBatchIds(fixedValueS.stream().map(CodeFixedValue::getOid).collect(Collectors.toSet()))>0;
+ deletFlag = fixedValueMapper.deleteBatchIds(fixedValues.stream().map(CodeFixedValue::getOid).collect(Collectors.toSet()))>0;
}
}
// 4銆佸啀鍒犻櫎鍒嗙被鐮佹
@@ -184,10 +185,10 @@
// 灏嗚浣滀负鍒犻櫎鏉′欢鐨勫�兼斁鍦ㄤ竴涓泦鍚堥噷闈�
Set<String> classifySecOidSet = classifySecList.stream().map(CodeBasicSec::getOid).collect(Collectors.toSet());
// 閫氳繃澶栭敭杩涜鏌ヨ
- List<CodeClassifyValue> fixedValueS = codeClassifyValueMapper.selectList(Wrappers.<CodeClassifyValue>query().lambda().in(CodeClassifyValue::getCodeClassifySecOid,classifySecOidSet));
- if(!fixedValueS.isEmpty()){
+ List<CodeClassifyValue> codeClassifyValues = codeClassifyValueMapper.selectList(Wrappers.<CodeClassifyValue>query().lambda().in(CodeClassifyValue::getCodeClassifySecOid,classifySecOidSet));
+ if(!codeClassifyValues.isEmpty()){
// 鏍规嵁鏌ヨ鍑烘潵鐨勪富閿甶d鎵ц鍥哄畾鐮佹鎵ц鍒犻櫎
- deletFlag = fixedValueMapper.deleteBatchIds(fixedValueS.stream().map(CodeClassifyValue::getOid).collect(Collectors.toSet()))>0;
+ deletFlag = codeClassifyValueMapper.deleteBatchIds(codeClassifyValues.stream().map(CodeClassifyValue::getOid).collect(Collectors.toSet()))>0;
}
}
return deletFlag;
@@ -282,7 +283,7 @@
}
// 鍒ゆ柇鏄惁涓哄紩鐢ㄧ爜娈碉紝濡傛灉鏄簲鐢ㄧ爜娈电殑璇濓紝涓轰簡閫傞厤鍓嶇缁勪欢锛岃繖閲岃瀵硅〃杩涜澶勭悊涓�涓嬶紝鎸夌収浠ュ墠鐨勫弬鐓ф牸寮忚繘琛岃浆鎹�
codeBasicSecDO.setReferValueInfo(referConfigToUIUiTable(codeReferConfigVO));
- if(codeReferConfigVO.getIsPersistence()=="true"){
+ if(Func.toBoolean(codeReferConfigVO.getIsPersistence())){
codeReferConfigService.insert(codeReferConfigVO);
}
}
@@ -323,8 +324,11 @@
BeanUtil.copy(showField,tableColVO);
tableColVO.setSortField(showField.getAttrSortField());
uiTableFieldVOs.add(tableColVO);
- if(showField.getIsQuery().equals("true")){
- queryColumns.add(tableColVO);
+ if(Func.toBoolean(showField.getIsQuery())){
+ TableColVO tableQueryColumns = new TableColVO();
+ BeanUtil.copy(showField,tableQueryColumns);
+ tableColVO.setSortField(showField.getAttrSortField());
+ queryColumns.add(tableQueryColumns);
}
});
}
@@ -334,6 +338,9 @@
uiTableConfigVO.setQueryColumns(queryColumns);
//set缁欒〃鏍奸厤缃睘鎬�
uiFormReferVO.setTableConfig(uiTableConfigVO);
+ //瀛楁鍚嶄笉涓�鑷达紝闇�瑕佹墜鍔╯et
+ uiFormReferVO.setMuti(Func.toBoolean(codeReferConfig.getIsMuti()));
+ uiFormReferVO.setInitSort(new UIFieldSortVO(codeReferConfig.getSortField(),codeReferConfig.getSortType()));
// 绛涢�夋潯浠�
HashMap<String, String> whereMap = new HashMap<>();
if(!codeReferConfig.getCodeSrchCondConfigVOS().isEmpty()){
@@ -574,7 +581,7 @@
*/
@Override
@Transactional(rollbackFor = Exception.class)
- public R cloneCodeBasicSec(List<String> oidList, String pkCodeRule) throws ServiceException {
+ public R cloneCodeBasicSec(List<String> oidList, String pkCodeRule) throws ServiceException, ServerException {
boolean isLinked = checkIsLinked(pkCodeRule,null);
if (isLinked) {
return R.fail("缂栫爜瑙勫垯宸茶寮曠敤锛屼笉鍏佽缂栬緫鎴栧垹闄�");
@@ -584,20 +591,102 @@
if(basicSecDOS.isEmpty()){
return R.fail("鍏嬮殕鐨勭爜娈典俊鎭笉瀛樺湪锛�");
}
- basicSecDOS.forEach(sec -> {
+ List<CodeBasicSec> codeClassifySec = new ArrayList<>();
+ Map<String,List<CodeFixedValue>> codeFixedValueMaps = new HashMap<>();
+ for (CodeBasicSec sec : basicSecDOS) {
CodeBasicSec newSecDO = new CodeBasicSec();
BeanUtilForVCI.copyPropertiesIgnoreCase(sec,newSecDO);
- newSecDO.setOid(VciBaseUtil.getPk());
- newSecDO.setNameOid(VciBaseUtil.getPk());
- newSecDO.setRevisionOid(VciBaseUtil.getPk());
- newSecDO.setId(newSecDO.getId() + "_copy");
- newSecDO.setName(newSecDO.getName() + "_copy");
+ String oldBasicOid = newSecDO.getOid();
+ newSecDO.setId(newSecDO.getId());
+ newSecDO.setName(newSecDO.getName());
newSecDO.setPkCodeRule(pkCodeRule);
+ // 鍒ゆ柇鏄惁鏄垎绫荤爜娈�,涓氬姟閫昏緫绋嶅井澶嶆潅涓�鐐规墍浠ラ渶瑕佸厛鎻愬嚭鏉ュ崟鐙鐞�
+ if(newSecDO.getSecType().equals(CodeSecTypeEnum.CODE_CLASSIFY_SEC.getValue())){
+ // 瀛樺偍鏃х殑鐮佹oid鍜屾柊鐨勭爜娈电殑oid鐨勫叧鑱斿叧绯�
+ codeClassifySec.add(newSecDO);
+ continue;
+ }
+ // 鏇存敼鍒涘缓鏃堕棿锛屼慨鏀规椂闂寸瓑榛樿鍊�
+ DefaultAttrAssimtUtil.addDefaultAttrAssimt(newSecDO,MdmBtmTypeConstant.CODE_BASIC_SEC);
+ //鍥哄畾鐮佹
+ if(newSecDO.getSecType().equals(CodeSecTypeEnum.CODE_FIXED_SEC.getValue())){
+ // 鍥哄畾鐮佹瀛樺偍濂給id鍜岀爜鍊肩殑鍏宠仈鍏崇郴
+ codeFixedValueMaps.put(newSecDO.getOid(),fixedValueService.list(Wrappers.<CodeFixedValue>query()
+ .lambda().eq(CodeFixedValue::getCodeFixedSecOid, oldBasicOid)
+ ));
+ }
createList.add(newSecDO);
+ }
+ // 澶勭悊鍒嗙被鐮佹鐨刼id锛屽洜涓簅id鍏宠仈parentClassifyOid锛屼笌鐮佸�糲odeClassifyOid锛岀爜鍊煎張闇�瑕侀�氳繃鏃х殑鐮佹oid鏉ユ煡璇紝鎵�浠ヤ笉鑳界洿鎺ユ敼鍙榦id
+ changeParentOidAssnOid(codeClassifySec);
+ // 灏嗗鐞嗚繃鐨勫垎绫荤爜娈典篃娣诲姞杩涜鍋氭柊澧炲鐞嗙殑鐮佹闆嗗悎涓�
+ createList.addAll(codeClassifySec);
+ boolean resBoolean = true;
+ if(!createList.isEmpty()){
+ resBoolean = saveBatch(createList);
+ }
+ // 鏈�缁堣瀛樺叆鐮佸�艰〃涓殑锛岀爜鍊煎璞�
+ List<CodeFixedValue> codeFixedDOValues = new ArrayList<>();
+ // 鏋勯�犵爜鍊煎璞★紝涓庣爜娈典富閿叧鑱斿叧绯伙紝浠ュ強鏀瑰彉鍥哄畾鐮佸�肩殑oid
+ codeFixedValueMaps.forEach((key, value) -> {
+ value.stream().forEach(item -> {
+ item.setOid("");
+ item.setCodeFixedSecOid(key);
+ DefaultAttrAssimtUtil.updateDefaultAttrAssimt(item);
+ codeFixedDOValues.add(item);
+ });
});
- boolean resBoolean = saveBatch(createList);
- //codeBasicSecMapper.insertBatch(createList);
- return resBoolean ? R.data(resBoolean,"鍏嬮殕鐮佹淇℃伅鎴愬姛"):R.fail("鍏嬮殕鐮佹淇℃伅澶辫触锛�");
+ boolean resFixed = true;
+ if(!codeFixedValueMaps.isEmpty()){
+ // 鍏嬮殕鍥哄畾鐮佸��
+ resFixed = fixedValueService.saveBatch(codeFixedDOValues);
+ }
+ return (resBoolean&&resFixed) ? R.data(resBoolean,"鍏嬮殕鐮佹淇℃伅鎴愬姛"):R.fail("鍏嬮殕鐮佹淇℃伅澶辫触锛�");
+ }
+
+ /**
+ * 鏀瑰彉鐮佹涓埗鍒嗙被鐮佹鍜屽瓙鍒嗙被鐮佹涔嬮棿鐨勫叧鑱攐id涓烘柊鐨刼id,骞朵笖涓嶇牬鍧忓垎绫荤爜鍊肩殑鍏宠仈鍏崇郴
+ * @param basicSecs
+ * @return
+ * @throws ServerException
+ */
+ @Override
+ public boolean changeParentOidAssnOid(List<CodeBasicSec> basicSecs) throws ServerException {
+ Map<String, List<CodeClassifyValue>> codeClassValues = new HashMap<>();
+ List<CodeClassifyValue> codeClassifyDOValues = new ArrayList<>();
+ HashMap<String, String> oidMap = new HashMap<>();
+ boolean resClone = false;
+ try {
+ // 閬嶅巻瀵硅薄鏁扮粍锛屼负姣忎釜瀵硅薄鐢熸垚鏂扮殑oid锛屽苟灏嗗師濮媜id鍜屾柊oid鐨勬槧灏勫叧绯诲瓨鍌ㄥ埌Map涓�
+ for (CodeBasicSec obj : basicSecs) {
+ String originalOid = obj.getOid();
+ String newOid = VciBaseUtil.getPk();
+ oidMap.put(originalOid, newOid);
+ }
+ // 閬嶅巻瀵硅薄鏁扮粍锛屾洿鏂版瘡涓璞$殑oid鍜宑odeClassifySecOid灞炴�у��
+ for (CodeBasicSec obj : basicSecs) {
+ String originalOid = obj.getOid();
+ String newOid = oidMap.get(originalOid);
+ // 鏂扮殑oid鍏宠仈瑕佸厠闅嗙爜鍊�
+ codeClassValues.put(newOid,codeClassifyValueService.list(Wrappers.<CodeClassifyValue>query()
+ .lambda().eq(CodeClassifyValue::getCodeClassifySecOid, originalOid)));
+ obj.setOid(newOid);
+ String originalParentClassifyValueOid = obj.getParentClassifySecOid();
+ String newParentClassifyValueOid = oidMap.get(originalParentClassifyValueOid);
+ obj.setParentClassifySecOid(newParentClassifyValueOid);
+ }
+ codeClassValues.forEach((key, value) -> {
+ value.stream().forEach(item -> {
+ DefaultAttrAssimtUtil.updateDefaultAttrAssimt(item);
+ item.setCodeClassifySecOid(key);
+ codeClassifyDOValues.add(item);
+ });
+ });
+ resClone = codeClassifyValueService.cloneCodeClassifyVaue(codeClassifyDOValues);
+ }catch (Exception e){
+ throw new ServerException("鐖跺垎绫荤爜娈靛拰瀛愬垎绫荤爜娈礳lone杞崲oid鏃跺嚭閿欙細"+e.getCause());
+ }
+ return resClone;
}
/**
@@ -1017,4 +1106,63 @@
}
return String.valueOf(maxSecNum);
}
+
+ /***
+ * 鏍规嵁娴佹按渚濊禆鑾峰彇鏈�澶ф祦姘村彿
+ * @param codeOrderDTO 缂栫爜鐢宠浼犺緭瀵硅薄
+ * @return
+ */
+ @Override
+ public Double getMaxSerialNumberForCodeRule(CodeOrderDTO codeOrderDTO) {
+ Double maxSerialNumber=0.0;
+ VciBaseUtil.alertNotNull(codeOrderDTO.getCodeRuleOid(),"缂栫爜瑙勫垯涓婚敭");
+ List<CodeOrderSecDTO> codeOrderSecDTOList=codeOrderDTO.getSecDTOList();
+ if(CollectionUtils.isEmpty(codeOrderSecDTOList)){
+ throw new VciBaseException("鏈�澶ф祦姘村彿鐨勬祦姘翠緷璧栦笉鑳戒负绌猴紒");
+ }
+ String codeRuleOid = codeOrderDTO.getCodeRuleOid();
+ Map<String/**鐮佹涓婚敭*/,CodeOrderSecDTO/**鐮佹鐩稿叧淇℃伅*/> codeOrderSecDTOMap = codeOrderSecDTOList.stream().collect(Collectors.toMap(s -> s.getSecOid(), t -> t));
+ List<String> codeBasicSecOidList = codeOrderSecDTOList.stream().map(s->s.getSecOid()).collect(Collectors.toList());//娴佹按渚濊禆鐮佹鐨勪富閿泦鍚�
+ //鑾峰彇娴佹按渚濊禆鐮佹
+ LambdaQueryWrapper<CodeBasicSec> wrapper = Wrappers.<CodeBasicSec>query().lambda()
+ .eq(CodeBasicSec::getPkCodeRule,codeRuleOid)
+ .in(CodeBasicSec::getOid,codeBasicSecOidList)
+ .eq(CodeBasicSec::getSerialDependFlag,"true")
+ .orderByAsc(CodeBasicSec::getSerialDependOrder);
+ List<CodeBasicSec> codeBasicSecList = this.list(wrapper);
+ //鎸夋祦姘翠緷璧栭『搴忥紝澶勭悊娴佹按渚濊禆鐮佹鐨勫��
+ List<String> serialDependValueList = new ArrayList<>();
+ codeBasicSecList.stream().forEach(s->{
+ CodeOrderSecDTO codeOrderSecDTO = codeOrderSecDTOMap.get(s.getOid());
+ String serialDependValue = codeOrderSecDTO.getSecValue();
+ if(s.getSecType().equals(CodeSecTypeEnum.CODE_DATE_SEC.getValue())){
+ try {
+ Date date = VciDateUtil.str2Date(codeOrderSecDTO.getSecValue(),s.getCodeDateFormatStr());
+ serialDependValue = VciDateUtil.date2Str(date,s.getCodeDateFormatStr());
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+ }
+ serialDependValueList.add(serialDependValue);
+ });
+
+ //鑾峰彇娴佹按鐮佹
+ wrapper = Wrappers.<CodeBasicSec>query().lambda()
+ .eq(CodeBasicSec::getPkCodeRule,codeRuleOid)
+ .eq(CodeBasicSec::getSecType,CodeSecTypeEnum.CODE_SERIAL_SEC.getValue())
+ .orderByAsc(CodeBasicSec::getSerialDependOrder);
+ CodeBasicSec codeBasicSec = this.getOne(wrapper);
+ //鏍规嵁缂栫爜瑙勫垯鍜屾祦姘翠緷璧栵紝鑾峰彇鏈�澶ф祦姘村彿
+ String serialUnitString = serialDependValueList.size() == 0 ? EMPTY_SERIAL_UNIT : serialDependValueList.stream().collect(Collectors.joining(SERIAL_UNIT_SPACE));
+ LambdaQueryWrapper<CodeSerialValue> codeSerialWrapper = new LambdaQueryWrapper<>();
+ codeSerialWrapper.eq(CodeSerialValue::getCodeRuleOid, codeRuleOid);
+ codeSerialWrapper.eq(CodeSerialValue::getSerialUnit, serialUnitString);
+ codeSerialWrapper.eq(CodeSerialValue::getCodeSecOid,codeBasicSec.getOid());
+ codeSerialWrapper.orderByDesc(CodeSerialValue::getCreateTime);
+ List<CodeSerialValue> codeSerialValueList = serialValueMapper.selectList(codeSerialWrapper);
+ if(!CollectionUtils.isEmpty(codeSerialValueList)){
+ maxSerialNumber=StringUtils.isBlank(codeSerialValueList.get(0).getMaxSerial())?0:Double.parseDouble(codeSerialValueList.get(0).getMaxSerial());
+ }
+ return maxSerialNumber;
+ }
}
--
Gitblit v1.9.3