| | |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.baomidou.mybatisplus.extension.toolkit.SqlHelper; |
| | | import com.fasterxml.jackson.databind.ObjectMapper; |
| | | import com.sun.corba.se.impl.orbutil.ObjectUtility; |
| | | import com.vci.ubcs.code.bo.CodeClassifyFullInfoBO; |
| | | import com.vci.ubcs.code.bo.CodeTemplateAttrSqlBO; |
| | | import com.vci.ubcs.code.constant.FrameWorkDefaultValueConstant; |
| | |
| | | |
| | | 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 |
| | | ISysClient iSysClient; |
| | | /** |
| | | * 系统的服务 |
| | | * 密级服务 |
| | | */ |
| | | @Resource |
| | | private IWebSecretClient secretService; |
| | |
| | | List<String> codeList = productCodeService.productCodeAndSaveData(classifyFullInfo, templateVO, ruleVO, orderDTO.getSecDTOList(),cboList); |
| | | |
| | | |
| | | List<String> charList = new ArrayList<>(); |
| | | for (BaseModel baseModel : cboList) { |
| | | charList.add(baseModel.getId()); |
| | | } |
| | | batchSaveSelectChar(templateVO, charList); |
| | | // List<String> charList = new ArrayList<>(); |
| | | // for (BaseModel baseModel : cboList) { |
| | | // charList.add(baseModel.getId()); |
| | | // } |
| | | batchSaveSelectChar(templateVO, cboList); |
| | | return codeList.size() > 0 ? codeList.get(0) : ""; |
| | | // return null; |
| | | } |
| | |
| | | } else if (StringUtils.isNotBlank(orderDTO.getCopyFromVersion())) { |
| | | sql[0] += " and oid != '" + orderDTO.getCopyFromVersion() + "'"; |
| | | } |
| | | sql[0] += " and islastR = '1' and islastV = '1' "; |
| | | sql[0] += " and lastR = '1' and lastV = '1' "; |
| | | // if (boService.queryCountBySql(sql[0], new HashMap<>()) > 0) { |
| | | if (Integer.parseInt(commonsMapper.selectById(sql[0]).get(0)) > 0) { |
| | | String ruleInfoMsg = keyRuleVO == null ? "" : "查询规则:去除空格--{0},忽略大小写--{1},忽略全半角--{2},忽略全部空格--{3}"; |
| | |
| | | */ |
| | | @Override |
| | | public void batchSaveSelectChar(CodeClassifyTemplateVO templateVO, /*List<ClientBusinessObject> cboList*/ |
| | | List<String> cboList) { |
| | | List<BaseModel> cboList) { |
| | | if (templateVO != null && !CollectionUtils.isEmpty(cboList)) { |
| | | //是异步的,所以直接循环 |
| | | List<CodeClassifyTemplateAttrVO> selectAttrVOs = templateVO.getAttributes().stream().filter(s -> StringUtils.isNotBlank(s.getLibraryIdentification())).collect(Collectors.toList()); |
| | |
| | | if (!CollectionUtils.isEmpty(selectAttrVOs)) { |
| | | // SessionInfo sessionInfo = VciBaseUtil.getCurrentUserSessionInfo(); |
| | | selectAttrVOs.parallelStream().forEach(attrVO -> { |
| | | List<String> valuesList = cboList; |
| | | // cboList.parallelStream().forEach(cbo -> { |
| | | List<String> valuesList = new ArrayList<>(); |
| | | cboList.parallelStream().forEach(cbo -> { |
| | | // String value = cbo.get.getAttributeValue(attrVO.getId()); |
| | | // if (StringUtils.isNotBlank(value)) { |
| | | // valuesList.add(value); |
| | | // } |
| | | |
| | | //将bean转为map,mybatis统一处理 |
| | | Map<String,String> map = null; |
| | | |
| | | // baseModels.stream().forEach(model-> { |
| | | try { |
| | | map = VciBaseUtil.convertBean2Map(cbo); |
| | | } catch (Exception e) { |
| | | throw new VciBaseException("类型转换错误:" + e.getMessage()); |
| | | } |
| | | // }); |
| | | |
| | | String value = map.get(attrVO.getId()); |
| | | if (StringUtils.isNotBlank(value)) { |
| | | valuesList.add(value); |
| | | } |
| | | }); |
| | | if (!CollectionUtils.isEmpty(valuesList)) { |
| | | for (String s : valuesList) { |
| | | DictBiz dictBiz = new DictBiz(); |
| | |
| | | // CodeClassifyFullInfoBO classifyFullInfo = classifyService.getClassifyFullInfo(orderDTO.getCodeClassifyOid()); |
| | | CodeClassifyFullInfoBO classifyFullInfo = classifyService.getClassifyFullInfo(orderDTO.getCodeClassifyOid()); |
| | | //找业务类型,然后使用主键去获取数据库里的数据 |
| | | // List<ClientBusinessObject> cbos = boService.queryCBO(classifyFullInfo.getTopClassifyVO().getBtmtypeid(), WebUtil.getOidQuery(orderDTO.getOid())); |
| | | List<BaseModel> cbos = selectByTypeAndOid(classifyFullInfo.getTopClassifyVO().getBtmtypeid(), orderDTO.getOid()); |
| | | |
| | | QueryWrapper<CodeWupin> btmWrapper = new QueryWrapper<>(); |
| | | btmWrapper.eq("OID",orderDTO.getOid()); |
| | | CodeWupin cbo = codeWupinMapper.selectOne(btmWrapper); |
| | | |
| | | if (CollectionUtils.isEmpty(cbos)) { |
| | | throw new VciBaseException(DATA_OID_NOT_EXIST); |
| | | } |
| | | // QueryWrapper<CodeWupin> btmWrapper = new QueryWrapper<>(); |
| | | // btmWrapper.eq("OID",orderDTO.getOid()); |
| | | // CodeWupin cbo = codeWupinMapper.selectOne(btmWrapper); |
| | | BaseModel cbo = cbos.get(0); |
| | | // CodeClstemplateVO templateVO = templateService.getObjectHasAttrByOid(orderDTO.getTemplateOid()); |
| | | // CodeRuleVO ruleVO = ruleService.getObjectHasSecByOid(orderDTO.getCodeRuleOid()); |
| | | |
| | |
| | | cbo.setDescription(orderDTO.getDescription()); |
| | | cbo.setName(orderDTO.getName()); |
| | | try { |
| | | cbo.setDescription(orderDTO.getDescription()); |
| | | cbo.setDescription( StringUtils.isBlank(orderDTO.getDescription())?"":orderDTO.getDescription()); |
| | | cbo.setName(orderDTO.getName()); |
| | | //// cbo.setAttributeValueWithNoCheck("description", orderDTO.getDescription()); |
| | | // cbo.setAttributeValue("name", orderDTO.getName()); |
| | |
| | | e.printStackTrace(); |
| | | } |
| | | cbo.setLastModifyTime(new Date()); |
| | | cbo.setLastModifier(AuthUtil.getUser().getUserName()); |
| | | codeWupinMapper.updateById(cbo); |
| | | cbo.setLastModifier(String.valueOf(AuthUtil.getUser().getUserId())); |
| | | updateBatchByBaseModel(classifyFullInfo.getTopClassifyVO().getBtmtypeid(), Collections.singletonList(cbo)); |
| | | // codeWupinMapper.updateById(cbo); |
| | | // |
| | | // List<CodeWupinEntity> cboList = new ArrayList<>(); |
| | | // |
| | |
| | | // List<ClientBusinessObject> cboList = new ArrayList<>(); |
| | | // cboList.add(cbo); |
| | | // boService.persistenceBatch(batchCBO); |
| | | batchSaveSelectChar(templateVO, Arrays.asList(cbo.getId())); |
| | | batchSaveSelectChar(templateVO, Collections.singletonList(cbo)); |
| | | // batchSaveSelectChar(templateVO, Arrays.asList(cbo.getId())); |
| | | } |
| | | |
| | | /** |
| | |
| | | */ |
| | | @Override |
| | | public R batchUpdateCode(List<CodeOrderDTO> orderDTOList) { |
| | | // VciBaseUtil.alertNotNull(orderDTOList,"编码申请相关的属性内容"); |
| | | // orderDTOList.forEach(orderDTO -> { |
| | | // VciBaseUtil.alertNotNull(orderDTO, "编码申请相关的属性的内容都为空", orderDTO.getOid(), "数据主键", |
| | | // orderDTO.getCodeClassifyOid(), "主题库分类的主键"); |
| | | // }); |
| | | // Map<String, CodeOrderDTO> orderDTOMap = orderDTOList.stream().filter(orderDTO -> orderDTO != null && StringUtils.isNotBlank(orderDTO.getOid())).collect(Collectors.toList()).stream().collect(Collectors.toMap(s -> s.getOid(), t -> t)); |
| | | // List<ClientBusinessObject> updateList = new ArrayList<>(); |
| | | // // 应该都是一个分类下的业务数据,找第一条的就行 |
| | | // CodeClassifyFullInfoBO classifyFullInfo = classifyService.getClassifyFullInfo(orderDTOList.get(0).getCodeClassifyOid()); |
| | | VciBaseUtil.alertNotNull(orderDTOList,"编码申请相关的属性内容"); |
| | | orderDTOList.forEach(orderDTO -> { |
| | | VciBaseUtil.alertNotNull(orderDTO, "编码申请相关的属性的内容都为空", orderDTO.getOid(), "数据主键", |
| | | orderDTO.getCodeClassifyOid(), "主题库分类的主键"); |
| | | }); |
| | | Map<String, CodeOrderDTO> orderDTOMap = orderDTOList.stream().filter(orderDTO -> orderDTO != null && StringUtils.isNotBlank(orderDTO.getOid())).collect(Collectors.toList()).stream().collect(Collectors.toMap(s -> s.getOid(), t -> t)); |
| | | List<BaseModel> updateList = new ArrayList<>(); |
| | | // 应该都是一个分类下的业务数据,找第一条的就行 |
| | | CodeClassifyFullInfoBO topClassifyFullInfo = classifyService.getClassifyFullInfo(orderDTOList.get(0).getCodeClassifyOid()); |
| | | // Map<String,String> cboOidMap = new HashMap<>(); |
| | | // if (CollectionUtils.isEmpty(orderDTOMap.keySet())){ |
| | | // throw new VciBaseException(DATA_OID_NOT_EXIST); |
| | | // } |
| | | if (CollectionUtils.isEmpty(orderDTOMap.keySet())){ |
| | | throw new VciBaseException(DATA_OID_NOT_EXIST); |
| | | } |
| | | |
| | | List<BaseModel> cboList = selectByTypeAndOid(topClassifyFullInfo.getTopClassifyVO().getBtmtypeid(), VciBaseUtil.array2String(orderDTOMap.keySet().toArray(new String[0]))); |
| | | // cboOidMap.put("oid",QueryOptionConstant.IN + "(" + VciBaseUtil.toInSql(orderDTOMap.keySet().toArray(new String[0])) + ")"); |
| | | // List<ClientBusinessObject> cboList = boService.queryCBO(classifyFullInfo.getTopClassifyVO().getBtmtypeid(), cboOidMap); |
| | | // if (CollectionUtils.isEmpty(cboList)){ |
| | | // throw new VciBaseException(DATA_OID_NOT_EXIST); |
| | | // } |
| | | if (CollectionUtils.isEmpty(cboList)){ |
| | | throw new VciBaseException(DATA_OID_NOT_EXIST); |
| | | } |
| | | // BatchCBO batchCBO = new BatchCBO(); |
| | | // CodeClassifyTemplateVO firstTemplateVO = templateService.getObjectHasAttrByOid(orderDTOMap.values().stream().findFirst().get().getTemplateOid()); |
| | | // Map<String, ClientBusinessObject> cboMap = cboList.stream().filter(cbo -> cbo != null).collect(Collectors.toList()).stream().collect(Collectors.toMap(s -> s.getOid(), t -> t)); |
| | | // orderDTOMap.keySet().stream().forEach(oid -> { |
| | | // CodeOrderDTO orderDTO = orderDTOMap.get(oid); |
| | | // ClientBusinessObject cbo = cboMap.get(oid); |
| | | // if (!cbo.getTs().contains(VciDateUtil.date2Str(orderDTO.getTs(), VciDateUtil.DateTimeFormat))) { |
| | | // throw new VciBaseException("数据不是最新的,可能他人已经修改,请刷新后再试"); |
| | | // } |
| | | // if (!CodeDefaultLC.EDITING.getValue().equalsIgnoreCase(cbo.getLcStatus()) && !orderDTO.isEditInProcess()) { |
| | | // throw new VciBaseException("数据不是{0}的状态,不允许修改", new String[]{CodeDefaultLC.EDITING.getText()}); |
| | | // } |
| | | // //1. 判断必输项 |
| | | // CodeClassifyTemplateVO templateVO = templateService.getObjectHasAttrByOid(orderDTO.getTemplateOid()); |
| | | // checkRequiredAttrOnOrder(templateVO, orderDTO); |
| | | // //2.先注入,再组合,最后校验 |
| | | // switchClassifyLevelOnOrder(templateVO, classifyFullInfo, orderDTO); |
| | | // //3.处理组合规则。组合规则不能使用编码的属性,因为编码的生成可能是需要属性的 |
| | | // switchComponentAttrOnOrder(templateVO, orderDTO); |
| | | // //4.校验规则 |
| | | // checkVerifyOnOrder(templateVO, orderDTO); |
| | | // //5.判断关键属性 |
| | | // checkKeyAttrOnOrder(classifyFullInfo, templateVO, orderDTO); |
| | | // //6.校验枚举的内容是否正确 |
| | | // checkEnumOnOrder(templateVO, orderDTO); |
| | | // //7.处理时间格式,在数据库里面不论是字符串还是日期格式,都使用相同的格式存储 |
| | | // switchDateAttrOnOrder(templateVO, orderDTO); |
| | | // //默认的内容不能变,所以只需要拷贝自定义的相关属性即可 |
| | | // copyValueToCBO(classifyFullInfo, cbo, orderDTO, templateVO, true); |
| | | // //企业码和集团码的不修改 |
| | | // cbo.setDescription(orderDTO.getDescription()); |
| | | // cbo.setName(orderDTO.getName()); |
| | | Map<String, BaseModel> cboMap = cboList.stream().filter(cbo -> cbo != null).collect(Collectors.toList()).stream().collect(Collectors.toMap(s -> s.getOid(), t -> t)); |
| | | orderDTOMap.keySet().stream().forEach(oid -> { |
| | | CodeOrderDTO orderDTO = orderDTOMap.get(oid); |
| | | CodeClassifyFullInfoBO classifyFullInfo = classifyService.getClassifyFullInfo(orderDTO.getCodeClassifyOid()); |
| | | CodeClassifyTemplateVO firstTemplateVO = templateService.getObjectHasAttrByOid(orderDTOMap.values().stream().findFirst().get().getTemplateOid()); |
| | | BaseModel cbo = cboMap.get(oid); |
| | | String code=cbo.getId(); |
| | | if (!cbo.getTs().toString().contains(orderDTO.getTs().toString())) { |
| | | throw new VciBaseException("数据不是最新的,可能他人已经修改,请刷新后再试"); |
| | | } |
| | | if (!CodeDefaultLC.EDITING.getValue().equalsIgnoreCase(cbo.getLcStatus()) && !orderDTO.isEditInProcess()) { |
| | | throw new VciBaseException("数据不是{0}的状态,不允许修改", new String[]{CodeDefaultLC.EDITING.getText()}); |
| | | } |
| | | //1. 判断必输项 |
| | | CodeClassifyTemplateVO templateVO = templateService.getObjectHasAttrByOid(orderDTO.getTemplateOid()); |
| | | checkRequiredAttrOnOrder(templateVO, orderDTO); |
| | | //2.先注入,再组合,最后校验 |
| | | switchClassifyLevelOnOrder(templateVO, classifyFullInfo, orderDTO); |
| | | //3.处理组合规则。组合规则不能使用编码的属性,因为编码的生成可能是需要属性的 |
| | | switchComponentAttrOnOrder(templateVO, orderDTO); |
| | | //4.校验规则 |
| | | checkVerifyOnOrder(templateVO, orderDTO); |
| | | //5.判断关键属性 |
| | | checkKeyAttrOnOrder(classifyFullInfo, templateVO, orderDTO); |
| | | //6.校验枚举的内容是否正确 |
| | | checkEnumOnOrder(templateVO, orderDTO); |
| | | //7.处理时间格式,在数据库里面不论是字符串还是日期格式,都使用相同的格式存储 |
| | | switchDateAttrOnOrder(templateVO, orderDTO); |
| | | //默认的内容不能变,所以只需要拷贝自定义的相关属性即可 |
| | | copyValueToCBO(classifyFullInfo, cbo, orderDTO, templateVO, true); |
| | | //企业码和集团码的不修改 |
| | | cbo.setDescription(StringUtils.isBlank(orderDTO.getDescription())?"":orderDTO.getDescription()); |
| | | cbo.setName(orderDTO.getName()); |
| | | // try { |
| | | // cbo.setAttributeValueWithNoCheck("description", orderDTO.getDescription()); |
| | | // cbo.setAttributeValue("id",code); |
| | | cbo.setId(code); |
| | | cbo.setDescription(StringUtils.isBlank(orderDTO.getDescription())?"":orderDTO.getDescription()); |
| | | // cbo.setAttributeValueWithNoCheck("description", StringUtils.isBlank(orderDTO.getDescription())?"":orderDTO.getDescription()); |
| | | // cbo.setAttributeValue("name", orderDTO.getName()); |
| | | cbo.setName(orderDTO.getName()); |
| | | // } catch (VCIError e) { |
| | | // e.printStackTrace(); |
| | | // } |
| | | // batchCBO.getUpdateCbos().add(cbo); |
| | | // updateList.add(cbo); |
| | | // }); |
| | | updateList.add(cbo); |
| | | batchSaveSelectChar(firstTemplateVO, cboList); |
| | | }); |
| | | // boService.persistenceBatch(batchCBO); |
| | | // batchSaveSelectChar(firstTemplateVO, cboList); |
| | | updateBatchByBaseModel(topClassifyFullInfo.getTopClassifyVO().getBtmtypeid(),updateList); |
| | | return R.success("操作成功!"); |
| | | } |
| | | |
| | |
| | | */ |
| | | @Override |
| | | public void upSaveCode(CodeOrderDTO orderDTO) { |
| | | VciBaseUtil.alertNotNull(orderDTO, "编码数据所在业务类名称", orderDTO.getBtmname()); |
| | | String btmName=orderDTO.getBtmname(); |
| | | //找业务类型,然后使用主键去获取数据库里的数据 |
| | | List<BaseModel> cbos = selectByTypeAndOid(btmName, orderDTO.getCopyFromVersion()); |
| | | if (CollectionUtils.isEmpty(cbos)) { |
| | | throw new VciBaseException(DATA_OID_NOT_EXIST); |
| | | } |
| | | BaseModel oldCbo = cbos.get(0); |
| | | |
| | | if (!CodeDefaultLC.RELEASED.getValue().equalsIgnoreCase(oldCbo.getLcStatus())) { |
| | | throw new VciBaseException("数据不是{0}的状态,不允许数据更改", new String[]{CodeDefaultLC.RELEASED.getText()}); |
| | | } |
| | | |
| | | //根据数据获取分类oid |
| | | String codeClassifyOid=oldCbo.getData().get(CODE_CLASSIFY_OID_FIELD.toUpperCase()); |
| | | orderDTO.setCodeClassifyOid(codeClassifyOid); |
| | | CodeClassifyFullInfoBO classifyFullInfo = classifyService.getClassifyFullInfo(orderDTO.getCodeClassifyOid()); |
| | | CodeClassifyTemplateVO templateVO= this.getUsedTemplateByClassifyOid(orderDTO.getCodeClassifyOid()); |
| | | orderDTO.setTemplateOid(templateVO.getOid()); |
| | | VciBaseUtil.alertNotNull(orderDTO, "编码申请相关的属性的内容为空", orderDTO.getCopyFromVersion(), "原始数据的主键", |
| | | orderDTO.getCodeClassifyOid(), "主题库分类的主键"); |
| | | CodeClassifyFullInfoBO classifyFullInfo = classifyService.getClassifyFullInfo(orderDTO.getCodeClassifyOid()); |
| | | //找业务类型,然后使用主键去获取数据库里的数据 |
| | | // List<ClientBusinessObject> cbos = boService.queryCBO(classifyFullInfo.getTopClassifyVO().getBtmtypeid(), WebUtil.getOidQuery(orderDTO.getCopyFromVersion())); |
| | | // if (CollectionUtils.isEmpty(cbos)) { |
| | | // throw new VciBaseException(DATA_OID_NOT_EXIST); |
| | | // } |
| | | // ClientBusinessObject oldCbo = cbos.get(0); |
| | | // if (!CodeDefaultLC.RELEASED.getValue().equalsIgnoreCase(oldCbo.getLcStatus())) { |
| | | // throw new VciBaseException("数据不是{0}的状态,不允许数据更改", new String[]{CodeDefaultLC.RELEASED.getText()}); |
| | | // } |
| | | // //需要升版 |
| | | |
| | | //需要升版 |
| | | // ClientBusinessObjectOperation cboOperation = new ClientBusinessObjectOperation(); |
| | | // ClientBusinessObject cbo = null; |
| | | BaseModel cbo = null; |
| | | // try { |
| | | // //cbo = cboOperation.createBusinessObjectVersion(oldCbo,VciBaseUtil.getCurrentUserId()); |
| | | // cbo = cboOperation.reviseBusinessObject(oldCbo, ""); |
| | | cbo = reviseBusinessObject(oldCbo); |
| | | // } catch (VCIError e) { |
| | | // throw new VciBaseException("初始化相关的内容出现了错误", new String[0], e); |
| | | // } |
| | | // //1. 判断必输项 |
| | | //1. 判断必输项 |
| | | // CodeClassifyTemplateVO templateVO = templateService.getObjectHasAttrByOid(orderDTO.getTemplateOid()); |
| | | // checkRequiredAttrOnOrder(templateVO, orderDTO); |
| | | // //2.先注入,再组合,最后校验 |
| | | // switchClassifyLevelOnOrder(templateVO, classifyFullInfo, orderDTO); |
| | | // //3.处理组合规则。组合规则不能使用编码的属性,因为编码的生成可能是需要属性的 |
| | | // switchComponentAttrOnOrder(templateVO, orderDTO); |
| | | // //4.校验规则 |
| | | // checkVerifyOnOrder(templateVO, orderDTO); |
| | | // //5.判断关键属性 |
| | | // checkKeyAttrOnOrder(classifyFullInfo, templateVO, orderDTO); |
| | | // //6.校验枚举的内容是否正确 |
| | | // checkEnumOnOrder(templateVO, orderDTO); |
| | | // //7.处理时间格式,在数据库里面不论是字符串还是日期格式,都使用相同的格式存储 |
| | | // switchDateAttrOnOrder(templateVO, orderDTO); |
| | | // //默认的内容不能变,所以只需要拷贝自定义的相关属性即可 |
| | | // copyValueToCBO(classifyFullInfo, cbo, orderDTO, templateVO, true); |
| | | // //企业码和集团码的不修改 |
| | | // cbo.setDescription(orderDTO.getDescription()); |
| | | // cbo.setName(orderDTO.getName()); |
| | | checkRequiredAttrOnOrder(templateVO, orderDTO); |
| | | //2.先注入,再组合,最后校验 |
| | | switchClassifyLevelOnOrder(templateVO, classifyFullInfo, orderDTO); |
| | | //3.处理组合规则。组合规则不能使用编码的属性,因为编码的生成可能是需要属性的 |
| | | switchComponentAttrOnOrder(templateVO, orderDTO); |
| | | //4.校验规则 |
| | | checkVerifyOnOrder(templateVO, orderDTO); |
| | | //5.判断关键属性 |
| | | checkKeyAttrOnOrder(classifyFullInfo, templateVO, orderDTO); |
| | | //6.校验枚举的内容是否正确 |
| | | checkEnumOnOrder(templateVO, orderDTO); |
| | | //7.处理时间格式,在数据库里面不论是字符串还是日期格式,都使用相同的格式存储 |
| | | switchDateAttrOnOrder(templateVO, orderDTO); |
| | | //默认的内容不能变,所以只需要拷贝自定义的相关属性即可 |
| | | copyValueToCBO(classifyFullInfo, cbo, orderDTO, templateVO, true); |
| | | //企业码和集团码的不修改 |
| | | cbo.setDescription(StringUtils.isBlank(orderDTO.getDescription())?"":orderDTO.getDescription()); |
| | | cbo.setName(orderDTO.getName()); |
| | | // try { |
| | | // cbo.setAttributeValueWithNoCheck("description", orderDTO.getDescription()); |
| | | // cbo.setAttributeValue("name", orderDTO.getName()); |
| | | cbo.setDescription(StringUtils.isBlank(orderDTO.getDescription())?"":orderDTO.getDescription()); |
| | | // cbo.setAttributeValueWithNoCheck("description", StringUtils.isBlank(orderDTO.getDescription())?"":orderDTO.getDescription()); |
| | | cbo.setName(orderDTO.getName()); |
| | | // } catch (VCIError e) { |
| | | // e.printStackTrace(); |
| | | // } |
| | | // //数据的时候,编码是不变的 |
| | | // cbo.setCreateTime(DateUtils.convert2String(new Date(Long.parseLong(cbo.getCreateTime())), "yyyy-MM-dd HH:mm:ss")); |
| | | // cbo.setLastModifyTime(DateUtils.convert2String(new Date(Long.parseLong(cbo.getLastModifyTime())), "yyyy-MM-dd HH:mm:ss")); |
| | | //数据的时候,编码是不变的 |
| | | cbo.setCreateTime(cbo.getCreateTime()); |
| | | cbo.setLastModifyTime(cbo.getLastModifyTime()); |
| | | // List<ClientBusinessObject> cboList = new ArrayList<>(); |
| | | // cboList.add(cbo); |
| | | // try { |
| | | try { |
| | | // cboOperation.saveRevisionBuinessObject(cbo); |
| | | // } catch (VCIError vciError) { |
| | | // throw new VciBaseException("数据更改保存出错了", new String[0], vciError); |
| | | // } |
| | | // batchSaveSelectChar(templateVO, cboList); |
| | | insertBatchByType(cbo.getBtmname(), Collections.singletonList(cbo)); |
| | | } catch (Exception vciError) { |
| | | throw new VciBaseException("数据更改保存出错了", new String[0], vciError); |
| | | } |
| | | batchSaveSelectChar(templateVO, Collections.singletonList(cbo)); |
| | | } |
| | | |
| | | /** |
| | |
| | | |
| | | return "pl_code_"+refertype.trim().toLowerCase(); |
| | | } |
| | | |
| | | public BaseModel reviseBusinessObject(BaseModel fromBo) { |
| | | BaseModel toBo = new BaseModel(); |
| | | // Map<String,String> data = new HashMap<>(); |
| | | // toBo.getData().put(data); |
| | | toBo.setOid(VciBaseUtil.getPk()); |
| | | toBo.setRevisionOid(VciBaseUtil.getPk()); |
| | | toBo.setNameOid(fromBo.getNameOid()); |
| | | toBo.setBtmname(fromBo.getBtmname()); |
| | | toBo.setLastR(String.valueOf(1)); |
| | | toBo.setFirstR(String.valueOf(0)); |
| | | toBo.setFirstV(String.valueOf(1)); |
| | | toBo.setLastV(String.valueOf(1)); |
| | | toBo.setCreator(String.valueOf(AuthUtil.getUser().getUserId())); |
| | | toBo.setCreateTime(new Date()); |
| | | toBo.setLastModifier(String.valueOf(AuthUtil.getUser().getUserId())); |
| | | toBo.setLastModifyTime(new Date()); |
| | | toBo.setRevisionRule(fromBo.getRevisionRule()); |
| | | toBo.setVersionRule(fromBo.getVersionRule()); |
| | | // RevisionValueObject rvObj = this.getNextRevision(fromBo.getBtmName(), fromBo.getNameoid(), item.revRuleName, item.revInput, revisionVal); |
| | | R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(fromBo.getBtmname())); |
| | | Map<String, Object> nextRevision = commonsMapper.getNextRevision(listR.getData().get(0).getTableName(), fromBo.getNameOid()); |
| | | toBo.setRevisionSeq(Integer.parseInt(nextRevision.get("REVISIONSEQ").toString())); |
| | | toBo.setRevisionValue(nextRevision.get("REVISIONVAL").toString()); |
| | | // VersionValueObject versionObj = this.getVersionValue(item.verRuleName); |
| | | toBo.setVersionSeq(Integer.valueOf(nextRevision.get("VERSIONSEQ").toString())); |
| | | toBo.setVersionValue(nextRevision.get("VERSIONVAL").toString()); |
| | | toBo.setLctid(fromBo.getLctid()); |
| | | toBo.setLcStatus("Editing"); |
| | | toBo.setId(fromBo.getId()); |
| | | toBo.setName(fromBo.getName()); |
| | | toBo.setDescription(fromBo.getDescription()); |
| | | toBo.setOwner(String.valueOf(AuthUtil.getUser().getUserId())); |
| | | // toBo.setCheckinBy(String.valueOf(AuthUtil.getUser().getUserId())); |
| | | toBo.setCopyFromVersion(fromBo.getOid()); |
| | | toBo.getData().putAll(fromBo.getData()); |
| | | toBo.getData().put("CHECKINBY",String.valueOf(AuthUtil.getUser().getUserId())); |
| | | // this.initRevisionTypeAttributeValue(fromBo, toBo); |
| | | return toBo; |
| | | |
| | | } |
| | | } |