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

PDA调用的接口所有的出入库单ERP单号转换为WMS单号

k 2 роки тому
батько
коміт
d9b8579676

+ 18 - 4
ruoyi-admin/src/main/java/com/ruoyi/web/controller/warewms/pda/PdaController.java

@@ -105,6 +105,9 @@ public class PdaController {
     @PostMapping("/docAsn/stock")
     @Log(title = "码盘", businessType = BusinessType.INSERT)
     public AjaxResult stock(@RequestBody StockForm stockForm) {
+        // ERP号转换为wms系统入库单号ASNNO
+        List<String> asnNoList = wmsDocAsnHeaderService.changeErpNoToAsnNo(stockForm.getAsnNo());
+        stockForm.setAsnNo(asnNoList);
         if (stockForm.getStockTag().equals("Y") && StringUtils.isEmpty(stockForm.getOrderNo())) {
             return AjaxResult.error("码盘备货必须输入出库单号");
         }
@@ -119,6 +122,9 @@ public class PdaController {
      */
     @PostMapping("/docAsn/snCheck")
     public AjaxResult snCheck(@Validated @RequestBody SnCheckForm snCheckForm) {
+        // ERP号转换为wms系统入库单号ASNNO
+        List<String> asnNoList = wmsDocAsnHeaderService.changeErpNoToAsnNo(snCheckForm.getAsnNoList());
+        snCheckForm.setAsnNoList(asnNoList);
         CodeSkuRelationshipVO codeSkuRelationshipVO = wmsDocAsnHeaderService.searchSn(snCheckForm);
         return AjaxResult.success(codeSkuRelationshipVO);
     }
@@ -280,7 +286,9 @@ public class PdaController {
      */
     @GetMapping("/docAsn/info")
     public AjaxResult docAsnInfo(@RequestParam String asnNo) {
-        WmsDocAsnHeader header = wmsDocAsnHeaderService.selectWmsDocAsnHeaderByAsnNo(asnNo);
+        // ERP号转换为wms系统入库单号ASNNO
+        String endAsnNo= wmsDocAsnHeaderService.changeErpNoToAsnNo(asnNo);
+        WmsDocAsnHeader header = wmsDocAsnHeaderService.selectWmsDocAsnHeaderByAsnNo(endAsnNo);
         return AjaxResult.success(header);
     }
 
@@ -292,6 +300,9 @@ public class PdaController {
      */
     @GetMapping("/docAsn/stockingList")
     public AjaxResult stockingList(@RequestBody StockingListForm stockingListForm) {
+        // ERP号转换为wms系统入库单号ASNNO
+        List<String> asnNoList = wmsDocAsnHeaderService.changeErpNoToAsnNo(stockingListForm.getAsnNoList());
+        stockingListForm.setAsnNoList(asnNoList);
         List<WmsDocAsnDetails> detailsList = wmsDocAsnHeaderService.selectStockingList(stockingListForm.getAsnNoList());
         return AjaxResult.success(detailsList);
     }
@@ -308,7 +319,8 @@ public class PdaController {
     @PostMapping("/docOrder/doAllocation")
     public AjaxResult doAllocation(@RequestParam String orderNos) {
         List<String> orderList = JSONArray.parseArray(orderNos, String.class);
-        return wmsDocOrderHeaderService.doAllocation(orderList);
+        List<String> orderNoList = wmsDocOrderHeaderService.changeErpNoToOrderNo(orderList);
+        return wmsDocOrderHeaderService.doAllocation(orderNoList);
     }
 
     /**
@@ -319,8 +331,8 @@ public class PdaController {
     @GetMapping("/docOrder/checkOutList")
     public AjaxResult checkOutList(@RequestParam String orderNos) {
         List<String> orderList = JSONArray.parseArray(orderNos, String.class);
-        // 查询出库分配列表
-        List<CheckOutVO> checkOutVOList = wmsDocOrderHeaderService.checkOutList(orderList);
+        List<String> orderNoList = wmsDocOrderHeaderService.changeErpNoToOrderNo(orderList);
+        List<CheckOutVO> checkOutVOList = wmsDocOrderHeaderService.checkOutList(orderNoList);
         return AjaxResult.success(checkOutVOList);
     }
 
@@ -353,6 +365,8 @@ public class PdaController {
      */
     @PostMapping("/docOrder/arrangeStock")
     public AjaxResult arrangeStock(@RequestBody ArrangeStockForm arrangeStockForm) {
+        String orderNo = wmsDocOrderHeaderService.changeErpNoToOrderNo(arrangeStockForm.getOrderNo());
+        arrangeStockForm.setOrderNo(orderNo);
         return wmsDocOrderHeaderService.arrangeStock(arrangeStockForm);
     }
 

+ 1 - 1
ruoyi-ui/src/views/wms/docAsn/docAsnHeader-add-or-update.vue

@@ -55,7 +55,7 @@
             </el-form-item>
           </el-col>
           <el-col :span="6">
-            <el-form-item label="关联单号" prop="asnReference1">
+            <el-form-item label="ERP单号" prop="asnReference1">
               <el-input v-model="dataFormHead.asnReference1" placeholder=""></el-input>
             </el-form-item>
           </el-col>

+ 4 - 4
ruoyi-ui/src/views/wms/docAsn/index.vue

@@ -30,10 +30,10 @@
           />
         </el-select>
       </el-form-item>
-      <el-form-item label="采购单号" prop="asnReference1">
+      <el-form-item label="ERP单号" prop="asnReference1">
         <el-input
           v-model="queryParams.asnReference1"
-          placeholder="请输入采购单号"
+          placeholder="请输入ERP单号"
           clearable
           size="small"
           @keyup.enter.native="handleQuery"
@@ -114,8 +114,8 @@
         </template>
       </el-table-column>
       <!--<el-table-column label="客户" align="center" prop="customerId" />-->
-      <el-table-column label="客户单号" align="center" prop="customerNo" />
-      <el-table-column label="采购单号" align="center" prop="asnReference1" />
+<!--      <el-table-column label="客户单号" align="center" prop="customerNo" />-->
+      <el-table-column label="ERP单号" align="center" prop="asnReference1" />
       <!--<el-table-column label="asn参考信息" align="center" prop="asnReference2" />-->
       <el-table-column label="预期到货时间" align="center" prop="expectedArriveTime" width="180">
         <template slot-scope="scope">

+ 1 - 1
ruoyi-ui/src/views/wms/docOrder/docOrderHeader-add-or-update.vue

@@ -59,7 +59,7 @@
             </el-form-item>
           </el-col>
           <el-col :span="6">
-            <el-form-item label="客户单号1" prop="soReference1">
+            <el-form-item label="ERP单号" prop="soReference1">
               <el-input v-model="dataFormHead.soReference1" placeholder=""></el-input>
             </el-form-item>
           </el-col>

+ 4 - 4
ruoyi-ui/src/views/wms/docOrder/index.vue

@@ -1,10 +1,10 @@
 <template>
   <div class="app-container">
     <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="80px">
-      <el-form-item label="客户" prop="customerId">
+      <el-form-item label="ERP单号" prop="soReference1">
         <el-input
-          v-model="queryParams.customerId"
-          placeholder="请输入客户"
+          v-model="queryParams.soReference1"
+          placeholder="请输入ERP单号"
           clearable
           size="small"
           @keyup.enter.native="handleQuery"
@@ -117,7 +117,7 @@
           <dict-tag :options="dict.type.so_type" :value="scope.row.orderType"/>
         </template>
       </el-table-column>
-      <el-table-column label="客户单号1" align="center" prop="soReference1"/>
+      <el-table-column label="ERP单号" align="center" prop="soReference1"/>
       <el-table-column label="客户单号2" align="center" prop="soReference2"/>
       <el-table-column label="客户单号3" align="center" prop="soReference3"/>
       <el-table-column label="创建时间" align="center" prop="createTime"/>

+ 1 - 0
warewms-ams/src/main/java/com/ruoyi/ams/asn/mapper/WmsDocAsnHeaderMapper.java

@@ -22,6 +22,7 @@ public interface WmsDocAsnHeaderMapper {
      * @return 入库单
      */
     WmsDocAsnHeader selectWmsDocAsnHeaderByAsnNo(String asnNo);
+    WmsDocAsnHeader selectWmsDocAsnHeaderByErpNo(String erpNo);
 
     /**
      * 查询入库单列表

+ 8 - 0
warewms-ams/src/main/java/com/ruoyi/ams/asn/service/IWmsDocAsnHeaderService.java

@@ -28,6 +28,14 @@ public interface IWmsDocAsnHeaderService {
      */
     WmsDocAsnHeader selectWmsDocAsnHeaderByAsnNo(String asnNo);
 
+    /**
+     * 查询入库单
+     *
+     * @param erpNo
+     * @return
+     */
+    WmsDocAsnHeader selectWmsDocAsnHeaderByErpNo(String erpNo);
+
     /**
      * 查询入库单列表
      *

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

@@ -105,6 +105,8 @@ public class WmsDocAsnHeaderServiceImpl implements IWmsDocAsnHeaderService {
     private IBaseLocationInfoService baseLocationInfoService;
     @Autowired
     private IWcsTaskService wcsTaskService;
+    @Autowired
+    private IWmsDocAsnHeaderService iWmsDocAsnHeaderService;
 
     /**
      * 查询入库单
@@ -117,6 +119,17 @@ public class WmsDocAsnHeaderServiceImpl implements IWmsDocAsnHeaderService {
         return wmsDocAsnHeaderMapper.selectWmsDocAsnHeaderByAsnNo(asnNo);
     }
 
+    /**
+     * 查询入库单
+     *
+     * @param erpNo
+     * @return 入库单
+     */
+    @Override
+    public WmsDocAsnHeader selectWmsDocAsnHeaderByErpNo(String erpNo) {
+        return wmsDocAsnHeaderMapper.selectWmsDocAsnHeaderByErpNo(erpNo);
+    }
+
     /**
      * 查询入库单列表
      *
@@ -656,11 +669,25 @@ public class WmsDocAsnHeaderServiceImpl implements IWmsDocAsnHeaderService {
 
     @Override
     public List<String> changeErpNoToAsnNo(List<String> erpNos) {
-        return null;
+        List<String> orderNos = new ArrayList<>();
+        WmsDocAsnHeader headerQuery = null;
+        for (String erpNo : erpNos) {
+            headerQuery = new WmsDocAsnHeader();
+            headerQuery.setAsnReference1(erpNo);
+            WmsDocAsnHeader wmsDocASnHeader = iWmsDocAsnHeaderService.selectWmsDocAsnHeaderByErpNo(erpNo);
+            if (wmsDocASnHeader != null) {
+                orderNos.add(wmsDocASnHeader.getAsnNo());
+            }
+        }
+        return orderNos;
     }
 
     @Override
     public String changeErpNoToAsnNo(String erpNo) {
+        List<String> stringList = changeErpNoToAsnNo(Arrays.asList(erpNo));
+        if (stringList.size() > 0) {
+            return stringList.get(0);
+        }
         return null;
     }
 
@@ -692,8 +719,7 @@ public class WmsDocAsnHeaderServiceImpl implements IWmsDocAsnHeaderService {
         }
         WmsDocAsnHeader wmsDocAsnHeader = new WmsDocAsnHeader();
         wmsDocAsnHeader.setAsnNo(asnNo);
-        wmsDocAsnHeader.setAsnReference1(orderNo);
-        wmsDocAsnHeader.setAsnReference2(orderName);
+        wmsDocAsnHeader.setAsnReference1(orderName);
         wmsDocAsnHeader.setCreateBy("ERP");
         wmsDocAsnHeader.setCreateTime(new Date());
         wmsDocAsnHeader.setAsnStatus("00");

+ 7 - 0
warewms-ams/src/main/java/com/ruoyi/ams/order/mapper/WmsDocOrderHeaderMapper.java

@@ -22,6 +22,13 @@ public interface WmsDocOrderHeaderMapper {
      */
     WmsDocOrderHeader selectWmsDocOrderHeaderByOrderNo(String orderNo);
 
+    /**
+     * 查询出库单头
+     * @param erpNo
+     * @return
+     */
+    WmsDocOrderHeader selectWmsDocOrderHeaderByErpNo(String erpNo);
+
     /**
      * 查询出库单头列表
      *

+ 7 - 0
warewms-ams/src/main/java/com/ruoyi/ams/order/service/IWmsDocOrderHeaderService.java

@@ -26,6 +26,13 @@ public interface IWmsDocOrderHeaderService {
      */
     WmsDocOrderHeader selectWmsDocOrderHeaderByOrderNo(String orderNo);
 
+    /**
+     * 查询出库单头(根据ERP单号)
+     * @param erpNo
+     * @return
+     */
+    WmsDocOrderHeader selectWmsDocOrderHeaderByErpNo(String erpNo);
+
     /**
      * 查询出库单头列表
      *

+ 38 - 4
warewms-ams/src/main/java/com/ruoyi/ams/order/service/impl/WmsDocOrderHeaderServiceImpl.java

@@ -44,6 +44,7 @@ import com.ruoyi.common.exception.ServiceException;
 import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.uuid.SnowflakeIdWorker;
+import org.springframework.aop.aspectj.AbstractAspectJAdvice;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.core.parameters.P;
 import org.springframework.stereotype.Service;
@@ -103,6 +104,17 @@ public class WmsDocOrderHeaderServiceImpl implements IWmsDocOrderHeaderService {
         return wmsDocOrderHeaderMapper.selectWmsDocOrderHeaderByOrderNo(orderNo);
     }
 
+    /**
+     * 查询出库单头
+     *
+     * @param erpNo
+     * @return 出库单头
+     */
+    @Override
+    public WmsDocOrderHeader selectWmsDocOrderHeaderByErpNo(String erpNo) {
+        return wmsDocOrderHeaderMapper.selectWmsDocOrderHeaderByErpNo(erpNo);
+    }
+
     /**
      * 查询出库单头列表
      *
@@ -248,9 +260,16 @@ public class WmsDocOrderHeaderServiceImpl implements IWmsDocOrderHeaderService {
 
     @Override
     public AjaxResult doAllocation(List<String> orderNoList) {
+        StringBuilder builder = new StringBuilder();
         for (String s : orderNoList) {
             // 同一个类事务会失效 通过重新注入自己解决事务失效问题
-            wmsDocOrderHeaderService.doAllocation(s);
+            AjaxResult ajaxResult = wmsDocOrderHeaderService.doAllocation(s);
+            if (!ajaxResult.isSuccess()) {
+                builder.append(s).append(":").append(ajaxResult.getMsg()).append(";");
+            }
+        }
+        if (builder.length() > 0) {
+            return AjaxResult.error(builder.toString());
         }
         return AjaxResult.success("分配成功");
     }
@@ -738,11 +757,25 @@ public class WmsDocOrderHeaderServiceImpl implements IWmsDocOrderHeaderService {
 
     @Override
     public List<String> changeErpNoToOrderNo(List<String> erpNos) {
-        return null;
+        List<String> orderNos = new ArrayList<>();
+        WmsDocOrderHeader headerQuery = null;
+        for (String erpNo : erpNos) {
+            headerQuery = new WmsDocOrderHeader();
+            headerQuery.setSoReference1(erpNo);
+            WmsDocOrderHeader wmsDocOrderHeader = wmsDocOrderHeaderService.selectWmsDocOrderHeaderByErpNo(erpNo);
+            if (wmsDocOrderHeader != null) {
+                orderNos.add(wmsDocOrderHeader.getOrderNo());
+            }
+        }
+        return orderNos;
     }
 
     @Override
     public String changeErpNoToOrderNo(String erpNo) {
+        List<String> stringList = changeErpNoToOrderNo(Arrays.asList(erpNo));
+        if (stringList.size() > 0) {
+            return stringList.get(0);
+        }
         return null;
     }
 
@@ -753,6 +786,8 @@ public class WmsDocOrderHeaderServiceImpl implements IWmsDocOrderHeaderService {
         String erpOrderName = "";
         int index = 1;
         for (ErpOrderList erpOrder : erpOrderLists) {
+            erpOrderName = erpOrder.getOrderName();
+            erpOrderNo = erpOrder.getOrderNo() + "";
             WmsDocOrderDetails details = new WmsDocOrderDetails();
             details.setOrderNo(orderNo);
             details.setOrderLineNo(BigDecimal.valueOf(index));
@@ -783,8 +818,7 @@ public class WmsDocOrderHeaderServiceImpl implements IWmsDocOrderHeaderService {
         orderHeader.setOrderStatus("00");
         orderHeader.setCustomerId(Constant.CUSTOMER_ID);
         orderHeader.setEdiSendFlag("N");
-        orderHeader.setSoReference1(erpOrderNo);
-        orderHeader.setSoReference2(erpOrderName);
+        orderHeader.setSoReference1(erpOrderName);
         orderHeader.setCreateTime(new Date());
         orderHeader.setCreateBy("ERP");
         wmsDocOrderHeaderMapper.insertWmsDocOrderHeader(orderHeader);

+ 9 - 1
warewms-ams/src/main/resources/mapper/docAsn/WmsDocAsnHeaderMapper.xml

@@ -205,7 +205,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="asnNo != null  and asnNo != ''"> and asn_no like concat('%', #{asnNo}, '%')</if>
             <if test="asnType != null  and asnType != ''"> and asn_type = #{asnType}</if>
             <if test="asnStatus != null  and asnStatus != ''"> and asn_status = #{asnStatus}</if>
-            <if test="asnReference1 != null  and asnReference1 != ''"> and asn_reference1 = #{asnReference1}</if>
+            <if test="asnReference1 != null  and asnReference1 != ''"> and asn_reference1 like concat('%', #{asnReference1}, '%')</if>
             <if test="asnReference2 != null  and asnReference2 != ''"> and asn_reference2 = #{asnReference2}</if>
             <if test="releaseStatus != null  and releaseStatus != ''"> and release_status = #{releaseStatus}</if>
             <if test="expectedArriveTime != null "> and expected_arrive_time = #{expectedArriveTime}</if>
@@ -229,6 +229,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         where a.asn_no = #{asnNo}
     </select>
 
+    <select id="selectWmsDocAsnHeaderByErpNo" parameterType="String" resultMap="WmsDocAsnHeaderResult">
+        select *
+        from wms_doc_asn_header
+        where asn_reference1= #{erpNo}
+        order by create_time desc
+        limit 1
+    </select>
+
     <insert id="insertWmsDocAsnHeader" parameterType="WmsDocAsnHeader">
         insert into wms_doc_asn_header
         <trim prefix="(" suffix=")" suffixOverrides=",">

+ 10 - 1
warewms-ams/src/main/resources/mapper/docOrder/WmsDocOrderHeaderMapper.xml

@@ -155,6 +155,7 @@
         <where>
             <if test="consigneeName != null  and consigneeName != ''"> and consignee_name like concat('%', #{consigneeName}, '%')</if>
             <if test="carrierName != null  and carrierName != ''"> and carrier_name like concat('%', #{carrierName}, '%')</if>
+            <if test="soReference1 != null  and soReference1 != ''"> and so_reference1 like concat('%', #{soReference1}, '%')</if>
         </where>
         order by create_time desc
     </select>
@@ -167,6 +168,14 @@
         where a.order_no = #{orderNo}
     </select>
 
+    <select id="selectWmsDocOrderHeaderByErpNo" parameterType="String" resultMap="WmsDocOrderHeaderResult">
+        select *
+        from wms_doc_order_header
+        where so_reference1= #{erpNo}
+        order by create_time desc
+        limit 1
+    </select>
+
     <insert id="insertWmsDocOrderHeader" parameterType="WmsDocOrderHeader">
         insert into wms_doc_order_header
         <trim prefix="(" suffix=")" suffixOverrides=",">
@@ -379,4 +388,4 @@
         and de.line_status = '20'
         group by de.order_no,w.box_no,b.location_no
     </select>
-</mapper>
+</mapper>