|  |  |  | 
|---|
|  |  |  | 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; | 
|---|
|  |  |  | 
|---|
|  |  |  | 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; | 
|---|
|  |  |  | 
|---|
|  |  |  | * | 
|---|
|  |  |  | * @author | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | @Slf4j | 
|---|
|  |  |  | @Component | 
|---|
|  |  |  | public class InoutManager { | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | private CheckStandardManager checkStandardManager; | 
|---|
|  |  |  | @Resource | 
|---|
|  |  |  | private InoutEventControlManager inoutEventControl; | 
|---|
|  |  |  | @Resource | 
|---|
|  |  |  | private CoreFileService coreFileService; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 直接从数据库查询,不考虑信息状态 | 
|---|
|  |  |  | 
|---|
|  |  |  | return data; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 从缓存中获取下一流程 | 
|---|
|  |  |  | * | 
|---|
|  |  |  | 
|---|
|  |  |  | 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); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | 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); | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 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)); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | if (InoutConstant.TYPE_IN.equals(data.getType())) { | 
|---|
|  |  |  | this.updateCheckItems(data, true); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | fileService.saveInoutFiles(data.getFiles(), data.getCompanyId(), data.getId(), null); | 
|---|
|  |  |  | return null; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | 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()); | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public void initInoutWeight(List<InoutConf> listInoutConf,String sort) { | 
|---|
|  |  |  | inoutEventControl.initInoutWeight(listInoutConf,sort); | 
|---|
|  |  |  | public void initInoutWeight(List<InoutConf> listInoutConf, String sort) { | 
|---|
|  |  |  | inoutEventControl.initInoutWeight(listInoutConf, sort); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|