YYC
2023-07-11 9d1eb684e0b0a3f6a9107db3cc64fc782989a654
igds-inout/src/main/java/com/ld/igds/inout/manager/InoutManager.java
@@ -3,7 +3,6 @@
import com.ld.igds.check.CheckStandardManager;
import com.ld.igds.check.dto.CheckItemData;
import com.ld.igds.check.dto.CheckUpdateResult;
import com.ld.igds.common.CoreCommonService;
import com.ld.igds.constant.RespCodeEnum;
import com.ld.igds.data.Page;
import com.ld.igds.data.PageResponse;
@@ -20,9 +19,7 @@
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;
@@ -30,7 +27,6 @@
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
@@ -49,13 +45,11 @@
    @Resource
    private CoreFileService fileService;
    @Resource
    private CoreCommonService commonService;
    @Resource
    private InoutCommonService inoutCommonService;
    @Resource
    private CheckStandardManager checkStandardManager;
    @Resource
    private InoutDeviceManager inoutDeviceManager;
    private InoutEventControlManager inoutEventControl;
    /**
     * 直接从数据库查询,不考虑信息状态
@@ -296,46 +290,6 @@
        return data;
    }
    public PageResponse<InoutData> submitComplete(InoutData data)
            throws Exception {
        if (StringUtils.isEmpty(data.getId())
                || StringUtils.isEmpty(data.getType())
                || StringUtils.isEmpty(data.getProgress())) {
            return new PageResponse<>(RespCodeEnum.CODE_1007.getCode(),
                    "没有获取到车辆信息。", data);
        }
        data.setUpdateTime(new Date());
        if (null == data.getCompleteTime()) {
            data.setCompleteTime(DateUtil.getNewByMinute(new Date(), 2));
        }
        if (null == data.getCompleteUser()) {
            data.setCompleteUser(ContextUtil.getLoginUserCName());
        }
        // 设置流程节点直接完成
        InoutParam param = new InoutParam();
        param.setCompanyId(data.getCompanyId());
        param.setId(data.getId());
        param.setType(data.getType());
        param.setDeptId(data.getDeptId());
        param.setIntelCard(data.getIntelCard());
        param.setUserId(data.getCompleteUser());
        param.setDepotId(data.getDepotId());
        param.setCompleteTime(new Date());
        param.setProgress(InoutConstant.PROGRESS_RECORD);
        String msg = inoutService.toComplete(param);
        if (null != msg) {
            return new PageResponse<>(RespCodeEnum.CODE_1111.getCode(), msg);
        }
        return new PageResponse<>(RespCodeEnum.CODE_0000.getCode(), null, data);
    }
    /**
     * 卡回收逻辑处理
     *
@@ -374,6 +328,52 @@
        return new PageResponse<>(RespCodeEnum.CODE_0000.getCode(), "执行成功",
                data);
    }
    public PageResponse<InoutData> submitComplete(InoutData data)
            throws Exception {
        if (StringUtils.isEmpty(data.getId())
                || StringUtils.isEmpty(data.getType())
                || StringUtils.isEmpty(data.getProgress())) {
            return new PageResponse<>(RespCodeEnum.CODE_1007.getCode(),
                    "没有获取到车辆信息。", data);
        }
        data.setUpdateTime(new Date());
        if (null == data.getCompleteTime()) {
            data.setCompleteTime(DateUtil.getNewByMinute(new Date(), 2));
        }
        if (null == data.getCompleteUser()) {
            data.setCompleteUser(ContextUtil.getLoginUserCName());
        }
        // 设置流程节点直接完成
        InoutParam param = new InoutParam();
        param.setCompanyId(data.getCompanyId());
        param.setId(data.getId());
        param.setType(data.getType());
        param.setDeptId(data.getDeptId());
        param.setIntelCard(data.getIntelCard());
        param.setUserId(data.getCompleteUser());
        param.setDepotId(data.getDepotId());
        param.setCompleteTime(new Date());
        param.setProgress(InoutConstant.PROGRESS_RECORD);
        String msg = inoutService.toComplete(param);
        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);
        return new PageResponse<>(RespCodeEnum.CODE_0000.getCode(), null, data);
    }
    /**
@@ -444,7 +444,6 @@
        if (InoutConstant.TYPE_IN.equals(data.getType())) {
            this.updateCheckItems(data, true);
        }
        return null;
    }
@@ -557,8 +556,13 @@
        return msg;
    }
    public void initLpr(InoutConf conf) {
        inoutDeviceManager.initLpr(conf);
    /**
     * 出入库登记初始化
     *
     * @param conf 车牌识别配置信息
     */
    public void initInoutRegister(InoutConf conf) {
        inoutEventControl.initInoutRegister(conf);
    }
    /**
@@ -568,8 +572,7 @@
     * @return
     * @throws Exception
     */
    public PageResponse<InoutData> submitRegisterInout(InoutData data)
            throws Exception {
    public PageResponse<InoutData> submitRegisterInout(InoutData data) throws Exception {
        // 首先判断流程中是否有已经存在的车辆信息未执行完成,直接从数据库中查询
        InoutParam param = new InoutParam();
@@ -603,20 +606,20 @@
        String msg = inoutService.insertData(data);
        if (null != msg) {
            return new PageResponse<>(RespCodeEnum.CODE_1111.getCode(), msg,
                    data);
            return new PageResponse<>(RespCodeEnum.CODE_1111.getCode(), msg, data);
        }
        // 执行附件信息
        fileService.saveInoutFiles(data.getFiles(), data.getCompanyId(),
                data.getId(), curProgress);
        fileService.saveInoutFiles(data.getFiles(), data.getCompanyId(), data.getId(), curProgress);
        //登记完成事件
        inoutEventControl.onInoutRegister(data);
        return new PageResponse<>(RespCodeEnum.CODE_0000.getCode(), "执行成功",
                data);
    }
    public PageResponse<InoutData> submitWeightIn(InoutData data)
            throws Exception {
    public PageResponse<InoutData> submitWeightIn(InoutData data) throws Exception {
        // 获取系统参数配置
        InoutSysConf inoutSysConf = inoutCommonService.getCacheInoutSysConf(
                data.getCompanyId(), data.getDeptId());
@@ -643,14 +646,12 @@
        }
        // 执行附件信息
        fileService.saveInoutFiles(data.getFiles(), data.getCompanyId(),
                data.getId(), curProgress);
        fileService.saveInoutFiles(data.getFiles(), data.getCompanyId(), data.getId(), curProgress);
        // 称重完成,调用出入库控制逻辑处理
        inoutDeviceManager.controlWeight(data, curProgress, nextProgress);
        // 称重完成事件
        inoutEventControl.onInoutWeight(data, curProgress, nextProgress);
        return new PageResponse<>(RespCodeEnum.CODE_0000.getCode(), "执行成功",
                data);
        return new PageResponse<>(RespCodeEnum.CODE_0000.getCode(), "执行成功", data);
    }
    public PageResponse<InoutData> submitWeightOut(InoutData data)
@@ -681,11 +682,11 @@
        fileService.saveInoutFiles(data.getFiles(), data.getCompanyId(),
                data.getId(), curProgress);
        // 称重后根据当前流程状态和下一个状态,通知称重控制器
        inoutDeviceManager.controlWeight(data, curProgress, nextProgress);
        return new PageResponse<>(RespCodeEnum.CODE_0000.getCode(), "执行成功",
                data);
        // 称重完成事件
        inoutEventControl.onInoutWeight(data, curProgress, nextProgress);
        return new PageResponse<>(RespCodeEnum.CODE_0000.getCode(), "执行成功", data);
    }
    public PageResponse<InoutData> submitHandle(InoutData data)
