yzc 1 gadu atpakaļ
vecāks
revīzija
dda677ca5e

+ 35 - 33
hx-wms/src/main/java/com/fjhx/wms/service/stock/impl/StockJournalDetailsServiceImpl.java

@@ -69,7 +69,7 @@ public class StockJournalDetailsServiceImpl extends ServiceImpl<StockJournalDeta
         wrapper.eq("w.id", dto.getWarehouseId());
         wrapper.eq("sj.to_warehouse_id", dto.getToWarehouseId());
         wrapper.eq("sjd.product_id", dto.getProductId());
-        wrapper.orderByDesc("sj", StockJournal::getCreateTime);
+        wrapper.orderByDesc("sjd", StockJournalDetails::getCreateTime);
 
         if (ObjectUtil.isNotEmpty(dto.getKeyword())) {
             //产品编号过滤
@@ -107,30 +107,32 @@ public class StockJournalDetailsServiceImpl extends ServiceImpl<StockJournalDeta
         if (ObjectUtil.isEmpty(records)) {
             return page;
         }
-        //给 采购退货 采购到货 的数据赋值关联单号
-        List<Long> swIds = records.stream().map(StockJournalDetailsVo::getBusinessId).collect(Collectors.toList());
-        if (ObjectUtil.isNotEmpty(swIds)) {
-            Map<Long, StockWait> stockWaitMap = stockWaitService.mapKEntity(StockWait::getId, q -> q.in(StockWait::getId, swIds));
+
+        List<Long> swBusinessIds = records.stream().map(StockJournalDetailsVo::getBusinessId).distinct().filter(Objects::nonNull).collect(Collectors.toList());
+
+        if (ObjectUtil.isNotEmpty(swBusinessIds)) {
+            //给 采购退货 采购到货 的数据赋值关联单号
+            Map<Long, StockWait> stockWaitMap = stockWaitService.mapKEntity(StockWait::getId, q -> q.in(StockWait::getId, swBusinessIds));
+
+            //给 到货质检 赋值关联单号
+            IWrapper<StockWait> wrapper = IWrapper.getWrapper();
+            wrapper.in("qi", StockWait::getId, swBusinessIds);
+            List<StockWaitVo> stockWaitInfo = baseMapper.getStockWaitInfo(wrapper);
+            Map<Long, String> stockWaitInfoMap = stockWaitInfo.stream().collect(Collectors.toMap(StockWait::getId, StockWait::getBusinessCode));
+
             for (StockJournalDetailsVo record : records) {
+                //给 采购退货 采购到货 的数据赋值关联单号
                 StockWait stockWait = stockWaitMap.get(record.getBusinessId());
-                if (ObjectUtil.isEmpty(stockWait)) {
+                if (ObjectUtil.isNotEmpty(stockWait)) {
+                    record.setLinkCode(stockWait.getBusinessCode());
                     continue;
                 }
-                record.setLinkCode(stockWait.getBusinessCode());
-            }
-        }
-        //给 到货质检 赋值关联单号
-        List<Long> qIds = records.stream().map(StockJournalDetailsVo::getBusinessId).distinct().filter(Objects::nonNull).collect(Collectors.toList());
-        IWrapper<StockWait> wrapper = IWrapper.getWrapper();
-        wrapper.in("qi", StockWait::getId, qIds);
-        List<StockWaitVo> stockWaitInfo = baseMapper.getStockWaitInfo(wrapper);
-        Map<Long, String> stockWaitInfoMap = stockWaitInfo.stream().collect(Collectors.toMap(StockWait::getId, StockWait::getBusinessCode));
-        for (StockJournalDetailsVo record : records) {
-            String linkCode = stockWaitInfoMap.get(record.getBusinessId());
-            if (ObjectUtil.isEmpty(linkCode)) {
-                continue;
+                //给 到货质检 赋值关联单号
+                String linkCode = stockWaitInfoMap.get(record.getBusinessId());
+                if (ObjectUtil.isNotEmpty(linkCode)) {
+                    record.setLinkCode(linkCode);
+                }
             }
-            record.setLinkCode(linkCode);
         }
         return page;
     }
@@ -167,14 +169,14 @@ public class StockJournalDetailsServiceImpl extends ServiceImpl<StockJournalDeta
         StockJournalDetails stockJournalDetails = getById(dto.getId());
 
         //根据流水获取入库批次
-        List<Long> stockJournalDetailsList = stockJournalDetailsService.listObject(StockJournalDetails::getId,q -> q
-                .eq(StockJournalDetails::getBusinessDetailsId,stockJournalDetails.getBusinessDetailsId())
-                .eq(StockJournalDetails::getProductId,stockJournalDetails.getProductId())
-                .eq(StockJournalDetails::getQuantity,stockJournalDetails.getQuantity())
+        List<Long> stockJournalDetailsList = stockJournalDetailsService.listObject(StockJournalDetails::getId, q -> q
+                .eq(StockJournalDetails::getBusinessDetailsId, stockJournalDetails.getBusinessDetailsId())
+                .eq(StockJournalDetails::getProductId, stockJournalDetails.getProductId())
+                .eq(StockJournalDetails::getQuantity, stockJournalDetails.getQuantity())
                 .orderByAsc(StockJournalDetails::getCreateTime)
         );
         int batchIndex = stockJournalDetailsList.indexOf(stockJournalDetails.getId());
-        if(batchIndex==-1){
+        if (batchIndex == -1) {
             throw new ServiceException("找不到入库批次信息");
         }
 
@@ -199,29 +201,29 @@ public class StockJournalDetailsServiceImpl extends ServiceImpl<StockJournalDeta
         boolean update = stockService.update(q -> q
                 .eq(Stock::getProductId, stockJournalDetails.getProductId())
                 .eq(Stock::getWarehouseId, stockJournal.getWarehouseId())
-                .setSql("victoriatourist_json = JSON_SET(victoriatourist_json,'$.frozenQuantity',ifnull(json_unquote(victoriatourist_json -> '$.frozenQuantity'), 0) + "+subtract+")")
+                .setSql("victoriatourist_json = JSON_SET(victoriatourist_json,'$.frozenQuantity',ifnull(json_unquote(victoriatourist_json -> '$.frozenQuantity'), 0) + " + subtract + ")")
         );
         if (!update) {
             throw new ServiceException("操作失败请重试");
         }
         //修改待出入库数据
         Long stockWaitDetailsId = stockJournalDetails.getBusinessDetailsId();
-        Assert.notEmpty(stockWaitDetailsId,"无法关联入库信息,操作失败");
+        Assert.notEmpty(stockWaitDetailsId, "无法关联入库信息,操作失败");
 
 
         boolean update1 = stockWaitDetailsService.update(q -> q
                 .eq(StockWaitDetails::getId, stockWaitDetailsId)
-                .setSql("receipt_quantity = receipt_quantity+"+subtract)
+                .setSql("receipt_quantity = receipt_quantity+" + subtract)
         );
         if (!update1) {
             throw new ServiceException("操作失败请重试");
         }
         //修改待入库状态
         StockWaitDetails stockWaitDetails = stockWaitDetailsService.getById(stockWaitDetailsId);
-        Assert.notEmpty(stockWaitDetails,"无法查询到关联待入库信息,操作失败");
+        Assert.notEmpty(stockWaitDetails, "无法查询到关联待入库信息,操作失败");
         StockWait stockWait = stockWaitService.getById(stockWaitDetails.getStockWaitId());
 
-        if (stockWait.getStatus()!=3) {
+        if (stockWait.getStatus() != 3) {
             if (stockWaitDetails.getQuantity().compareTo(stockWaitDetails.getReceiptQuantity()) <= 0) {
                 //完全入库
                 stockWait.setStatus(2);
@@ -244,14 +246,14 @@ public class StockJournalDetailsServiceImpl extends ServiceImpl<StockJournalDeta
         Long arrivalStockRecordsDetailsId = arrivalStockRecordsDetailsIds.get(batchIndex);
 
         ArrivalStockRecordsDetails oldarrivalStockRecordsDetails = arrivalStockRecordsDetailsService.getById(arrivalStockRecordsDetailsId);
-        Assert.notEmpty(oldarrivalStockRecordsDetails,"查询不到相关质检信息");
-        if(oldarrivalStockRecordsDetails.getQualityQuantity().compareTo(oldarrivalStockRecordsDetails.getQuantity())>=0){
+        Assert.notEmpty(oldarrivalStockRecordsDetails, "查询不到相关质检信息");
+        if (oldarrivalStockRecordsDetails.getQualityQuantity().compareTo(oldarrivalStockRecordsDetails.getQuantity()) >= 0) {
             throw new ServiceException("该记录已质检完成禁止修改");
         }
 
         boolean update2 = arrivalStockRecordsDetailsService.update(q -> q
                 .eq(ArrivalStockRecordsDetails::getId, arrivalStockRecordsDetailsId)
-                .setSql("quantity = quantity+"+subtract)
+                .setSql("quantity = quantity+" + subtract)
         );
         if (!update2) {
             throw new ServiceException("操作失败请重试");

+ 4 - 7
hx-wms/src/main/resources/mapper/stock/StockJournalDetailsMapper.xml

@@ -19,15 +19,12 @@
             lis.`code` logisticsCode,
             ci.`name` logisticsCompanyName
         FROM
-            stock_journal sj
-                JOIN stock_journal_details sjd ON sjd.stock_journal_id = sj.id
-                JOIN warehouse w ON sj.warehouse_id = w.id
+            stock_journal_details sjd FORCE INDEX ( create_time_index )
+                JOIN stock_journal sj ON sjd.stock_journal_id = sj.id
                 LEFT JOIN stock_wait sw ON sw.id = sj.business_id
-                LEFT JOIN bytesailing_victoriatourist.logistics_infos lis ON lis.business_id = sw.deliverGoodsId
-                AND lis.del_flag = 0 AND NOT sw.deliverGoodsId IS NULL
+                LEFT JOIN bytesailing_victoriatourist.logistics_infos lis ON ( lis.business_id = sw.deliverGoodsId OR lis.business_id = sw.id )
                 LEFT JOIN bytesailing_kd100.company_info ci ON lis.logistics_company_code = ci.`code`
-                AND ci.del_flag = 0
-                AND NOT lis.id IS NULL
+                LEFT JOIN warehouse w ON sj.warehouse_id = w.id
             ${ew.customSqlSegment}
     </select>
     <select id="getStockWaitInfo" resultType="com.fjhx.wms.entity.stock.vo.StockWaitVo">