From d9183aa80ae17d36b79dda48c6b1d7fa22a80ee3 Mon Sep 17 00:00:00 2001 From: xiejun <xiejun@vci-tech.com> Date: 星期三, 22 一月 2025 11:20:41 +0800 Subject: [PATCH] 现场型号代号/人员/组织接口调试 --- Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeReferConfigServiceImpl.java | 225 ++++++++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 195 insertions(+), 30 deletions(-) diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeReferConfigServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeReferConfigServiceImpl.java index 4b33006..2e90fe6 100644 --- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeReferConfigServiceImpl.java +++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/CodeReferConfigServiceImpl.java @@ -1,15 +1,42 @@ package com.vci.ubcs.code.service.impl; -import com.vci.ubcs.code.entity.CodeReferConfig; +import com.alibaba.cloud.commons.lang.StringUtils; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.github.yulichang.base.MPJBaseServiceImpl; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import com.vci.ubcs.code.dto.CodeReferConfigDTO; +import com.vci.ubcs.code.entity.*; import com.vci.ubcs.code.mapper.CodeReferConfigMapper; -import com.vci.ubcs.code.service.CodeReferConfigService; +import com.vci.ubcs.code.service.ICodeReferConfigService; +import com.vci.ubcs.code.service.ICodeShowFieldConfigService; +import com.vci.ubcs.code.service.ICodeSrchCondConfigService; +import com.vci.ubcs.code.vo.CodeReferConfigVO; +import com.vci.ubcs.code.wrapper.CodeReferConfigWraper; +import com.vci.ubcs.starter.exception.VciBaseException; +import com.vci.ubcs.starter.util.DefaultAttrAssimtUtil; +import com.vci.ubcs.starter.util.MdmBtmTypeConstant; +import com.vci.ubcs.starter.web.pagemodel.BladeQueryObject; +import com.vci.ubcs.starter.web.util.VciBaseUtil; +import com.vci.ubcs.system.cache.NacosConfigCache; +import org.springblade.core.mp.support.Condition; +import org.springblade.core.mp.support.Query; +import org.springblade.core.secure.utils.AuthUtil; +import org.springblade.core.tool.api.R; +import org.springblade.core.tool.utils.BeanUtil; +import org.springblade.core.tool.utils.Func; +import org.springframework.cglib.beans.BeanMap; import org.springframework.stereotype.Service; -import org.springframework.data.domain.Page; -import org.springframework.data.domain.PageImpl; -import org.springframework.data.domain.PageRequest; +import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; +import java.util.Date; +import java.util.List; +import java.util.Map; + +import static com.vci.ubcs.code.constant.FrameWorkLangCodeConstant.TS_NOT_PROCESS; /** * 鍙傜収閰嶇疆琛�(CodeReferconfig)琛ㄦ湇鍔″疄鐜扮被 @@ -18,9 +45,16 @@ * @since 2023-05-19 17:48:02 */ @Service("CodeReferconfigService") -public class CodeReferConfigServiceImpl implements CodeReferConfigService { +public class CodeReferConfigServiceImpl extends MPJBaseServiceImpl<CodeReferConfigMapper,CodeReferConfig> implements ICodeReferConfigService { + @Resource private CodeReferConfigMapper codeReferconfigMapper; + + @Resource + private ICodeShowFieldConfigService ICodeShowFieldConfigService; + + @Resource + private ICodeSrchCondConfigService ICodeSrchCondConfigService; /** * 閫氳繃ID鏌ヨ鍗曟潯鏁版嵁 @@ -29,55 +63,186 @@ * @return 瀹炰緥瀵硅薄 */ @Override - public CodeReferConfig queryById(String oid) { - return this.codeReferconfigMapper.queryById(oid); + public CodeReferConfigVO queryById(String oid) { + CodeReferConfig codeReferConfig = this.codeReferconfigMapper.selectJoinOne(CodeReferConfig.class, this.getMPJLambdaWrapper().eq(CodeReferConfig::getOid, oid)); + return CodeReferConfigWraper.build().entityVO(codeReferConfig); } - /** - * 鍒嗛〉鏌ヨ - * - * @param plCodeReferconfig 绛涢�夋潯浠� - * @param pageRequest 鍒嗛〉瀵硅薄 - * @return 鏌ヨ缁撴灉 - */ + /** + * 鍒嗛〉鏌ヨ + * + * @param bladeQueryObject 绛涢�夋潯浠� + * @return 鏌ヨ缁撴灉 + */ + @Override + public IPage<CodeReferConfigVO> queryByJoinPage(BladeQueryObject bladeQueryObject) { + CodeReferConfig codeReferConfig = new CodeReferConfig(); + // 鏍规嵁绉熸埛杩涜鍖哄垎瀵瑰簲鐨勫弬鐓ч厤缃� + Map<String, Object> conditionMap = bladeQueryObject.getConditionMap(); + // 鏌ヨ鎵�灞炵鎴蜂笅鐨勫拰寮�鍚叏灞�鐨勫弬鐓ч厤缃俊鎭� + if(!NacosConfigCache.getAdminUserInfo().getTenantId().equals(AuthUtil.getTenantId())){ + conditionMap.put("tenantId",AuthUtil.getTenantId()); + } + conditionMap.put("isOpenGlobal","true"); + BeanMap beanMap = BeanMap.create(codeReferConfig); + beanMap.putAll(conditionMap); + // 娣诲姞榛樿鎺掑簭瀛楁,鏍规嵁鏃堕棿杩涜鎺掑簭 + Query query = bladeQueryObject.getQuery(); + query.setAscs("CREATETIME"); + IPage<CodeReferConfig> codeReferConfigs = codeReferconfigMapper.selectJoinPage(codeReferConfig, Condition.getPage(query)); + return CodeReferConfigWraper.build().pageVO(codeReferConfigs); + } + @Override - public Page<CodeReferConfig> queryByPage(CodeReferConfig plCodeReferconfig, PageRequest pageRequest) { - long total = this.codeReferconfigMapper.count(plCodeReferconfig); - return new PageImpl<>(this.codeReferconfigMapper.queryAllByLimit(plCodeReferconfig, pageRequest), pageRequest, total); - } + public List<CodeReferConfigVO> queryByList(CodeReferConfigVO codeReferConfigVO) { + codeReferConfigVO.setTenantId(AuthUtil.getTenantId()); + //MPJLambdaWrapper<CodeReferConfig> mpjLambdaWrapper = UBCSCondition.getMPJLambdaWrapper(bladeQueryObject.getConditionMap(), CodeReferConfig.class) + MPJLambdaWrapper<CodeReferConfig> mpjLambdaWrapper = getMPJLambdaWrapper() + .setEntity(codeReferConfigVO) + .orderBy(true, true, CodeReferConfig::getCreateTime); + List<CodeReferConfig> codeReferConfigList = codeReferconfigMapper.selectJoinList(CodeReferConfig.class, mpjLambdaWrapper); + return CodeReferConfigWraper.build().listVO(codeReferConfigList); + } /** * 鏂板鏁版嵁 * - * @param plCodeReferconfig 瀹炰緥瀵硅薄 + * @param codeReferConfigVO 瀹炰緥瀵硅薄 * @return 瀹炰緥瀵硅薄 */ @Override - public CodeReferConfig insert(CodeReferConfig plCodeReferconfig) { - this.codeReferconfigMapper.insert(plCodeReferconfig); - return plCodeReferconfig; + @Transactional(rollbackFor = Exception.class) + public R insert(CodeReferConfigVO codeReferConfigVO) { + VciBaseUtil.alertNotNull(codeReferConfigVO,"闇�瑕佹坊鍔犵殑鏁版嵁瀵硅薄"); + if (StringUtils.isBlank(codeReferConfigVO.getReferType())){ + throw new VciBaseException("鍙傜収閰嶇疆涓嶈兘涓虹┖"); + } + // Long count = countCodeReferConfig(codeReferConfigVO); + // if(count > 0){ + // throw new VciBaseException("宸插瓨鍦ㄧ浉鍚岀殑鍙傜収閰嶇疆"); + // } + CodeReferConfig codeReferConfig = CodeReferConfigWraper.build().entityDO(codeReferConfigVO); + codeReferConfig.setOid(VciBaseUtil.getPk().toUpperCase()); + DefaultAttrAssimtUtil.addDefaultAttrAssimt(codeReferConfig, MdmBtmTypeConstant.CODE_REFER_CONFIG); + codeReferConfig.setTenantId(AuthUtil.getTenantId()); + boolean resInsertReferConfig = this.codeReferconfigMapper.insert(codeReferConfig) > 0; + if (!resInsertReferConfig) { + return R.fail("鏂板鍙傜収閰嶇疆澶辫触锛�"); + } + // 涓婚敭鍥炲~ + if(Func.isNotEmpty(codeReferConfig.getCodeShowFieldConfigs())){ + ICodeShowFieldConfigService.insertBatch(codeReferConfigVO.getCodeShowFieldConfigVOS(),codeReferConfig.getOid()); + } + if(Func.isNotEmpty(codeReferConfig.getCodeSrchCondConfigs())){ + ICodeSrchCondConfigService.insertBatch(codeReferConfigVO.getCodeSrchCondConfigVOS(),codeReferConfig.getOid()); + } + return R.data(codeReferConfigVO); } + + /** + * 鑾峰彇宸插瓨鍦ㄧ殑鍙傜収閰嶇疆 + * @param codeReferConfigVO + * @return 涓暟 + */ + private Long countCodeReferConfig(CodeReferConfigVO codeReferConfigVO) { + String templateName = codeReferConfigVO.getName(); + String templateId = codeReferConfigVO.getId(); + if (StringUtils.isBlank(templateName) && StringUtils.isBlank(templateId)){ + throw new VciBaseException("鍙傜収閰嶇疆缂栧彿鍜屽悕绉颁笉鑳戒负绌�"); + } + LambdaQueryWrapper<CodeReferConfig> wrapper = Wrappers.<CodeReferConfig>query() + .lambda().eq(CodeReferConfig::getId, codeReferConfigVO.getId()) + .eq(CodeReferConfig::getTenantId, codeReferConfigVO.getTenantId()) + .or(true) + .eq(CodeReferConfig::getIsOpenGlobal,"true") // 鏌ヨ寮�鍚叏灞�鐨勫弬鐓ч厤缃� + .eq(CodeReferConfig::getId,templateId) + .eq(CodeReferConfig::getName,templateName); + Long count = codeReferconfigMapper.selectCount(wrapper); + return count; + } + + /** + * 杩炶〃鏌ヨWrapper瀵硅薄鑾峰彇 + * @return + */ + private MPJLambdaWrapper<CodeReferConfig> getMPJLambdaWrapper(){ + MPJLambdaWrapper<CodeReferConfig> mpjLambdaWrapper = new MPJLambdaWrapper<>(CodeReferConfig.class) + .selectAll(CodeReferConfig.class) + // .select(CodeShowFieldConfig::getField + // ,CodeShowFieldConfig::getTitle + // ,CodeShowFieldConfig::getFieldType + // ,CodeShowFieldConfig::getSort + // ,CodeShowFieldConfig::getAttrSortField + // ,CodeShowFieldConfig::getWidth + // ,CodeShowFieldConfig::getFixedPosition + // ,CodeShowFieldConfig::getTemplet) + // .select( + // CodeSrchCondConfig::getFilterType, + // CodeSrchCondConfig::getFilterField, + // CodeSrchCondConfig::getFilterValue) + .selectCollection(CodeShowFieldConfig.class, CodeReferConfig::getCodeShowFieldConfigs) + .selectCollection(CodeSrchCondConfig.class, CodeReferConfig::getCodeSrchCondConfigs) + .leftJoin(CodeShowFieldConfig.class, CodeShowFieldConfig::getReferConfigOid,CodeReferConfig::getOid) + .leftJoin(CodeSrchCondConfig.class, CodeSrchCondConfig::getReferConfigOid, CodeReferConfig::getOid); + return mpjLambdaWrapper; + } /** * 淇敼鏁版嵁 * - * @param plCodeReferconfig 瀹炰緥瀵硅薄 + * @param codeReferConfigVO 瀹炰緥瀵硅薄 * @return 瀹炰緥瀵硅薄 */ @Override - public CodeReferConfig update(CodeReferConfig plCodeReferconfig) { - this.codeReferconfigMapper.update(plCodeReferconfig); - return this.queryById(plCodeReferconfig.getOid()); + @Transactional(rollbackFor = Exception.class) + public R update(CodeReferConfigVO codeReferConfigVO) { + boolean resUpdateReferConfig = this.codeReferconfigMapper.updateById(codeReferConfigVO) > 0; + if (!resUpdateReferConfig) { + return R.fail("鍙傜収閰嶇疆淇敼澶辫触锛�"); + } + this.ICodeShowFieldConfigService.updateBatch(codeReferConfigVO.getCodeShowFieldConfigVOS()); + this.ICodeSrchCondConfigService.updateBatch(codeReferConfigVO.getCodeSrchCondConfigVOS()); + return R.data(codeReferConfigVO); } /** * 閫氳繃涓婚敭鍒犻櫎鏁版嵁 * - * @param oid 涓婚敭 + * @param codeReferConfigDTO * @return 鏄惁鎴愬姛 */ @Override - public boolean deleteById(String oid) { - return this.codeReferconfigMapper.deleteById(oid) > 0; + @Transactional(rollbackFor = Exception.class) + public R deleteById(CodeReferConfigDTO codeReferConfigDTO) { + CodeReferConfig tsDO = new CodeReferConfig(); + BeanUtil.copyProperties(tsDO,codeReferConfigDTO); + CodeReferConfig codeReferConfig = codeReferconfigMapper.queryById(codeReferConfigDTO.getOid()); + // 妫�鏌s瀛楁鏄惁涓�鑷� + if (!checkTs(tsDO,codeReferConfig)) { + return R.fail(TS_NOT_PROCESS); + } + boolean resDeleteReferConfig = this.codeReferconfigMapper.deleteById(codeReferConfigDTO.getOid()) > 0; + if (!resDeleteReferConfig) { + return R.fail("鍙傜収閰嶇疆鍒犻櫎澶辫触锛�"); + } + this.ICodeShowFieldConfigService.deleteByReferConfigOid(codeReferConfigDTO.getOid()); + this.ICodeSrchCondConfigService.deleteByReferConfigOid(codeReferConfigDTO.getOid()); + return R.status(resDeleteReferConfig); } + + /** + * 妫�鏌s + * @param tempDO + * @param codeReferConfig + * @return + */ + private boolean checkTs(CodeReferConfig tempDO, CodeReferConfig codeReferConfig){ + Date dbTs = codeReferConfig.getTs(); + Date currentTs = tempDO.getTs(); + if(currentTs == null ? dbTs == null:currentTs.compareTo(dbTs)==0){ + return true; + } + return false; + } + } -- Gitblit v1.9.3