From 43ce77a85d8297a53dc25430fff10ead57296167 Mon Sep 17 00:00:00 2001 From: jiazx0107@163.com <jiazx0107@163.com> Date: 星期六, 04 十一月 2023 15:43:18 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- igds-inout/src/main/java/com/ld/igds/inout/manager/InoutManager.java | 307 ++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 216 insertions(+), 91 deletions(-) diff --git a/igds-inout/src/main/java/com/ld/igds/inout/manager/InoutManager.java b/igds-inout/src/main/java/com/ld/igds/inout/manager/InoutManager.java index 9373ae5..28bac20 100644 --- a/igds-inout/src/main/java/com/ld/igds/inout/manager/InoutManager.java +++ b/igds-inout/src/main/java/com/ld/igds/inout/manager/InoutManager.java @@ -3,11 +3,11 @@ 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.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; @@ -20,9 +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; @@ -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; @@ -40,7 +36,6 @@ * * @author */ -@Slf4j @Component public class InoutManager { @@ -49,13 +44,13 @@ @Resource private CoreFileService fileService; @Resource - private CoreCommonService commonService; - @Resource private InoutCommonService inoutCommonService; @Resource private CheckStandardManager checkStandardManager; @Resource - private InoutDeviceManager inoutDeviceManager; + private InoutEventControlManager inoutEventControl; + @Resource + private CoreFileService coreFileService; /** * 鐩存帴浠庢暟鎹簱鏌ヨ锛屼笉鑰冭檻淇℃伅鐘舵�� @@ -219,7 +214,6 @@ return data; } - /** * 浠庣紦瀛樹腑鑾峰彇涓嬩竴娴佺▼ * @@ -262,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; } @@ -294,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); } /** @@ -376,6 +332,52 @@ 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); + } + /** * 琛ュ崟鎿嶄綔 琛ュ崟鍥犱负瀹屾垚鏃堕棿涓嶇‘瀹氾紝鎵�浠ラ渶瑕佺郴缁熸牴鎹綋鍓嶆暟鎹繘琛岃嚜鍔ㄦ娴嬶紝璋冩暣鍘熸潵娴佹按淇℃伅鍜屽簱瀛� * @@ -397,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); @@ -414,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)); } } @@ -444,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; } @@ -492,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 "褰撳墠淇℃伅宸插仛寮傚父澶勭悊锛屼笉鏀寔閲嶅鎵ц锛�"; } @@ -556,8 +588,13 @@ return msg; } - public void initLpr(InoutConf conf) { - inoutDeviceManager.initLpr(conf); + /** + * 鍑哄叆搴撶櫥璁板垵濮嬪寲 + * + * @param conf 杞︾墝璇嗗埆閰嶇疆淇℃伅 + */ + public void initInoutRegister(InoutConf conf) { + inoutEventControl.initInoutRegister(conf); } /** @@ -567,8 +604,7 @@ * @return * @throws Exception */ - public PageResponse<InoutData> submitRegisterInout(InoutData data) - throws Exception { + public PageResponse<InoutData> submitRegisterInout(InoutData data) throws Exception { // 棣栧厛鍒ゆ柇娴佺▼涓槸鍚︽湁宸茬粡瀛樺湪鐨勮溅杈嗕俊鎭湭鎵ц瀹屾垚锛岀洿鎺ヤ粠鏁版嵁搴撲腑鏌ヨ InoutParam param = new InoutParam(); @@ -591,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(), @@ -602,20 +638,22 @@ 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); + if (null != files && files.size() > 0) { + // 鎵ц闄勪欢淇℃伅 + fileService.saveInoutFiles(files, 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()); @@ -623,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(), @@ -641,15 +679,15 @@ data); } - // 鎵ц闄勪欢淇℃伅 - fileService.saveInoutFiles(data.getFiles(), data.getCompanyId(), - data.getId(), curProgress); + if (null != files && files.size() > 0) { + // 鎵ц闄勪欢淇℃伅 + fileService.saveInoutFiles(files, 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) @@ -680,11 +718,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) @@ -715,6 +753,9 @@ // 鎵ц闄勪欢淇℃伅 fileService.saveInoutFiles(data.getFiles(), data.getCompanyId(), data.getId(), curProgress); + + // 鍊间粨瀹屾垚瑙﹀彂浜嬩欢 + inoutEventControl.onInoutHandle(data, curProgress, nextProgress); return new PageResponse<>(RespCodeEnum.CODE_0000.getCode(), "鎵ц鎴愬姛", data); } @@ -785,6 +826,9 @@ return new PageResponse<>(RespCodeEnum.CODE_1111.getCode(), msg); } + // 鎵︽牱瀹屾垚瑙﹀彂浜嬩欢 + inoutEventControl.onInSimple(data); + return new PageResponse<>(RespCodeEnum.CODE_0000.getCode(), "鎵ц鎴愬姛"); } @@ -833,7 +877,9 @@ curData.setCheckTime(new Date()); data.setCheckTime(new Date()); } + curData.setCheckUser(data.getCheckUser()); curData.setCheckStatus(data.getCheckStatus()); + curData.setFoodYear(data.getFoodYear()); // 鑾峰彇涓嬩竴涓祦绋嬬姸鎬� @@ -853,6 +899,9 @@ curData.setPrice(data.getPrice()); 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()); @@ -867,7 +916,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(), "淇濆瓨鎴愬姛"); } /** @@ -908,7 +1002,7 @@ try { List<CheckItemData> result = checkStandardManager.listCheckItem( - param.getCompanyId(),param.getCheckId(), + param.getCompanyId(), param.getCheckId(), param.getFoodVariety()); return new PageResponse<>(RespCodeEnum.CODE_0000, result); @@ -941,4 +1035,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); + } + } \ No newline at end of file -- Gitblit v1.9.3