@@ -716,6 +717,9 @@
        // 执行附件信息
        fileService.saveInoutFiles(data.getFiles(), data.getCompanyId(), data.getId(), curProgress);
        // 值仓完成触发事件
        inoutEventControl.onInoutHandle(data, curProgress, nextProgress);
        return new PageResponse<>(RespCodeEnum.CODE_0000.getCode(), "执行成功", data);
    }
@@ -786,6 +790,9 @@
            return new PageResponse<>(RespCodeEnum.CODE_1111.getCode(), msg);
        }
        // 扦样完成触发事件
        inoutEventControl.onInSimple(data);
        return new PageResponse<>(RespCodeEnum.CODE_0000.getCode(), "执行成功");
    }
@@ -835,6 +842,7 @@
            data.setCheckTime(new Date());
        }
        curData.setCheckStatus(data.getCheckStatus());
        curData.setFoodYear(data.getFoodYear());
        // 获取下一个流程状态
@@ -854,6 +862,8 @@
        curData.setPrice(data.getPrice());
        curData.setRemarks(data.getRemarks());
        curData.setCheckItems(data.getCheckItems());
        curData.setCheckTime(data.getCheckTime());
        curData.setDepotId(data.getDepotId());
        if (StringUtils.isEmpty(data.getCheckUser())) {
            curData.setCheckUser(ContextUtil.getLoginUserCName());
@@ -868,7 +878,52 @@
            return new PageResponse<>(RespCodeEnum.CODE_1111.getCode(), msg);
        }
        // 质检完成触发事件
        inoutEventControl.onInCheck(data, curProgress, nextProgress);
        return new PageResponse<>(RespCodeEnum.CODE_0000.getCode(), "执行成功");
    }
    public PageResponse<InoutCheckData> submitCheckData(InoutCheckData data) throws Exception {
        // 获取业务数据信息
        InoutParam param = new InoutParam();
        param.setCompanyId(data.getCompanyId());
        param.setId(data.getId());
        InoutData curData = inoutService.inoutProgressQuery(param);
        if (null == curData) {
            return new PageResponse<>(RespCodeEnum.CODE_1111.getCode(),
                    "没有获取到入库业务数据信息,更新失败", data);
        }
        if (InoutConstant.PROGRESS_RECORD.equals(curData.getProgress())) {
            return new PageResponse<>(RespCodeEnum.CODE_1111.getCode(),
                    "当前流程已经结束,不支持修改");
        }
        // 更新化验项信息
        CheckUpdateResult checkResult = checkStandardManager.updateCheckItems(data.getCheckId(), data.getCompanyId(), data.getCheckItems());
        if (StringUtils.isNotEmpty(checkResult.getMsg())) {
            return new PageResponse<>(RespCodeEnum.CODE_1111.getCode(),
                    "后台执行异常:" + checkResult.getMsg(), data);
        }
        curData.setType(curData.getType());
        curData.setFoodLevel(data.getFoodLevel());
        curData.setFoodVariety(data.getFoodVariety());
        curData.setPrice(data.getPrice());
        curData.setDepotId(data.getDepotId());
        curData.setCheckItems(data.getCheckItems());
        String msg = inoutService.updateCheckData(curData);
        if (null != msg) {
            return new PageResponse<>(RespCodeEnum.CODE_1111.getCode(), msg);
        }
        return new PageResponse<>(RespCodeEnum.CODE_0000.getCode(), "保存成功");
    }
    /**
@@ -909,7 +964,7 @@
        try {
            List<CheckItemData> result = checkStandardManager.listCheckItem(
                    param.getCheckId(), param.getCompanyId(),
                    param.getCompanyId(), param.getCheckId(),
                    param.getFoodVariety());
            return new PageResponse<>(RespCodeEnum.CODE_0000, result);
@@ -942,4 +997,35 @@
        }
    }
    /**
     * @param param
     * @return
     */
    public PageResponse<InoutCheckData> inoutDataByCheckId(InoutCheckParam param) {
        if (StringUtils.isEmpty(param.getCheckId())) {
            return new PageResponse<>(RespCodeEnum.CODE_1007.getCode(),
                    "查询参数不完整,查询失败!");
        }
        InoutCheckData result;
        try {
            param.setProgress(InoutConstant.PROGRESS_CHECK);
            result = inoutService.inoutDataByCheckId(param);
            if (null == result) {
                return new PageResponse<>(RespCodeEnum.CODE_2000.getCode(),
                        "系统未查询到执行中的车辆信息", null);
            }
            return new PageResponse<>(RespCodeEnum.CODE_0000, result);
        } catch (Exception e) {
            return new PageResponse<>(RespCodeEnum.CODE_2000.getCode(),
                    e.getMessage());
        }
    }
    public void initInoutWeight(List<InoutConf> listInoutConf, String sort) {
        inoutEventControl.initInoutWeight(listInoutConf, sort);
    }
}