jiazx0107@163.com
2023-11-04 43ce77a85d8297a53dc25430fff10ead57296167
igds-inout/src/main/java/com/ld/igds/inout/manager/InoutManager.java
@@ -7,6 +7,7 @@
import com.ld.igds.data.Page;
import com.ld.igds.data.PageResponse;
import com.ld.igds.file.CoreFileService;
import com.ld.igds.file.dto.FileData;
import com.ld.igds.inout.InoutConstant;
import com.ld.igds.inout.dto.InoutCheckData;
import com.ld.igds.inout.dto.InoutCheckParam;
@@ -19,7 +20,6 @@
import com.ld.igds.models.InoutSysConf;
import com.ld.igds.util.ContextUtil;
import com.ld.igds.util.DateUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.time.DateFormatUtils;
import org.apache.commons.lang3.time.DateUtils;
@@ -36,7 +36,6 @@
 *
 * @author
 */
@Slf4j
@Component
public class InoutManager {
@@ -50,6 +49,8 @@
    private CheckStandardManager checkStandardManager;
    @Resource
    private InoutEventControlManager inoutEventControl;
    @Resource
    private CoreFileService coreFileService;
    /**
     * 直接从数据库查询,不考虑信息状态
@@ -213,7 +214,6 @@
        return data;
    }
    /**
     * 从缓存中获取下一流程
     *
@@ -256,7 +256,9 @@
        }
        if (InoutConstant.PROGRESS_CHECK.equals(data.getProgress())) {
            data.setCheckUser(ContextUtil.getLoginUserCName());
            if (StringUtils.isEmpty(data.getCheckUser())) {
                data.setCheckUser(ContextUtil.getLoginUserCName());
            }
            data.setProgress(nextProgress);
            return data;
        }
@@ -367,8 +369,9 @@
        if (null != msg) {
            return new PageResponse<>(RespCodeEnum.CODE_1111.getCode(), msg);
        }
        data.setCompleteTime(param.getCompleteTime());
        data.setProgress(InoutConstant.PROGRESS_RECORD);
        inoutService.updateInoutCache(data);
        // 流程完成收事件
        inoutEventControl.onInoutComplete(data);
@@ -396,16 +399,27 @@
        }
        String loginUser = ContextUtil.getLoginUserCName();
        data.setRegisterUser(loginUser);
        data.setFullWeightUser(loginUser);
        data.setEmptyWeightUser(loginUser);
        data.setHandleUser(loginUser);
        data.setCompleteUser(loginUser);
        if (StringUtils.isEmpty(data.getRegisterUser())) {
            data.setRegisterUser(loginUser);
        }
        if (StringUtils.isEmpty(data.getFullWeightUser())) {
            data.setFullWeightUser(loginUser);
        }
        if (StringUtils.isEmpty(data.getEmptyWeightUser())) {
            data.setEmptyWeightUser(loginUser);
        }
        if (StringUtils.isEmpty(data.getHandleUser())) {
            data.setHandleUser(loginUser);
        }
        if (StringUtils.isEmpty(data.getCompleteUser())) {
            data.setCompleteUser(loginUser);
        }
        if (null == data.getCompleteTime()) {
            data.setCompleteTime(new Date());
        }
        // 注册时间比完成时间早一个小时
        data.setRegisterTime(DateUtil.getNewByMinute(new Date(), -60));
        data.setRegisterTime(DateUtils.addMinutes(new Date(), -80));
        if (StringUtils.isEmpty(data.getUserId())) {
            data.setUserId(InoutConstant.DEFAULT_ID_CARD);
@@ -413,26 +427,45 @@
        if (null == data.getIntelCard()) {
            data.setIntelCard(data.getUserId());
        }
        if (null != data.getCheckItems()) {
        if (null != data.getCheckItems() && StringUtils.isEmpty(data.getCheckUser())) {
            data.setCheckUser(loginUser);
        }
        if (InoutConstant.TYPE_IN.equals(data.getType())) {
            if (null == data.getFullWeightTime()) {
                data.setFullWeightTime(DateUtil.getNewByMinute(new Date(), -50));
                data.setFullWeightTime(DateUtils.addMinutes(new Date(), -50));
            }
            if (null == data.getEmptyWeightTime()) {
                data.setEmptyWeightTime(DateUtil.getNewByMinute(new Date(), -10));
                data.setEmptyWeightTime(DateUtils.addMinutes(new Date(), -10));
            }
            if (data.getCompleteTime().before(data.getEmptyWeightTime())) {
                data.setEmptyWeightTime(DateUtils.addMinutes(data.getCompleteTime(), -10));
            }
            if (data.getEmptyWeightTime().before(data.getFullWeightTime())) {
                data.setFullWeightTime(DateUtils.addMinutes(data.getEmptyWeightTime(), -40));
            }
            if (data.getFullWeightTime().before(data.getRegisterTime())) {
                data.setRegisterTime(DateUtils.addMinutes(data.getFullWeightTime(), -30));
            }
            data = this.updateCheckItems(data, false);
        } else {
            if (null == data.getEmptyWeightTime()) {
                data.setEmptyWeightTime(DateUtil.getNewByMinute(new Date(), -50));
                data.setEmptyWeightTime(DateUtils.addMinutes(new Date(), -50));
            }
            if (null == data.getFullWeightTime()) {
                data.setFullWeightTime(DateUtil.getNewByMinute(new Date(), -10));
                data.setFullWeightTime(DateUtils.addMinutes(new Date(), -10));
            }
            if (data.getCompleteTime().before(data.getFullWeightTime())) {
                data.setFullWeightTime(DateUtils.addMinutes(data.getCompleteTime(), -10));
            }
            if (data.getFullWeightTime().before(data.getEmptyWeightTime())) {
                data.setEmptyWeightTime(DateUtils.addMinutes(data.getEmptyWeightTime(), -40));
            }
            if (data.getEmptyWeightTime().before(data.getRegisterTime())) {
                data.setRegisterTime(DateUtils.addMinutes(data.getFullWeightTime(), -30));
            }
        }
@@ -443,7 +476,7 @@
        if (InoutConstant.TYPE_IN.equals(data.getType())) {
            this.updateCheckItems(data, true);
        }
        fileService.saveInoutFiles(data.getFiles(), data.getCompanyId(), data.getId(), null);
        return null;
    }
@@ -491,9 +524,9 @@
        data = inoutService.inoutQueryById(param);
        if (InoutConstant.PROGRESS_RECORD.equals(data.getProgress())) {
            return "流程结束的数据不支持异常处理!";
        }
//        if (InoutConstant.PROGRESS_RECORD.equals(data.getProgress())) {
//            return "流程结束的数据不支持异常处理!";
//        }
        if (InoutConstant.RECORD_STATUS_DEL.equals(data.getRecordStatus())) {
            return "当前信息已做异常处理,不支持重复执行!";
        }
@@ -594,7 +627,7 @@
            return new PageResponse<>(RespCodeEnum.CODE_1111.getCode(),
                    "提示:当前库区未配置出入库流程信息,请联系管理员", data);
        }
        List<FileData> files = data.getFiles();
        // 获取下一个流程状态
        String curProgress = data.getProgress();
        String nextProgress = getNextProgress(curProgress, data.getType(),
@@ -608,8 +641,10 @@
            return new PageResponse<>(RespCodeEnum.CODE_1111.getCode(), msg, data);
        }
        // 执行附件信息
        fileService.saveInoutFiles(data.getFiles(), data.getCompanyId(), data.getId(), curProgress);
        if (null != files && files.size() > 0) {
            // 执行附件信息
            fileService.saveInoutFiles(files, data.getCompanyId(), data.getId(), curProgress);
        }
        //登记完成事件
        inoutEventControl.onInoutRegister(data);
@@ -626,7 +661,7 @@
            return new PageResponse<>(RespCodeEnum.CODE_1111.getCode(),
                    "提示:当前系统中流程配置异常,请联系管理员", data);
        }
        List<FileData> files = data.getFiles();
        // 获取下一个流程状态
        String curProgress = data.getProgress();
        String nextProgress = getNextProgress(curProgress, data.getType(),
@@ -644,8 +679,10 @@
                    data);
        }
        // 执行附件信息
        fileService.saveInoutFiles(data.getFiles(), data.getCompanyId(), data.getId(), curProgress);
        if (null != files && files.size() > 0) {
            // 执行附件信息
            fileService.saveInoutFiles(files, data.getCompanyId(), data.getId(), curProgress);
        }
        // 称重完成事件
        inoutEventControl.onInoutWeight(data, curProgress, nextProgress);
@@ -840,6 +877,7 @@
            curData.setCheckTime(new Date());
            data.setCheckTime(new Date());
        }
        curData.setCheckUser(data.getCheckUser());
        curData.setCheckStatus(data.getCheckStatus());
        curData.setFoodYear(data.getFoodYear());
@@ -862,6 +900,8 @@
        curData.setRemarks(data.getRemarks());
        curData.setCheckItems(data.getCheckItems());
        curData.setCheckTime(data.getCheckTime());
        curData.setDepotId(data.getDepotId());
        curData.setFoodType(data.getFoodType());
        if (StringUtils.isEmpty(data.getCheckUser())) {
            curData.setCheckUser(ContextUtil.getLoginUserCName());