From 537a57d5e81d4c6da8a0eca1690f61644a1dc462 Mon Sep 17 00:00:00 2001 From: YYC <1833023622@qq.com> Date: 星期四, 12 十月 2023 22:32:43 +0800 Subject: [PATCH] 出入库快速结束,异常终止 --- igds-inout/src/main/java/com/ld/igds/inout/service/impl/InoutServiceImpl.java | 156 +++++++++++++++++++++------------------------------ 1 files changed, 65 insertions(+), 91 deletions(-) diff --git a/igds-inout/src/main/java/com/ld/igds/inout/service/impl/InoutServiceImpl.java b/igds-inout/src/main/java/com/ld/igds/inout/service/impl/InoutServiceImpl.java index b89eccf..2ece18d 100644 --- a/igds-inout/src/main/java/com/ld/igds/inout/service/impl/InoutServiceImpl.java +++ b/igds-inout/src/main/java/com/ld/igds/inout/service/impl/InoutServiceImpl.java @@ -1,8 +1,6 @@ package com.ld.igds.inout.service.impl; import com.bstek.dorado.data.entity.EntityUtils; -import com.ld.igds.common.CoreCommonService; -import com.ld.igds.constant.BizType; import com.ld.igds.constant.Constant; import com.ld.igds.constant.RedisConst; import com.ld.igds.data.CommonData; @@ -15,12 +13,11 @@ import com.ld.igds.inout.mapper.InoutCheckMapper; import com.ld.igds.inout.mapper.InoutRecordMapper; import com.ld.igds.inout.service.InoutService; -import com.ld.igds.models.Depot; +import com.ld.igds.models.InoutLossOver; import com.ld.igds.models.InoutPrice; import com.ld.igds.util.ContextUtil; import com.ld.igds.util.DateUtil; import com.ld.igds.util.RedisUtil; -import com.ld.igds.websocket.WebSocketServer; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.time.DateFormatUtils; @@ -29,9 +26,6 @@ import javax.annotation.Resource; import java.util.*; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; -import java.util.concurrent.FutureTask; @Slf4j @Component @@ -43,8 +37,6 @@ private InoutCheckMapper inoutCheckMapper; @Resource private RedisUtil redisUtil; - @Resource - private CoreCommonService commonService; @Override public InoutData inoutProgressQuery(InoutParam param) throws Exception { @@ -57,8 +49,6 @@ if (null != result) { return result; } - - List<InoutData> list = inoutMapper.inoutProgressQuery(param); if (null == list || list.size() == 0) return null; @@ -106,16 +96,18 @@ } @Override - public String inoutStop(InoutParam param) { + public String inoutStop(InoutParam param) throws Exception { if (StringUtils.isEmpty(param.getCompanyId())) { - param.setCompanyId(ContextUtil.getCompanyId()); + param.setCompanyId(ContextUtil.getDefaultCompanyId()); } + + + param.setProgress(InoutConstant.PROGRESS_RECORD); + param.setRecordStatus(InoutConstant.RECORD_STATUS_DEL); + // 缂撳瓨涓垹闄� delFromCache(param.getDeptId(), param.getType(), param.getId()); - - param.setProgress(InoutConstant.PROGRESS_RECORD); - param.setRecordStatus(InoutConstant.RECORD_STATUS_ERROR); inoutMapper.inoutStop(param); @@ -153,9 +145,18 @@ data.setUserName(""); } - inoutMapper.insertData(data); + InoutData newData; + if (EntityUtils.isEntity(data)) { + newData = new InoutData(); + BeanUtils.copyProperties(data, newData, new String[]{"checkItems", "files"}); + } else { + newData = data; + } - updateInoutCache(data); + inoutMapper.insertData(newData); + + + updateInoutCache(newData); } catch (Exception e) { log.error("------------鍑哄叆搴撴墽琛屼繚瀛樺嚭閿�---{}", e); @@ -205,9 +206,11 @@ } inoutMapper.updateDataByHandle(newData); + InoutParam param = new InoutParam(); + param.setId(newData.getId()); //鏇存柊缂撳瓨 - updateInoutCache(newData); + updateInoutCache(inoutMapper.inoutQueryById(param)); return null; } @@ -237,6 +240,10 @@ // 璁剧疆韬唤璇佸彿鐨勬ā绯婃煡璇㈡潯浠� if (null != param.getUserId()) { param.setUserId("%" + param.getUserId() + "%"); + } + + if (null != param.getRecordStatus() && InoutConstant.RECORD_STATUS_NORMAL.equals(param.getRecordStatus())) { + param.setRecordStatus(null); } List<InoutData> records = inoutMapper.pageRecordData(page, param); @@ -288,7 +295,7 @@ } // 娓呴櫎缂撳瓨 - this.delFromCache(param.getDeptId(), param.getType(), param.getId()); +// this.delFromCache(param.getDeptId(), param.getType(), param.getId()); inoutMapper.toComplete(param); @@ -299,7 +306,7 @@ @Override public String quickComplete(InoutData data) throws Exception { if (null == data.getCompanyId()) { - data.setCompanyId(ContextUtil.getCompanyId()); + data.setCompanyId(ContextUtil.getDefaultCompanyId()); } if (null == data.getCompleteTime()) { data.setCompleteTime(new Date()); @@ -310,7 +317,9 @@ if (null == data.getEmptyWeightTime()) { data.setEmptyWeightTime(new Date()); } - + if (null == data.getFullWeightTime()) { + data.setFullWeightTime(new Date()); + } //璋冩暣鏃堕棿宸� if (InoutConstant.TYPE_IN.equals(data.getType())) { @@ -339,15 +348,10 @@ // 璁剧疆娴佺▼缁撴潫 data.setProgress(InoutConstant.PROGRESS_RECORD); - - if (null == data.getFoodType()) { - // 鏍规嵁浠撳簱淇℃伅鑾峰彇缂撳瓨 - Depot depot = commonService.getCacheDepot(data.getCompanyId(), data.getDepotId()); - data.setFoodType(depot.getFoodType()); - } - + //鎵ц鏇存柊 inoutMapper.updateData(data); + //鏇存柊缂撳瓨 updateInoutCache(data); return null; @@ -368,8 +372,6 @@ } else { setInoutCache(data.getDeptId(), data); } - - } @@ -512,16 +514,6 @@ inoutMapper.deleteData(param); } - @Override - public void setCheckCache(InoutData data) { - - String cacheKey = RedisConst.buildKey(data.getCompanyId(), data.getCheckId()); - - //鍖栭獙缁撴灉瀛樺叆缂撳瓨3澶� - redisUtil.set(cacheKey, data.getCheckItems(), 60 * 60 * 24 * 3); - } - - /** * 鍑哄叆搴撴祦绋婭D鍒涘缓 202001030001 202001030001 * @@ -625,53 +617,6 @@ } /** - * 鎺ㄩ�佸埌澶у睆锛屽垽鏂彧鏈夊綋澶у睆鍦ㄧ嚎鏃跺�欐墠澶勭悊褰撳墠閫昏緫锛岄伩鍏嶉〉闈㈠崱椤匡紝璋冪敤瀛愪换鍔″畬鎴愭帹閫� - * - * @param companyId 缁勭粐缂栧彿 - * @param deptId 鍒嗗簱缂栧彿 - * @param progress 娴佽浆鑺傜偣 - */ - public void notifyToScreen(String companyId, String deptId, String progress) { - - // 鎺ㄩ�佸埌澶у睆 - List<InoutData> curList = this.getListInoutCache(deptId); - - List<InoutData> completeList = this.getCompleteListInoutCache(deptId); - - - if (null == WebSocketServer.contextOnLineMap.get(BizType.SCREEN - .getCode())) { - WebSocketServer.contextOnLineMap.put(BizType.SCREEN.getCode(), - false); - } - if (null == WebSocketServer.contextOnLineMap.get(BizType.SCREEN_INOUT - .getCode())) { - WebSocketServer.contextOnLineMap.put( - BizType.SCREEN_INOUT.getCode(), false); - } - if (null == WebSocketServer.contextOnLineMap.get(BizType.SCREEN_CHECK - .getCode())) { - WebSocketServer.contextOnLineMap.put( - BizType.SCREEN_CHECK.getCode(), false); - } - - if (WebSocketServer.contextOnLineMap.get(BizType.SCREEN.getCode()) - || WebSocketServer.contextOnLineMap.get(BizType.SCREEN_INOUT - .getCode()) - || WebSocketServer.contextOnLineMap.get(BizType.SCREEN_CHECK - .getCode())) { - - - // 鍒涘缓涓�涓瓙浠诲姟杩涜鎺ㄩ�佷俊鎭� - FutureTask<String> futureTask = new FutureTask<>(new NotifyScreenTask(curList, completeList, deptId)); - - ExecutorService executorService = Executors.newCachedThreadPool(); - executorService.submit(futureTask); - executorService.shutdown(); - } - } - - /** * 鍒涘缓鍑哄叆搴搆ey * * @param deptId @@ -718,10 +663,10 @@ data.setCompanyId(ContextUtil.getCompanyId()); } if (StringUtils.isEmpty(data.getDeptId())) { - data.setCompanyId(ContextUtil.subDeptId(null)); + data.setDeptId(ContextUtil.subDeptId(null)); } - int num = inoutCheckMapper.updateSampleData(data); + inoutCheckMapper.updateSampleData(data); return null; } @@ -754,7 +699,8 @@ @Override public String updateCheckData(InoutData data) { data.setUpdateTime(new Date()); - int num = inoutCheckMapper.updateCheckData(data); + + inoutCheckMapper.updateCheckData(data); //鏇存柊缂撳瓨 updateInoutCache(data); @@ -772,4 +718,32 @@ } return inoutCheckMapper.getPrice(param); } + + @Override + public InoutCheckData inoutDataByCheckId(InoutCheckParam param) throws Exception { + List<InoutCheckData> list = inoutCheckMapper.inoutDataByCheckId(param); + if (null == list || list.size() == 0) + return null; + if (list.size() == 1) { + return list.get(0); + } else { + throw new Exception("褰撳墠鏉′欢涓嬪瓨鍦ㄥ涓弧瓒虫潯浠剁殑鏁版嵁锛岃鏍告煡锛侊紒"); + } + } + + @Override + public List<InoutLossOver> listLossOver(InoutParam param) { + if (StringUtils.isEmpty(param.getCompanyId())) { + param.setCompanyId(ContextUtil.getCompanyId()); + } + List<InoutLossOver> list = inoutMapper.listLossOver(param); + + return list; + } + + @Override + public double sumLossOverWeight(InoutParam param) { + CommonData result = inoutMapper.sumLossOverWeight(param); + return result.getNumValue1(); + } } -- Gitblit v1.9.3