andy преди 2 години
родител
ревизия
914da42974

+ 0 - 9
ruoyi-admin/src/main/java/com/ruoyi/web/controller/warewms/pda/PdaController.java

@@ -231,13 +231,4 @@ public class PdaController {
         }
         return wmsDocOrderHeaderService.doPick(pickForm.getPickInfoFormList());
     }
-
-    /*@PostMapping("/docOrder/doCheckout")
-    public AjaxResult doCheckout(@RequestBody CheckOutForm checkOutForm) {
-        List<CheckOutInfoForm> checkOutInfoFormList = checkOutForm.getCheckOutInfoFormList();
-        if (checkOutForm.getCheckOutInfoFormList() == null || checkOutForm.getCheckOutInfoFormList().size() == 0) {
-            return AjaxResult.error("参数不能为空");
-        }
-        return wmsDocOrderHeaderService.doCheckout(checkOutInfoFormList);
-    }*/
 }

+ 1 - 1
ruoyi-admin/src/main/java/com/ruoyi/web/controller/warewms/wms/asn/WmsDocAsnHeaderController.java

@@ -37,6 +37,7 @@ import com.ruoyi.common.core.page.TableDataInfo;
 @RestController
 @RequestMapping("/docAsn/docAsn")
 public class WmsDocAsnHeaderController extends BaseController {
+
     @Autowired
     private IWmsDocAsnHeaderService wmsDocAsnHeaderService;
     @Autowired
@@ -176,5 +177,4 @@ public class WmsDocAsnHeaderController extends BaseController {
         Long asnLineNo = Long.parseLong(param.get("asnLineNo").toString());
         return toAjax(wmsDocAsnDetailsService.deleteWmsDocAsnDetailsByAsnNoLineNo(asnNo, asnLineNo));
     }
-
 }

+ 77 - 7
ruoyi-admin/src/test/java/com/ruoyi/admin/test/base/WarehouseTest.java

@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSON;
 import com.ruoyi.RuoYiApplication;
 import com.ruoyi.ams.asn.domain.WmsDocAsnDetails;
 import com.ruoyi.ams.asn.domain.WmsDocAsnHeader;
+import com.ruoyi.ams.asn.service.IWmsDocAsnHeaderService;
 import com.ruoyi.ams.business.domain.FilterLockInvLocationDTO;
 import com.ruoyi.ams.config.domain.AsnSoStrategy;
 import com.ruoyi.ams.config.domain.FlowConfigHeader;
@@ -18,8 +19,12 @@ import com.ruoyi.ams.inv.mapper.InvLotLocIdMapper;
 import com.ruoyi.ams.locationView.domain.form.LocationViewForm;
 import com.ruoyi.ams.locationView.domain.vo.LocationViewVO;
 import com.ruoyi.ams.locationView.service.LocationViewService;
+import com.ruoyi.ams.order.domain.WmsDocOrderDetails;
+import com.ruoyi.ams.order.domain.WmsDocOrderHeader;
 import com.ruoyi.ams.order.mapper.WmsDocOrderDetailsMapper;
+import com.ruoyi.ams.order.service.IWmsDocOrderHeaderService;
 import com.ruoyi.ams.order.vo.StockOrderVO;
+import com.ruoyi.base.constant.Constant;
 import com.ruoyi.base.domain.BaseLocationInfo;
 import com.ruoyi.base.domain.BaseWarehouse;
 import com.ruoyi.base.domain.vo.BaseLocationLotattVO;
@@ -35,6 +40,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.test.context.SpringBootTest;
 import org.springframework.test.context.junit4.SpringRunner;
 
