kimi42345
2020-03-02 2411eadd4ad4bef5c08c6ba2ea5898ea72136e29
src/main/java/com/highdatas/mdm/service/impl/MaintainServiceImpl.java
@@ -45,6 +45,7 @@
    MasterDataService masterDataService;
    @Autowired
    ISysFieldService fieldService;
    @Autowired
    MaintainMapper maintainMapper;
@@ -97,7 +98,10 @@
        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();
@@ -172,7 +176,7 @@
    @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");
        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);
@@ -211,7 +215,7 @@
    @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;
@@ -219,7 +223,7 @@
    @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;
@@ -228,7 +232,7 @@
    @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);
@@ -278,7 +282,7 @@
    @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) {
@@ -298,7 +302,7 @@
    @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());
@@ -306,16 +310,22 @@
                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;
    }