| | |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.Collections; |
| | | import java.util.Comparator; |
| | | import java.util.List; |
| | | import java.util.*; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | |
| | | TableInfoMapper tableInfoMapper; |
| | | |
| | | |
| | | @Override |
| | | public List<SysField> getFieldByMaintain(String maintainId) { |
| | | public MaintainField getMaintainFieldByMaintainId(String maintainId) { |
| | | MaintainField maintainField; |
| | | List<SysField> fieldList = null; |
| | | |
| | | if (StringUtils.isEmpty(maintainId)) { |
| | | return null; |
| | | return null; |
| | | } |
| | | Maintain maintain = maintainService.selectById(maintainId); |
| | | if (maintain == null) { |
| | |
| | | //对应版本找不到 往前找 |
| | | String maintainFieldId = maintainFieldMapper.getMappedMatintainId(DbUtils.quotedStr(maintain.getTableName()), maintain.getOrderNo()); |
| | | if (StringUtils.isEmpty(maintainFieldId)) { |
| | | fieldList = this.selectList(new EntityWrapper<SysField>().eq("table_name", maintain.getTableName()).isNull("maintain_field_id").orderBy("order_no")); |
| | | return fieldList; |
| | | return null; |
| | | } |
| | | maintainField = maintainFieldService.selectById(maintainFieldId); |
| | | if (maintainField == null){ |
| | | //无对应版本 |
| | | fieldList = this.selectList(new EntityWrapper<SysField>().eq("table_name", maintain.getTableName()).isNull("maintain_field_id").orderBy("order_no")); |
| | | return fieldList; |
| | | } |
| | | } |
| | | return maintainField; |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public List<SysField> getFieldByMaintain(String maintainId) { |
| | | List<SysField> fieldList; |
| | | Maintain maintain = maintainService.selectById(maintainId); |
| | | if (maintain == null) { |
| | | return null; |
| | | } |
| | | |
| | | MaintainField maintainField = getMaintainFieldByMaintain(maintainId); |
| | | if (maintainField == null && Constant.Default.equalsIgnoreCase(maintainField.getId())) { |
| | | |
| | | fieldList = this.selectList(new EntityWrapper<SysField>().eq("table_name", maintain.getTableName()).isNull("maintain_field_id").orderBy("order_no")); |
| | | return fieldList; |
| | | } |
| | | String maintainFieldId = maintainField.getId(); |
| | | String tableName = maintainField.getTableName(); |
| | | //TODO 判断版本 |
| | |
| | | maintainField = maintainFieldService.selectOne(new EntityWrapper<MaintainField>().eq("table_name", maintain.getTableName()).eq("order_no", preNo)); |
| | | fieldList = this.selectList(new EntityWrapper<SysField>().eq("maintain_field_id", maintainField.getId()).eq("table_name", tableName).orderBy("order_no")); |
| | | return fieldList; |
| | | } |
| | | |
| | | |
| | | } |
| | | |
| | | @Override |
| | | public MaintainField getMaintainFieldByMaintain(String maintainId) { |
| | | MaintainField maintainField; |
| | | List<SysField> fieldList = null; |
| | | |
| | | if (StringUtils.isEmpty(maintainId)) { |
| | | return null; |
| | | } |
| | | Maintain maintain = maintainService.selectById(maintainId); |
| | | if (maintain == null) { |
| | | return null; |
| | | } |
| | | |
| | | maintainField = maintainFieldService.selectOne(new EntityWrapper<MaintainField>().eq("maintain_id", maintainId).orderBy("order_no desc, create_time desc")); |
| | | if (maintainField == null) { |
| | | //对应版本找不到 往前找 |
| | | String maintainFieldId = maintainFieldMapper.getMappedMatintainId(DbUtils.quotedStr(maintain.getTableName()), maintain.getOrderNo()); |
| | | if (StringUtils.isEmpty(maintainFieldId)) { |
| | | return new MaintainField().setId(Constant.Default); |
| | | } |
| | | maintainField = maintainFieldService.selectById(maintainFieldId); |
| | | if (maintainField == null){ |
| | | return new MaintainField().setId(Constant.Default); |
| | | } |
| | | } |
| | | |
| | | String maintainFieldId = maintainField.getId(); |
| | | String tableName = maintainField.getTableName(); |
| | | |
| | | ActivitiStatus status = flowsService.getStatusByBusinessId(maintainFieldId); |
| | | if (status != null && status.equals(ActivitiStatus.open)) { |
| | | return maintainFieldService.selectById(maintainField); |
| | | } |
| | | |
| | | // 当前版本正在审批 找前一版本 |
| | | Integer maintainFieldOrderNo = maintainField.getOrderNo(); |
| | | if (maintainFieldOrderNo < 1) { |
| | | return new MaintainField().setId(Constant.Default); |
| | | }else { |
| | | Integer preNo = maintainFieldOrderNo - 1; |
| | | maintainField = maintainFieldService.selectOne(new EntityWrapper<MaintainField>().eq("table_name", maintain.getTableName()).eq("order_no", preNo)); |
| | | return maintainField; |
| | | } |
| | | |
| | | |
| | |
| | | //没有中文名称的 应该属于系统自留字段 如id |
| | | continue; |
| | | } |
| | | String alias = fieldList.stream().map(SysField::getAlias).collect(Collectors.joining(Constant.SEMICOLON)); |
| | | HashSet<SysField> strings = new HashSet<SysField>(fieldList); |
| | | String alias = strings.stream().map(SysField::getAlias).collect(Collectors.joining(Constant.SEMICOLON)); |
| | | SysField sysField = new SysField().setField(fieldName).setAlias(alias); |
| | | result.add(sysField); |
| | | } |