+import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
@@ -74,6 +80,10 @@ public class WarehouseTest {
     private WmsDocOrderDetailsMapper wmsDocOrderDetailsMapper;
     @Autowired
     private IdSequenceUtils idSequenceUtils;
+    @Autowired
+    private IWmsDocAsnHeaderService wmsDocAsnHeaderService;
+    @Autowired
+    private IWmsDocOrderHeaderService wmsDocOrderHeaderService;
 
     @Test
     public void test() {
@@ -185,17 +195,77 @@ public class WarehouseTest {
     @Test
     public void initDocAsnData() {
         String asnNo = idSequenceUtils.generateId("ASNNO");
-//        WmsDocAsnHeader header = new WmsDocAsnHeader();
-//        header.setAsnNo(asnNo);
-//        header.setAsnStatus("00");
-//        header.setAsnType("PR");
-//        header.setCreateDate(new Date());
-//        header.setCreateUserId();
-//        WmsDocAsnDetails details = new WmsDocAsnDetails();
+        WmsDocAsnHeader header = new WmsDocAsnHeader();
+        header.setAsnNo(asnNo);
+        header.setAsnReference1("12321");
+        header.setAsnStatus("00");
+        header.setAsnType("PR");
+        header.setCreateTime(new Date());
+        header.setCreateBy("warewms");
+        header.setCustomerId("default");
+        List<WmsDocAsnDetails> detailsList = new ArrayList<>();
+        String[] arr = new String[]{"test201", "test202", "test301", "test302", "test401", "test402"};
+        for (int i = 1; i < 5; i++) {
+            WmsDocAsnDetails details = new WmsDocAsnDetails();
+            details.setAsnNo(asnNo);
+            details.setAsnLineNo(Long.valueOf(i));
+            details.setSku(arr[i - 1]);
+            details.setExpectedQty(BigDecimal.valueOf(i * 10));
+            details.setExpectedQtyEach(details.getExpectedQty());
+            details.setReceivedQty(BigDecimal.ZERO);
+            details.setReceivedQtyEach(BigDecimal.ZERO);
+            details.setLineStatus("00");
+            details.setCreateBy("warewms");
+            details.setCreateTime(new Date());
+            details.setLotatt05("90");
+            details.setLotatt12("N");
+            detailsList.add(details);
+        }
+        header.setWmsDocAsnDetailsList(detailsList);
+        wmsDocAsnHeaderService.insertWmsDocAsnHeader(header);
     }
 
     @Test
     public void initDocOrderData() {
+        String soNo = idSequenceUtils.generateId("ORDERNO");
+        WmsDocOrderHeader header = new WmsDocOrderHeader();
+        header.setOrderNo(soNo);
+        header.setSoReference1("12321");
+        header.setOrderStatus("00");
+        header.setOrderType("PR");
+        header.setCreateTime(new Date());
+        header.setCreateBy("warewms");
+        header.setCustomerId("default");
+        List<WmsDocOrderDetails> detailsList = new ArrayList<>();
+        String[] arr = new String[]{"test201", "test202", "test301", "test302", "test401", "test402"};
+        for (int i = 1; i < 5; i++) {
+            WmsDocOrderDetails details = new WmsDocOrderDetails();
+            details.setOrderNo(soNo);
+            details.setCustomerId(Constant.CUSTOMER_ID);
+            details.setOrderLineNo(BigDecimal.valueOf(i));
+            details.setSku(arr[i - 1]);
+            details.setQtyOrdered(BigDecimal.valueOf(i * 10));
+            details.setQtyOrderedEach(details.getQtyOrdered());
+            details.setQtyPicked(BigDecimal.ZERO);
+            details.setQtyPickedEach(BigDecimal.ZERO);
+            details.setQtyAllocated(BigDecimal.ZERO);
+            details.setQtyAllocatedEach(BigDecimal.ZERO);
+            details.setQtyShipped(BigDecimal.ZERO);
+            details.setQtySoftAllocated(BigDecimal.ZERO);
+            details.setQtySoftallocatedEach(BigDecimal.ZERO);
+            details.setQtyShippedEach(BigDecimal.ZERO);
+            details.setLineStatus("00");
+            details.setCreateBy("warewms");
+            details.setCreateTime(new Date());
+            detailsList.add(details);
+        }
+        header.setWmsDocOrderDetailsList(detailsList);
+        wmsDocOrderHeaderService.insertWmsDocOrderHeader(header);
+    }
 
+    @Test
+    public void testInitData() {
+        initDocAsnData();
+        initDocOrderData();
     }
 }

+ 5 - 3
warewms-ams/src/main/java/com/ruoyi/ams/asn/service/impl/WmsDocAsnHeaderServiceImpl.java

@@ -199,7 +199,7 @@ public class WmsDocAsnHeaderServiceImpl implements IWmsDocAsnHeaderService {
     @Transactional
     @Override
     public AjaxResult doStock(StockForm stockForm) {
-        String STAGE01 = "999999";
+        String STAGE01 = "900";
         WmsDocOrderHeader wmsDocOrderHeader;
         List<WmsDocOrderDetails> orderDetails;
         Map<String, WmsDocOrderDetails> orderMap = new HashMap<>();
@@ -255,6 +255,8 @@ public class WmsDocAsnHeaderServiceImpl implements IWmsDocAsnHeaderService {
 
             //判断成品条码
             InvLotAtt queryAtt = new InvLotAtt();
+            queryAtt.setSku(s.getSku());
+            queryAtt.setLotatt02(s.getSkuSn());
             List<InvLotLocId> invList = invLotLocIdService.queryInvByInvLotatt(queryAtt, stockForm.getPalletNo());
             if (invList != null && invList.size() > 0) {
                 throw new ServiceException("每个成品条码只允许码一次");
@@ -276,11 +278,11 @@ public class WmsDocAsnHeaderServiceImpl implements IWmsDocAsnHeaderService {
             }
             //生成库存
             LotattDTO lotattDTO = new LotattDTO();
-            lotattDTO.setLotatt01(s.getSkuSn());
+            lotattDTO.setLotatt02(s.getSkuSn());
             lotattDTO.setLotatt05("90");
             lotattDTO.setLotatt07(stockForm.getPalletNo());
             lotattDTO.setLotatt08(s.getAsnNo());
-            lotattDTO.setLotatt12("Y");
+            lotattDTO.setLotatt12("N");
             lotattDTO.setLotatt13(DateUtils.dateTimeNow(DateUtils.YYYY_MM_DD_HH_MM_SS));
             lotattDTO.setLotatt14(stockForm.getOrderNo());
             invLotLocIdService.initInv(STAGE01, s.getSku(), Constant.CUSTOMER_ID, new BigDecimal(s.getQty()).doubleValue(), lotattDTO);

+ 9 - 3
warewms-ams/src/main/java/com/ruoyi/ams/order/service/impl/WmsDocOrderHeaderServiceImpl.java

@@ -100,9 +100,15 @@ public class WmsDocOrderHeaderServiceImpl implements IWmsDocOrderHeaderService {
      * @param wmsDocOrderHeader 出库单头
      * @return 结果
      */
+    @Transactional
     @Override
     public int insertWmsDocOrderHeader(WmsDocOrderHeader wmsDocOrderHeader) {
-        return wmsDocOrderHeaderMapper.insertWmsDocOrderHeader(wmsDocOrderHeader);
+        int result = wmsDocOrderHeaderMapper.insertWmsDocOrderHeader(wmsDocOrderHeader);
+        List<WmsDocOrderDetails> orderDetails = wmsDocOrderHeader.getWmsDocOrderDetailsList();
+        for (WmsDocOrderDetails de : orderDetails) {
+            wmsDocOrderHeaderService.insertWmsDocOrderDetails(de);
+        }
+        return result;
     }
 
     /**
@@ -316,8 +322,8 @@ public class WmsDocOrderHeaderServiceImpl implements IWmsDocOrderHeaderService {
 
     @Override
     public int insertWmsDocOrderDetails(WmsDocOrderDetails wmsDocOrderDetails) {
-        long lineNo = wmsDocOrderHeaderMapper.selectLineNo(wmsDocOrderDetails.getOrderNo());
-        wmsDocOrderDetails.setOrderLineNo(BigDecimal.valueOf(lineNo+1));
+        //long lineNo = wmsDocOrderHeaderMapper.selectLineNo(wmsDocOrderDetails.getOrderNo());
+        //wmsDocOrderDetails.setOrderLineNo(BigDecimal.valueOf(lineNo + 1));
         return wmsDocOrderDetailsMapper.insertWmsDocOrderDetails(wmsDocOrderDetails);
     }
 }

+ 1 - 0
warewms-ams/src/main/resources/mapper/ams/InvLotLocIdMapper.xml

@@ -407,6 +407,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 
     <select id="queryInvByInvLotatt" resultMap="InvLotLocIdResult">
         select li.* from inv_lot_loc_id li
+        left join inv_lot_att att on li.lotnum = att.lotnum
         left join wms_box_info b on li.location_id = b.location_id
         <where>
             <if test="lotattDTO.lotatt01 != null  and lotattDTO.lotatt01 != ''"> and att.lotatt01 = #{lotattDTO.lotatt01}</if>

+ 1 - 4
warewms-base/src/main/java/com/ruoyi/base/utils/IdSequenceUtils.java

@@ -37,10 +37,7 @@ public class IdSequenceUtils {
             } else {
                 prefix = sysIdsequence.getPrefix();
             }
-            int index = 0;
-            if (sysIdsequence.getDateFormat() == null || sysIdsequence.getDateFormat().equals("") || dateStr.equals(sysIdsequence.getDateMax())) {
-                index = sysIdsequence.getIdSequence() == null ? 0 : sysIdsequence.getIdSequence().intValue();
-            }
+            int index = sysIdsequence.getIdSequence() == null ? 0 : sysIdsequence.getIdSequence().intValue();
             String resultNo = "";
             if (!StringUtils.isEmpty(prefix)) {
                 resultNo = prefix + CommonUtils.lpad((index + 1) + "", sysIdsequence.getLength().intValue(), "0");

+ 1 - 1
warewms-base/src/main/resources/mapper/base/BaseIdsequenceMapper.xml

@@ -116,6 +116,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </delete>
 
     <update id="updateByVersion">
-        update sys_idsequence set id_sequence = #{nextId},date_max=#{dateStr} where id_name=#{idName} and id_sequence=#{idSequence}
+        update base_idsequence set id_sequence = #{nextId},date_max=#{dateStr} where id_name=#{idName} and id_sequence=#{idSequence}
     </update>
 </mapper>