| | |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | 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 com.vci.ubcs.code.vo.pagemodel.UITablePageVO; |
| | | import com.vci.ubcs.code.vo.pagemodel.*; |
| | | import com.vci.ubcs.omd.constant.BtmTypeLcStatusConstant; |
| | | import com.vci.ubcs.omd.entity.BtmTypeAttribute; |
| | | import com.vci.ubcs.omd.cache.EnumCache; |
| | | import com.vci.ubcs.omd.feign.*; |
| | | import com.vci.ubcs.omd.utils.VciOmdUtil; |
| | |
| | | import com.vci.ubcs.starter.revision.model.TreeQueryObject; |
| | | import com.vci.ubcs.starter.revision.model.TreeWrapperOptions; |
| | | import com.vci.ubcs.starter.revision.service.RevisionModelUtil; |
| | | import com.vci.ubcs.starter.util.UBCSSqlKeyword; |
| | | import com.vci.ubcs.starter.web.constant.QueryOptionConstant; |
| | | import com.vci.ubcs.starter.web.constant.RegExpConstant; |
| | | import com.vci.ubcs.starter.web.enumpck.BooleanEnum; |
| | |
| | | import com.vci.ubcs.system.user.feign.IUserClient; |
| | | import net.logstash.logback.encoder.org.apache.commons.lang3.StringUtils; |
| | | import oracle.sql.TIMESTAMP; |
| | | import org.apache.commons.collections4.MapUtils; |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | | import org.springblade.core.cache.utils.CacheUtil; |
| | |
| | | import org.springblade.core.log.exception.ServiceException; |
| | | import org.springblade.core.secure.utils.AuthUtil; |
| | | import org.springblade.core.tool.api.R; |
| | | import org.springblade.core.tool.utils.DateUtil; |
| | | import org.springblade.core.tool.utils.Func; |
| | | import org.springblade.core.tool.utils.StringPool; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.cache.Cache; |
| | |
| | | |
| | | 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; |
| | |
| | | */ |
| | | @Autowired |
| | | private FormulaServiceImpl formulaService; |
| | | |
| | | |
| | | /** |
| | | * 对omd中提供的feign接口进行调用,以及处理相关逻辑 |
| | | */ |
| | | @Autowired |
| | | ICodeReferBtmTypeService codeReferBtmTypeService; |
| | | |
| | | |
| | | |
| | | /** |
| | | * 相似项查询规则 |
| | |
| | | } |
| | | return comboboxKVs; |
| | | } |
| | | |
| | | /** |
| | | * 修改状态 |
| | | * |
| | |
| | | public void changeStatus(BaseModelDTO baseModelDTO) { |
| | | VciBaseUtil.alertNotNull(baseModelDTO, "数据信息", baseModelDTO.getOid(), "主键", baseModelDTO.getBtmname(), "业务类型", baseModelDTO.getLcStatus(), "目标状态"); |
| | | List<String> oids = VciBaseUtil.str2List(baseModelDTO.getOid()); |
| | | // List<ClientBusinessObject> cboList = boService.selectCBOByOidCollection(oids, baseModelDTO.getBtmname()); |
| | | // TODO 插个点 业务类型完成后需要修改 |
| | | QueryWrapper<BtmTypeVO> wrapper = new QueryWrapper<>(); |
| | | wrapper.eq("BTMNAME",baseModelDTO.getBtmname()); |
| | | wrapper.in("OID",oids); |
| | | // TODO 待完善 |
| | | //插个点 业务类型完成后需要修改 |
| | | // QueryWrapper<BtmTypeVO> wrapper = new QueryWrapper<>(); |
| | | List<BaseModel> baseModels = new ArrayList<>(); |
| | | baseModels = selectByTypeAndOid(baseModelDTO.getBtmname(), baseModelDTO.getOid()); |
| | | if(baseModels.size() == 0){ |
| | |
| | | // 回收需要业务数据删除 |
| | | if (CodeDefaultLC.TASK_BACK.getValue().equals(baseModelDTO.getLcStatus())) { |
| | | R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(baseModelDTO.getBtmname())); |
| | | // String referTable = listR.getData().get(0).getTableName(); |
| | | commonsMapper.deleteByTaleAndOid(listR.getData().get(0).getTableName(),VciBaseUtil.toInSql(baseModelDTO.getOid())); |
| | | // BatchCBO batchCBO = new BatchCBO(); |
| | | // batchCBO.getDeleteCbos().addAll(cboList); |
| | | |
| | | // TODO 待完善 |
| | | //btmTypeClient.deleteBatchIds(cboList); |
| | | |
| | | //boService.persistenceBatch(batchCBO); |
| | | } else { |
| | | for (BaseModel baseModel : baseModels) { |
| | | baseModel.setLcStatus(baseModelDTO.getLcStatus()); |
| | |
| | | } |
| | | 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)); |
| | |
| | | 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 cbo; |
| | | } |
| | | |
| | | /** |
| | | * 是否为修改忽略的属性 |
| | | * @param attrName 属性的名字 |
| | | * @return true 表示应该忽略 |
| | | */ |
| | | @Override |
| | | public boolean checkUnAttrUnEdit(String attrName){ |
| | | return (VciQueryWrapperForDO.OID_FIELD.equalsIgnoreCase(attrName) |
| | | ||"ts".equalsIgnoreCase(attrName) |
| | | || "lastmodifier".equalsIgnoreCase(attrName) |
| | | || "lastmodifytime".equalsIgnoreCase(attrName) |
| | | || "createtime".equalsIgnoreCase(attrName) |
| | | || "checkintime".equalsIgnoreCase(attrName) |
| | | ||"checkouttime".equalsIgnoreCase(attrName)); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 保存可输可选的信息 |
| | |
| | | }); |
| | | |
| | | andCondtionMap.forEach((k, v) -> { |
| | | andSql.add(getConditionSql(k.toLowerCase(), v, referFieldMap, attrVOMap)); |
| | | andSql.add(getConditionSql(k.toLowerCase(), v, referFieldMap, attrVOMap,btmType)); |
| | | }); |
| | | orConditionMap.forEach((k, v) -> { |
| | | orSql.add(getConditionSql(k.toLowerCase(), v, referFieldMap, attrVOMap)); |
| | | orSql.add(getConditionSql(k.toLowerCase(), v, referFieldMap, attrVOMap,btmType)); |
| | | }); |
| | | } |
| | | //组合起来 |
| | |
| | | * @param attrVOMap 属性的映射 |
| | | * @return Sql语句 |
| | | */ |
| | | private String getConditionSql(String key, String value, Map<String/**参照的属性**/, String/**实际的属性**/> referFieldMap, Map<String, CodeClassifyTemplateAttrVO> attrVOMap) { |
| | | if (key.endsWith("_begin")) { |
| | | private String getConditionSql(String key, String value, Map<String/**参照的属性**/, String/**实际的属性**/> referFieldMap, Map<String, CodeClassifyTemplateAttrVO> attrVOMap,String btmType) { |
| | | if (!Func.hasEmpty(new Object[]{key,value}) && !key.endsWith("_ignore")) { |
| | | if (key.endsWith("_like")) { |
| | | String field = UBCSSqlKeyword.getColumn(key, "_like"); |
| | | if (referFieldMap.containsKey(field)) { |
| | | //说明还是参照里面的,我们默认这种情况下都是字符串吧,因为参照的属性不一定用的平台的属性池里的,所以大部分情况下,显示的属性都是字符串吧 |
| | | return referFieldMap.get(field) + SPACE + "LIKE" + SPACE + "'%" + value + "%'" + SPACE; |
| | | } else { |
| | | return (field.contains(".") ? "" : "t.") + field + SPACE + "LIKE " + "'%" + getStringValueInWhere(field, value, attrVOMap) + "%'" + SPACE; |
| | | } |
| | | } else if (key.endsWith("_notequal")) { |
| | | String field = UBCSSqlKeyword.getColumn(key, "_notequal"); |
| | | if (referFieldMap.containsKey(field)) { |
| | | return referFieldMap.get(field) + SPACE + " != " + value + SPACE; |
| | | } else { |
| | | return (field.contains(".") ? "" : "t.") + field + SPACE + " != " + getStringValueInWhere(field, value, attrVOMap); |
| | | } |
| | | } else if (key.endsWith("_likeleft")) { |
| | | String field = UBCSSqlKeyword.getColumn(key, "_likeleft"); |
| | | if (referFieldMap.containsKey(field)) { |
| | | return referFieldMap.get(field) + SPACE + "LIKE" + SPACE + "%"+value + SPACE; |
| | | } else { |
| | | return (field.contains(".") ? "" : "t.") + field + SPACE + "LIKE " + "%" + getStringValueInWhere(field, value, attrVOMap) + SPACE; |
| | | } |
| | | } else if (key.endsWith("_likeright")) { |
| | | String field = UBCSSqlKeyword.getColumn(key, "_likeright"); |
| | | if (referFieldMap.containsKey(field)) { |
| | | return referFieldMap.get(field) + SPACE + "LIKE" + SPACE + value + "%" + SPACE; |
| | | } else { |
| | | return (field.contains(".") ? "" : "t.") + field + SPACE + "LIKE " + getStringValueInWhere(field, value, attrVOMap)+ "%" + SPACE; |
| | | } |
| | | } else if (key.endsWith("_notlike")) { |
| | | String field = UBCSSqlKeyword.getColumn(key, "_notlike"); |
| | | if (referFieldMap.containsKey(field)) { |
| | | return referFieldMap.get(field) + SPACE + "NO LIKE" + SPACE + "%" + value + "%" + SPACE; |
| | | } else { |
| | | return (field.contains(".") ? "" : "t.") + field + SPACE + "NO LIKE " + "%"+getStringValueInWhere(field, value, attrVOMap)+ "%" + SPACE; |
| | | } |
| | | } else if (key.endsWith("_ge")) { |
| | | String field = UBCSSqlKeyword.getColumn(key, "_ge"); |
| | | if (referFieldMap.containsKey(field)) { |
| | | return referFieldMap.get(field) + SPACE + " >= " + value + SPACE; |
| | | } else { |
| | | return (field.contains(".") ? "" : "t.") + field + SPACE + " >= " + getStringValueInWhere(value, field, attrVOMap) + SPACE; |
| | | } |
| | | } else if (key.endsWith("_le")) { |
| | | //说明是<=的。我们需要先获取一下 |
| | | String field = UBCSSqlKeyword.getColumn(key, "_le"); |
| | | if (referFieldMap.containsKey(field)) { |
| | | return referFieldMap.get(field) + SPACE + " <= " + value + "" + SPACE; |
| | | } else { |
| | | return (field.contains(".") ? "" : "t.") + field + SPACE + " <= " + getStringValueInWhere(field, value, attrVOMap) + SPACE; |
| | | } |
| | | } else if (key.endsWith("_gt")) { |
| | | String field = UBCSSqlKeyword.getColumn(key, "_gt"); |
| | | if (referFieldMap.containsKey(field)) { |
| | | return referFieldMap.get(field) + SPACE + "> " + value + SPACE; |
| | | } else { |
| | | return (field.contains(".") ? "" : "t.") + field + SPACE + "> " + getStringValueInWhere(field, value, attrVOMap) + SPACE; |
| | | } |
| | | } else if (key.endsWith("_lt")) { |
| | | String field = UBCSSqlKeyword.getColumn(key, "_lt"); |
| | | if (referFieldMap.containsKey(field)) { |
| | | return referFieldMap.get(field) + SPACE + "< " + value + SPACE; |
| | | } else { |
| | | return (field.contains(".") ? "" : "t.") + field + SPACE + "< " + getStringValueInWhere(field, value, attrVOMap) + SPACE; |
| | | } |
| | | } else if (key.endsWith("_datege")) { |
| | | String field = UBCSSqlKeyword.getColumn(key, "_datege"); |
| | | if (referFieldMap.containsKey(field)) { |
| | | return referFieldMap.get(field) + SPACE + ">= '" + DateUtil.parse(String.valueOf(value), "yyyy-MM-dd HH:mm:ss") + "'" + SPACE; |
| | | } else { |
| | | return (field.contains(".") ? "" : "t.") + field + SPACE + ">= '" + DateUtil.parse(String.valueOf(getStringValueInWhere(field, value, attrVOMap)), "yyyy-MM-dd HH:mm:ss") + "'" + SPACE; |
| | | } |
| | | } else if (key.endsWith("_dategt")) { |
| | | String field = UBCSSqlKeyword.getColumn(key, "_dategt"); |
| | | if (referFieldMap.containsKey(field)) { |
| | | return referFieldMap.get(field) + SPACE + "> '" + DateUtil.parse(String.valueOf(value), "yyyy-MM-dd HH:mm:ss") + "'" + SPACE; |
| | | } else { |
| | | return (field.contains(".") ? "" : "t.") + field + SPACE + "> '" + DateUtil.parse(String.valueOf(getStringValueInWhere(field, value, attrVOMap)), "yyyy-MM-dd HH:mm:ss") + "'" + SPACE; |
| | | } |
| | | } else if (key.endsWith("_dateequal")) { |
| | | String field = UBCSSqlKeyword.getColumn(key, "_dateequal"); |
| | | if (referFieldMap.containsKey(field)) { |
| | | return referFieldMap.get(field) + SPACE + "= '" + DateUtil.parse(String.valueOf(value), "yyyy-MM-dd HH:mm:ss") + "'" + SPACE; |
| | | } else { |
| | | return (field.contains(".") ? "" : "t.") + field + SPACE + "= '" + DateUtil.parse(String.valueOf(getStringValueInWhere(field, value, attrVOMap)), "yyyy-MM-dd HH:mm:ss") + "'" + SPACE; |
| | | } |
| | | } else if (key.endsWith("_datele")) { |
| | | String field = UBCSSqlKeyword.getColumn(key, "_datele"); |
| | | if (referFieldMap.containsKey(field)) { |
| | | return referFieldMap.get(field) + SPACE + "<= '" + DateUtil.parse(String.valueOf(value), "yyyy-MM-dd HH:mm:ss") + "'" + SPACE; |
| | | } else { |
| | | return (field.contains(".") ? "" : "t.") + field + SPACE + "<= '" + DateUtil.parse(String.valueOf(getStringValueInWhere(field, value, attrVOMap)), "yyyy-MM-dd HH:mm:ss") + "'" + SPACE; |
| | | } |
| | | } else if (key.endsWith("_datelt")) { |
| | | String field = UBCSSqlKeyword.getColumn(key, "_datelt"); |
| | | if (referFieldMap.containsKey(field)) { |
| | | return referFieldMap.get(field) + SPACE + "< '" + DateUtil.parse(String.valueOf(value), "yyyy-MM-dd HH:mm:ss") + "'" + SPACE; |
| | | } else { |
| | | return (field.contains(".") ? "" : "t.") + field + SPACE + "< '" + DateUtil.parse(String.valueOf(getStringValueInWhere(field, value, attrVOMap)), "yyyy-MM-dd HH:mm:ss") + "'" + SPACE; |
| | | } |
| | | } else if (key.endsWith("_null")) { |
| | | String field = UBCSSqlKeyword.getColumn(key, "_null"); |
| | | if (referFieldMap.containsKey(field)) { |
| | | return referFieldMap.get(field) + SPACE + "IS NULL" + SPACE; |
| | | } else { |
| | | return (field.contains(".") ? "" : "t.") + field + SPACE + "IS NULL" + SPACE; |
| | | } |
| | | } else if (key.endsWith("_notnull")) { |
| | | String field = UBCSSqlKeyword.getColumn(key, "_null"); |
| | | if (referFieldMap.containsKey(field)) { |
| | | return referFieldMap.get(field) + SPACE + "IS NOT NULL" + SPACE; |
| | | } else { |
| | | return (field.contains(".") ? "" : "t.") + field + SPACE + "IS NOT NULL" + SPACE; |
| | | } |
| | | } else if(key.endsWith("_dateequal")) { |
| | | String field = UBCSSqlKeyword.getColumn(key, "_dateequal"); |
| | | if (referFieldMap.containsKey(field)) { |
| | | return referFieldMap.get(field) + SPACE + "= '" + DateUtil.parse(String.valueOf(value), "yyyy-MM-dd HH:mm:ss") + "'" + SPACE; |
| | | } else { |
| | | return (field.contains(".") ? "" : "t.") + field + SPACE + "= '" + DateUtil.parse(String.valueOf(getStringValueInWhere(field, value, attrVOMap)), "yyyy-MM-dd HH:mm:ss") + "'" + SPACE; |
| | | } |
| | | }else if(key.endsWith("_equal")) { |
| | | String field = UBCSSqlKeyword.getColumn(key, "_equal"); |
| | | if (referFieldMap.containsKey(field)) { |
| | | return referFieldMap.get(field) + SPACE + "= '" + value + "'" + SPACE; |
| | | } else { |
| | | return (field.contains(".") ? "" : "t.") + field + SPACE + "= '" + getStringValueInWhere(field, value, attrVOMap) + "'" + SPACE; |
| | | } |
| | | }else { |
| | | if (referFieldMap.containsKey(key)) { |
| | | //说明是参照的,我们参照的查询都认为是字符串,如果是时间格式的查询肯定有问题, |
| | | String selectKey = referFieldMap.get(key); |
| | | return getSqlByValue(selectKey, value, null,btmType); |
| | | } else { |
| | | return getSqlByValue(key, value, attrVOMap,btmType); |
| | | } |
| | | } |
| | | } |
| | | return ""; |
| | | |
| | | /*if (key.endsWith("_begin")) { |
| | | //说明是>=的。我们需要先获取一下 |
| | | String field = (key.substring(0, key.length() - 6).toLowerCase().trim()); |
| | | if (referFieldMap.containsKey(field)) { |
| | |
| | | if (referFieldMap.containsKey(key)) { |
| | | //说明是参照的,我们参照的查询都认为是字符串,如果是时间格式的查询肯定有问题, |
| | | String selectKey = referFieldMap.get(key); |
| | | return getSqlByValue(selectKey, value, null); |
| | | return getSqlByValue(selectKey, value, null,btmType); |
| | | } else { |
| | | return getSqlByValue(key, value, attrVOMap); |
| | | return getSqlByValue(key, value, attrVOMap,btmType); |
| | | } |
| | | } |
| | | }*/ |
| | | |
| | | } |
| | | |
| | |
| | | } |
| | | if (field.contains(".") && attrVOMap != null && attrVOMap.containsKey(field.split("\\.")[0].toLowerCase(Locale.ROOT))) { |
| | | //是参照 |
| | | return "'" + value + "'"; |
| | | return value; |
| | | } else { |
| | | return value; |
| | | } |
| | |
| | | || VciFieldTypeEnum.VTInteger.equals(fieldTypeEnum)) { |
| | | return value; |
| | | } else { |
| | | return "'" + value + "'"; |
| | | return value; |
| | | } |
| | | } else { |
| | | if ((value.startsWith("(") && value.endsWith(")")) || (value.startsWith("'") && value.endsWith("'"))) { |
| | | return value; |
| | | } |
| | | return "'" + value + "'"; |
| | | return value; |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | /** |
| | | * 查看是否默认属性 |
| | | * @param selectKey |
| | | * @param btmType |
| | | * @return |
| | | */ |
| | | private boolean isDefaultAttr(String selectKey, String btmType){ |
| | | if(StringUtils.isBlank(btmType)){ |
| | | return false; |
| | | } |
| | | R<BtmTypeVO> r = btmTypeClient.getDefaultAttrByBtmId(btmType); |
| | | List<BtmTypeAttributeVO> attributes = r.getData().getAttributes(); |
| | | if(r.getCode() != 200 || attributes.isEmpty()){ |
| | | return false; |
| | | } |
| | | return attributes.stream().anyMatch(item->item.getId().equals(selectKey)); |
| | | } |
| | | |
| | | /** |
| | |
| | | * @param attrVOMap 属性的显示对象映射 |
| | | * @return sql里的值 |
| | | */ |
| | | private String getSqlByValue(String selectKey, String value, Map<String, CodeClassifyTemplateAttrVO> attrVOMap) { |
| | | private String getSqlByValue(String selectKey, String value, Map<String, CodeClassifyTemplateAttrVO> attrVOMap,String btmType) { |
| | | StringBuilder sql = new StringBuilder(); |
| | | // TODO 待完善 |
| | | // if (!selectKey.contains(".") && (attrVOMap.containsKey(selectKey.toLowerCase(Locale.ROOT)) || attributeService.isDefaultAttr(selectKey) || selectKey.matches(RegExpConstant.LETTER))) { |
| | | // sql.append("t."); |
| | | // } |
| | | // TODO 已完善 |
| | | if (!selectKey.contains(".") && (attrVOMap.containsKey(selectKey.toLowerCase(Locale.ROOT)) || isDefaultAttr(selectKey,btmType) || selectKey.matches(RegExpConstant.LETTER))) { |
| | | sql.append("t."); |
| | | } |
| | | if (value.startsWith(QueryOptionConstant.IN)) { |
| | | sql.append(selectKey) |
| | | .append(SPACE) |
| | |
| | | deleteBatchDTO.getCodeClassifyOid(), "主题库分类的主键"); |
| | | CodeClassifyFullInfoBO classifyFullInfo = classifyService.getClassifyFullInfo(deleteBatchDTO.getCodeClassifyOid()); |
| | | //找业务类型,然后使用主键去获取数据库里的数据 |
| | | Collection<String> oidCollection = null; |
| | | Collection<String> oidCollection = new ArrayList<>(); |
| | | for (Collection<String> strings : VciBaseUtil.switchCollectionForOracleIn(deleteBatchDTO.getOidList())) { |
| | | oidCollection.addAll(strings); |
| | | } |
| | | |
| | | List<CodeWupin> cboList = codeWupinMapper.selectBatchIds(oidCollection); |
| | | // List<ClientBusinessObject> cboList = new ArrayList<>(); |
| | | // oidCollection.stream().forEach(oids -> { |
| | | // Map<String, String> conditionMap = new HashMap<>(); |
| | | // List<CodeWupin> cboList = codeWupinMapper.selectBatchIds(oidCollection); |
| | | List<BaseModel> cboList = new ArrayList<>(); |
| | | oidCollection.stream().forEach(oids -> { |
| | | Map<String, String> conditionMap = new HashMap<>(); |
| | | // conditionMap.put("oid", QueryOptionConstant.IN + "(" + VciBaseUtil.toInSql(oids.toArray(new String[0])) + ")"); |
| | | // List<ClientBusinessObject> cbos = boService.queryCBO(classifyFullInfo.getTopClassifyVO().getBtmtypeid(), conditionMap); |
| | | // cboList.addAll(cbos); |
| | | // }); |
| | | List<BaseModel> cbos = selectByTypeAndOid(classifyFullInfo.getTopClassifyVO().getBtmtypeid(),oids); |
| | | // boService.queryCBO(classifyFullInfo.getTopClassifyVO().getBtmtypeid(), conditionMap); |
| | | cboList.addAll(cbos); |
| | | }); |
| | | if (CollectionUtils.isEmpty(cboList)) { |
| | | throw new VciBaseException("数据全部在系统中不存在"); |
| | | } |
| | | List<CodeWupin> editCBOs = cboList.stream().filter(s -> !CodeDefaultLC.EDITING.getValue().equalsIgnoreCase(s.getLcStatus())).collect(Collectors.toList()); |
| | | List<BaseModel> editCBOs = cboList.stream().filter(s -> !CodeDefaultLC.EDITING.getValue().equalsIgnoreCase(s.getLcStatus())).collect(Collectors.toList()); |
| | | if (!CollectionUtils.isEmpty(editCBOs)) { |
| | | CodeWupin cbo = editCBOs.get(0); |
| | | BaseModel cbo = editCBOs.get(0); |
| | | throw new VciBaseException("编码为{0}等共{1}条数据的状态不是[{2}],不允许删除", new String[]{cbo.getId(), String.valueOf(editCBOs.size()), CodeDefaultLC.EDITING.getText()}); |
| | | } |
| | | |
| | | //只能删除自己创建的数据 |
| | | String userId = AuthUtil.getUser().getUserName(); |
| | | for (CodeWupin clientBusinessObject : cboList) { |
| | | String userId = String.valueOf(AuthUtil.getUser().getUserId()); |
| | | for (BaseModel clientBusinessObject : cboList) { |
| | | String creator = clientBusinessObject.getCreator(); |
| | | if (!userId.equalsIgnoreCase(creator)) { |
| | | throw new VciBaseException("编码为" + clientBusinessObject.getId() + "的数据不是当前用户创建,不能删除!"); |
| | |
| | | // WebUtil.setPersistence(false); |
| | | // batchCBO.copyFromOther( |
| | | productCodeService.recycleCode(classifyFullInfo.getCurrentClassifyVO().getBtmtypeid(), deleteBatchDTO.getOidList()); |
| | | baseMapper.deleteBatchIds(cboList); |
| | | // baseMapper.deleteBatchIds(cboList); |
| | | //使用传入的业务类型查询表 |
| | | R<List<BtmTypeVO>> listR = btmTypeClient.selectByIdCollection(Collections.singletonList(classifyFullInfo.getCurrentClassifyVO().getBtmtypeid())); |
| | | if (listR.getData().size() == 0) { |
| | | throw new VciBaseException("传入业务类型未查询到相应表单,请检查!"); |
| | | } |
| | | commonsMapper.deleteByTaleAndOid(listR.getData().get(0).getTableName(), |
| | | "'"+(StringUtils.join(cboList.stream().map(BaseModel::getOid).collect(Collectors.toSet()),"','"))+"'"); |
| | | // ); |
| | | // WebUtil.setPersistence(true); |
| | | // boService.persistenceBatch(batchCBO); |
| | |
| | | * 获取参照的信息 |
| | | * |
| | | * @param referConfigVO 参照的配置 |
| | | * @param pageHelper 分页的工具 |
| | | * @return 列表数据 |
| | | */ |
| | | @Override |
| | | public DataGrid referDataGrid(UIFormReferVO referConfigVO, PageHelper pageHelper) { |
| | | // checkReferConfig(referConfigVO); |
| | | //使用业务类型查询 |
| | | public Page<BtmTypeVO> referDataGrid(UIFormReferVO referConfigVO, BaseQueryObject baseQueryObject) { |
| | | // checkReferConfig(referConfigVO); |
| | | // 使用业务类型查询 |
| | | R<BtmTypeVO> allAttributeByBtmId = btmTypeClient.getAllAttributeByBtmId(referConfigVO.getReferType()); |
| | | BtmTypeVO btmTypeVO = allAttributeByBtmId.getData(); |
| | | if (referConfigVO.getWhere() == null) { |
| | | referConfigVO.setWhere(new HashMap<>()); |
| | | } |
| | | /** |
| | | * 加上查询最新版次 |
| | | */ |
| | | Map<String, String> conditionMap = new HashMap<>(); |
| | | conditionMap.put("lastr", "1"); |
| | | conditionMap.put("lastv", "1"); |
| | | referConfigVO.getWhere().putAll(conditionMap); |
| | | if (VciBaseUtil.containsKeyUnCaseForMap(referConfigVO.getWhere(), VciQueryWrapperForDO.LC_STATUS_FIELD) && |
| | | baseQueryObject.getConditionMap().put("lastr", "1"); |
| | | baseQueryObject.getConditionMap().put("lastv", "1"); |
| | | if (VciBaseUtil.containsKeyUnCaseForMap(baseQueryObject.getConditionMap(), VciQueryWrapperForDO.LC_STATUS_FIELD) && |
| | | BtmTypeLcStatusConstant.FRAME_WORK_LIFE_CYCLE_NAME.equalsIgnoreCase(btmTypeVO.getLifeCycleId())) { |
| | | referConfigVO.getWhere().put(VciQueryWrapperForDO.LC_STATUS_FIELD, FrameworkDataLCStatus.ENABLED.getValue()); |
| | | baseQueryObject.getConditionMap().put(VciQueryWrapperForDO.LC_STATUS_FIELD, FrameworkDataLCStatus.ENABLED.getValue()); |
| | | } |
| | | if (VciBaseUtil.containsKeyUnCaseForMap(referConfigVO.getWhere(), VciQueryWrapperForDO.LC_STATUS_FIELD) && |
| | | if (VciBaseUtil.containsKeyUnCaseForMap(baseQueryObject.getConditionMap(), VciQueryWrapperForDO.LC_STATUS_FIELD) && |
| | | BtmTypeLcStatusConstant.RELEASE_LIFE_CYCLE.equalsIgnoreCase(btmTypeVO.getLifeCycleId())) { |
| | | referConfigVO.getWhere().put(VciQueryWrapperForDO.LC_STATUS_FIELD, CodeDefaultLC.RELEASED.getValue()); |
| | | baseQueryObject.getConditionMap().put(VciQueryWrapperForDO.LC_STATUS_FIELD, CodeDefaultLC.RELEASED.getValue()); |
| | | } |
| | | BaseQueryObject baseQueryObject = new BaseQueryObject(); |
| | | Map<String, String> where = referConfigVO.getWhere(); |
| | | where.put("domain", AppConstant.APPLICATION_NAME_CODE); |
| | | baseQueryObject.setConditionMap(where); |
| | | baseQueryObject.setPage(pageHelper.getPage()); |
| | | baseQueryObject.setSort(pageHelper.getSort()); |
| | | baseQueryObject.setLimit(pageHelper.getLimit()); |
| | | baseQueryObject.setOrder(pageHelper.getOrder()); |
| | | R<List<BtmTypeVO>> ref = btmTypeClient.getRef(baseQueryObject); |
| | | DataGrid<BtmTypeVO> btmTypeVODataGrid = new DataGrid<>(); |
| | | List<BtmTypeVO> data = ref.getData(); |
| | | btmTypeVODataGrid.setData(data); |
| | | btmTypeVODataGrid.setCode(ref.getCode()); |
| | | btmTypeVODataGrid.setLimit(pageHelper.getLimit()); |
| | | btmTypeVODataGrid.setMsg(ref.getMsg()); |
| | | btmTypeVODataGrid.setSort(pageHelper.getSort()); |
| | | btmTypeVODataGrid.setOrder(pageHelper.getOrder()); |
| | | btmTypeVODataGrid.setPage(pageHelper.getPage()); |
| | | return btmTypeVODataGrid; |
| | | baseQueryObject.getConditionMap().put("domain", AppConstant.APPLICATION_NAME_CODE); |
| | | R<Page<BtmTypeVO>> refPage = btmTypeClient.getRefPage(baseQueryObject); |
| | | if(refPage.getCode() != 200){ |
| | | throw new ServiceException("业务类型feign接口调用错误"); |
| | | } |
| | | return refPage.getData(); |
| | | } |
| | | |
| | | /** |
| | |
| | | return revisionModelUtil.doList2Trees(codeClassifies, treeWrapperOptions, null); |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public boolean checkUnAttrUnEdit(String attrName) { |
| | | return (VciQueryWrapperForDO.OID_FIELD.equalsIgnoreCase(attrName) |
| | | ||"ts".equalsIgnoreCase(attrName) |
| | | || "lastmodifier".equalsIgnoreCase(attrName) |
| | | || "lastmodifytime".equalsIgnoreCase(attrName) |
| | | || "createtime".equalsIgnoreCase(attrName) |
| | | || "checkintime".equalsIgnoreCase(attrName) |
| | | ||"checkouttime".equalsIgnoreCase(attrName)); |
| | | } |
| | | |
| | | private String getTableName(String refertype){ |
| | | if ("codeclassify".equals(refertype)){ |
| | | return "pl_code_classify"; |