Переглянути джерело

Merge remote-tracking branch 'origin/xuankuang' into xuankuang

# Conflicts:
#	warewms-ams/src/main/java/com/ruoyi/ams/xuankuang/service/WcsToWmsApiService.java
zhangxin 1 рік тому
батько
коміт
b5ca94b0cf

+ 7 - 0
pom.xml

@@ -35,6 +35,7 @@
         <velocity.version>2.3</velocity.version>
         <jwt.version>0.9.1</jwt.version>
         <skipTests>true</skipTests>
+        <guava.version>23.0</guava.version>
     </properties>
 
     <!-- 依赖声明 -->
@@ -165,6 +166,12 @@
                 <version>${kaptcha.version}</version>
             </dependency>
 
+            <dependency>
+                <groupId>com.google.guava</groupId>
+                <artifactId>guava</artifactId>
+                <version>${guava.version}</version>
+            </dependency>
+
             <!-- 定时任务-->
             <dependency>
                 <groupId>com.ruoyi</groupId>

+ 3 - 1
ruoyi-admin/src/main/java/com/ruoyi/web/controller/warewms/wms/order/WmsDocOrderHeaderController.java

@@ -8,6 +8,7 @@ import com.ruoyi.ams.order.form.CancelOrderForm;
 import com.ruoyi.ams.order.form.InvTallyForm;
 import com.ruoyi.ams.order.service.IWmsDocOrderDetailsService;
 import com.ruoyi.ams.order.service.IWmsDocOrderHeaderService;
+import com.ruoyi.base.constant.Constant;
 import com.ruoyi.base.service.IBaseIdsequenceService;
 import com.ruoyi.common.annotation.Log;
 import com.ruoyi.common.core.controller.BaseController;
