瀏覽代碼

2023年7月5日15:43:10

纪新园 2 年之前
父節點
當前提交
51563b9041

+ 72 - 29
ruoyi-admin/src/main/java/com/ruoyi/web/controller/plugin/BulkWareHouseController.java

@@ -11,10 +11,8 @@ import com.ruoyi.ccb.service.ForeignHttpService;
 import com.ruoyi.common.core.controller.BaseController;
 import com.ruoyi.warehouseBusiness.domain.TWarehouseBills;
 import com.ruoyi.warehouseBusiness.request.InventoryQueryRequest;
-import com.ruoyi.warehouseBusiness.request.ReceiptRegisterRequest;
 import com.ruoyi.warehouseBusiness.response.*;
 import lombok.AllArgsConstructor;
-import org.apache.poi.ss.formula.functions.T;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.MediaType;
@@ -30,7 +28,6 @@ import java.security.*;
 import java.security.spec.InvalidKeySpecException;
 import java.security.spec.PKCS8EncodedKeySpec;
 import java.text.ParseException;
-import java.text.SimpleDateFormat;
 import java.util.*;
 
 /**
@@ -48,7 +45,7 @@ public class BulkWareHouseController extends BaseController {
      * 获取仓库详细信息
      */
     @PostMapping("/inventory/queries")
