| | |
| | | import com.highdatas.mdm.entity.Flows; |
| | | import com.highdatas.mdm.entity.Maintain; |
| | | import com.highdatas.mdm.entity.MaintainDetail; |
| | | import com.highdatas.mdm.entity.TUser; |
| | | import com.highdatas.mdm.mapper.MaintainMapper; |
| | | import com.highdatas.mdm.mapper.TableInfoMapper; |
| | | import com.highdatas.mdm.pojo.*; |
| | |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import java.text.MessageFormat; |
| | | import java.util.ArrayList; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.*; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | |
| | | MasterDataService masterDataService; |
| | | @Autowired |
| | | ISysFieldService fieldService; |
| | | |
| | | @Autowired |
| | | MaintainMapper maintainMapper; |
| | | |
| | |
| | | if (status.equals(ActivitiStatus.close)) { |
| | | String collect = maintainDetailList.stream().map(detail -> DbUtils.quotedStr(detail.getPreMergeId())).collect(Collectors.joining(Constant.COMMA)); |
| | | //delete temp |
| | | masterDataService.delete(tableName + Constant.RECORD, "id in (" +collect+ ")"); |
| | | if (!StringUtils.isEmpty(collect)) { |
| | | masterDataService.delete(tableName + Constant.RECORD, "id in (" +collect+ ")"); |
| | | } |
| | | |
| | | //delete detail |
| | | for (MaintainDetail maintainDetail : maintainDetailList) { |
| | | maintainDetail.deleteById(); |
| | |
| | | maintain.deleteById(); |
| | | return; |
| | | } |
| | | String fields = masterDataService.getTempFields(tableName); |
| | | String fields = masterDataService.getTempFields(null, tableName); |
| | | String tempFields = masterDataService.getFields(tableName + Constant.RECORD); |
| | | |
| | | String tableTempName = tableName + Constant.RECORD; |
| | |
| | | } |
| | | |
| | | @Override |
| | | public Result getUnSubmitData(String tableName, Integer pageNo, String pageSize, String whereSegment) { |
| | | Wrapper<Maintain> versionWrapper = new EntityWrapper<Maintain>().eq("table_name", tableName).isNull("flow_id").orderBy("version desc"); |
| | | public Result getUnSubmitData(TUser user, String tableName, Integer pageNo, String pageSize, String whereSegment) { |
| | | Wrapper<Maintain> versionWrapper = new EntityWrapper<Maintain>().eq("table_name", tableName).isNull("flow_id").orderBy("order_no desc"); |
| | | Maintain maintain = selectOne(versionWrapper); |
| | | if (maintain == null) { |
| | | return Result.error(CodeMsg.SELECT_ERROR_NOTFOUND); |
| | |
| | | if (!StringUtils.isEmpty(pageSize)) { |
| | | page.setPageSize(Integer.valueOf(pageSize)); |
| | | } |
| | | String tempFields = masterDataService.getTempFields(tableName); |
| | | String tempFields = masterDataService.getTempFields(user, tableName); |
| | | List<Map<String, Object>> maps = maintainMapper.selectUnSubmitData(tempName, tempFields, whereSegment, DbUtils.quotedStr(maintainId), page.getLimitSQL()); |
| | | JSONObject object = new JSONObject(); |
| | | object.fluentPut("records", maps); |
| | |
| | | object.fluentPut("pages", page.getPageCount()); |
| | | object.fluentPut("current", page.getPageNo()); |
| | | return Result.success(object); |
| | | } |
| | | |
| | | @Override |
| | | public Maintain getNextMaintain(String tableName, String userId) { |
| | | Maintain maintain = this.getMaxVersion(tableName); |
| | | Maintain unFlowMaxVersion = this.getUnFlowMaxVersion(tableName); |
| | | if (unFlowMaxVersion == null) { |
| | | unFlowMaxVersion = new Maintain(); |
| | | if (maintain != null) { |
| | | unFlowMaxVersion.setVersion(DbUtils.versionAddSub(maintain.getVersion())); |
| | | int orderNo = maintain.getOrderNo(); |
| | | orderNo++; |
| | | unFlowMaxVersion.setOrderNo(orderNo); |
| | | } else { |
| | | unFlowMaxVersion.setVersion(Constant.VERSION_Default); |
| | | unFlowMaxVersion.setOrderNo(0); |
| | | } |
| | | |
| | | unFlowMaxVersion.setId(DbUtils.getUUID()); |
| | | unFlowMaxVersion.setChargeId(userId); |
| | | unFlowMaxVersion.setCreateTime(new Date()); |
| | | unFlowMaxVersion.setTableName(tableName); |
| | | } |
| | | |
| | | Maintain nowMaintain = unFlowMaxVersion; |
| | | if (DbUtils.compareVersion(maintain, unFlowMaxVersion) != 0) { |
| | | nowMaintain = new Maintain(); |
| | | String maintanId = DbUtils.getUUID(); |
| | | nowMaintain.setId(maintanId); |
| | | nowMaintain.setCreateTime(new Date()); |
| | | int orderNo = maintain.getOrderNo(); |
| | | orderNo++; |
| | | nowMaintain.setVersion(DbUtils.versionAddSub(maintain.getVersion())); |
| | | nowMaintain.setOrderNo(orderNo); |
| | | nowMaintain.setTableName(tableName); |
| | | } |
| | | |
| | | nowMaintain.setChargeId(userId); |
| | | String maintainId = nowMaintain.getId(); |
| | | if(StringUtils.isEmpty(maintainId)) { |
| | | nowMaintain.setId(DbUtils.getUUID()); |
| | | } |
| | | return nowMaintain; |
| | | } |
| | | |
| | | @Override |
| | |
| | | |
| | | @Override |
| | | public Maintain getMaxVersion(String tableName) { |
| | | Wrapper<Maintain> versionWrapper = new EntityWrapper<Maintain>().eq("table_name", tableName).orderBy("version desc"); |
| | | Wrapper<Maintain> versionWrapper = new EntityWrapper<Maintain>().eq("table_name", tableName).orderBy("order_no desc"); |
| | | |
| | | Maintain maxVersion = selectOne(versionWrapper); |
| | | return maxVersion; |
| | |
| | | |
| | | @Override |
| | | public Maintain getUnFlowMaxVersion(String tableName) { |
| | | Wrapper<Maintain> versionWrapper = new EntityWrapper<Maintain>().isNull("flow_id").eq("table_name", tableName).orderBy("version desc"); |
| | | Wrapper<Maintain> versionWrapper = new EntityWrapper<Maintain>().isNull("flow_id").eq("table_name", tableName).orderBy("order_no desc"); |
| | | |
| | | Maintain maxVersion = selectOne(versionWrapper); |
| | | return maxVersion; |
| | |
| | | @Override |
| | | public Maintain getInvalidMaxVersion(String tableName) { |
| | | Maintain result = null; |
| | | Wrapper<Maintain> versionWrapper = new EntityWrapper<Maintain>().eq("table_name", tableName).orderBy("version desc"); |
| | | Wrapper<Maintain> versionWrapper = new EntityWrapper<Maintain>().eq("table_name", tableName).orderBy("order_no desc"); |
| | | |
| | | List<Maintain> maintainList = selectList(versionWrapper); |
| | | |
| | |
| | | } |
| | | |
| | | @Override |
| | | public Result getInvalidVerionData(String tableName, String where, Integer pageNo, Integer pageSize) { |
| | | public Result getInvalidVerionData(TUser user, String tableName, String where, Integer pageNo, Integer pageSize) { |
| | | Maintain invalidVersion = getInvalidMaxVersion(tableName); |
| | | if (invalidVersion == null) { |
| | | return Result.success(null); |
| | | } |
| | | String tableTempName = tableName + Constant.RECORD; |
| | | String tempFields = masterDataService.getTempFields(tableName); |
| | | String tempFields = masterDataService.getTempFields(user, tableName); |
| | | Long count = maintainMapper.countInvalidVersionData(tableTempName, where, invalidVersion.getOrderNo()); |
| | | Page page = new Page(count); |
| | | page.setPageNo(pageNo); |
| | |
| | | |
| | | @Override |
| | | public Maintain getNowVersion(String tableName) { |
| | | Wrapper<Maintain> versionWrapper = new EntityWrapper<Maintain>().eq("table_name", tableName).isNotNull("flow_id").orderBy("version desc"); |
| | | Wrapper<Maintain> versionWrapper = new EntityWrapper<Maintain>().eq("table_name", tableName).isNotNull("flow_id").orderBy("order_no desc"); |
| | | |
| | | List<Maintain> maintains = selectList(versionWrapper); |
| | | for (Maintain maintain : maintains) { |
| | |
| | | @Override |
| | | public Maintain getRecentHistoryVersion(String tableName) { |
| | | Maintain nowMaintain = null; |
| | | Wrapper<Maintain> versionWrapper = new EntityWrapper<Maintain>().eq("table_name", tableName).isNotNull("flow_id").orderBy("version desc"); |
| | | Wrapper<Maintain> versionWrapper = new EntityWrapper<Maintain>().eq("table_name", tableName).isNotNull("flow_id").orderBy("order_no desc"); |
| | | List<Maintain> maintains = selectList(versionWrapper); |
| | | for (Maintain maintain : maintains) { |
| | | Flows flows = flowsService.selectById(maintain.getFlowId()); |
| | |
| | | continue; |
| | | } |
| | | ActivitiStatus status = flows.getStatus(); |
| | | if (status.equals(ActivitiStatus.open)) { |
| | | if (status.equals(ActivitiStatus.open) && nowMaintain == null) { |
| | | nowMaintain = maintain; |
| | | break; |
| | | continue; |
| | | } |
| | | if (!status.equals(ActivitiStatus.open) && nowMaintain != null){ |
| | | nowMaintain = null; |
| | | } |
| | | } |
| | | if (nowMaintain == null) { |
| | | nowMaintain = selectOne(new EntityWrapper<Maintain>().eq("table_name", tableName).orderBy("version desc")); |
| | | nowMaintain = selectOne(new EntityWrapper<Maintain>().eq("table_name", tableName).orderBy("order_no desc")); |
| | | } |
| | | int orderNo = nowMaintain.getOrderNo(); |
| | | orderNo--; |
| | | Maintain nowVersion = getNowVersion(tableName); |
| | | if (nowVersion != null && nowVersion.getOrderNo() == orderNo) { |
| | | orderNo--; |
| | | } |
| | | Maintain maintain = selectOne(new EntityWrapper<Maintain>().eq("table_name", nowMaintain.getTableName()).eq("order_no", orderNo)); |
| | | return maintain; |
| | | } |
| | |
| | | } |
| | | |
| | | @Override |
| | | public Result tempDataByVersionByFlow(String flowId, String whereSegment, Integer pageNo, Integer pageSize) { |
| | | public Result tempDataByVersionByFlow(TUser user, String flowId, String whereSegment, Integer pageNo, Integer pageSize) { |
| | | Flows flows = flowsService.selectById(flowId); |
| | | if (flows == null) { |
| | | return Result.error(CodeMsg.SELECT_ERROR_NOTFOUND); |
| | |
| | | if (maintain == null) { |
| | | return Result.error(CodeMsg.SELECT_ERROR_NOTFOUND); |
| | | } |
| | | String fields = masterDataService.getTempFields(maintain.getTableName()); |
| | | String fields = masterDataService.getTempFields(user, maintain.getTableName()); |
| | | String tableTempName = maintain.getTableName() + Constant.RECORD; |
| | | long total = maintainMapper.countTempDataByVersionByFlow(tableTempName, flowId, whereSegment); |
| | | |