From f1336af7af2225820ac9a8dc6dfcf501e4d4cd7b Mon Sep 17 00:00:00 2001
From: 田源 <lastanimals@163.com>
Date: 星期三, 06 十二月 2023 09:05:16 +0800
Subject: [PATCH] 系统左侧菜单,hover背景色bug处理
---
Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeBasicSecServiceImpl.java | 102 +++++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 91 insertions(+), 11 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 a415202..baaf90a 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
@@ -252,7 +252,7 @@
codeBasicSecDO.setValueCutTypeText(EnumCache.getValue(EnumEnum.CODE_CUT_TYPE,codeBasicSecDTO.getValueCutType()));
codeBasicSecDO.setCodeGetValueTypeText(EnumCache.getValue(EnumEnum.CODE_GET_VALUE_TYPE,codeBasicSecDTO.getCodeGetValueType()));
//濉厖涓�浜涢粯璁ゅ��
- DefaultAttrAssimtUtil.addDefaultAttrAssimt(codeBasicSecDO, MdmBtmTypeConstant.CODE_BASIC_SEC);
+ DefaultAttrAssimtUtil.addDefaultAttrAssimt(codeBasicSecDO, MdmBtmTypeConstant.CODE_BASIC_SEC,null);
//鎺掑簭鍙凤紝榛樿绛変簬褰撳墠宸叉湁鐨勬暟閲忓姞1
Long total = codeBasicSecMapper.selectCount(Wrappers.<CodeBasicSec>query()
.lambda()
@@ -361,15 +361,15 @@
*/
@Override
@Transactional(rollbackFor = Exception.class)
- public boolean editSave(CodeBasicSecDTO codeBasicSecDTO) throws VciBaseException {
+ public boolean editSave(CodeBasicSecDTO codeBasicSecDTO) throws ServerException {
VciBaseUtil.alertNotNull(codeBasicSecDTO, "闇�瑕佹坊鍔犵殑鏁版嵁瀵硅薄");
KeyValue attrKv = checkAttrNullableBySecType(codeBasicSecDTO);
- if (! "success".equals(attrKv.getKey())){
+ if (!"success".equals(attrKv.getKey())){
throw new VciBaseException(attrKv.getValue() + "涓嶈兘涓虹┖");
}
//灏咲TO杞崲涓篋O
CodeBasicSec codeBasicSecDO = selectByOid(codeBasicSecDTO.getOid());
- DefaultAttrAssimtUtil.updateDefaultAttrAssimt(codeBasicSecDO);
+ DefaultAttrAssimtUtil.updateDefaultAttrAssimt(codeBasicSecDO,null);
boolean status = codeRuleService.checkEditDelStatus(codeRuleService.getObjectByOid(codeBasicSecDO.getPkCodeRule()).getLcStatus());
boolean resBoolean;
CodeReferConfigVO codeReferConfigVO = null;
@@ -400,8 +400,7 @@
codeReferConfigService.insert(codeReferConfigVO);
}
}
-
-// revisionModelUtil.copyFromDTOIgnore(codeBasicSecDTO, codeBasicSecDO);//姝ゅ鐨勬嫹璐濅細鎶妑eferValueInfo鐨勫�肩粰瑕嗙洊鎺夛紝闇�瑕侀噸鏂拌祴鍊�
+ // revisionModelUtil.copyFromDTOIgnore(codeBasicSecDTO, codeBasicSecDO);//姝ゅ鐨勬嫹璐濅細鎶妑eferValueInfo鐨勫�肩粰瑕嗙洊鎺夛紝闇�瑕侀噸鏂拌祴鍊�
BaseModel tempModel = new BaseModel();
BeanUtilForVCI.copyPropertiesIgnoreCase(codeBasicSecDO, tempModel);
BeanUtil.copyProperties(codeBasicSecDTO, codeBasicSecDO,"referValueInfo");
@@ -411,6 +410,16 @@
codeBasicSecDO.setDescription(VciBaseUtil.getStringValueFromObject(VciBaseUtil.getValueFromField("description", codeBasicSecDTO)));
resBoolean = codeBasicSecMapper.updateById(codeBasicSecDO)>0;
+ // 浠庡垎绫荤爜娈垫垨鍥哄畾鐮佹鏀逛负鍏朵粬鐮佹鏃讹紝鍒ゆ柇鐢ㄦ埛鏄惁閫夋嫨浜嗘竻绌虹爜鍊�
+ if(codeBasicSecDTO.getIsClearValue()){
+ // 鍒嗙被鐮佸�兼竻绌�
+ if(codeBasicSecDTO.getSecType().equals(CodeSecTypeEnum.CODE_CLASSIFY_SEC.getValue())){
+ codeClassifyValueService.deleteClassifyValueBySecOid(codeBasicSecDTO.getOid());
+ }else {
+ //鍥哄畾鐮佸�兼竻绌�
+ fixedValueService.deleteFixedValueBySecOid(codeBasicSecDTO.getOid());
+ }
+ }
//SessionInfo sessionInfo = VciBaseUtil.getCurrentUserSessionInfo();
if(StringUtils.isNotBlank(codeBasicSecDO.getCodeFillSeparator())){
DictBiz dictBiz = new DictBiz();
@@ -588,6 +597,15 @@
}
List<CodeBasicSec> createList = new ArrayList<>();
List<CodeBasicSec> basicSecDOS = codeBasicSecMapper.selectBatchIds(oidList);
+ /* 闇�瑕佹敞鎰忕殑鏄厠闅嗚繃鏉ョ殑鐮佹闇�瑕佸orderNum杩涜鎺掑簭锛屽惁鍒欎細鍑虹幇鎺掑簭涔辫烦鐨勬儏鍐�
+ 瀹炵幇鏂瑰紡鏄煡璇㈠嚭璇ヨ鍒欎笅鏍规嵁orderNum鎺掑簭鍚庣殑鏈�鍚庝竴涓爜娈� */
+ LambdaQueryWrapper<CodeBasicSec> lastBasicWrapper = Wrappers.<CodeBasicSec>query()
+ .lambda().orderByDesc(CodeBasicSec::getOrderNum)
+ .eq(CodeBasicSec::getPkCodeRule,pkCodeRule)
+ .last("limit 1");
+ CodeBasicSec lastCodeBasicSec = codeBasicSecMapper.selectOne(lastBasicWrapper);
+ // 鎺掑簭鍙蜂粠杩欏効寮�濮嬫帓
+ int orderNum = Func.isEmpty(lastCodeBasicSec) || Func.isEmpty(lastCodeBasicSec.getOrderNum()) ? -1 : lastCodeBasicSec.getOrderNum();
if(basicSecDOS.isEmpty()){
return R.fail("鍏嬮殕鐨勭爜娈典俊鎭笉瀛樺湪锛�");
}
@@ -599,6 +617,8 @@
String oldBasicOid = newSecDO.getOid();
newSecDO.setId(newSecDO.getId());
newSecDO.setName(newSecDO.getName());
+ orderNum++;
+ newSecDO.setOrderNum(orderNum);
newSecDO.setPkCodeRule(pkCodeRule);
// 鍒ゆ柇鏄惁鏄垎绫荤爜娈�,涓氬姟閫昏緫绋嶅井澶嶆潅涓�鐐规墍浠ラ渶瑕佸厛鎻愬嚭鏉ュ崟鐙鐞�
if(newSecDO.getSecType().equals(CodeSecTypeEnum.CODE_CLASSIFY_SEC.getValue())){
@@ -607,7 +627,7 @@
continue;
}
// 鏇存敼鍒涘缓鏃堕棿锛屼慨鏀规椂闂寸瓑榛樿鍊�
- DefaultAttrAssimtUtil.addDefaultAttrAssimt(newSecDO,MdmBtmTypeConstant.CODE_BASIC_SEC);
+ DefaultAttrAssimtUtil.addDefaultAttrAssimt(newSecDO,MdmBtmTypeConstant.CODE_BASIC_SEC,null);
//鍥哄畾鐮佹
if(newSecDO.getSecType().equals(CodeSecTypeEnum.CODE_FIXED_SEC.getValue())){
// 鍥哄畾鐮佹瀛樺偍濂給id鍜岀爜鍊肩殑鍏宠仈鍏崇郴
@@ -632,7 +652,7 @@
value.stream().forEach(item -> {
item.setOid("");
item.setCodeFixedSecOid(key);
- DefaultAttrAssimtUtil.updateDefaultAttrAssimt(item);
+ DefaultAttrAssimtUtil.updateDefaultAttrAssimt(item,null);
codeFixedDOValues.add(item);
});
});
@@ -677,7 +697,7 @@
}
codeClassValues.forEach((key, value) -> {
value.stream().forEach(item -> {
- DefaultAttrAssimtUtil.updateDefaultAttrAssimt(item);
+ DefaultAttrAssimtUtil.updateDefaultAttrAssimt(item,null);
item.setCodeClassifySecOid(key);
codeClassifyDOValues.add(item);
});
@@ -1004,7 +1024,8 @@
wrapper = Wrappers.<CodeBasicSec>query().lambda()
.eq(CodeBasicSec::getPkCodeRule,codeRuleVO.getOid())
.eq(CodeBasicSec::getSerialDependFlag,"true")
- .orderByAsc(CodeBasicSec::getSerialDependOrder);
+ .orderByAsc(CodeBasicSec::getOrderNum);
+ //.orderByAsc(CodeBasicSec::getSerialDependOrder);
List<CodeBasicSec> codeBasicSecList = this.list(wrapper);
if(!CollectionUtils.isEmpty(codeBasicSecList)){
List<CodeBasicSecVO> codeBasicSecVOS = codeBasicSecDO2VOs(codeBasicSecList);
@@ -1097,7 +1118,7 @@
}else{
//濡傛灉鏈�澶ф祦姘村彿涓嶄负绌猴紝璇存槑鏃犳渶濂芥祦姘村彿锛屾柊澧炴渶澶ф祦姘村彿
CodeSerialValue codeSerialValue = new CodeSerialValue();
- DefaultAttrAssimtUtil.addDefaultAttrAssimt(codeSerialValue, MdmBtmTypeConstant.CODE_SERIAL_VALUE);
+ DefaultAttrAssimtUtil.addDefaultAttrAssimt(codeSerialValue, MdmBtmTypeConstant.CODE_SERIAL_VALUE,null);
codeSerialValue.setCodeRuleOid(codeRuleOid);
codeSerialValue.setSerialUnit(serialUnitString);
codeSerialValue.setCodeSecOid(codeBasicSec.getOid());
@@ -1106,4 +1127,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