-    public void queries(HttpServletRequest request, HttpServletResponse response) throws InvalidKeySpecException, SignatureException, NoSuchAlgorithmException, InvalidKeyException {
+    public void queriesV2(HttpServletRequest request, HttpServletResponse response) throws InvalidKeySpecException, SignatureException, NoSuchAlgorithmException, InvalidKeyException {
 
         String bizContentStr = (String) request.getAttribute("bizContentStr");
 
@@ -59,7 +56,7 @@ public class BulkWareHouseController extends BaseController {
         JSONArray jsonArray = jsonObject.getJSONArray("warehouseSerialNumbers");//仓库编号
 
         List<String> numbersList = new ArrayList<>();
-        for(int i=0;i<jsonArray.size();i++){
+        for (int i = 0; i < jsonArray.size(); i++) {
             String numbers = jsonArray.getString(i);
             numbersList.add(numbers);
             System.out.println(numbers);
@@ -72,7 +69,53 @@ public class BulkWareHouseController extends BaseController {
 
         List<InventoryQueryResponse> list = foreignHttpService.inventoryQueries(inventoryQueryRequest);
 
-        sendRequest(list,response);
+        sendRequest(list, response);
+
+    }
+
+    /**
+     * 获取仓库详细信息
+     */
+    @PostMapping("/inventory/queriesV2")
+    public void queries(HttpServletRequest request, HttpServletResponse response) throws InvalidKeySpecException, SignatureException, NoSuchAlgorithmException, InvalidKeyException {
+
+        String bizContentStr = (String) request.getAttribute("bizContentStr");
+
+        JSONObject jsonObject = JSONObject.parseObject(bizContentStr);
+        String ownerName = jsonObject.getString("currentOwnerName");//现存货人名称
+        String identifier = jsonObject.getString("currentOwnerSocialIdentifier");//现存货人识别号
+
+        JSONArray jsonArray = jsonObject.getJSONArray("warehouseSerialNumbers");//仓库编号
+
+        JSONArray jsonArrayBlNos = jsonObject.getJSONArray("blNos");//提单号
+
+        List<String> numbersList = new ArrayList<>();
+        for (int i = 0; i < jsonArray.size(); i++) {
+            String numbers = jsonArray.getString(i);
+            numbersList.add(numbers);
+            System.out.println(numbers);
+        }
+
+        List<String> blNosList = new ArrayList<>();
+        for (int i = 0; i < jsonArrayBlNos.size(); i++) {
+            String numbers = jsonArrayBlNos.getString(i);
+            blNosList.add(numbers);
+            System.out.println(numbers);
+        }
+
+        if (numbersList.size() > 0 && blNosList.size() > 0) {
+            numbersList = null;
+        }
+
+        InventoryQueryRequest inventoryQueryRequest = new InventoryQueryRequest();
+        inventoryQueryRequest.setCurrentOwnerName(ownerName);
+        inventoryQueryRequest.setCurrentOwnerSocialIdentifier(identifier);
+        inventoryQueryRequest.setWarehouseSerialNumbers(numbersList);
+        inventoryQueryRequest.setBlNosList(blNosList);
+
+        List<InventoryQueryResponse> list = foreignHttpService.inventoryQueriesV2(inventoryQueryRequest);
+
+        sendRequest(list, response);
 
     }
 
@@ -90,23 +133,23 @@ public class BulkWareHouseController extends BaseController {
         JSONArray jsonArray = jsonObject.getJSONArray("receipts");//编号
 
         List<ReceiptRegisterResponse> list = new ArrayList<>();
-        for(int i=0;i<jsonArray.size();i++){
+        for (int i = 0; i < jsonArray.size(); i++) {
             JSONObject object = jsonArray.getJSONObject(i);
             String numbers = object.getString("warehouseSerialNumber");
 
             ReceiptRegisterResponse registerResponse = new ReceiptRegisterResponse();
             int count = foreignHttpService.receiptRegister(ownerName, identifier, numbers);
-            if (ObjectUtil.isNull(count) || count == 0){
+            if (ObjectUtil.isNull(count) || count == 0) {
                 registerResponse.setStatus("ABNORMAL");
                 registerResponse.setComments("参数错误,检查参数");
-            }else {
+            } else {
                 registerResponse.setStatus("SUCCESS");
             }
             registerResponse.setWarehouseSerialNumber(numbers);
             list.add(registerResponse);
         }
 
-        sendRequest(list,response);
+        sendRequest(list, response);
 
     }
 
@@ -122,7 +165,7 @@ public class BulkWareHouseController extends BaseController {
         JSONArray jsonArray = jsonObject.getJSONArray("customers");//客户
 
         List<CustomerVerifyResponse> list = new ArrayList<>();
-        for(int i=0;i<jsonArray.size();i++){
+        for (int i = 0; i < jsonArray.size(); i++) {
             JSONObject object = jsonArray.getJSONObject(i);
             String name = object.getString("name");
             String identifier = object.getString("socialIdentifier");
@@ -130,17 +173,17 @@ public class BulkWareHouseController extends BaseController {
             TCorps corps = foreignHttpService.verification(name, identifier);
 
             CustomerVerifyResponse verifyResponse = new CustomerVerifyResponse();
-            if (ObjectUtil.isNull(corps)){
+            if (ObjectUtil.isNull(corps)) {
                 verifyResponse.setStatus("ABNORMAL");
                 verifyResponse.setComments("参数错误,检查参数");
-            }else {
+            } else {
                 verifyResponse.setStatus("SUCCESS");
                 verifyResponse.setSocialIdentifier(corps.getUscc());
             }
             list.add(verifyResponse);
         }
 
-        sendRequest(list,response);
+        sendRequest(list, response);
 
     }
 
@@ -161,15 +204,15 @@ public class BulkWareHouseController extends BaseController {
         String identifier = jsonObject.getString("currentOwnerSocialIdentifier");//现存货人编码
         JSONArray jsonArray = jsonObject.getJSONArray("targetOwners");//目标存货人数组
 
-        for(int i=0;i<jsonArray.size();i++){
+        for (int i = 0; i < jsonArray.size(); i++) {
             TWarehouseBills warehouseBills = new TWarehouseBills();
             ReceiptTransferResponse transferResponse = new ReceiptTransferResponse();
 
             JSONObject object = jsonArray.getJSONObject(i);//目标存货人
-            if (jsonArray.size() == 1){
+            if (jsonArray.size() == 1) {
                 //现存货人
                 TCorps corps = foreignHttpService.verification(ownerName, identifier);
-                if (ObjectUtil.isNull(corps)){
+                if (ObjectUtil.isNull(corps)) {
                     transferResponse.setStatus("ABNORMAL");
                     transferResponse.setComments("参数错误,检查参数");
                     transferResponse.setWarehouseSerialNumber(number);
@@ -178,11 +221,11 @@ public class BulkWareHouseController extends BaseController {
                 }
                 warehouseBills.setfCorpid(corps.getfId());
 
-            }else if (jsonArray.size() > 1 && i > 0){
+            } else if (jsonArray.size() > 1 && i > 0) {
                 //现存货人
                 TCorps corps = foreignHttpService.verification(jsonArray.getJSONObject(i - 1).getString("name"),
                         jsonArray.getJSONObject(i - 1).getString("socialIdentifier"));
-                if (ObjectUtil.isNull(corps)){
+                if (ObjectUtil.isNull(corps)) {
                     transferResponse.setStatus("ABNORMAL");
                     transferResponse.setComments("参数错误,检查参数");
                     transferResponse.setWarehouseSerialNumber(number);
@@ -197,7 +240,7 @@ public class BulkWareHouseController extends BaseController {
 
             TCorps toCorps = foreignHttpService.verification(name, socialIdentifier);
 
-            if (ObjectUtil.isNull(toCorps)){
+            if (ObjectUtil.isNull(toCorps)) {
                 transferResponse.setStatus("ABNORMAL");
                 transferResponse.setComments("参数错误,检查参数");
                 transferResponse.setWarehouseSerialNumber(number);
@@ -209,10 +252,10 @@ public class BulkWareHouseController extends BaseController {
 
             int count = foreignHttpService.receiptTransfer(warehouseBills);
 
-            if (count == 0){
+            if (count == 0) {
                 transferResponse.setStatus("ABNORMAL");
                 transferResponse.setComments("参数错误,检查参数");
-            }else {
+            } else {
                 transferResponse.setStatus("SUCCESS");
             }
             transferResponse.setCompletionTimestamp(new Date().getTime());
@@ -221,7 +264,7 @@ public class BulkWareHouseController extends BaseController {
             list.add(transferResponse);
         }
 
-        sendRequest(list,response);
+        sendRequest(list, response);
 
     }
 
@@ -240,23 +283,23 @@ public class BulkWareHouseController extends BaseController {
         JSONArray jsonArray = jsonObject.getJSONArray("receipts");//编号
 
         List<ReceiptCancelResponse> list = new ArrayList<>();
-        for(int i=0;i<jsonArray.size();i++){
+        for (int i = 0; i < jsonArray.size(); i++) {
             JSONObject object = jsonArray.getJSONObject(i);
             String numbers = object.getString("warehouseSerialNumber");
 
             ReceiptCancelResponse cancelResponse = new ReceiptCancelResponse();
             int count = foreignHttpService.receiptCancel(ownerName, identifier, numbers);
-            if (count == 0){
+            if (count == 0) {
                 cancelResponse.setStatus("ABNORMAL");
                 cancelResponse.setComments("参数错误,检查参数");
-            }else {
+            } else {
                 cancelResponse.setStatus("SUCCESS");
             }
             cancelResponse.setWarehouseSerialNumber(numbers);
             list.add(cancelResponse);
         }
 
-        sendRequest(list,response);
+        sendRequest(list, response);
 
     }
 
@@ -294,7 +337,7 @@ public class BulkWareHouseController extends BaseController {
     }
 
     /**
-     *签名头: 无先后顺序
+     * 签名头: 无先后顺序
      * 请求随机串nonce_str
      * 时间戳timestamp  精度 毫秒
      * Base64编码得到签名值  signature
@@ -315,7 +358,7 @@ public class BulkWareHouseController extends BaseController {
      * 签名串一共有三行,每一行为一个参数。
      * 行尾以 \n(换行符,ASCII编码值为0x0A)结束,包括最后一行。
      * 若应答报文主体为空(如HTTP状态码为204 No Content),最后一行仅为一个\n换行符。
-     *
+     * <p>
      * 应答时间戳\n
      * 应答随机串\n
      * 应答报文主体\n

+ 4 - 0
ruoyi-plugin/src/main/java/com/ruoyi/ccb/service/ForeignHttpService.java

@@ -99,6 +99,10 @@ public interface ForeignHttpService {
      * 获取仓库详细信息
      */
     List<InventoryQueryResponse> inventoryQueries(InventoryQueryRequest inventoryQueryRequest);
+/**
+     * 获取仓库详细信息
+     */
+    List<InventoryQueryResponse> inventoryQueriesV2(InventoryQueryRequest inventoryQueryRequest);
 
     /**
      * 仓单注册指令

+ 7 - 0
ruoyi-plugin/src/main/java/com/ruoyi/ccb/service/impl/ForeignHttpServiceImpl.java

@@ -385,6 +385,13 @@ public class ForeignHttpServiceImpl implements ForeignHttpService{
     public List<InventoryQueryResponse> inventoryQueries(InventoryQueryRequest inventoryQueryRequest) {
         return itWarehouseService.inventoryQueries(inventoryQueryRequest);
     }
+/**
+     * 获取仓库详细信息
+     */
+    @Override
+    public List<InventoryQueryResponse> inventoryQueriesV2(InventoryQueryRequest inventoryQueryRequest) {
+        return itWarehouseService.inventoryQueriesV2(inventoryQueryRequest);
+    }
 
     /**
      * 仓单注册指令

+ 4 - 0
ruoyi-warehouse/src/main/java/com/ruoyi/basicData/mapper/TWarehouseMapper.java

@@ -285,6 +285,10 @@ public interface TWarehouseMapper {
      *  获取仓库详细信息
      */
     List<InventoryQueryResponse> inventoryQueries(@Param("ownerName")String ownerName, @Param("identifier") String identifier, @Param("numbersList") List<String > numbersList);
+ /**
+     *  获取仓库详细信息
+     */
+    List<InventoryQueryResponse> inventoryQueriesV2(@Param("ownerName")String ownerName, @Param("identifier") String identifier, @Param("numbersList") List<String > numbersList);
 
     /**
      * 仓单注册指令

+ 4 - 0
ruoyi-warehouse/src/main/java/com/ruoyi/basicData/service/ITWarehouseService.java

@@ -286,6 +286,10 @@ public interface ITWarehouseService {
      *  获取仓库详细信息
      */
     List<InventoryQueryResponse> inventoryQueries(InventoryQueryRequest inventoryQueryRequest);
+/**
+     *  获取仓库详细信息
+     */
+    List<InventoryQueryResponse> inventoryQueriesV2(InventoryQueryRequest inventoryQueryRequest);
 
     /**
      * 仓单注册指令

+ 9 - 0
ruoyi-warehouse/src/main/java/com/ruoyi/basicData/service/impl/TWarehouseServiceImpl.java

@@ -662,6 +662,15 @@ public class TWarehouseServiceImpl implements ITWarehouseService {
                 inventoryQueryRequest.getCurrentOwnerSocialIdentifier(),
                 inventoryQueryRequest.getWarehouseSerialNumbers());
     }
+/**
+     * 获取仓库详细信息
+     */
+    @Override
+    public List<InventoryQueryResponse> inventoryQueriesV2(InventoryQueryRequest inventoryQueryRequest) {
+        return tWarehouseMapper.inventoryQueriesV2(inventoryQueryRequest.getCurrentOwnerName(),
+                inventoryQueryRequest.getCurrentOwnerSocialIdentifier(),
+                inventoryQueryRequest.getWarehouseSerialNumbers());
+    }
 
     /**
      * 仓单注册指令

+ 14 - 1
ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/request/InventoryQueryRequest.java

@@ -21,10 +21,23 @@ public class InventoryQueryRequest implements Serializable {
     private String currentOwnerSocialIdentifier;
 
     /**
-     * 提单号 特殊必填 String[1,30]  与提单号二选一作为查询标识,与仓库商议
+     * 仓库编号
      */
     private List<String> warehouseSerialNumbers;
 
+    /**
+     * 提单号
+     */
+    private List<String> blNosList;
+
+    public List<String> getBlNosList() {
+        return blNosList;
+    }
+
+    public void setBlNosList(List<String> blNosList) {
+        this.blNosList = blNosList;
+    }
+
     public String getNotify_url() {
         return notify_url;
     }

+ 0 - 5
ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/response/InventoryQueryResponse.java

@@ -16,11 +16,6 @@ public class InventoryQueryResponse implements Serializable {
     private String warehouseSerialNumber;
 
     /**
-     * 仓库标识符
-     */
-    private String blNo;
-
-    /**
      * 原始进仓日期 yyyy-MM-dd
      */
     private String originalWarehousingDate;

+ 120 - 31
ruoyi-warehouse/src/main/resources/mapper/basicData/TWarehouseMapper.xml

@@ -737,35 +737,118 @@
 
     <select id="inventoryQueries" resultType="com.ruoyi.warehouseBusiness.response.InventoryQueryResponse">
         SELECT
-            TWH.f_no AS warehouseSerialNumber,
-            TW.f_mblno AS blNo,
-            TW.f_originalbilldate AS originalWarehousingDate,
-            TW.f_originalbilldate AS rentBeginDate,
-            TC.f_name AS sourceOwnerName,
-            TC.uscc AS sourceOwnerSocialIdentifier,
-            TC.f_name AS currentOwnerName,
-            TC.uscc AS currentOwnerSocialIdentifier,
-            TWH.f_addr AS warehouseAddress,
-            TG.f_name AS cargoName,
-            TW.f_marks AS cargoModel,
-            TW.f_marks AS cargoSpec,
-            IFNULL( ROUND( SUM( TW.f_netweightblc ) / 1000, 2 ), 0 ) AS netWeight,
-            IFNULL( ROUND( SUM( TW.f_grossweightblc ) / 1000, 2 ), 0 ) AS grossWeight,
-            SUM( TW.f_qtyblc ) AS cargoQuantity
---             '' AS storageRate,
---             TW.f_marks AS mark,
---             SUM( TW.f_qtyblc ) AS number,
---             (CASE
---             TWBI.f_business_type
---             WHEN '3' THEN
---             TWBI.f_marks ELSE ''
---             END) AS manufacturer,
---             '' AS trademark,
---             '' AS grade,
---             TG.f_packagespecs AS packing,
---             '' AS country,
---             '' AS process,
---             TWBI.f_warehouse_information AS location
+        TWBI.f_business_type,
+        TW.f_mblno AS warehouseSerialNumber,
+        TW.f_originalbilldate AS originalWarehousingDate,
+        TG.f_name AS cargoName,
+        TW.f_marks AS cargoModel,
+        (
+        CASE
+        TWBI.f_business_type
+        WHEN '2' THEN
+        TWBI.f_marks
+        ELSE '' END
+        ) AS cargoSpec,
+        SUM( TW.f_qtyblc ) AS cargoQuantity,
+        IFNULL( ROUND( SUM( TW.f_netweightblc ) / 1000, 2 ), 0 ) AS netWeight,
+        IFNULL( ROUND( SUM( TW.f_grossweightblc ) / 1000, 2 ), 0 ) AS grossWeight,
+        TWH.f_addr AS warehouseAddress,
+        TC.f_name AS sourceOwnerName,
+        TC.uscc AS sourceOwnerSocialIdentifier,
+        TC.f_name AS currentOwnerName,
+        TC.uscc AS currentOwnerSocialIdentifier,
+        TW.f_originalbilldate AS rentBeginDate,
+        '' AS storageRate,
+        TW.f_marks AS mark,
+        SUM( TW.f_qtyblc ) AS number,
+        (CASE
+        TWBI.f_business_type
+        WHEN '3' THEN
+        TWBI.f_marks ELSE ''
+        END) AS manufacturer,
+        '' AS trademark,
+        '' AS grade,
+        TG.f_packagespecs AS packing,
+        '' AS country,
+        '' AS process,
+        TWBI.f_warehouse_information AS location
+        FROM t_whgenleg TW
+        LEFT JOIN t_goods TG ON TG.f_id = TW.f_goodsid
+        LEFT JOIN t_warehouse TWH ON TW.f_warehouseid = TWH.f_id
+        LEFT JOIN t_corps TC ON TC.f_id = TW.f_corpid
+        LEFT JOIN (
+        SELECT DISTINCT
+        TWB.f_ifpledge,
+        TWB.f_mblno,
+        bi.f_business_type,
+        bi.f_marks,
+        bi.f_warehouse_information,
+        bi.f_warehouselocid
+        FROM
+        t_warehousebills TWB
+        LEFT JOIN t_warehousebillsitems bi ON bi.f_pid = TWB.f_id
+        WHERE
+        TWB.del_flag = '0'
+        <if test="numbersList != null and numbersList != ''">
+            and TWB.f_mblno IN
+            <foreach item="number" collection="numbersList" open="(" separator="," close=")">
+                #{number}
+            </foreach>
+        </if>
+        ) TWBI ON TWBI.f_mblno = TW.f_mblno
+        AND TWBI.f_warehouselocid = TW.f_warehouseid
+        <where>
+            TW.del_flag = '0'
+            and TW.f_netweightblc != 0
+            AND (TWBI.f_ifpledge != 0 or TWBI.f_ifpledge IS NULL)
+            <if test="ownerName != null and ownerName != ''">
+                and TC.f_name = #{ownerName}
+            </if>
+            <if test="identifier != null and identifier != ''">
+                and TC.uscc = #{identifier}
+            </if>
+            <if test="numbersList != null and numbersList != ''">
+                and TW.f_mblno in
+                <foreach item="number" collection="numbersList" open="(" separator="," close=")">
+                    #{number}
+                </foreach>
+            </if>
+        </where>
+        GROUP BY
+        TW.f_mblno
+    </select>
+
+    <select id="inventoryQueriesV2" resultType="com.ruoyi.warehouseBusiness.response.InventoryQueryResponse">
+        SELECT
+        TWH.f_no AS warehouseSerialNumber,
+        TW.f_mblno AS blNo,
+        TW.f_originalbilldate AS originalWarehousingDate,
+        TW.f_originalbilldate AS rentBeginDate,
+        TC.f_name AS sourceOwnerName,
+        TC.uscc AS sourceOwnerSocialIdentifier,
+        TC.f_name AS currentOwnerName,
+        TC.uscc AS currentOwnerSocialIdentifier,
+        TWH.f_addr AS warehouseAddress,
+        TG.f_name AS cargoName,
+        TW.f_marks AS cargoModel,
+        TW.f_marks AS cargoSpec,
+        IFNULL( ROUND( SUM( TW.f_netweightblc ) / 1000, 2 ), 0 ) AS netWeight,
+        IFNULL( ROUND( SUM( TW.f_grossweightblc ) / 1000, 2 ), 0 ) AS grossWeight,
+        SUM( TW.f_qtyblc ) AS cargoQuantity
+        --             '' AS storageRate,
+        --             TW.f_marks AS mark,
+        --             SUM( TW.f_qtyblc ) AS number,
+        --             (CASE
+        --             TWBI.f_business_type
+        --             WHEN '3' THEN
+        --             TWBI.f_marks ELSE ''
+        --             END) AS manufacturer,
+        --             '' AS trademark,
+        --             '' AS grade,
+        --             TG.f_packagespecs AS packing,
+        --             '' AS country,
+        --             '' AS process,
+        --             TWBI.f_warehouse_information AS location
         FROM t_whgenleg TW
         LEFT JOIN t_goods TG ON TG.f_id = TW.f_goodsid
         LEFT JOIN t_warehouse TWH ON TW.f_warehouseid = TWH.f_id
@@ -794,7 +877,7 @@
         <where>
             TW.del_flag = '0'
             and TW.f_netweightblc != 0
-           /* AND (TWBI.f_ifpledge != 0 or TWBI.f_ifpledge IS NULL)*/
+            /* AND (TWBI.f_ifpledge != 0 or TWBI.f_ifpledge IS NULL)*/
             <if test="ownerName != null and ownerName != ''">
                 and TC.f_name = #{ownerName}
             </if>
@@ -807,9 +890,15 @@
                     #{number}
                 </foreach>
             </if>
+            <if test="blNosList != null and blNosList != ''">
+                and TW.f_mblno in
+                <foreach item="number" collection="blNosList" open="(" separator="," close=")">
+                    #{number}
+                </foreach>
+            </if>
         </where>
         GROUP BY
-        TW.f_originalbillno
+        TW.f_mblno
     </select>
 
     <update id="receiptRegister">