@@ -17,6 +18,7 @@ import com.ruoyi.common.core.page.TableDataInfo;
 import com.ruoyi.common.enums.BusinessType;
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.poi.ExcelUtil;
+import org.apache.commons.compress.utils.Sets;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
@@ -153,7 +155,7 @@ public class WmsDocOrderHeaderController extends BaseController {
     @PostMapping("/addDocOrderHeader")
     public AjaxResult addDocOrderHeader(@RequestBody WmsDocOrderHeader wmsDocOrderHeader) {
         LoginUser loginUser = getLoginUser();
-        if(StringUtils.equals("DZ", wmsDocOrderHeader.getOrderType())
+            if(Sets.newHashSet(Constant.ASN_TYP.DZ.getValue(), Constant.ASN_TYP.YK.getValue()).add(wmsDocOrderHeader.getOrderType())
                 && StringUtils.isBlank(wmsDocOrderHeader.getSoReference3())){
             return AjaxResult.error("袋装出库请指定破袋机编号");
         }

+ 2 - 2
ruoyi-admin/src/main/resources/application-dev.yml

@@ -6,7 +6,7 @@ spring:
         druid:
             # 主库数据源
             master:
-                url: jdbc:mysql://47.100.220.92:3306/warewms_xuankuang_liwei?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8
+                url: jdbc:mysql://47.100.220.92:3306/warewms_xuankuang_cy?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8
                 username: warewms
                 password: warewms123
                 driverClassName: com.mysql.cj.jdbc.Driver
@@ -58,7 +58,7 @@ spring:
                         multi-statement-allow: true
     redis:
         # 地址
-        host: 192.168.157.130
+        host: 154.12.20.200
         # 端口,默认为6379
         port: 6379
         # 数据库索引

+ 27 - 39
ruoyi-admin/src/test/java/com/ruoyi/admin/test/base/ProcessLocationTest.java

@@ -36,7 +36,7 @@ import java.util.stream.Collectors;
 
 /**
  * Created by IntelliJ IDEA.
- * User: andy.qu
+ * User: chenyang
  * Date: 2022/2/9
  */
 @RunWith(SpringRunner.class)
@@ -97,17 +97,11 @@ public class ProcessLocationTest {
             }catch (RuntimeException ex){
                 log.warn("ex is {}", ex);
                 errorLocLotList.add(locLotModel);
-                continue;
             }
         }
         System.err.println(JSONObject.toJSONString(errorLocLotList));
     }
 
-
-    @Test
-    public void name() {
-    }
-
     /**
      * 重置一个库的库位库存信息
      * @param locationNo 库位号
@@ -122,9 +116,8 @@ public class ProcessLocationTest {
         if (ObjectUtil.isNull(baseLocationInfo)) return;
         if(StringUtils.isBlank(bindSku) && ObjectUtil.isNotNull(quantity)) return;
 
-
         //2.1 如果当前库位是空的,或者库位数量是空的,则删除inv_lot_loc_id中的库存数据并重置库位数据
-        if((ObjectUtil.isNull(quantity) || CompareUtil.compare(quantity, BigDecimal.ZERO)<=0)){
+        if(ObjectUtil.isNull(quantity) || CompareUtil.compare(quantity, BigDecimal.ZERO)<=0){
             //生成新的批次记录
             invLotAttService.insertInvLotAtt(bindSku, palletNo);
             invLotLocIdService.deleteInvLotLocList(baseLocationInfo.getId());
@@ -132,35 +125,30 @@ public class ProcessLocationTest {
             return;
         }
 
-        if(StringUtils.isNotBlank(bindSku)
-                && ObjectUtil.isNotNull(quantity)
-                && CompareUtil.compare(quantity, BigDecimal.ZERO) > 0){
-            //查出原先的库存情况,如果当前库存SKU不符合,则生成新的批次记录
-            List<InvLotLocId> invLotLocList = invLotLocIdService.getInvLotLocList(baseLocationInfo.getId());
-            if(CollectionUtil.isNotEmpty(invLotLocList)){
-                //此时数据是错的都要重新生成库存
-                List<String> skuList = invLotLocList.stream().map(item -> item.getSku()).collect(Collectors.toList());
-                if(CollectionUtil.isEmpty(skuList) || skuList.size() > 1 || !StringUtils.equals(skuList.get(0), bindSku)){
-                    //生成新的批次记录
-                    String lotnum = invLotAttService.insertInvLotAtt(bindSku, palletNo);
-                    //删除原先的库存记录`,生成新的库存记录
-                    invLotLocIdService.deleteInvLotLocList(baseLocationInfo.getId());
-                    invLotLocIdService.insertInvLotLocId(baseLocationInfo.getId(), lotnum, bindSku, quantity);
-                    //重置库位数据
-                    reSetLocationInfo(baseLocationInfo, bindSku, Constants.NO, skuTypeMapping);
-                    return;
-                } else {
-                    //此时只有数量是错的,那么update一下数量就好
-                    InvLotLocId invLotLocId = invLotLocList.get(0);
-                    invLotLocId.setQty(quantity);
-                    //TODO  其他关于数量的字段要改嘛
-                    invLotLocId.setQtyEach(quantity);
-                    invLotLocIdService.updateInvLotLocId(invLotLocId);
-                    //重置库存数据
-                    reSetLocationInfo(baseLocationInfo, bindSku, Constants.NO, skuTypeMapping);
-                    return;
-                }
-            }
+        //查出原先的库存情况,如果当前库存SKU不符合,则生成新的批次记录
+        List<InvLotLocId> invLotLocList = invLotLocIdService.getInvLotLocList(baseLocationInfo.getId());
+        if(CollectionUtil.isEmpty(invLotLocList)) return;
+        //此时数据是错的都要重新生成库存
+        List<String> skuList = invLotLocList.stream().map(item -> item.getSku()).collect(Collectors.toList());
+        if(CollectionUtil.isEmpty(skuList) || skuList.size() > 1 || !StringUtils.equals(skuList.get(0), bindSku)){
+            //生成新的批次记录
+            String lotnum = invLotAttService.insertInvLotAtt(bindSku, palletNo);
+            //删除原先的库存记录`,生成新的库存记录
+            invLotLocIdService.deleteInvLotLocList(baseLocationInfo.getId());
+            invLotLocIdService.insertInvLotLocId(baseLocationInfo.getId(), lotnum, bindSku, quantity);
+            //重置库位数据
+            reSetLocationInfo(baseLocationInfo, bindSku, Constants.NO, skuTypeMapping);
+            return;
+        }
+        if(CompareUtil.compare(invLotLocList.get(0).getQty(), quantity) != 0){
+            //此时只有数量是错的,那么update一下数量就好
+            InvLotLocId invLotLocId = invLotLocList.get(0);
+            invLotLocId.setQty(quantity);
+            //TODO  其他关于数量的字段要改嘛
+            invLotLocId.setQtyEach(quantity);
+            invLotLocIdService.updateInvLotLocId(invLotLocId);
+            //重置库存数据
+            reSetLocationInfo(baseLocationInfo, bindSku, Constants.NO, skuTypeMapping);
         }
     }
 
@@ -187,7 +175,7 @@ public class ProcessLocationTest {
 //        System.out.println(handleLocationNo("  A-02-08"));
 //        System.out.println(handleLocationNo("  -02-08"));
 //        System.out.println(handleLocationNo("Out-02-cache"));
-//        System.out.w's'x'z's'x'x'z(handleLocationNo("STAGE01"));
+//        System.out.println(handleLocationNo("STAGE01"));
     }
 
 

+ 5 - 0
ruoyi-common/pom.xml

@@ -162,6 +162,11 @@
             <version>4.5.2</version>
         </dependency>
 
+        <dependency>
+            <groupId>com.google.guava</groupId>
+            <artifactId>guava</artifactId>
+        </dependency>
+
     </dependencies>
 
 </project>

+ 8 - 17
warewms-ams/src/main/java/com/ruoyi/ams/asn/service/impl/WmsDocAsnHeaderServiceImpl.java

@@ -1,25 +1,21 @@
 package com.ruoyi.ams.asn.service.impl;
 
-import java.math.BigDecimal;
-import java.util.*;
-
+import com.ruoyi.ams.asn.domain.WmsDocAsnDetails;
+import com.ruoyi.ams.asn.domain.WmsDocAsnHeader;
 import com.ruoyi.ams.asn.form.PaForm;
 import com.ruoyi.ams.asn.form.StockForm;
 import com.ruoyi.ams.asn.form.UnlockForm;
 import com.ruoyi.ams.asn.mapper.WmsDocAsnDetailsMapper;
+import com.ruoyi.ams.asn.mapper.WmsDocAsnHeaderMapper;
+import com.ruoyi.ams.asn.service.IWmsDocAsnHeaderService;
 import com.ruoyi.ams.asn.vo.SearchStockVO;
 import com.ruoyi.ams.box.domain.WmsBoxInfo;
 import com.ruoyi.ams.box.service.IWmsBoxInfoService;
 import com.ruoyi.ams.business.IBusinessService;
-import com.ruoyi.ams.config.domain.dto.AgvCallDTO;
 import com.ruoyi.ams.config.domain.dto.LotattDTO;
-import com.ruoyi.ams.config.domain.vo.FlowConfigHeaderVO;
 import com.ruoyi.ams.config.service.IFlowConfigHeaderService;
-import com.ruoyi.ams.inv.domain.ActTransactionLog;
 import com.ruoyi.ams.inv.domain.InvLotAtt;
 import com.ruoyi.ams.inv.domain.InvLotLocId;
-import com.ruoyi.ams.inv.domain.form.InvLocIdSearchFrom;
-import com.ruoyi.ams.inv.domain.form.InvLotLocIdMoveForm;
 import com.ruoyi.ams.inv.mapper.InvLotLocIdMapper;
 import com.ruoyi.ams.inv.service.IActTransactionLogService;
 import com.ruoyi.ams.inv.service.IInvLotAttService;
@@ -30,9 +26,7 @@ import com.ruoyi.ams.order.domain.WmsDocOrderHeader;
 import com.ruoyi.ams.order.dto.WmsDocOrderDTO;
 import com.ruoyi.ams.order.mapper.WmsDocOrderDetailsMapper;
 import com.ruoyi.ams.order.service.IActAllocationDetailsService;
-import com.ruoyi.ams.order.service.IWmsDocOrderDetailsService;
 import com.ruoyi.ams.order.service.IWmsDocOrderHeaderService;
-import com.ruoyi.ams.task.domain.WcsTask;
 import com.ruoyi.ams.task.service.IWcsTaskService;
 import com.ruoyi.base.constant.Constant;
 import com.ruoyi.base.domain.BaseLocationInfo;
@@ -48,16 +42,13 @@ import com.ruoyi.common.core.domain.model.LoginUser;
 import com.ruoyi.common.exception.ServiceException;
 import com.ruoyi.common.utils.DateUtils;
 import com.ruoyi.common.utils.SecurityUtils;
-import com.ruoyi.common.utils.uuid.SnowflakeIdWorker;
+import com.ruoyi.common.utils.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
-
-import com.ruoyi.common.utils.StringUtils;
 import org.springframework.transaction.annotation.Transactional;
-import com.ruoyi.ams.asn.domain.WmsDocAsnDetails;
-import com.ruoyi.ams.asn.mapper.WmsDocAsnHeaderMapper;
-import com.ruoyi.ams.asn.domain.WmsDocAsnHeader;
-import com.ruoyi.ams.asn.service.IWmsDocAsnHeaderService;
+
+import java.math.BigDecimal;
+import java.util.*;
 
 /**
  * 入库单Service业务层处理