Răsfoiți Sursa

问题处理

yzc 2 ani în urmă
părinte
comite
8a0550dd46

+ 4 - 2
hx-oa/src/main/java/com/fjhx/oa/service/schedule/impl/ScheduleInfoServiceImpl.java

@@ -47,14 +47,16 @@ public class ScheduleInfoServiceImpl extends ServiceImpl<ScheduleInfoMapper, Sch
     @Override
     public Page<ScheduleInfoVo> getPage(ScheduleInfoSelectDto dto) {
         IWrapper<ScheduleInfo> wrapper = getWrapper();
-        wrapper.orderByDesc("si", ScheduleInfo::getCreateTime);
+        wrapper.orderByAsc("si", ScheduleInfo::getCreateTime);
         if (ObjectUtil.isNotEmpty(dto.getDate())) {
             wrapper.apply("date_format(si.start_date,'%Y-%m') = date_format('" + sdf.format(dto.getDate()) + "','%Y-%m')");
         }
         wrapper.eq("si", ScheduleInfoVo::getCreateUser, dto.getCreateUser());
         wrapper.eq("sd", ScheduleInfoVo::getParticipantId, dto.getParticipantId());
         if (ObjectUtil.isNotEmpty(dto.getStartDate())) {
-            wrapper.apply("date_format(si.start_date,'%Y-%m-%d') BETWEEN date_format('" + sdf.format(dto.getStartDate()) + "','%Y-%m-%d') AND date_format('" + sdf.format(dto.getEndDate()) + "','%Y-%m-%d')");
+//            wrapper.apply("date_format(si.start_date,'%Y-%m-%d') BETWEEN date_format('" + sdf.format(dto.getStartDate()) + "','%Y-%m-%d') AND date_format('" + sdf.format(dto.getEndDate()) + "','%Y-%m-%d')");
+            wrapper.and(q -> q.apply("date_format( '" + sdf.format(dto.getStartDate()) + "', '%y-%m-%d' ) BETWEEN date_format( si.start_date, '%y-%m-%d' ) AND date_format( si.end_date, '%y-%m-%d' )").or()
+                    .apply("date_format( '" + sdf.format(dto.getStartDate()) + "', '%y-%m-%d' ) BETWEEN date_format( si.start_date, '%y-%m-%d' ) AND date_format( si.end_date, '%y-%m-%d' )"));
         }
         wrapper.groupBy("si.id");
         Page<ScheduleInfoVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);

+ 1 - 1
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/controller/stock/StockTransferController.java

@@ -66,7 +66,7 @@ public class StockTransferController {
     }
 
     @PostMapping("/receive")
-    public void receive(StockTransferDto stockTransferDto){
+    public void receive(@RequestBody StockTransferDto stockTransferDto){
         stockTransferService.receive(stockTransferDto);
     }
 

+ 36 - 21
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/stock/impl/StockTransferServiceImpl.java

@@ -2,9 +2,12 @@ package com.fjhx.victoriatourist.service.stock.impl;
 
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.dynamic.datasource.annotation.DSTransactional;
+import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder;
 import com.baomidou.mybatisplus.core.toolkit.IdWorker;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fjhx.common.constant.SourceConstant;
 import com.fjhx.item.service.product.ProductInfoService;
 import com.fjhx.victoriatourist.entity.abnormal.po.AbnormalInfo;
 import com.fjhx.victoriatourist.entity.stock.dto.StockTransferDto;
@@ -126,27 +129,36 @@ public class StockTransferServiceImpl extends ServiceImpl<StockTransferMapper, S
         this.removeById(id);
     }
 
