| | |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.baomidou.mybatisplus.extension.toolkit.SqlHelper; |
| | | import com.fasterxml.jackson.databind.ObjectMapper; |
| | | import com.vci.ubcs.code.bo.CodeClassifyFullInfoBO; |
| | | import com.vci.ubcs.code.bo.CodeTemplateAttrSqlBO; |
| | | import com.vci.ubcs.code.constant.FrameWorkDefaultValueConstant; |
| | | import com.vci.ubcs.code.constant.MdmBtmTypeConstant; |
| | | import com.vci.ubcs.code.dto.CodeDeleteBatchDTO; |
| | | import com.vci.ubcs.code.dto.CodeOrderDTO; |
| | | import com.vci.ubcs.code.dto.datapush.BaseModelDTO; |
| | | import com.vci.ubcs.code.entity.*; |
| | | import com.vci.ubcs.code.enumpack.*; |
| | | import com.vci.ubcs.code.mapper.CodeOsbtmtypeMapper; |
| | | import com.vci.ubcs.code.mapper.CodeWupinMapper; |
| | | import com.vci.ubcs.code.mapper.CommonsMapper; |
| | | import com.vci.ubcs.code.service.*; |
| | | import com.vci.ubcs.code.vo.CodeKeyAttrRepeatVO; |
| | | import com.vci.ubcs.code.vo.pagemodel.*; |
| | | import com.vci.ubcs.code.vo.pagemodel.UITableFieldVO; |
| | | import com.vci.ubcs.code.vo.pagemodel.UITablePageVO; |
| | | import com.vci.ubcs.code.vo.pagemodel.*; |
| | | import com.vci.ubcs.omd.feign.IAttributeClient; |
| | | import com.vci.ubcs.omd.feign.IBtmTypeClient; |
| | | import com.vci.ubcs.omd.feign.IEnumClient; |
| | | import com.vci.ubcs.omd.feign.IEnumItemClient; |
| | | import com.vci.ubcs.omd.feign.IRevisionRuleClient; |
| | | import com.vci.ubcs.omd.vo.BtmTypeAttributeVO; |
| | | import com.vci.ubcs.omd.vo.BtmTypeVO; |
| | | import com.vci.ubcs.omd.vo.EnumVO; |
| | | import com.vci.ubcs.omd.vo.RevisionRuleVO; |
| | | import com.vci.ubcs.starter.exception.VciBaseException; |
| | | import com.vci.ubcs.starter.revision.model.BaseModel; |
| | | import com.vci.ubcs.starter.revision.model.TreeWrapperOptions; |
| | | import com.vci.ubcs.starter.revision.service.RevisionModelUtil; |
| | | import com.vci.ubcs.starter.web.constant.QueryOptionConstant; |
| | |
| | | import com.vci.ubcs.starter.web.toolmodel.DateConverter; |
| | | import com.vci.ubcs.starter.web.util.*; |
| | | import com.vci.ubcs.system.entity.DictBiz; |
| | | import com.vci.ubcs.system.entity.Menu; |
| | | import com.vci.ubcs.system.feign.IDictBizClient; |
| | | import net.logstash.logback.encoder.org.apache.commons.lang3.ObjectUtils; |
| | | import com.vci.ubcs.system.feign.ISysClient; |
| | | import com.vci.ubcs.system.user.entity.User; |
| | | import com.vci.ubcs.system.user.feign.IUserClient; |
| | | import net.logstash.logback.encoder.org.apache.commons.lang3.StringUtils; |
| | | import oracle.sql.TIMESTAMP; |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | | import org.springblade.core.cache.utils.CacheUtil; |
| | | import org.springblade.core.secure.utils.AuthUtil; |
| | | import org.springblade.core.tool.api.R; |
| | | import org.springframework.beans.BeanUtils; |
| | | import org.springblade.core.tool.utils.StringPool; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.cglib.beans.BeanMap; |
| | | import org.springframework.cache.Cache; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.util.CollectionUtils; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.beans.BeanInfo; |
| | | import java.beans.IntrospectionException; |
| | | import java.beans.Introspector; |
| | | import java.beans.PropertyDescriptor; |
| | | import java.lang.reflect.Field; |
| | | import java.lang.reflect.InvocationTargetException; |
| | | import java.lang.reflect.Method; |
| | | import java.math.BigDecimal; |
| | | import java.sql.SQLException; |
| | | import java.sql.Timestamp; |
| | | import java.time.LocalDateTime; |
| | | import java.time.ZoneId; |
| | | import java.time.ZonedDateTime; |
| | | import java.util.*; |
| | | import java.util.concurrent.ConcurrentHashMap; |
| | | import java.util.function.Supplier; |
| | | import java.util.stream.Collectors; |
| | | |
| | | import static com.vci.ubcs.code.constant.FrameWorkLangCodeConstant.DATA_OID_NOT_EXIST; |
| | |
| | | */ |
| | | @Resource |
| | | private CodeClstemplateServiceImpl templateService; |
| | | /** |
| | | * 模板的服务 |
| | | */ |
| | | |
| | | @Resource |
| | | private CodeOsbtmtypeMapper codeOsbtmtypeMapper; |
| | | @Resource |
| | | private CodeOsattributeServiceImpl attributeService; |
| | | private IAttributeClient attributeClient; |
| | | |
| | | /** |
| | | * 生成编码的服务 |
| | | */ |
| | | @Resource |
| | | private MdmProductCodeService productCodeService; |
| | | |
| | | /** |
| | | * 可输可选的服务 |
| | | */ |
| | | @Resource |
| | | IDictBizClient iDictBizClient; |
| | | /** |
| | | * 系统的服务 |
| | | */ |
| | | @Resource |
| | | ISysClient iSysClient; |
| | | /** |
| | | * 用户服务 |
| | | */ |
| | | @Resource |
| | | IUserClient iUserClient; |
| | | /** |
| | | * 字典的服务 |
| | | */ |
| | | @Resource |
| | | IEnumClient enumClient; |
| | | |
| | | /** |
| | | * 公式的服务 |
| | | */ |
| | |
| | | */ |
| | | @Autowired |
| | | private ICodePhaseAttrService phaseAttrService; |
| | | /** |
| | | * 业务类型的服务 |
| | | */ |
| | | @Autowired |
| | | private IBtmTypeClient btmTypeClient; |
| | | /** |
| | | * 版本规则的服务 |
| | | */ |
| | | @Resource |
| | | private IRevisionRuleClient revisionRuleClient; |
| | | // |
| | | /** |
| | | * 通用查询 |
| | |
| | | * 空格 |
| | | */ |
| | | public static final String SPACE = " "; |
| | | /** |
| | | * 缓存key |
| | | */ |
| | | public static final String BTM_INIT_CACHE = "ubcs-code:btm"; |
| | | /** |
| | | * |
| | | */ |
| | | public static final String BTM_NAME = "btm:name"; |
| | | |
| | | /** |
| | | * 密级的字段 |
| | |
| | | List<String> oids = VciBaseUtil.str2List(baseModelDTO.getOid()); |
| | | // List<ClientBusinessObject> cboList = boService.selectCBOByOidCollection(oids, baseModelDTO.getBtmname()); |
| | | //插个点 业务类型完成后需要修改 |
| | | QueryWrapper<CodeOsbtmtypeEntity> wrapper = new QueryWrapper<>(); |
| | | QueryWrapper<BtmTypeVO> wrapper = new QueryWrapper<>(); |
| | | wrapper.eq("BTMNAME",baseModelDTO.getBtmname()); |
| | | wrapper.in("OID",oids); |
| | | List<CodeOsbtmtypeEntity> cboList = codeOsbtmtypeMapper.selectList(wrapper); |
| | | // 待完善 |
| | | List<BtmTypeVO> cboList = null; // btmTypeClient.selectList(wrapper); |
| | | //还需要修改allCode的生命周期 |
| | | // Map<String, String> conditionMap = new HashMap<>(); |
| | | QueryWrapper<CodeAllCode> allCodeWrapper = new QueryWrapper<>(); |
| | |
| | | // List<ClientBusinessObject> codeCbos = boService.queryCBO(MdmBtmTypeConstant.CODE_ALL_CODE, conditionMap); |
| | | // 回收需要业务数据删除 |
| | | if (CodeDefaultLC.TASK_BACK.getValue().equals(baseModelDTO.getLcStatus())) { |
| | | // BatchCBO batchCBO = new BatchCBO(); |
| | | // batchCBO.getDeleteCbos().addAll(cboList); |
| | | codeOsbtmtypeMapper.deleteBatchIds(cboList); |
| | | // boService.persistenceBatch(batchCBO); |
| | | } else { |
| | | // lifeCycleService.transCboStatus(cboList, baseModelDTO.getLcStatus()); |
| | | } |
| | | // lifeCycleService.transCboStatus(codeCbos, baseModelDTO.getLcStatus()); |
| | | } |
| | | // BatchCBO batchCBO = new BatchCBO(); |
| | | // batchCBO.getDeleteCbos().addAll(cboList); |
| | | |
| | | // 待完善 |
| | | //btmTypeClient.deleteBatchIds(cboList); |
| | | |
| | | //boService.persistenceBatch(batchCBO); |
| | | } else { |
| | | // lifeCycleService.transCboStatus(cboList, baseModelDTO.getLcStatus()); |
| | | } |
| | | // lifeCycleService.transCboStatus(codeCbos, baseModelDTO.getLcStatus()); |
| | | } |
| | | |
| | | /** |
| | | * 申请单一编码 |
| | |
| | | * @return 返回编码的内容 |
| | | */ |
| | | @Override |
| | | public String addSaveCode(CodeOrderDTO orderDTO) { |
| | | public String addSaveCode(CodeOrderDTO orderDTO) throws Exception { |
| | | VciBaseUtil.alertNotNull(orderDTO, "编码申请相关的属性和码段的内容都为空", orderDTO.getCodeClassifyOid(), "主题库分类的主键", |
| | | orderDTO.getTemplateOid(), "模板的主键", orderDTO.getCodeRuleOid(), "编码规则的主键"); |
| | | CodeClassifyFullInfoBO classifyFullInfo = classifyService.getClassifyFullInfo(orderDTO.getCodeClassifyOid()); |
| | |
| | | switchDateAttrOnOrder(templateVO, orderDTO); |
| | | //9.生成编码的信息 |
| | | // ClientBusinessObject cbo = boService.createCBOByBtmName(classifyFullInfo.getTopClassifyVO().getBtmtypeid()); |
| | | CodeWupin cbo = createCBOByBtmName(classifyFullInfo.getTopClassifyVO().getBtmtypeid()); |
| | | BaseModel cbo = createCBOByBtmName(classifyFullInfo.getTopClassifyVO().getBtmtypeid()); |
| | | // //默认的属性都不用从前端拷贝 |
| | | // //设置编码需要的默认属性的内容 |
| | | copyValueToCBO(classifyFullInfo, cbo, orderDTO, templateVO, false); |
| | | // //TODO:因为默认的属性都不拷贝,目前集团码叫name,并没有从DTO拷贝到cbo里。增加一个单独处理,以后再看要不要调整 |
| | | cbo.setName(orderDTO.getName() == null ? "" : orderDTO.getName()); |
| | | // //end -- modify by lihang @20220407 |
| | | List<CodeWupin> cboList = new ArrayList<>(); |
| | | List<BaseModel> cboList = new ArrayList<>(); |
| | | |
| | | //备注 |
| | | cbo.setDescription(orderDTO.getDescription()); |
| | |
| | | |
| | | |
| | | List<String> charList = new ArrayList<>(); |
| | | for (CodeWupin wupinEntity : cboList) { |
| | | charList.add(wupinEntity.getId()); |
| | | for (BaseModel baseModel : cboList) { |
| | | charList.add(baseModel.getId()); |
| | | } |
| | | batchSaveSelectChar(templateVO, charList); |
| | | return codeList.size() > 0 ? codeList.get(0) : ""; |
| | |
| | | * @param templateVO 模板的显示对象 |
| | | * @param edit 是否为修改 |
| | | */ |
| | | private void copyValueToCBO(CodeClassifyFullInfoBO classifyFullInfo, CodeWupin cbo, |
| | | private void copyValueToCBO(CodeClassifyFullInfoBO classifyFullInfo, BaseModel cbo, |
| | | CodeOrderDTO orderDTO, CodeClassifyTemplateVO templateVO, |
| | | boolean edit) { |
| | | String fullPath = ""; |
| | |
| | | |
| | | try { |
| | | |
| | | BeanUtilForVCI.copyPropertiesIgnoreNull(BeanUtilForVCI.convertMap(CodeWupin.class,orderDTO.getData()),cbo); |
| | | |
| | | cbo.setCodeclsfid(classifyFullInfo.getCurrentClassifyVO().getOid()); |
| | | cbo.setCodetemplateoid(templateVO.getOid()); |
| | | cbo.setCodeclsfpath(fullPath); |
| | | BeanUtilForVCI.copyPropertiesIgnoreNull(BeanUtilForVCI.convertMap(BaseModel.class,orderDTO.getData()),cbo); |
| | | Map<String,String> data = new HashMap<>(); |
| | | data.put(CODE_CLASSIFY_OID_FIELD,classifyFullInfo.getCurrentClassifyVO().getOid()); |
| | | data.put(CODE_TEMPLATE_OID_FIELD,templateVO.getOid()); |
| | | data.put(CODE_FULL_PATH_FILED,fullPath); |
| | | cbo.setData(data); |
| | | cbo.setOid(VciBaseUtil.getPk()); |
| | | cbo.setCreateTime(new Date()); |
| | | cbo.setLastModifyTime(new Date()); |
| | | cbo.setCreator(AuthUtil.getUser().getUserName()); |
| | | cbo.setLastModifier(AuthUtil.getUser().getUserName()); |
| | | // cbo.setCodeclsfid(classifyFullInfo.getCurrentClassifyVO().getOid()); |
| | | // cbo.setTemplateOid(templateVO.getOid()); |
| | | // cbo.setCodeclsfpath(fullPath); |
| | | cbo.setTs(new Date()); |
| | | if (!edit && StringUtils.isBlank(orderDTO.getLcStatus())) { |
| | | //找生命周期的起始状态,插个点,生命周期是否需要创建 |
| | | //先写固定,后面生命周期好了在编写 |
| | | if (StringUtils.isNotBlank(cbo.getLctid())) { |
| | | // OsLifeCycleVO lifeCycleVO = lifeCycleService.getLifeCycleById(cbo.getLctid()); |
| | | // if (lifeCycleVO != null) { |
| | | // cbo.setLcStatus("Editing"); |
| | | //// cbo.setLcStatus(lifeCycleVO.getStartStatus()); |
| | | // } else { |
| | | cbo.setLcStatus(CodeDefaultLC.EDITING.getValue()); |
| | | cbo.setLcStatus(CodeDefaultLC.EDITING.getValue()); |
| | | // } |
| | | } else { |
| | | cbo.setLcStatus(CodeDefaultLC.EDITING.getValue()); |
| | |
| | | } |
| | | |
| | | int secret = VciBaseUtil.getInt(String.valueOf(cbo.getSecretGrade())); |
| | | //插个点,后续看密级服务是否可用 |
| | | //后续看密级服务是否可用 |
| | | // if (secret == 0 || !secretService.checkDataSecret(secret)) { |
| | | if (secret == 0 ) { |
| | | Integer userSecret = VciBaseUtil.getCurrentUserSecret(); |
| | |
| | | * @throws VciBaseException 初始化出错的是会抛出异常 |
| | | */ |
| | | @Override |
| | | public CodeWupin createCBOByBtmName(String btmName) |
| | | public BaseModel createCBOByBtmName(String btmName) |
| | | throws VciBaseException { |
| | | if(btmName!=null){ |
| | | btmName = btmName.trim().toLowerCase(); |
| | | } |
| | | String userid = AuthUtil.getUser().getUserName(); |
| | | // if(!hasCreatedCbos.containsKey(btmName)){ |
| | | // if(StringUtils.isEmpty(userid)){ |
| | | // throw new VciBaseException(msgCodePrefix +"noHasUserid"); |
| | | // } |
| | | // try { |
| | | // hasCreatedCbos.put(btmName, createBusinessObject(btmName)); |
| | | // } catch (Exception e) { |
| | | // logger.error("创建业务类型对象",e); |
| | | // throw new VciBaseException(msgCodePrefix + "initBoError",new String[]{btmName}); |
| | | // } |
| | | // } |
| | | // ClientBusinessObject cbo = cloneClientBusinessObject(hasCreatedCbos.get(btmName)); |
| | | |
| | | // QueryWrapper<CodeOsbtmtypeEntity> btmWrapper = new QueryWrapper<>(); |
| | | // btmWrapper.eq("ID",btmName); |
| | | // CodeOsbtmtypeEntity btmTypeVO = codeOsbtmtypeMapper.selectOne(btmWrapper); |
| | | // OsBtmTypeVO btmTypeVO = btmService.getBtmById(boName); |
| | | String userName = AuthUtil.getUser().getUserName(); |
| | | CodeWupin wupinEntity = new CodeWupin(); |
| | | wupinEntity.setOid(VciBaseUtil.getPk()); |
| | | // bo.setRevisionid((new ObjectUtility()).getNewObjectID36()); |
| | | // bo.setNameoid((new ObjectUtility()).getNewObjectID36()); |
| | | wupinEntity.setBtmname(btmName); |
| | | wupinEntity.setLastR(String.valueOf(1)); |
| | | wupinEntity.setFirstR(String.valueOf(1)); |
| | | wupinEntity.setFirstV(String.valueOf(1)); |
| | | wupinEntity.setLastV(String.valueOf(1)); |
| | | wupinEntity.setCreator(userName); |
| | | wupinEntity.setCreateTime(new Date()); |
| | | wupinEntity.setLastModifier(userName); |
| | | wupinEntity.setLastModifyTime(new Date()); |
| | | wupinEntity.setRevisionRule("numberversionrule"); |
| | | wupinEntity.setVersionRule("0"); |
| | | // if(StringUtils.isNotBlank(btmTypeVO.getRevisionruleid())){ |
| | | // |
| | | // OsRevisionRuleVO revisionRuleVO = revisionRuleService.getRevisionRuleById(btmTypeVO.getRevisionruleid()); |
| | | wupinEntity.setRevisionValue("1"); |
| | | // } |
| | | |
| | | wupinEntity.setRevisionSeq(1); |
| | | wupinEntity.setVersionSeq(1); |
| | | //插个点,需要问勇哥版本问题,展示默认为1 |
| | | wupinEntity.setVersionValue("1"); |
| | | wupinEntity.setLctid("wupinLC"); |
| | | wupinEntity.setLcStatus("Editing"); |
| | | wupinEntity.setId(""); |
| | | wupinEntity.setName(""); |
| | | wupinEntity.setDescription(""); |
| | | wupinEntity.setOwner(userName); |
| | | wupinEntity.setCheckinby(userName); |
| | | wupinEntity.setCopyFromVersion(""); |
| | | wupinEntity.setMaterialtype(1001); |
| | | wupinEntity.setCaigouwl("true"); |
| | | wupinEntity.setShifoupihaoguanli("true"); |
| | | wupinEntity.setKucunwl("true"); |
| | | wupinEntity.setXiaoshouwl("false"); |
| | | wupinEntity.setPassing("true"); |
| | | try { |
| | | String keyPrefix = BTM_INIT_CACHE.concat(StringPool.COLON).concat(AuthUtil.getTenantId()).concat(StringPool.COLON); |
| | | // String finalBtmName = btmName; |
| | | Cache.ValueWrapper valueWrapper = CacheUtil.getCache(keyPrefix).get(keyPrefix.concat(String.valueOf(btmName))); |
| | | if(valueWrapper == null){ |
| | | CacheUtil.getCache(keyPrefix).put(keyPrefix.concat(String.valueOf(btmName)), createBaseModel(btmName)); |
| | | valueWrapper = CacheUtil.getCache(keyPrefix).get(keyPrefix.concat(String.valueOf(btmName))); |
| | | } |
| | | return (BaseModel) valueWrapper.get(); |
| | | } catch (Exception e) { |
| | | logger.error("创建业务类型对象",e); |
| | | throw new VciBaseException("initBtmError",new String[]{btmName}); |
| | | } |
| | | // String userName = AuthUtil.getUser().getUserName(); |
| | | // CodeWupin wupinEntity = new CodeWupin(); |
| | | // wupinEntity.setOid(VciBaseUtil.getPk()); |
| | | //// bo.setRevisionid((new ObjectUtility()).getNewObjectID36()); |
| | | //// bo.setNameoid((new ObjectUtility()).getNewObjectID36()); |
| | | // wupinEntity.setBtmname(btmName); |
| | | // wupinEntity.setLastR(String.valueOf(1)); |
| | | // wupinEntity.setFirstR(String.valueOf(1)); |
| | | // wupinEntity.setFirstV(String.valueOf(1)); |
| | | // wupinEntity.setLastV(String.valueOf(1)); |
| | | // wupinEntity.setCreator(userName); |
| | | // wupinEntity.setCreateTime(new Date()); |
| | | // wupinEntity.setLastModifier(userName); |
| | | // wupinEntity.setLastModifyTime(new Date()); |
| | | // wupinEntity.setRevisionRule("numberversionrule"); |
| | | // wupinEntity.setVersionRule("0"); |
| | | //// if(StringUtils.isNotBlank(btmTypeVO.getRevisionruleid())){ |
| | | // // |
| | | //// OsRevisionRuleVO revisionRuleVO = revisionRuleService.getRevisionRuleById(btmTypeVO.getRevisionruleid()); |
| | | // wupinEntity.setRevisionValue("1"); |
| | | //// } |
| | | // |
| | | // wupinEntity.setRevisionSeq(1); |
| | | // wupinEntity.setVersionSeq(1); |
| | | // //插个点,需要问勇哥版本问题,展示默认为1 |
| | | // wupinEntity.setVersionValue("1"); |
| | | // wupinEntity.setLctid("wupinLC"); |
| | | // wupinEntity.setLcStatus("Editing"); |
| | | // wupinEntity.setId(""); |
| | | // wupinEntity.setName(""); |
| | | // wupinEntity.setDescription(""); |
| | | // wupinEntity.setOwner(userName); |
| | | // wupinEntity.setCheckinby(userName); |
| | | // wupinEntity.setCopyFromVersion(""); |
| | | // wupinEntity.setMaterialtype(1001); |
| | | // wupinEntity.setCaigouwl("true"); |
| | | // wupinEntity.setShifoupihaoguanli("true"); |
| | | // wupinEntity.setKucunwl("true"); |
| | | // wupinEntity.setXiaoshouwl("false"); |
| | | // wupinEntity.setPassing("true"); |
| | | |
| | | // this.initTypeAttributeValue(wupinEntity,btmTypeVO); |
| | | return wupinEntity; |
| | | // return wupinEntity; |
| | | |
| | | |
| | | // return cbo; |
| | |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public MdmUIInfoVO getFormDefineByTemplateOid(String templateOid, String codeClassifyOid) { |
| | | @Override |
| | | public MdmUIInfoVO getFormDefineByTemplateOid(String templateOid, String codeClassifyOid) { |
| | | CodeClassifyTemplateVO templateVO = templateService.getObjectHasAttrByOid(templateOid); |
| | | MdmUIInfoVO uiInfoVO = new MdmUIInfoVO(); |
| | | uiInfoVO.setTemplateVO(templateVO); |
| | | uiInfoVO.setFormDefineVO(wrapperFormDefineByTemplate(templateVO, codeClassifyOid)); |
| | | wrapperResemble(templateVO, uiInfoVO); |
| | | return uiInfoVO; |
| | | } |
| | | } |
| | | |
| | | |
| | | /** |
| | |
| | | itemVO.setPrefix(attrVO.getPrefixValue()); |
| | | itemVO.setSuffix(attrVO.getSuffixValue()); |
| | | itemVO.setTooltips(attrVO.getExplain()); |
| | | itemVO.setInputTip(attrVO.getInputTip()); |
| | | itemVO.setSelectLibFlag(attrVO.getLibraryIdentification()); |
| | | //看看是否有枚举 |
| | | if ((StringUtils.isNotBlank(attrVO.getEnumString()) |
| | |
| | | //没有限制分类,但是一个模板只可能在一个业务类型里面,所以直接查询这个业务类型即可 |
| | | if (!CollectionUtils.isEmpty(conditionMap)) { |
| | | Map<String, String> andConditionMap = new HashMap<>(); |
| | | andConditionMap.put("islastr", "1"); |
| | | andConditionMap.put("islastv", "1"); |
| | | andConditionMap.put("t.lastr", "1"); |
| | | andConditionMap.put("t.lastv", "1"); |
| | | if (StringUtils.isNotBlank(orderDTO.getOid())) { |
| | | andConditionMap.put("oid", QueryOptionConstant.NOTEQUAL + orderDTO.getOid()); |
| | | andConditionMap.put("t.oid", QueryOptionConstant.NOTEQUAL + orderDTO.getOid()); |
| | | } |
| | | conditionMap.putAll(andConditionMap); |
| | | PageHelper pageHelper = new PageHelper(-1); |
| | |
| | | public DataGrid<Map<String, String>> queryGrid(String btmType, CodeClassifyTemplateVO templateVO, Map<String, String> conditionMap, PageHelper pageHelper) { |
| | | CodeTemplateAttrSqlBO sqlBO = getSqlByTemplateVO(btmType, templateVO, conditionMap, pageHelper); |
| | | // List<Map> maps = boService.queryByOnlySqlForMap(sqlBO.getSqlHasPage()); |
| | | List<Map> maps = commonsMapper.selectBySql(sqlBO.getSqlHasPage()); |
| | | List<Map<String,String>> maps = commonsMapper.queryByOnlySqlForMap(sqlBO.getSqlHasPage()); |
| | | |
| | | DataGrid<Map<String, String>> dataGrid = new DataGrid<>(); |
| | | List<Map<String, String>> dataList = new ArrayList<>(); |
| | | // if (!CollectionUtils.isEmpty(maps)) { |
| | | // maps.stream().forEach(map -> { |
| | | // Map<String, String> data = new HashMap<>(); |
| | | // map.forEach((key, value) -> { |
| | | // data.put(((String) key).toLowerCase(Locale.ROOT), String.valueOf(value)); |
| | | // }); |
| | | // dataList.add(data); |
| | | // }); |
| | | // } |
| | | // dataGrid.setData(dataList); |
| | | if (!CollectionUtils.isEmpty(maps)) { |
| | | wrapperData(maps, templateVO, sqlBO.getSelectFieldList(), false); |
| | | maps.stream().forEach(map -> { |
| | | Map<String, String> data = new HashMap<>(); |
| | | map.forEach((key, value) -> { |
| | | data.put(((String) key).toLowerCase(Locale.ROOT), String.valueOf(value)); |
| | | }); |
| | | // map.forEach((key, value) -> { |
| | | // data.put(((String) key).toLowerCase(Locale.ROOT), String.valueOf(value)); |
| | | // }); |
| | | for (String s : map.keySet()) { |
| | | data.put(((String) s).toLowerCase(Locale.ROOT), String.valueOf(map.get(s))); |
| | | } |
| | | dataList.add(data); |
| | | }); |
| | | } |
| | | dataGrid.setData(dataList); |
| | | if (!CollectionUtils.isEmpty(dataList)) { |
| | | wrapperData(dataGrid.getData(), templateVO, sqlBO.getSelectFieldList(), false); |
| | | dataGrid.setData(dataList); |
| | | dataGrid.setTotal(Long.parseLong(commonsMapper.selectBySql(sqlBO.getSqlCount()).get(0).values().toArray()[0].toString())); |
| | | } |
| | | return dataGrid; |
| | |
| | | } |
| | | }); |
| | | if (!CollectionUtils.isEmpty(userIds)) { |
| | | Map<String, User> userVOMap = new HashMap<>(); |
| | | for (String userId : userIds) { |
| | | if(!StringUtils.isNumeric(userId)){ |
| | | continue; |
| | | } |
| | | User data = iUserClient.userInfoById(Long.valueOf(userId)).getData(); |
| | | if(data != null){ |
| | | userVOMap.put(String.valueOf(data.getId()),data); |
| | | } |
| | | } |
| | | // Map<String, SmUserVO> userVOMap = Optional.ofNullable(userQueryService.listUserByUserIds(userIds)).orElseGet(() -> new ArrayList<>()).stream().collect(Collectors.toMap(s -> s.getId().toLowerCase(Locale.ROOT), t -> t)); |
| | | // dataMap.stream().forEach(data -> { |
| | | // String creator = data.getOrDefault("creator", null); |
| | | // if (StringUtils.isNotBlank(creator) && userVOMap.containsKey(creator.toLowerCase(Locale.ROOT))) { |
| | | // data.put("creator", creator + "(" + userVOMap.get(creator.toLowerCase(Locale.ROOT)).getName() + ")"); |
| | | // } |
| | | // String lastmodifier = data.getOrDefault("lastmodifier", null); |
| | | // if (StringUtils.isNotBlank(lastmodifier) && userVOMap.containsKey(lastmodifier.toLowerCase(Locale.ROOT))) { |
| | | // data.put("lastmodifier", lastmodifier + "(" + userVOMap.get(lastmodifier.toLowerCase(Locale.ROOT)).getName() + ")"); |
| | | // } |
| | | // }); |
| | | dataMap.stream().forEach(data -> { |
| | | String creator = data.getOrDefault("creator", null); |
| | | if (StringUtils.isNotBlank(creator) && userVOMap.containsKey(creator.toLowerCase(Locale.ROOT))) { |
| | | data.put("creator", creator + "(" + userVOMap.get(creator.toLowerCase(Locale.ROOT)).getRealName() + ")"); |
| | | } |
| | | String lastmodifier = data.getOrDefault("lastmodifier", null); |
| | | if (StringUtils.isNotBlank(lastmodifier) && userVOMap.containsKey(lastmodifier.toLowerCase(Locale.ROOT))) { |
| | | data.put("lastmodifier", lastmodifier + "(" + userVOMap.get(lastmodifier.toLowerCase(Locale.ROOT)).getRealName() + ")"); |
| | | } |
| | | }); |
| | | } |
| | | } |
| | | |
| | |
| | | //处理枚举的内容,为了兼容以前的数据,如果数据不能使用枚举转换的话,那还是显示以前的值 |
| | | if (!CollectionUtils.isEmpty(enumAttrVOs)) { |
| | | enumAttrVOs.stream().forEach(enumAttrVO -> { |
| | | // String attrId = enumAttrVO.getId().toUpperCase(Locale.ROOT); |
| | | String attrId = enumAttrVO.getId().toLowerCase(Locale.ROOT); |
| | | String oldValue = data.getOrDefault(attrId, null); |
| | | String oldValue = String.valueOf(data.getOrDefault(attrId, null)); |
| | | if (StringUtils.isNotBlank(oldValue)) { |
| | | List<KeyValue> comboxKVs = listComboboxItems(enumAttrVO); |
| | | String newValue = oldValue; |
| | |
| | | referVO.setValueField(VciQueryWrapperForDO.OID_FIELD); |
| | | referVO.setTextField("name"); |
| | | } |
| | | //表需要改 |
| | | //使用传入的业务类型查询表 |
| | | R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(referVO.getReferType())); |
| | | // String referTable = VciBaseUtil.getTableName(referVO.getReferType()); |
| | | String referTable = "pl_code_wupin"; |
| | | String referTable = listR.getData().get(0).getTableName(); |
| | | // String referTable = "pl_code_classify"; |
| | | String referTableNick = attrVO.getId() + "0"; |
| | | String left = " left join " + referTable + " " + referTableNick + " on " + referTableNick + "." + referVO.getValueField() + " = t." + attrVO.getId(); |
| | | joinTableList.put(attrVO.getId(), left); |
| | |
| | | selectFieldList.add(referTableNick + "." + showFieldInSource + " as " + referShowField); |
| | | }); |
| | | } |
| | | Optional.ofNullable(attributeService.getDefaultAttributeVOMap()).orElseGet(() -> new HashMap<>()).keySet().stream().forEach(attrId -> { |
| | | if (!selectFieldList.contains(attrId) && !"secretgrade".equalsIgnoreCase(attrId)) { |
| | | selectFieldList.add(attrId); |
| | | R<BtmTypeVO> allAttributeByBtmId = btmTypeClient.getDefaultAttrByBtmId(btmType); |
| | | // Optional.ofNullable(allAttributeByBtmId.getData()).orElseGet(allAttributeByBtmId.getData().getAttributes()).stream().forEach(attrId -> { |
| | | // if (!selectFieldList.contains(attrId.getOid()) && !"secretgrade".equalsIgnoreCase(attrId.getOid())) { |
| | | // selectFieldList.add(attrId.getOid()); |
| | | // } |
| | | // }); |
| | | if(allAttributeByBtmId.getData() != null ){ |
| | | for (BtmTypeAttributeVO attribute : allAttributeByBtmId.getData().getAttributes()) { |
| | | if (!selectFieldList.contains(attribute.getId()) && !"secretgrade".equalsIgnoreCase(attribute.getId())) { |
| | | selectFieldList.add(attribute.getId()); |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | |
| | | if (!selectFieldList.contains(CODE_FIELD)) { |
| | | selectFieldList.add(CODE_FIELD); |
| | | } |
| | |
| | | } |
| | | //要改,表明获取有问题 |
| | | // String tableName = VciBaseUtil.getTableName(btmType); |
| | | String tableName = "pl_code_wupin"; |
| | | // String tableName = "pl_code_wupin"; |
| | | R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(btmType)); |
| | | // String referTable = VciBaseUtil.getTableName(referVO.getReferType()); |
| | | String tableName = listR.getData().get(0).getTableName(); |
| | | String sql = "select " + selectFieldList.stream().map(s -> (s.contains(".") ? s : ("t." + s))).collect(Collectors.joining(",")) |
| | | + " from " + tableName + SPACE + "t" + SPACE |
| | | + joinTableList.values().stream().collect(Collectors.joining(SPACE)) |
| | |
| | | */ |
| | | private String getSqlByValue(String selectKey, String value, Map<String, CodeClassifyTemplateAttrVO> attrVOMap) { |
| | | StringBuilder sql = new StringBuilder(); |
| | | if (!selectKey.contains(".") && (attrVOMap.containsKey(selectKey.toLowerCase(Locale.ROOT)) || attributeService.isDefaultAttr(selectKey) || selectKey.matches(RegExpConstant.LETTER))) { |
| | | sql.append("t."); |
| | | } |
| | | //待完善 |
| | | // if (!selectKey.contains(".") && (attrVOMap.containsKey(selectKey.toLowerCase(Locale.ROOT)) || attributeService.isDefaultAttr(selectKey) || selectKey.matches(RegExpConstant.LETTER))) { |
| | | // sql.append("t."); |
| | | // } |
| | | if (value.startsWith(QueryOptionConstant.IN)) { |
| | | sql.append(selectKey) |
| | | .append(SPACE) |
| | |
| | | } else { |
| | | //表需要改 |
| | | // conditionMap.put(CODE_CLASSIFY_OID_FIELD, QueryOptionConstant.IN + "(select oid from " + VciBaseUtil.getTableName(MdmBtmTypeConstant.CODE_CLASSIFY) |
| | | conditionMap.put(CODE_CLASSIFY_OID_FIELD, QueryOptionConstant.IN + "(select oid from pl_code_wupin where lcstatus='" + FrameWorkDefaultValueConstant.FRAMEWORK_DATA_ENABLED + |
| | | conditionMap.put(CODE_CLASSIFY_OID_FIELD, QueryOptionConstant.IN + "(select oid from pl_code_classify where lcstatus='" + FrameWorkDefaultValueConstant.FRAMEWORK_DATA_ENABLED + |
| | | "' start with parentCodeClassifyOid = '" + codeClassifyOid + "' CONNECT BY PRIOR OID = parentCodeClassifyOid )"); |
| | | } |
| | | conditionMap.put("lastr", "1"); |
| | |
| | | CodeClassifyVO topClassifyVO = classifyService.getTopClassifyVO(templateVO.getCodeclassifyoid()); |
| | | String btmId = topClassifyVO.getBtmtypeid(); |
| | | //查询数据 |
| | | Map<String, String> conditionMap = WebUtil.getOidQuery(oid); |
| | | Map<String, String> conditionMap = new HashMap<>(); |
| | | conditionMap.put("t.oid",oid); |
| | | CodeTemplateAttrSqlBO sqlBO = getSqlByTemplateVO(btmId, templateVO, conditionMap, new PageHelper(-1)); |
| | | //我们使用和业务类型的来查询 |
| | | List<Map> cbos = commonsMapper.selectBySql(sqlBO.getSqlUnPage()); |
| | | List<Map> cbosB = commonsMapper.selectBySql(sqlBO.getSqlUnPage()); |
| | | List<Map<String,String>> cbos = new ArrayList<>(); |
| | | cbosB.stream().forEach(map -> { |
| | | Map<String, String> data = new HashMap<>(); |
| | | for (Object o : map.keySet()) { |
| | | data.put(((String) o).toLowerCase(Locale.ROOT), String.valueOf(map.get(o))); |
| | | } |
| | | cbos.add(data); |
| | | }); |
| | | |
| | | // List<ClientBusinessObject> cbos = boService.queryByOnlySql(sqlBO.getSqlUnPage()); |
| | | if (CollectionUtils.isEmpty(cbos)) { |
| | | throw new VciBaseException("数据在系统中不存在,是否因为修改过业务类型?"); |
| | |
| | | wrapperData(dataList, templateVO, sqlBO.getSelectFieldList(), true); |
| | | R<List<Map<String, String>>> result = R.data(Collections.singletonList(cbo)); |
| | | //我们要看是否不是升版的,升版的话,需要对比不相等的属性 |
| | | String copy = String.valueOf(cbo.get("COPYFROMVERSION")); |
| | | String copy = cbo.get("copyfromversion"); |
| | | // if (StringUtils.isBlank(copy)) { |
| | | // copy = cbo.getAttributeValue("copyfromversion"); |
| | | // } |
| | |
| | | MdmUIInfoVO uiInfoVO = getTableDefineByTemplateVO(getUsedTemplateByClassifyOid(codeClassifyOid)); |
| | | uiInfoVO.setLeaf(classifyService.countChildrenByClassifyOid(codeClassifyOid) == 0); |
| | | if (StringUtils.isNotBlank(functionId) && !"~".equalsIgnoreCase(functionId)) { |
| | | List<Menu> buttonVOS = iSysClient.getMenuButtonByType(uiInfoVO.getTemplateVO().getBtmTypeId()).getData(); |
| | | |
| | | //功能按钮服务还未实现,等实现了,在进行调用 |
| | | //List<SmOperationVO> operationVOS = operationService.listButtonByFunctionId(functionId); |
| | | // List<SmOperationVO> operationVOS = operationService.listButtonByFunctionId(functionId); |
| | | // if (operationVOS == null) { |
| | | // operationVOS = new ArrayList<>(); |
| | | // } |
| | | //查询扩展按钮 |
| | | // //查询扩展按钮 |
| | | // List<CodeButtonVO> buttonVOS = listButtonInToolbarByClassifyOid(codeClassifyOid); |
| | | // if (!CollectionUtils.isEmpty(buttonVOS)) { |
| | | // for (int i = 0; i < buttonVOS.size(); i++) { |
| | | // CodeButtonVO buttonVO = buttonVOS.get(i); |
| | | // SmOperationVO operationVO = new SmOperationVO(); |
| | | // operationVO.setModuleNo(functionId); |
| | | // operationVO.setUniqueFlag(buttonVO.getId()); |
| | | // operationVO.setName(buttonVO.getName()); |
| | | // operationVO.setAlias(operationVO.getName()); |
| | | // operationVO.setExecuteJs(buttonVO.getExecutejs()); |
| | | // operationVO.setIconCls(buttonVO.getIconcls()); |
| | | // operationVOS.add(operationVO); |
| | | // } |
| | | // } |
| | | // uiInfoVO.setButtons(operationVOS); |
| | | List<SmOperationVO> operationVOS = new ArrayList<>(); |
| | | if (!CollectionUtils.isEmpty(buttonVOS)) { |
| | | for (int i = 0; i < buttonVOS.size(); i++) { |
| | | Menu buttonVO = buttonVOS.get(i); |
| | | SmOperationVO operationVO = new SmOperationVO(); |
| | | operationVO.setModuleNo(functionId); |
| | | operationVO.setUniqueFlag(buttonVO.getCode()); |
| | | operationVO.setName(buttonVO.getName()); |
| | | operationVO.setAlias(buttonVO.getAlias()); |
| | | operationVO.setOrderNo(String.valueOf(buttonVO.getSort())); |
| | | // operationVO.setExecuteJs(buttonVO.getExecuteJs()); |
| | | // operationVO.setIconCls(buttonVO.getIconCls()); |
| | | operationVOS.add(operationVO); |
| | | } |
| | | } |
| | | uiInfoVO.setButtons(operationVOS); |
| | | } |
| | | return uiInfoVO; |
| | | } |
| | |
| | | } |
| | | return buttonVOList; |
| | | } |
| | | |
| | | /** |
| | | * 传入业务类型以及相关数据进行批量插入操作 |
| | | * |
| | | * @param btmType 业务类型 |
| | | * @param baseModels 处理数据 |
| | | * @return 处理成功数据条数 |
| | | */ |
| | | @Override |
| | | public Integer insertBatchByType(String btmType, List<BaseModel> baseModels) throws Exception { |
| | | //使用传入的业务类型查询表 |
| | | R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(btmType)); |
| | | if(listR.getData().size() == 0){ |
| | | throw new VciBaseException("传入业务类型未查询到相应表单,请检查!"); |
| | | } |
| | | //将bean转为map,mybatis统一处理 |
| | | List<Map<String,String>> maps = new ArrayList<>(); |
| | | baseModels.stream().forEach(model-> { |
| | | try { |
| | | maps.add(VciBaseUtil.convertBean2Map(model)); |
| | | } catch (Exception e) { |
| | | throw new VciBaseException("类型转换错误:" + e.toString()); |
| | | } |
| | | }); |
| | | return commonsMapper.insertByBaseModel(listR.getData().get(0).getTableName(), maps.get(0), maps); |
| | | } |
| | | |
| | | /** |
| | | * 传入业务类型以及相oid集合查询数据进行返回 |
| | | * |
| | | * @param btmType 业务类型 |
| | | * @param oids 需要查询的oid集合 逗号分开 |
| | | * @return 查询出的数据 |
| | | */ |
| | | @Override |
| | | public List<BaseModel> selectByTypeAndOid(String btmType, String oids) throws IllegalAccessException, NoSuchFieldException, InstantiationException, InvocationTargetException, IntrospectionException, SQLException { |
| | | |
| | | //使用传入的业务类型查询表 |
| | | R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(btmType)); |
| | | if(listR.getData().size() == 0){ |
| | | throw new VciBaseException("传入业务类型未查询到相应表单,请检查!"); |
| | | } |
| | | //查询数据 |
| | | List<Map> maps = commonsMapper.selectBySql("select * from " + listR.getData().get(0).getTableName() + " where oid in (" |
| | | + VciBaseUtil.toInSql(oids.toString()) + ")"); |
| | | |
| | | List<BaseModel> baseModels = new ArrayList<>(); |
| | | //将查询到的数据转换为basemodel,使用的反射方式来进行创建的 |
| | | for (Map map : maps) { |
| | | Object obj = BaseModel.class.newInstance(); |
| | | BeanInfo beanInfo = Introspector.getBeanInfo(obj.getClass()); |
| | | PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors(); |
| | | for (PropertyDescriptor property : propertyDescriptors) { |
| | | Method setter = property.getWriteMethod(); |
| | | if (setter != null) { |
| | | //oracle的时间为TIMESTAMP的,需要进行转换成data,否则将报错 |
| | | if(map.get(property.getName().toUpperCase()) instanceof TIMESTAMP){ |
| | | LocalDateTime localDateTime = ((TIMESTAMP) map.get(property.getName().toUpperCase())).toLocalDateTime(); |
| | | ZoneId zoneId = ZoneId.systemDefault(); |
| | | ZonedDateTime zdt = localDateTime.atZone(zoneId); |
| | | Date date = Date.from(zdt.toInstant()); |
| | | setter.invoke(obj,date); |
| | | map.remove(property.getName().toUpperCase()); |
| | | } //oracle的数字为BigDecimal的,需要进行转换成Integer,否则将报错 |
| | | else if (map.get(property.getName().toUpperCase()) instanceof BigDecimal |
| | | && ("Integer").equals(setter.getParameterTypes()[0].getSimpleName())){ |
| | | setter.invoke(obj, ((BigDecimal)map.get(property.getName().toUpperCase())).intValue()); |
| | | map.remove(property.getName().toUpperCase()); |
| | | }else if(map.get(property.getName().toUpperCase()) != null){ |
| | | setter.invoke(obj, map.get(property.getName().toUpperCase())); |
| | | map.remove(property.getName().toUpperCase()); |
| | | } |
| | | } |
| | | } |
| | | for (Object key : map.keySet()) { |
| | | map.put(key,String.valueOf(map.get(key))); |
| | | } |
| | | |
| | | ((BaseModel) obj).setData(map); |
| | | baseModels.add((BaseModel) obj); |
| | | } |
| | | return baseModels; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 根据业务类型名称创建业务数据源对象 |
| | | * @param boName 业务类型名称 |
| | | * @return 业务数据对象 |
| | | */ |
| | | public BaseModel createBaseModel(String boName) { |
| | | R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(boName)); |
| | | String userName = AuthUtil.getUser().getUserName(); |
| | | BaseModel bo = new BaseModel(); |
| | | // bo.setOid(VciBaseUtil.getPk()); |
| | | // bo.setRevisionid(VciBaseUtil.getPk()); |
| | | // bo.setNameoid(VciBaseUtil.getPk()); |
| | | bo.setBtmname(boName); |
| | | bo.setLastR("1"); |
| | | bo.setFirstR("1"); |
| | | bo.setFirstV("1"); |
| | | bo.setLastV("1"); |
| | | bo.setCreator(userName); |
| | | bo.setCreateTime(new Date()); |
| | | bo.setLastModifier(userName); |
| | | bo.setLastModifyTime(new Date()); |
| | | bo.setRevisionRule(listR.getData().get(0).getRevisionRuleId()); |
| | | bo.setVersionRule(String.valueOf(listR.getData().get(0).getVersionRule())); |
| | | if(StringUtils.isNotBlank(listR.getData().get(0).getRevisionRuleId())){ |
| | | R<List<RevisionRuleVO>> revisionRuleVO = revisionRuleClient |
| | | .selectByIdCollection(Collections.singletonList(listR.getData().get(0).getRevisionRuleId())); |
| | | bo.setRevisionValue(revisionRuleVO.getData().get(0).getStartCode()); |
| | | } |
| | | bo.setRevisionSeq(1); |
| | | bo.setVersionSeq(1); |
| | | bo.setVersionValue(getVersionValue(WebUtil.getInt(listR.getData().get(0).getVersionRule()))); |
| | | bo.setLctid(listR.getData().get(0).getLifeCycleId()); |
| | | // if(StringUtils.isNotBlank(listR.getData().get(0).getLifeCycleId())){ |
| | | // OsLifeCycleVO lifeCycleVO = lifeService.getLifeCycleById(listR.getData().get(0).getLifeCycleId()); |
| | | bo.setLcStatus("Editing"); |
| | | // } |
| | | bo.setId(""); |
| | | bo.setName(""); |
| | | bo.setDescription(""); |
| | | bo.setOwner(userName); |
| | | // bo.setCheckinby(userName); |
| | | bo.setCopyFromVersion(""); |
| | | // this.initTypeAttributeValue(bo,btmTypeVO); |
| | | return bo; |
| | | } |
| | | |
| | | /** |
| | | * 获取版次的值 |
| | | * @param verRuleName 版次的规则 |
| | | * @return 版次的值,没有规则则为空 |
| | | */ |
| | | private String getVersionValue(int verRuleName) { |
| | | if (verRuleName == 0) { |
| | | return "1"; |
| | | } else if (verRuleName == 1) { |
| | | return "a"; |
| | | } else if (verRuleName == 2) { |
| | | return "0"; |
| | | } |
| | | return ""; |
| | | } |
| | | |
| | | /** |
| | | * 传入业务类型以及相关数据进行批量更新操作 |
| | | * |
| | | * @param btmType 业务类型 |
| | | * @param baseModels 处理数据 |
| | | * @return 处理状态 |
| | | */ |
| | | @Override |
| | | public R updateBatchByBaseModel(String btmType, List<BaseModel> baseModels) throws Exception { |
| | | //使用传入的业务类型查询表 |
| | | R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(btmType)); |
| | | if(listR.getData().size() == 0){ |
| | | throw new VciBaseException("传入业务类型未查询到相应表单,请检查!"); |
| | | } |
| | | //将bean转为map,mybatis统一处理 |
| | | List<Map<String,String>> maps = new ArrayList<>(); |
| | | |
| | | baseModels.stream().forEach(model-> { |
| | | try { |
| | | maps.add(VciBaseUtil.convertBean2Map(model)); |
| | | } catch (Exception e) { |
| | | throw new VciBaseException("类型转换错误:" + e.getMessage()); |
| | | } |
| | | }); |
| | | try { |
| | | //注意此处更新成功是返回的-1 |
| | | commonsMapper.updateBatchByBaseModel(listR.getData().get(0).getTableName(), maps); |
| | | }catch (Exception e){ |
| | | return R.fail("更新失败!"+e.getMessage()); |
| | | } |
| | | |
| | | return R.success("更新成功!"); |
| | | } |
| | | } |