| | |
| | | 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; |
| | |
| | | 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; |
| | |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import javax.annotation.Resource; |
| | | |
| | | import java.util.Arrays; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | |
| | | @Resource |
| | | private CoreFileService fileService; |
| | | @Resource |
| | | private CoreCommonService commonService; |
| | | @Resource |
| | | private InoutCommonService inoutCommonService; |
| | | @Resource |
| | | private CheckStandardManager checkStandardManager; |
| | | @Resource |
| | | private InoutDeviceManager inoutDeviceManager; |
| | | private InoutEventControlManager inoutEventControl; |
| | | |
| | | /** |
| | | * 直接从数据库查询,不考虑信息状态 |
| | |
| | | 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); |
| | | } |
| | | |
| | | /** |
| | | * 卡回收逻辑处理 |
| | | * |
| | |
| | | |
| | | 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); |
| | | } |
| | | |
| | | /** |
| | |
| | | if (InoutConstant.TYPE_IN.equals(data.getType())) { |
| | | this.updateCheckItems(data, true); |
| | | } |
| | | |
| | | |
| | | return null; |
| | | } |
| | |
| | | return msg; |
| | | } |
| | | |
| | | public void initLpr(InoutConf conf) { |
| | | inoutDeviceManager.initLpr(conf); |
| | | /** |
| | | * 出入库登记初始化 |
| | | * |
| | | * @param conf 车牌识别配置信息 |
| | | */ |
| | | public void initInoutRegister(InoutConf conf) { |
| | | inoutEventControl.initInoutRegister(conf); |
| | | } |
| | | |
| | | /** |
| | |
| | | * @return |
| | | * @throws Exception |
| | | */ |
| | | public PageResponse<InoutData> submitRegisterInout(InoutData data) |
| | | throws Exception { |
| | | public PageResponse<InoutData> submitRegisterInout(InoutData data) throws Exception { |
| | | |
| | | // 首先判断流程中是否有已经存在的车辆信息未执行完成,直接从数据库中查询 |
| | | InoutParam param = new InoutParam(); |
| | |
| | | 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()); |
| | |
| | | } |
| | | |
| | | // 执行附件信息 |
| | | 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) |
| | |
| | | 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) |
| | |
| | | |
| | | // 执行附件信息 |
| | | fileService.saveInoutFiles(data.getFiles(), data.getCompanyId(), data.getId(), curProgress); |
| | | |
| | | // 值仓完成触发事件 |
| | | inoutEventControl.onInoutHandle(data, curProgress, nextProgress); |
| | | |
| | | return new PageResponse<>(RespCodeEnum.CODE_0000.getCode(), "执行成功", data); |
| | | } |
| | |
| | | return new PageResponse<>(RespCodeEnum.CODE_1111.getCode(), msg); |
| | | } |
| | | |
| | | // 扦样完成触发事件 |
| | | inoutEventControl.onInSimple(data); |
| | | |
| | | return new PageResponse<>(RespCodeEnum.CODE_0000.getCode(), "执行成功"); |
| | | } |
| | | |
| | |
| | | data.setCheckTime(new Date()); |
| | | } |
| | | curData.setCheckStatus(data.getCheckStatus()); |
| | | curData.setFoodYear(data.getFoodYear()); |
| | | |
| | | |
| | | // 获取下一个流程状态 |
| | |
| | | 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()); |
| | |
| | | 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(), "保存成功"); |
| | | } |
| | | |
| | | /** |
| | |
| | | |
| | | try { |
| | | List<CheckItemData> result = checkStandardManager.listCheckItem( |
| | | param.getCheckId(), param.getCompanyId(), |
| | | param.getCompanyId(), param.getCheckId(), |
| | | param.getFoodVariety()); |
| | | |
| | | return new PageResponse<>(RespCodeEnum.CODE_0000, result); |
| | |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * @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); |
| | | } |
| | | |
| | | } |