-    @Transactional(rollbackFor = Exception.class)
+    @DSTransactional
     @Override
     public void receive(StockTransferDto stockTransferDto) {
-        StockTransfer stockTransfer = getById(stockTransferDto);
-        stockTransfer.setInStatus(1);//修改为已接收
-        updateById(stockTransfer);
+        StockTransfer stockTransfer = getById(stockTransferDto.getId());
+        stockTransfer.setInStatus(2);//修改为已接收
         //明细
         List<Stock> stockList = new ArrayList<>();
         List<StockTransferDetails> stockTransferDetailsList = stockTransferDto.getStockTransferDetailsList();
-        stockTransferDetailsService.updateBatchById(stockTransferDetailsList);
-        //获取数据库中的数据
-        List<StockTransferDetails> oldstockTransferDetailsList = stockTransferDetailsService.listByIds(stockTransferDetailsList);
-        Map<Long, StockTransferDetails> oldstockTransferDetailsMap = oldstockTransferDetailsList.stream().collect(Collectors.toMap(StockTransferDetails::getId, Function.identity()));
-        for (StockTransferDetails stockTransferDetails : stockTransferDetailsList) {
-            Stock stock = new Stock();
-            stock.setProductId(stockTransferDetails.getProductId());
-            stock.setQuantity(stockTransferDetails.getInQuantity());
+        if(ObjectUtil.isNotEmpty(stockTransferDetailsList)) {
+            stockTransferDetailsService.updateBatchById(stockTransferDetailsList);
+            //获取数据库中的数据
+            List<Long> ids = stockTransferDetailsList.stream().map(StockTransferDetails::getId).collect(Collectors.toList());
+            List<StockTransferDetails> oldstockTransferDetailsList = stockTransferDetailsService.listByIds(ids);
+            Map<Long, StockTransferDetails> oldstockTransferDetailsMap = oldstockTransferDetailsList.stream().collect(Collectors.toMap(StockTransferDetails::getId, Function.identity()));
+
+            Integer abnormalFlag = 0;
+            for (StockTransferDetails stockTransferDetails : stockTransferDetailsList) {
+                Stock stock = new Stock();
+                stock.setProductId(stockTransferDetails.getProductId());
+                stock.setQuantity(stockTransferDetails.getInQuantity());
+                stockList.add(stock);
 
-            //调仓接收数量与发出数量不一致
-            StockTransferDetails oldstockTransferDetails = oldstockTransferDetailsMap.get(stockTransferDetails.getId());
-            if (stockTransferDetails.getInQuantity()!=oldstockTransferDetails.getOutQuantity()) {
+                //调仓接收数量与发出数量不一致
+                StockTransferDetails oldstockTransferDetails = oldstockTransferDetailsMap.get(stockTransferDetails.getId());
+                if (stockTransferDetails.getInQuantity() != oldstockTransferDetails.getOutQuantity()) {
+                    abnormalFlag =1;
+                    stockTransfer.setInStatus(1);//设置为部分接收
+                }
+            }
+            if(abnormalFlag ==1){
                 AbnormalInfo abnormalInfo = new AbnormalInfo();
                 abnormalInfo.setId(IdWorker.getId());
                 abnormalInfo.setType(30);
@@ -155,6 +167,7 @@ public class StockTransferServiceImpl extends ServiceImpl<StockTransferMapper, S
                 abnormalInfoService.save(abnormalInfo);
             }
         }
+        updateById(stockTransfer);
         //创建出入库记录
         StockJournal stockJournal = new StockJournal();
         stockJournal.setType(3);
@@ -163,12 +176,14 @@ public class StockTransferServiceImpl extends ServiceImpl<StockTransferMapper, S
         stockJournal.setBusinessId(stockTransfer.getId());
         //保存出入库记录
         stockJournalService.save(stockJournal);
-        //出库
-        stockService.ModifyInventory(stockJournal.getId(), 2, stockList, stockTransfer.getOutWarehouseId());
-        //入库
-        List<StockJournalDetails> stockJournalDetailsList = stockService.ModifyInventory(stockJournal.getId(), 1, stockList, stockTransfer.getInWarehouseId());
-        //保存出入库记录明细
-        stockJournalDetailsService.saveBatch(stockJournalDetailsList);
+        if(ObjectUtil.isNotEmpty(stockList)) {
+            //出库
+            stockService.ModifyInventory(stockJournal.getId(), 2, stockList, stockTransfer.getOutWarehouseId());
+            //入库
+            List<StockJournalDetails> stockJournalDetailsList = stockService.ModifyInventory(stockJournal.getId(), 1, stockList, stockTransfer.getInWarehouseId());
+            //保存出入库记录明细
+            stockJournalDetailsService.saveBatch(stockJournalDetailsList);
+        }
     }
 
 }

+ 1 - 1
hx-wms/src/main/java/com/fjhx/wms/service/stock/impl/StockServiceImpl.java

@@ -265,7 +265,7 @@ public class StockServiceImpl extends ServiceImpl<StockMapper, Stock> implements
                 newStocks.setId(oldStocks.getId());
                 newStocks.setQuantity(quantity);
             } else if (type == 2) {
-                throw new ServiceException("以下商品库存不存在,无法出库:" + stock.getProductId());
+                throw new ServiceException("以下商品库存不,无法出库:" + stock.getProductId());
             }
 
             data.add(newStocks);