Pārlūkot izejas kodu

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

lazhaoqian 3 gadi atpakaļ
vecāks
revīzija
6dda7aaa0c

+ 8 - 1
ruoyi-admin/src/main/java/com/ruoyi/web/controller/warehouse/reportManagement/TWhgenlegController.java

@@ -72,13 +72,20 @@ public class TWhgenlegController extends BaseController {
      */
     @PreAuthorize("@ss.hasPermi('warehouseBusiness:whgenleg:superviseExport')")
     @Log(title = "分类监管数据导出",businessType = BusinessType.EXPORT)
-    @DataScope(deptAlias = "d",userAlias = "u")
     @GetMapping("/superviseExport")
     public AjaxResult superviseExport(TWhgenleg tWhgenleg) {
         return tWhgenlegService.superviseExport(tWhgenleg);
     }
 
     /**
+     * 导出分类监管仓库数据
+     */
+    @GetMapping("/warehouseSupervise")
+    public AjaxResult warehouseSupervise() {
+        return tWhgenlegService.warehouseSupervise();
+    }
+
+    /**
      * 获取库存总账详细信息
      */
     @PreAuthorize("@ss.hasPermi('warehouseBusiness:whgenleg:query')")

+ 0 - 10
ruoyi-admin/src/main/java/com/ruoyi/web/controller/warehouse/warehouseBusiness/AppletsController.java

@@ -231,14 +231,4 @@ public class AppletsController extends BaseController {
         return getDataTable(list);
     }
 
-    /**
-     * 查询库存总账列表
-     */
-    @GetMapping("/tWhgenlegList")
-    public TableDataInfo warehouselist(TWhgenleg tWhgenleg) {
-        startPage();
-        List<Map<String, Object>> list = tWhgenlegService.selectWhgenlegList(tWhgenleg);
-        return getDataTable(list);
-    }
-
 }

+ 12 - 0
ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/TWarehouse.java

@@ -92,6 +92,10 @@ public class TWarehouse extends BaseEntity
     @Excel(name = "仓库/库区/库位")
     private String fWarehouseInformation;
 
+    /** 是否监管库 */
+    @Excel(name = "是否监管库")
+    private Integer supervise;
+
     /**
      * 子部门
      */
@@ -270,6 +274,14 @@ public class TWarehouse extends BaseEntity
         this.children = children;
     }
 
+    public Integer getSupervise() {
+        return supervise;
+    }
+
+    public void setSupervise(Integer supervise) {
+        this.supervise = supervise;
+    }
+
     @Override
     public String toString() {
         return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)

+ 1 - 1
ruoyi-shipping/src/main/java/com/ruoyi/shipping/domain/ShipperDataVo.java

@@ -109,5 +109,5 @@ public class ShipperDataVo {
     /** 拼箱类型(0: 整箱,1:拼箱) Y */
     private String lclType;
     /** 箱子列表 */
-    private List<ShipperContList> contList;
+    private List<ShipperContList> contlist;
 }

+ 3 - 0
ruoyi-warehouse/src/main/java/com/ruoyi/reportManagement/mapper/TWhgenlegMapper.java

@@ -238,4 +238,7 @@ public interface TWhgenlegMapper {
      */
     public List<Map<String, Object>> biWarehouseTeuInfo(@Param("external") String external,
                                                      @Param("customerId") Long customerId);
+
+    public List<Map<String, Object>> warehouseSupervise(@Param("parent") Integer parent);
+
 }

+ 6 - 2
ruoyi-warehouse/src/main/java/com/ruoyi/reportManagement/service/ITWhgenlegService.java

@@ -28,6 +28,12 @@ public interface ITWhgenlegService {
     AjaxResult superviseExport(TWhgenleg tWhgenleg);
 
     /**
+     * 分类监管仓库导出
+     * @return 状态以及数据
+     */
+    AjaxResult warehouseSupervise();
+
+    /**
      * 查询库存总账
      *
      * @param fId 库存总账ID
@@ -128,8 +134,6 @@ public interface ITWhgenlegService {
      */
     List<Map<String, Object>> selectDateFQtyblcListList();
 
-    List<Map<String, Object>> selectWhgenlegList(TWhgenleg tWhgenleg);
-
     public List<Whgenleg> whgenlegExport(TWhgenleg tWhgenleg) throws Exception;
 
     List<Map<String, Object>> selectdetailedList(TWarehousebill tWarehousebill);

+ 209 - 84
ruoyi-warehouse/src/main/java/com/ruoyi/reportManagement/service/impl/TWhgenlegServiceImpl.java

@@ -1,6 +1,5 @@
 package com.ruoyi.reportManagement.service.impl;
 
-
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.github.pagehelper.PageHelper;
 import com.ruoyi.basicData.domain.TCustomerContact;
@@ -23,6 +22,8 @@ import com.ruoyi.reportManagement.dto.TWarehousebill;
 import com.ruoyi.reportManagement.excel.Whgenleg;
 import com.ruoyi.reportManagement.mapper.TWhgenlegMapper;
 import com.ruoyi.reportManagement.service.ITWhgenlegService;
+import com.ruoyi.system.domain.SysConfig;
+import com.ruoyi.system.mapper.SysConfigMapper;
 import com.ruoyi.warehouseBusiness.domain.TWarehouseBills;
 import com.ruoyi.warehouseBusiness.domain.enums.WarehouseTypeEnum;
 import com.ruoyi.warehouseBusiness.mapper.TWarehouseBillsMapper;
@@ -45,6 +46,7 @@ import java.util.stream.Collectors;
  */
 @Service
 public class TWhgenlegServiceImpl implements ITWhgenlegService {
+
     @Autowired
     private TWhgenlegMapper tWhgenlegMapper;
 
@@ -60,11 +62,29 @@ public class TWhgenlegServiceImpl implements ITWhgenlegService {
     @Autowired
     private TWarehousebillsitemsMapper tWarehousebillsitemsMapper;
 
+    @Autowired
+    private SysConfigMapper sysConfigMapper;
+
     @Override
     public AjaxResult superviseExport(TWhgenleg tWhgenleg) {
-        List<Map<String,Object>> list = tWhgenlegMapper.selectWhgenlegList(tWhgenleg);
+        SysConfig fileGerater = sysConfigMapper.checkConfigKeyUnique("FILE_GERATER");
+        if (StringUtils.isNull(fileGerater)) {
+            return AjaxResult.error("系统参数异常,未找到“FILE_GERATER”参数");
+        }
+
+        SysConfig tradeCode = sysConfigMapper.checkConfigKeyUnique("TRADE_CODE");
+        if (StringUtils.isNull(tradeCode)) {
+            return AjaxResult.error("系统参数异常,未找到“TRADE_CODE”参数");
+        }
+
+        SysConfig tradeName = sysConfigMapper.checkConfigKeyUnique("TRADE_NAME");
+        if (StringUtils.isNull(tradeName)) {
+            return AjaxResult.error("系统参数异常,未找到“TRADE_NAME”参数");
+        }
+
+        List<Map<String, Object>> list = tWhgenlegMapper.selectWhgenlegList(tWhgenleg);
         Date nowDate = new Date();
-        String fileName = "DAOHE_STOCKAPPLY_" + new SimpleDateFormat("yyyyMMdd").format(nowDate) + ".FLJGRX";
+        String fileName = "STOCKAPPLY_" + new SimpleDateFormat("yyyyMMdd").format(nowDate) + ".FLJGRX";
         // 应用号
         String APP_CODE = "SAS";
         // 环节号
@@ -76,7 +96,7 @@ public class TWhgenlegServiceImpl implements ITWhgenlegService {
         // 生成时间
         String FILE_DATE_TIME = new SimpleDateFormat("yyyy-MM-dd").format(nowDate);
         // 生成人
-        String FILE_GERATER = "青岛道合供应链";
+        String FILE_GERATER = fileGerater.getConfigValue();
         // 顺序
         String FILE_ORDER = "1";
         // 文件名
@@ -86,9 +106,9 @@ public class TWhgenlegServiceImpl implements ITWhgenlegService {
         // 类型
         String XML_TYPE = "W3C";
         // 经营单位代码
-        String TRADE_CODE = "3702661504";
+        String TRADE_CODE = tradeCode.getConfigValue();
         // 经营单位名称
-        String TRADE_NAME = "青岛道合供应链";
+        String TRADE_NAME = tradeName.getConfigValue();
         // 报送日期
         String APPLY_DATE = new SimpleDateFormat("yyyyMMdd").format(nowDate);
         File temp = null;
@@ -97,85 +117,88 @@ public class TWhgenlegServiceImpl implements ITWhgenlegService {
             BufferedWriter bw = new BufferedWriter(new FileWriter(temp)); // 给临时文件写入内容
             // 写入头部
             bw.write(
-                    "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n" +
-                            "<XMLObject>\n" +
-                            "  <APP_CODE>"+ APP_CODE +"</APP_CODE>\n" +
-                            "  <APP_STEP_ID>"+ APP_STEP_ID +"</APP_STEP_ID>\n" +
-                            "  <CLASS_NAME>"+ CLASS_NAME +"</CLASS_NAME>\n" +
-                            "  <CLASS_VER>"+ CLASS_VER +"</CLASS_VER>\n" +
-                            "  <FILE_DATE_TIME>"+ FILE_DATE_TIME +"</FILE_DATE_TIME>\n" +
-                            "  <FILE_GERATER>"+ FILE_GERATER +"</FILE_GERATER>\n" +
-                            "  <FILE_ORDER>"+ FILE_ORDER +"</FILE_ORDER>\n" +
-                            "  <FILE_ORIGINAL_NAME>"+ FILE_ORIGINAL_NAME +"</FILE_ORIGINAL_NAME>\n" +
-                            "  <FILE_SIZE>"+ FILE_SIZE +"</FILE_SIZE>\n" +
-                            "  <XML_TYPE>"+ XML_TYPE +"</XML_TYPE>\n" +
-                            "  <SDEPORT_DATA>\n" +
-                            "    <StockRecordMessage>"
-            );bw.newLine();
-            for (Map<String,Object> map : list) {
+                    "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n"
+                            + "<XMLObject>\n"
+                            + "  <APP_CODE>" + APP_CODE + "</APP_CODE>\n"
+                            + "  <APP_STEP_ID>" + APP_STEP_ID + "</APP_STEP_ID>\n"
+                            + "  <CLASS_NAME>" + CLASS_NAME + "</CLASS_NAME>\n"
+                            + "  <CLASS_VER>" + CLASS_VER + "</CLASS_VER>\n"
+                            + "  <FILE_DATE_TIME>" + FILE_DATE_TIME + "</FILE_DATE_TIME>\n"
+                            + "  <FILE_GERATER>" + FILE_GERATER + "</FILE_GERATER>\n"
+                            + "  <FILE_ORDER>" + FILE_ORDER + "</FILE_ORDER>\n"
+                            + "  <FILE_ORIGINAL_NAME>" + FILE_ORIGINAL_NAME + "</FILE_ORIGINAL_NAME>\n"
+                            + "  <FILE_SIZE>" + FILE_SIZE + "</FILE_SIZE>\n"
+                            + "  <XML_TYPE>" + XML_TYPE + "</XML_TYPE>\n"
+                            + "  <SDEPORT_DATA>\n"
+                            + "    <StockRecordMessage>"
+            );
+            bw.newLine();
+
+            for (Map<String, Object> map : list) {
                 String goodsfSpecs;
                 if (StringUtils.isNull(map.get("goodsfSpecs"))) {
-                    goodsfSpecs = "        <GoodsModelDesc></GoodsModelDesc>\n" ;
+                    goodsfSpecs = "        <GoodsModelDesc></GoodsModelDesc>\n";
                 } else {
-                    goodsfSpecs = "        <GoodsModelDesc>"+ map.get("goodsfSpecs") +"</GoodsModelDesc>\n" ;
+                    goodsfSpecs = "        <GoodsModelDesc>" + map.get("goodsfSpecs") + "</GoodsModelDesc>\n";
                 }
+
                 if ("保税".equals(map.get("fGoodsType"))) {
                     String strEmsSeqNo;
                     if (StringUtils.isNull(map.get("fEmsSeqNo"))) {
-                        strEmsSeqNo = "        <EmsSeqNo></EmsSeqNo>\n" ;
+                        strEmsSeqNo = "        <EmsSeqNo></EmsSeqNo>\n";
                     } else {
-                        strEmsSeqNo = "        <EmsSeqNo>"+ map.get("fEmsSeqNo") +"</EmsSeqNo>\n" ;
+                        strEmsSeqNo = "        <EmsSeqNo>" + map.get("fEmsSeqNo") + "</EmsSeqNo>\n";
                     }
-                    String str = "      <StockInfo>\n" +
-                            "        <EmsNo>"+ map.get("fEmsNo") +"</EmsNo>\n" +
-                            strEmsSeqNo +
-                            "        <WmsMtsNo>"+ map.get("fEmsNo") + "-" + map.get("fId") + "-" + map.get("fWarehouseNo") +"</WmsMtsNo>\n" +
-                            "        <GoodsMtsNo>"+ map.get("fMblno") +"</GoodsMtsNo>\n" +
-                            "        <CodeTs>"+ map.get("fCodeTs") +"</CodeTs>\n" +
-                            "        <GoodsName>"+ map.get("fGoodsids") +"</GoodsName>\n" +
-                            goodsfSpecs +
-                            "        <WmsDclUnit>"+ map.get("fWmsDclUnit") +"</WmsDclUnit>\n" +
-                            "        <WmsDclQty>"+ map.get("fNetweightD") +"</WmsDclQty>\n" +
-                            "        <WmsLawUnit>"+ map.get("fWmsLawUnit") +"</WmsLawUnit>\n" +
-                            "        <WmsLawQty>"+ map.get("fNetweightD") +"</WmsLawQty>\n" +
-                            "        <PlaceIds>"+ map.get("fWLID") +"</PlaceIds>\n" +
-                            "        <LocationIds>"+ map.get("fWarehouseNo") +"</LocationIds>\n" +
-                            "        <StockStatus>"+ 1 +"</StockStatus>\n" +
-                            "        <GoodsType>"+ 1 +"</GoodsType>\n" +
-                            "      </StockInfo>";
+
+                    String str = "      <StockInfo>\n"
+                            + "        <EmsNo>" + map.get("fEmsNo") + "</EmsNo>\n" + strEmsSeqNo
+                            + "        <WmsMtsNo>" + map.get("fEmsNo") + "-" + map.get("fId") + "-" + map.get("fWarehouseNo") + "</WmsMtsNo>\n"
+                            + "        <GoodsMtsNo>" + map.get("fMblno") + "</GoodsMtsNo>\n"
+                            + "        <CodeTs>" + map.get("fCodeTs") + "</CodeTs>\n"
+                            + "        <GoodsName>" + map.get("fGoodsids") + "</GoodsName>\n" + goodsfSpecs
+                            + "        <WmsDclUnit>" + map.get("fWmsDclUnit") + "</WmsDclUnit>\n"
+                            + "        <WmsDclQty>" + map.get("fNetweightblc") + "</WmsDclQty>\n"
+                            + "        <WmsLawUnit>" + map.get("fWmsLawUnit") + "</WmsLawUnit>\n"
+                            + "        <WmsLawQty>" + map.get("fNetweightblc") + "</WmsLawQty>\n"
+                            + "        <PlaceIds>" + map.get("fWLID") + "</PlaceIds>\n"
+                            + "        <LocationIds>" + map.get("fWarehouseNo") + "</LocationIds>\n"
+                            + "        <StockStatus>" + 1 + "</StockStatus>\n"
+                            + "        <GoodsType>" + 1 + "</GoodsType>\n"
+                            + "      </StockInfo>";
                     bw.write(str);
                     bw.newLine();
                 } else {
-                    bw.write("      <StockInfo>\n" +
-                            "        <EmsNo></EmsNo>\n" +
-                            "        <EmsSeqNo></EmsSeqNo>\n" +
-                            "        <WmsMtsNo>"+ map.get("fEmsNo") + "-" + map.get("fId") + "-" + map.get("fWarehouseNo") +"</WmsMtsNo>\n" +
-                            "        <GoodsMtsNo>"+ map.get("fMblno") +"</GoodsMtsNo>\n" +
-                            "        <CodeTs>"+ map.get("fCodeTs") +"</CodeTs>\n" +
-                            "        <GoodsName>"+ map.get("fGoodsids") +"</GoodsName>\n" +
-                            goodsfSpecs +
-                            "        <WmsDclUnit>"+ map.get("fWmsDclUnit") +"</WmsDclUnit>\n" +
-                            "        <WmsDclQty>"+ map.get("fNetweightD") +"</WmsDclQty>\n" +
-                            "        <WmsLawUnit>"+ map.get("fWmsLawUnit") +"</WmsLawUnit>\n" +
-                            "        <WmsLawQty>"+ map.get("fNetweightD") +"</WmsLawQty>\n" +
-                            "        <PlaceIds>"+ map.get("fWLID") +"</PlaceIds>\n" +
-                            "        <LocationIds>"+ map.get("fWarehouseNo") +"</LocationIds>\n" +
-                            "        <StockStatus>"+ 1 +"</StockStatus>\n" +
-                            "        <GoodsType>"+ 0 +"</GoodsType>\n" +
-                            "      </StockInfo>");
+                    bw.write("      <StockInfo>\n"
+                            + "        <EmsNo></EmsNo>\n"
+                            + "        <EmsSeqNo></EmsSeqNo>\n"
+                            + "        <WmsMtsNo>" + map.get("fEmsNo") + "-" + map.get("fId") + "-" + map.get("fWarehouseNo") + "</WmsMtsNo>\n"
+                            + "        <GoodsMtsNo>" + map.get("fMblno") + "</GoodsMtsNo>\n"
+                            + "        <CodeTs>" + map.get("fCodeTs") + "</CodeTs>\n"
+                            + "        <GoodsName>" + map.get("fGoodsids") + "</GoodsName>\n" + goodsfSpecs
+                            + "        <WmsDclUnit>" + map.get("fWmsDclUnit") + "</WmsDclUnit>\n"
+                            + "        <WmsDclQty>" + map.get("fNetweightblc") + "</WmsDclQty>\n"
+                            + "        <WmsLawUnit>" + map.get("fWmsLawUnit") + "</WmsLawUnit>\n"
+                            + "        <WmsLawQty>" + map.get("fNetweightblc") + "</WmsLawQty>\n"
+                            + "        <PlaceIds>" + map.get("fWLID") + "</PlaceIds>\n"
+                            + "        <LocationIds>" + map.get("fWarehouseNo") + "</LocationIds>\n"
+                            + "        <StockStatus>" + 1 + "</StockStatus>\n"
+                            + "        <GoodsType>" + 0 + "</GoodsType>\n"
+                            + "      </StockInfo>");
                     bw.newLine();
                 }
             }
             bw.write(
-                    "       <TradeCode>"+ TRADE_CODE +"</TradeCode>\n" +
-                            "       <TradeName>"+ TRADE_NAME +"</TradeName>\n" +
-                            "       <ApplyDate>"+ APPLY_DATE +"</ApplyDate>"
-            );bw.newLine();
+                    "       <TradeCode>" + TRADE_CODE + "</TradeCode>\n"
+                            + "       <TradeName>" + TRADE_NAME + "</TradeName>\n"
+                            + "       <ApplyDate>" + APPLY_DATE + "</ApplyDate>"
+            );
+            bw.newLine();
             bw.write(
-                    "   </StockRecordMessage>\n" +
-                            "  </SDEPORT_DATA>\n" +
-                            "</XMLObject>"
-            );bw.newLine();
+                    "   </StockRecordMessage>\n"
+                            + "  </SDEPORT_DATA>\n"
+                            + "</XMLObject>"
+            );
+            bw.newLine();
             bw.close(); // 写入完毕
             BufferedReader reader = new BufferedReader(new FileReader(temp));// 读取临时文件数据
             FileWriter fw = new FileWriter(getAbsoluteFile(fileName)); // 创建要写入的文件
@@ -183,9 +206,10 @@ public class TWhgenlegServiceImpl implements ITWhgenlegService {
             String lineText;
             while ((lineText = reader.readLine()) != null) { // 按行读取零食文件数据
                 // 替换其中参数
-                String newContent = lineText.replace("<FILE_SIZE>-1</FILE_SIZE>","<FILE_SIZE>"+ temp.length() +"</FILE_SIZE>");
+                String newContent = lineText.replace("<FILE_SIZE>-1</FILE_SIZE>", "<FILE_SIZE>" + temp.length() + "</FILE_SIZE>");
                 // 写入指定文件并自动换行
-                bfw.write(newContent);bfw.newLine();
+                bfw.write(newContent);
+                bfw.newLine();
             }
             // 刷新缓冲区
             bfw.flush();
@@ -203,6 +227,121 @@ public class TWhgenlegServiceImpl implements ITWhgenlegService {
         }
     }
 
+    @Override
+    public AjaxResult warehouseSupervise() {
+        SysConfig fileGerater = sysConfigMapper.checkConfigKeyUnique("FILE_GERATER");
+        if (StringUtils.isNull(fileGerater)) {
+            return AjaxResult.error("系统参数异常,未找到“FILE_GERATER”参数");
+        }
+
+        SysConfig tradeCode = sysConfigMapper.checkConfigKeyUnique("TRADE_CODE");
+        if (StringUtils.isNull(tradeCode)) {
+            return AjaxResult.error("系统参数异常,未找到“TRADE_CODE”参数");
+        }
+
+        SysConfig tradeName = sysConfigMapper.checkConfigKeyUnique("TRADE_NAME");
+        if (StringUtils.isNull(tradeName)) {
+            return AjaxResult.error("系统参数异常,未找到“TRADE_NAME”参数");
+        }
+
+        Date date = new Date();
+        String fileName = "WmsArea-" + DateUtils.parseDateToStr("yyyyMMdd", date) + ".FLJGRX";
+
+        File temp = null;
+        try {
+            temp = File.createTempFile("save", "null");
+            BufferedWriter bw = new BufferedWriter(new FileWriter(temp));
+            // 写入头部
+            bw.write("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n"
+                            + "<XMLObject>\n"
+                            + "    <APP_CODE>SAS</APP_CODE>\n"
+                            + "    <APP_STEP_ID>BASE_APPLY_ADD</APP_STEP_ID>\n"
+                            + "    <CLASS_NAME>XMLOject</CLASS_NAME>\n"
+                            + "    <CLASS_VER>1.0</CLASS_VER>\n"
+                            + "    <FILE_DATE_TIME>" + DateUtils.parseDateToStr("yyyy-MM-dd", date) + "</FILE_DATE_TIME>\n"
+                            + "    <FILE_GERATER>" + fileGerater.getConfigValue() + "</FILE_GERATER>\n"
+                            + "    <FILE_ORDER>1</FILE_ORDER>\n"
+                            + "    <FILE_ORIGINAL_NAME>" + fileName + "</FILE_ORIGINAL_NAME>\n"
+                            + "    <FILE_SIZE>-1</FILE_SIZE>\n"
+                            + "    <SDEPORT_DATA>\n"
+                            + "        <CopBaseRecordMessage>\n"
+                            + "            <CopBaseInfo>\n"
+                            + "                <TradeCode>" + tradeCode.getConfigValue() + "</TradeCode>\n"
+                            + "                <TradeName>" + tradeName.getConfigValue() + "</TradeName>\n"
+                            + "                <OrgCode>87830774R</OrgCode>\n"
+                            + "                <CopAddress></CopAddress>\n"
+                            + "                <Manager></Manager>\n"
+                            + "                <ContactTel></ContactTel>\n"
+                            + "                <CopSccd></CopSccd>\n"
+                            + "                <CustomManager>4258</CustomManager>\n"
+                            + "                <NetworkBeginDate></NetworkBeginDate>\n"
+                            + "                <NetworkEndTime></NetworkEndTime>\n"
+                            + "                <ExeStatus></ExeStatus>\n"
+                            + "            </CopBaseInfo>\n"
+            );
+
+            List<Map<String, Object>> warehouseList = tWhgenlegMapper.warehouseSupervise(100);
+            for (Map<String, Object> warehouse : warehouseList) {
+                bw.write("            <StorageInfo>\n"
+                        + "                <HouseId>" + warehouse.get("fNo") + "</HouseId>\n"
+                        + "                <HouseName>" + warehouse.get("fName") + "</HouseName>\n"
+                        + "                <HouseAddress>" + warehouse.get("fAddr") + "</HouseAddress>\n"
+                        + "                <HouseOwer>" + warehouse.get("fContacts") + "</HouseOwer>\n"
+                );
+
+                List<Map<String, Object>> areaList = tWhgenlegMapper.warehouseSupervise((Integer) warehouse.get("fId"));
+                for (Map<String, Object> area : areaList) {
+                    bw.write("                <LocationInfo>\n"
+                            + "                    <LocationId>" + area.get("fNo") + "</LocationId>\n"
+                            + "                    <LocationName>" + area.get("fName") + "</LocationName>\n"
+                            + "                    <PlaceId>" + area.get("fNo") + "</PlaceId>\n"
+                            + "                    <PlaceName>" + area.get("fName") + "</PlaceName>\n"
+                            + "                </LocationInfo>\n"
+                    );
+                }
+
+                bw.write("                <HouseArea></HouseArea>\n"
+                        + "            </StorageInfo>\n");
+            }
+            bw.write("        </CopBaseRecordMessage>\n"
+                    + "    </SDEPORT_DATA>\n"
+                    + "    <XML_TYPE>W3C</XML_TYPE>\n"
+                    + "</XMLObject>\n"
+            );
+            bw.close();
+            // 读取临时文件数据
+            BufferedReader reader = new BufferedReader(new FileReader(temp));
+            // 创建要写入的文件
+            FileWriter fw = new FileWriter(getAbsoluteFile(fileName));
+            // 创建新的写入流
+            BufferedWriter bfw = new BufferedWriter(fw);
+            String lineText;
+            while ((lineText = reader.readLine()) != null) {
+                // 替换其中参数
+                String newContent = lineText.replace("<FILE_SIZE>-1</FILE_SIZE>", "<FILE_SIZE>" + temp.length() + "</FILE_SIZE>");
+                // 写入指定文件并自动换行
+                bfw.write(newContent);
+                bfw.newLine();
+            }
+            // 刷新缓冲区
+            bfw.flush();
+            // 关闭读取流
+            reader.close();
+            // 关闭写入流
+            bfw.close();
+            // 关闭需要写入的文件流
+            fw.close();
+            return AjaxResult.success(fileName);
+        } catch (Exception e) {
+            e.printStackTrace();
+            return AjaxResult.error("导出分类监管数据失败");
+        } finally {
+            if (temp != null) {
+                temp.deleteOnExit();
+            }
+        }
+    }
+
     // 文件大小
     public static long getFileSize(String filename) {
         File file = new File(filename);
@@ -348,20 +487,6 @@ public class TWhgenlegServiceImpl implements ITWhgenlegService {
         return tWhgenlegMapper.selectInventoryMapList(tWhgenleg);
     }
 
-    @Override
-    public List<Map<String, Object>> selectWhgenlegList(TWhgenleg tWhgenleg) {
-        if (StringUtils.isNotNull(tWhgenleg.getfWarehouseLocationid())) {
-            // 获取仓库信息
-            TWarehouse tWarehouse = tWarehouseMapper.selectTWarehouseById(tWhgenleg.getfWarehouseLocationid());
-            if (tWarehouse.getfLocation() == 1) {
-                tWhgenleg.setfLocation(1L);
-            } else {
-                tWhgenleg.setfLocation(0L);
-            }
-        }
-        return tWhgenlegMapper.selectWhgenlegList(tWhgenleg);
-    }
-
     /**
      * 新增库存总账
      *

+ 49 - 44
ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/excel/QueryMenu.java

@@ -45,18 +45,21 @@ public class QueryMenu {
      * 计费起始日期
      */
     @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "费用起始日期", width = 30, dateFormat = "yyyy-MM-dd")
     private Date fChargedate;
 
     /**
      * 计费截止日期
      */
     @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "费用截止日期", width = 30, dateFormat = "yyyy-MM-dd")
     private Date fBillingDeadline;
 
     /**
      * 原始入库日期
      */
     @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "原始入库日期", width = 30, dateFormat = "yyyy-MM-dd")
     private Date fOriginalbilldate;
 
     /**
@@ -81,13 +84,13 @@ public class QueryMenu {
      * 金额
      */
     @Excel(name = "金额")
-    private Float fAmount;
+    private BigDecimal fAmount;
 
     /**
      * 结算金额
      */
     @Excel(name = "结算金额")
-    private Float fStlamount;
+    private BigDecimal fStlamount;
 
     /**
      * 结算日期
@@ -99,7 +102,7 @@ public class QueryMenu {
      * 开票金额
      */
     @Excel(name = "开票金额")
-    private Float fInvamount;
+    private BigDecimal fInvamount;
 
     /**
      * 发票号
@@ -111,7 +114,7 @@ public class QueryMenu {
      * 对账金额
      */
     @Excel(name = "对账金额")
-    private Float fAccamount;
+    private BigDecimal fAccamount;
 
     /**
      * 对账日期
@@ -142,7 +145,7 @@ public class QueryMenu {
      * 单价
      */
     @Excel(name = "单价")
-    private Float fUnitprice;
+    private BigDecimal fUnitprice;
 
     /**
      * 业务类型
@@ -181,14 +184,15 @@ public class QueryMenu {
     private String fShipper;
 
     /** 出口单号 */
+    @Excel(name = "出口单号")
     private String fEmblno;
 
-    public String getfEmblno() {
-        return fEmblno;
+    public Date getfBillingDeadline() {
+        return fBillingDeadline;
     }
 
-    public void setfEmblno(String fEmblno) {
-        this.fEmblno = fEmblno;
+    public void setfBillingDeadline(Date fBillingDeadline) {
+        this.fBillingDeadline = fBillingDeadline;
     }
 
     public Date getfOriginalbilldate() {
@@ -199,20 +203,20 @@ public class QueryMenu {
         this.fOriginalbilldate = fOriginalbilldate;
     }
 
-    public Date getfChargedate() {
-        return fChargedate;
+    public String getfEmblno() {
+        return fEmblno;
     }
 
-    public void setfChargedate(Date fChargedate) {
-        this.fChargedate = fChargedate;
+    public void setfEmblno(String fEmblno) {
+        this.fEmblno = fEmblno;
     }
 
-    public Date getfBillingDeadline() {
-        return fBillingDeadline;
+    public Date getfChargedate() {
+        return fChargedate;
     }
 
-    public void setfBillingDeadline(Date fBillingDeadline) {
-        this.fBillingDeadline = fBillingDeadline;
+    public void setfChargedate(Date fChargedate) {
+        this.fChargedate = fChargedate;
     }
 
     public String getfSrcBillno() {
@@ -287,22 +291,46 @@ public class QueryMenu {
         this.fDc = fDc;
     }
 
-    public Float getfAmount() {
+    public BigDecimal getfAmount() {
         return fAmount;
     }
 
-    public void setfAmount(Float fAmount) {
+    public void setfAmount(BigDecimal fAmount) {
         this.fAmount = fAmount;
     }
 
-    public Float getfStlamount() {
+    public BigDecimal getfStlamount() {
         return fStlamount;
     }
 
-    public void setfStlamount(Float fStlamount) {
+    public void setfStlamount(BigDecimal fStlamount) {
         this.fStlamount = fStlamount;
     }
 
+    public BigDecimal getfInvamount() {
+        return fInvamount;
+    }
+
+    public void setfInvamount(BigDecimal fInvamount) {
+        this.fInvamount = fInvamount;
+    }
+
+    public BigDecimal getfAccamount() {
+        return fAccamount;
+    }
+
+    public void setfAccamount(BigDecimal fAccamount) {
+        this.fAccamount = fAccamount;
+    }
+
+    public BigDecimal getfUnitprice() {
+        return fUnitprice;
+    }
+
+    public void setfUnitprice(BigDecimal fUnitprice) {
+        this.fUnitprice = fUnitprice;
+    }
+
     public Date getfStlamountDate() {
         return fStlamountDate;
     }
@@ -311,13 +339,6 @@ public class QueryMenu {
         this.fStlamountDate = fStlamountDate;
     }
 
-    public Float getfInvamount() {
-        return fInvamount;
-    }
-
-    public void setfInvamount(Float fInvamount) {
-        this.fInvamount = fInvamount;
-    }
 
     public String getfInvnos() {
         return fInvnos;
@@ -327,14 +348,6 @@ public class QueryMenu {
         this.fInvnos = fInvnos;
     }
 
-    public Float getfAccamount() {
-        return fAccamount;
-    }
-
-    public void setfAccamount(Float fAccamount) {
-        this.fAccamount = fAccamount;
-    }
-
     public Date getfAccamountDate() {
         return fAccamountDate;
     }
@@ -367,14 +380,6 @@ public class QueryMenu {
         this.fQty = fQty;
     }
 
-    public Float getfUnitprice() {
-        return fUnitprice;
-    }
-
-    public void setfUnitprice(Float fUnitprice) {
-        this.fUnitprice = fUnitprice;
-    }
-
     public String getfBilltype() {
         return fBilltype;
     }

+ 144 - 117
ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/service/impl/TWarehouseBillsServiceImpl.java

@@ -495,40 +495,40 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
                     li.put("fBillstatus", WarehouseTypeEnum.fromTypeAndBusinessType(li.get("fBillstatus").toString(), "storageStatus").getName());
                 });
             }
-            for (Map<String,Object> map : mapList) {
+            for (Map<String, Object> map : mapList) {
                 // 获取该数据创建人
                 String createBy = (String) map.get("createBy");
                 // 获取当前登录人用户名
                 String userName = user.getUser().getUserName();
                 // 如果当前登录者是超级管理员
                 if ("admin".equals(userName)) {
-                    map.put("isCreate",0);// 设置状态为 0
+                    map.put("isCreate", 0);// 设置状态为 0
                 } else { // 非超级管理员
                     // 比对,如果当前数据发布者与登录人一致
                     if (userName.equals(createBy)) {
-                        map.put("isCreate",1);// 状态设为 1
+                        map.put("isCreate", 1);// 状态设为 1
                     } else { // 不一致,则为 2
-                        map.put("isCreate",2);
+                        map.put("isCreate", 2);
                     }
                 }
             }
             return mapList;
         } else if (tWarehousebills.getfBilltype().equals(WarehouseTypeEnum.HQZY.getType())) {
-            List<Map<String,Object>> list = tWarehouseBillsMapper.selectWarehouseBusinessList1(tWarehousebills);
-            for (Map<String,Object> map : list) {
+            List<Map<String, Object>> list = tWarehouseBillsMapper.selectWarehouseBusinessList1(tWarehousebills);
+            for (Map<String, Object> map : list) {
                 // 获取该数据创建人
                 String createBy = (String) map.get("createBy");
                 // 获取当前登录人用户名
                 String userName = user.getUser().getUserName();
                 // 如果当前登录者是超级管理员
                 if ("admin".equals(userName)) {
-                    map.put("isCreate",0);// 设置状态为 0
+                    map.put("isCreate", 0);// 设置状态为 0
                 } else { // 非超级管理员
                     // 比对,如果当前数据发布者与登录人一致
                     if (userName.equals(createBy)) {
-                        map.put("isCreate",1);// 状态设为 1
+                        map.put("isCreate", 1);// 状态设为 1
                     } else { // 不一致,则为 2
-                        map.put("isCreate",2);
+                        map.put("isCreate", 2);
                     }
                 }
             }
@@ -543,13 +543,13 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
                 String userName = user.getUser().getUserName();
                 // 如果当前登录者是超级管理员
                 if ("admin".equals(userName)) {
-                    billsMap.put("isCreate",0);// 设置状态为 0
+                    billsMap.put("isCreate", 0);// 设置状态为 0
                 } else { // 非超级管理员
                     // 比对,如果当前数据发布者与登录人一致
                     if (userName.equals(createBy)) {
-                        billsMap.put("isCreate",1);// 状态设为 1
+                        billsMap.put("isCreate", 1);// 状态设为 1
                     } else { // 不一致,则为 2
-                        billsMap.put("isCreate",2);
+                        billsMap.put("isCreate", 2);
                     }
                 }
                 // 查询箱型、箱量表
@@ -2969,102 +2969,122 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
 
     @Override
     public AjaxResult ruoYiVersionOrderListNew(TWarehouseBills tWarehouseBills) {
-        List<Map<String,Object>> result = tWarehouseBillsMapper.ruoYiVersionOrderList(tWarehouseBills);
+        List<Map<String, Object>> result = tWarehouseBillsMapper.ruoYiVersionOrderList(tWarehouseBills);
         List<ShipperDataVo> list = new ArrayList<>();
-        for (Map<String,Object> map : result) {
-            // 新建实体
-            ShipperDataVo dataVo = new ShipperDataVo();
-            dataVo.setBillOfLadingNo((String) map.get("fBillno"));
-            dataVo.setOrderEnterprise((String) map.get("corpName"));
-            dataVo.setOrderEnterpriseNo("91370220334191898X");
-            dataVo.setConsignee((String) map.get("fConsigneername"));
-            dataVo.setConsigneeAddress((String) map.get("fConsigneername"));
-            dataVo.setConsigneePersonPhone((String) map.get("fConsigneetel"));
-            dataVo.setBillTime(StringUtils.nowTimeStr(map.get("createTime")));
-            dataVo.setShipAgent("青岛凯和志成");
-            dataVo.setShipAgentNo("BH1234678767");
-            dataVo.setSendEnterprise("青岛凯和志成");
-            dataVo.setSendType("2");
-            dataVo.setSwitchBillPerson("OP");
-            dataVo.setDeliveryClause((String) map.get("fServiceitems"));
-            //dataVo.setContractNo("HT2345678");
-            //dataVo.setBillType("A");
-            //dataVo.setOceanFreight("到付海运费");
-            //dataVo.setCurrency("币种");
-            dataVo.setShipCompany("青岛凯和志成");
-            dataVo.setXsgsm("GSM001");
-            dataVo.setImportZone("进口关区");
-            dataVo.setFirstTrans("第一程运输");
-            dataVo.setTradeFlag("N");
-            dataVo.setMtdm("QQCTN");
-            dataVo.setLoadingPort((String) map.get("loadportName"));
-            dataVo.setDischargePort((String) map.get("destportName"));
-            //dataVo.setDestination("目的地");
-            //dataVo.setDischargePlace("卸货地点");
-            dataVo.setArrivalDatetime((String) map.get("fEta"));
-            dataVo.setBillMark((String) map.get("fMarks"));
-            //dataVo.setVesselNameCn("中文船名");
-            dataVo.setVesselNameEn("KaiHeZhinCheng");
-            dataVo.setVoyageNumber((String) map.get("fVoyTwoName"));
-            dataVo.setImo("IMO001");
-            dataVo.setMtdm("TDH2345678");
-            dataVo.setMtVesselCode("QD22334455");
-            dataVo.setMtVoyageNumber("HC12345678");
-            dataVo.setGoodsName((String) map.get("goodsName"));
-            dataVo.setPackages("12");
-            dataVo.setPackagesUnit("吨");
-            dataVo.setWeight("12.3");
-            dataVo.setWeightUnit("吨");
-            dataVo.setVolume("23.1");
-            dataVo.setVolumeUnit("体积单位");
-            //dataVo.setTransferRemark("备注(换单备注)");
-            dataVo.setConDescribe((String) map.get("fNo"));
-            dataVo.setLclType("0");
-            List<ShipperContList> contLists = new ArrayList<>();
-
-            //配箱信息
-            TWarehousebillsCntritems warehousebillsCntritems = new TWarehousebillsCntritems();
-            warehousebillsCntritems.setfPid(Long.valueOf(map.get("fId").toString()));
-            List<TWarehousebillsCntritems> tWarehousebillsCntritems = tWarehousebillsCntritemsMapper.selectTWarehousebillsCntritemsList(warehousebillsCntritems);
-            if (CollectionUtils.isNotEmpty(tWarehousebillsCntritems)) {
-                for (TWarehousebillsCntritems cntritems : tWarehousebillsCntritems) {
-                    ShipperContList contList = new ShipperContList();
-                    contList.setContainerNo(cntritems.getfCntrno());
-                    contList.setContainerType(cntritems.getfCntrid().toString());
-                    contList.setContainerSize(cntritems.getfPackageid());
-                    contList.setSealno(cntritems.getfSealno());
-                    //contList.setConPackages("12");
-                    //contList.setConWeight("1.2");
-                    //contList.setConVolume("21");
-                    contList.setLclType("0");
-                    contLists.add(contList);
-                }
-            }
-            dataVo.setContList(contLists);
-            // list.add(dataVo);
-            String json = JSONObject.toJSONString(dataVo);
-            System.err.println("json:" + json);
-            //String jsonStr = JSONObject.toJSONString(dataVo);
-            // 请求路径 (测试)
-            // String postUrl = "https://api.qingdao-port.net/container/web/eir/edo/shipagent/insertEdo.do";
-            String postUrl = "https://api.qingdao-port.net/container/web/eir/edo/shipagent/insertEdo.do";
-            // 请求路径 (正式)
-            //String postUrl = "https://api.qingdao-port.net/container/web/wlds_eir/edo/shipagent/insertEdo.do";
-            // 请求参数
-            Map<String,String> params = new HashMap<>();
-            params.put("customerCode","A00001");
-            params.put("sign","abcdef");
-            params.put("reqTime",StringUtils.nowTimeStr());
-            params.put("data",json);
-            System.err.println(params);
-            TResponseVo responseVo = sendPostRequest(postUrl,params);
-            System.err.println(responseVo);
-            if (!responseVo.isSuccess()) {
-                return AjaxResult.error(responseVo.getMessage().get("msg"));
-            } else {
-                return AjaxResult.success(responseVo.getMessage().get("msg"));
+        try {
+            for (Map<String, Object> map : result) {
+                // 新建实体
+                ShipperDataVo dataVo = new ShipperDataVo();
+                dataVo.setBillOfLadingNo((String) map.get("fBillno"));
+                dataVo.setOrderEnterprise((String) map.get("corpName"));
+                dataVo.setOrderEnterpriseNo("91370220334191898X");
+                dataVo.setConsignee((String) map.get("fConsigneername"));
+                dataVo.setConsigneeAddress((String) map.get("fConsigneername"));
+                dataVo.setConsigneePersonPhone((String) map.get("fConsigneetel"));
+                dataVo.setContEnterprise("青岛凯和志成");
+                dataVo.setContEnterpriseNo("91370220334191898X");
+                dataVo.setBillTime(StringUtils.nowTimeStr(map.get("createTime")));
+                dataVo.setShipAgent("青岛凯和志成");
+                dataVo.setShipAgentNo("91370220334191898X");
+                dataVo.setSendEnterprise("青岛凯和志成");
+                dataVo.setSendType("2");
+                dataVo.setSwitchBillPerson("OP");
+                dataVo.setDeliveryClause((String) map.get("fServiceitems"));
+                dataVo.setContractNo("");
+                dataVo.setBillType("");
+                dataVo.setBillType("");
+                dataVo.setOceanFreight("");
+                dataVo.setCurrency("");
+                dataVo.setShipCompany("青岛凯和志成");
+                dataVo.setXsgsm("HXC");
+                dataVo.setImportZone("");
+                dataVo.setFirstTrans("");
+                dataVo.setTradeFlag("N");
+                dataVo.setMtdm("QQCTN");
+                dataVo.setLoadingPort((String) map.get("loadportName"));
+                dataVo.setDischargePort((String) map.get("destportName"));
+                dataVo.setDestination("");
+                dataVo.setDischargePlace("");
+                dataVo.setArrivalDatetime("2022-04-28 15:36:23");
+                dataVo.setBillMark("N/M");
+                dataVo.setVesselNameCn("KaiHeZhinCheng");
+                dataVo.setVesselNameEn("KaiHeZhinCheng");
+                dataVo.setVoyageNumber("2206N");
+                dataVo.setImo("NM");
+                //dataVo.setMtdm("TDH2345678");
+                //dataVo.setMtVesselCode("QD22334455");
+                //dataVo.setMtVoyageNumber("HC12345678");
+                dataVo.setGoodsName((String) map.get("goodsName"));
+                dataVo.setPackages("12");
+                dataVo.setPackagesUnit("吨");
+                dataVo.setWeight("12.3");
+                dataVo.setWeightUnit("KG");
+                dataVo.setVolume("23.1");
+                dataVo.setVolumeUnit("CBM");
+                dataVo.setTransferRemark("");
+                dataVo.setConDescribe((String) map.get("fNo"));
+                dataVo.setLclType("0");
+                List<ShipperContList> contLists = new ArrayList<>();
+                //配箱信息
+                TWarehousebillsCntritems warehousebillsCntritems = new TWarehousebillsCntritems();
+                warehousebillsCntritems.setfPid(Long.valueOf(map.get("fId").toString()));
+                List<TWarehousebillsCntritems> tWarehousebillsCntritems = tWarehousebillsCntritemsMapper.selectTWarehousebillsCntritemsList(warehousebillsCntritems);
+                if (CollectionUtils.isNotEmpty(tWarehousebillsCntritems)) {
+                    for (TWarehousebillsCntritems cntritems : tWarehousebillsCntritems) {
+                        ShipperContList contList = new ShipperContList();
+                        if (StringUtils.isNotNull(cntritems.getfCntrno())) {
+                            contList.setContainerNo(cntritems.getfCntrno());
+                        } else {
+                            contList.setContainerNo("LYGU7004588");
+                        }
+                        if (StringUtils.isNotNull(cntritems.getfCntrid())) {
+                            contList.setContainerType(cntritems.getfCntrid().toString());
+                        } else {
+                            contList.setContainerType("HC");
+                        }
+                        if (StringUtils.isNotNull(cntritems.getfPackageid())) {
+                            contList.setContainerSize(cntritems.getfPackageid());
+                        } else {
+                            contList.setContainerSize("40");
+                        }
+                        if (StringUtils.isNotNull(cntritems.getfSealno())) {
+                            contList.setSealno(cntritems.getfSealno());
+                        } else {
+                            contList.setSealno("CR303985");
+                        }
+                        contList.setConPackages("");
+                        contList.setConWeight("");
+                        contList.setConVolume("");
+                        contList.setLclType("0");
+                        contLists.add(contList);
+                    }
+                }
+                dataVo.setContlist(contLists);
+                // list.add(dataVo);
+                String json = JSONObject.toJSONString(dataVo);
+                //String jsonStr = JSONObject.toJSONString(dataVo);
+                // 请求路径 (测试)
+                String postUrl = "https://api.qingdao-port.net/container/web/eir/edo/shipagent/insertEdo.do";
+                // 请求路径 (正式)
+                //String postUrl = "https://api.qingdao-port.net/container/web/wlds_eir/edo/shipagent/insertEdo.do";
+                // 请求参数
+                MultiValueMap<String, String> params = new LinkedMultiValueMap<>();
+                params.add("customerCode", "A00001");
+                params.add("sign", "abcdef");
+                params.add("reqTime", StringUtils.nowTimeStr());
+                params.add("data", json);
+                TResponseVo responseVo = sendPostRequest(postUrl, params);
+                Thread.sleep(2000);
+                System.err.println(responseVo);
+                if (!responseVo.isSuccess()) {
+                    throw new WarehouseException(responseVo.getMessage().get("msg"));
+                }
             }
+        } catch (Exception e) {
+            e.printStackTrace();
+            return AjaxResult.error(e.getMessage());
         }
+
         // String json = JSONObject.toJSONString(list);
         return AjaxResult.success("成功");
     }
@@ -3075,14 +3095,21 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
      * @param params 发送的参数
      * @return ResponseVo
      */
-    public static TResponseVo sendPostRequest(String url, Map<String,String> params) {
+    /**
+     * 向目的 URL 发送 post 请求
+     *
+     * @param url 目的 url
+     * @param map 发送的参数
+     * @return ResponseVo
+     */
+    public static TResponseVo sendPostRequest(String url, MultiValueMap<String, String> map) {
         RestTemplate client = new RestTemplate();
         HttpHeaders headers = new HttpHeaders();
         HttpMethod method = HttpMethod.POST;
         // 以表单的方式提交
-        headers.setContentType(MediaType.APPLICATION_JSON);
+        headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
         // 将请求头部和参数合成一个请求
-        HttpEntity<Map<String,String>> requestEntity = new HttpEntity<>(params,headers);
+        HttpEntity<MultiValueMap<String, String>> requestEntity = new HttpEntity<>(map, headers);
         // 执行 HTTP 请求,将返回的结构使用 ResponseVo 类格式化
         ResponseEntity<TResponseVo> response = client.exchange(url, method, requestEntity, TResponseVo.class);
         return response.getBody();
@@ -7820,13 +7847,13 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
         if (CollectionUtils.isNotEmpty(WarehousebillsfeesList)) {
             //修改原单费用
             for (TWarehousebillsfees tWarehousebillsfees : WarehousebillsfeesList) {
-               if (tWarehousebillsfees.getfBillstatus().longValue() <=2L){
-                   tWarehousebillsfees.setUpdateBy(SecurityUtils.getUsername());
-                   tWarehousebillsfees.setUpdateTime(new Date());
-                   tWarehousebillsfees.setfQty(tWarehousebillsfees.getfQty().subtract(new BigDecimal(wareHouseBillsCnTr.getfCntrcount())));
-                   tWarehousebillsfees.setfAmount(tWarehousebillsfees.getfQty().multiply(tWarehousebillsfees.getfUnitprice()));
-                   tWarehousebillsfeesMapper.updateTWarehousebillsfees(tWarehousebillsfees);
-               }
+                if (tWarehousebillsfees.getfBillstatus().longValue() <= 2L) {
+                    tWarehousebillsfees.setUpdateBy(SecurityUtils.getUsername());
+                    tWarehousebillsfees.setUpdateTime(new Date());
+                    tWarehousebillsfees.setfQty(tWarehousebillsfees.getfQty().subtract(new BigDecimal(wareHouseBillsCnTr.getfCntrcount())));
+                    tWarehousebillsfees.setfAmount(tWarehousebillsfees.getfQty().multiply(tWarehousebillsfees.getfUnitprice()));
+                    tWarehousebillsfeesMapper.updateTWarehousebillsfees(tWarehousebillsfees);
+                }
             }
             //应收费用
             List<TWarehousebillsfees> fd = tWarehousebillsfeesMapper.selectFeesByPId(selectOne.getfId(), "D");
@@ -9042,11 +9069,11 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
     @Override
     public AjaxResult turnVoyage(TWarehouseBills tWarehouseBills, LoginUser loginUser) {
         TVoyage voyage = tVoyageMapper.selectTVoyageByFid(tWarehouseBills.getfVoyid());
-        if (voyage == null){
+        if (voyage == null) {
             throw new RuntimeException("未找到航次信息");
         }
         TVessel tVessel = tVesselMapper.selectTVesselById(tWarehouseBills.getfVslid());
-        if (tVessel == null){
+        if (tVessel == null) {
             throw new RuntimeException("未找到船信息");
         }
         for (Long aLong : tWarehouseBills.getOrderList()) {

+ 9 - 2
ruoyi-warehouse/src/main/resources/mapper/basicData/TWarehouseMapper.xml

@@ -28,6 +28,7 @@
         <result property="fLocation" column="f_location"/>
         <result property="hasChildren" column="has_children"/>
         <result property="fWarehouseInformation" column="f_warehouse_information"/>
+        <result property="supervise" column="supervise"/>
     </resultMap>
 
     <sql id="selectTWarehouseVo">
@@ -52,7 +53,8 @@
                update_time,
                remark,
                f_location,
-               f_warehouse_information
+               f_warehouse_information,
+               supervise
         from t_warehouse
     </sql>
 
@@ -71,6 +73,7 @@
             <if test="fTel != null  and fTel != ''">and f_tel = #{fTel}</if>
             <if test="fCharg != null ">and f_charg = #{fCharg}</if>
             <if test="fStatus != null  and fStatus != ''">and f_status = #{fStatus}</if>
+            <if test="supervise != null and supervise != ''">and supervise = #{supervise}</if>
         </where>
         <!-- 数据范围过滤 -->
         ${params.dataScope}
@@ -80,7 +83,7 @@
     <select id="lazyList" parameterType="TWarehouse" resultMap="TWarehouseResult">
         select
             ware.f_id, ware.parent_id, ware.ancestors, ware.order_num, ware.f_no, ware.f_name, ware.f_cname, ware.f_totalgross, ware.f_location,
-               ware.f_addr, ware.f_contacts, ware.f_tel, ware.f_charg, ware.f_is_bonded, ware.remark, ware.f_status,
+               ware.f_addr, ware.f_contacts, ware.f_tel, ware.f_charg, ware.f_is_bonded, ware.remark, ware.supervise, ware.f_status,
             (
             SELECT
                 CASE WHEN count( 1 ) > 0 THEN 1 ELSE 0 END
@@ -96,6 +99,7 @@
             <if test="fName != null  and fName != ''">and ware.f_name like concat('%', #{fName}, '%')</if>
             <if test="fCname != null  and fCname != ''">and ware.f_cname like concat('%', #{fCname}, '%')</if>
             <if test="fStatus != null  and fStatus != ''">and ware.f_status = #{fStatus}</if>
+            <if test="supervise != null and supervise != ''">and ware.supervise = #{supervise}</if>
         </where>
         <!-- 数据范围过滤 -->
         ${params.dataScope}
@@ -150,6 +154,7 @@
             <if test="remark != null">remark,</if>
             <if test="fLocation != null">f_location,</if>
             <if test="fWarehouseInformation != null">f_warehouse_information,</if>
+            <if test="supervise != null">supervise,</if>
         </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="parentId != null and parentId != 0">#{parentId},</if>
@@ -173,6 +178,7 @@
             <if test="remark != null">#{remark},</if>
             <if test="fLocation != null">#{fLocation},</if>
             <if test="fWarehouseInformation != null">#{fWarehouseInformation},</if>
+            <if test="supervise != null">#{supervise},</if>
         </trim>
     </insert>
 
@@ -200,6 +206,7 @@
             <if test="remark != null">remark = #{remark},</if>
             <if test="fLocation != null">f_location = #{fLocation},</if>
             <if test="fWarehouseInformation != null">f_warehouse_information = #{fWarehouseInformation},</if>
+            <if test="supervise != null">supervise = #{supervise},</if>
         </trim>
         where f_id = #{fId}
     </update>

+ 22 - 39
ruoyi-warehouse/src/main/resources/mapper/reportManagement/TWhgenlegMapper.xml

@@ -1110,50 +1110,16 @@
             LEFT JOIN sys_dict_data dict ON dict.dict_value = leg.f_business_type
             LEFT JOIN sys_dict_data sdict ON sdict.dict_value = leg.f_trademodeid
             LEFT JOIN t_warehouse_area area ON area.f_id = leg.f_warehouse_locationid
-            LEFT JOIN t_warehouse wareN ON wareN.f_id = leg.f_warehouseid
+            LEFT JOIN t_warehouse wh ON wh.f_id = leg.f_warehouseid
         <where>
             dict.status = '0'
             AND dict.dict_type = 'storage_type'
             AND sdict.`status` = '0'
             AND sdict.dict_type = 'data_trademodes'
-            AND	(wareN.f_name = '金龙行库9号库' OR wareN.f_name = '金龙行库10号库')
-            <if test="fOriginalbillno != null  and fOriginalbillno != ''">and leg.f_originalbillno = #{fOriginalbillno}</if>
-            <if test="fPreqty != null ">and leg.f_preqty = #{fPreqty}</if>
-            <if test="fCorpid != null ">and leg.f_corpid = #{fCorpid}</if>
-            <if test="fShipper != null and fShipper != ''">and leg.f_shipper like concat('%', #{fShipper}, '%')</if>
-            <if test="fMblno != null ">and leg.f_mblno LIKE  concat('%', #{fMblno}, '%') </if>
-            <if test='timeStartBsdate != null'>
-                and leg.f_originalbilldate &gt;= #{timeStartBsdate}
-            </if>
-            <if test='timeEndBsdate != null'>
-                and leg.f_originalbilldate &lt;= #{timeEndBsdate}
-            </if>
-            <if test="fPregrossweight != null ">and leg.f_pregrossweight = #{fPregrossweight}</if>
-            <if test="fPrenetweight != null ">and leg.f_prenetweight = #{fPrenetweight}</if>
-            <if test="fQtyd != null ">and leg.f_qtyD = #{fQtyd}</if>
-            <if test="fTrademodeid != null ">and leg.f_trademodeid = #{fTrademodeid}</if>
-            <if test="fGoodsid != null ">and leg.f_goodsid = #{fGoodsid}</if>
-            <if test="fVolumnd != null ">and leg.f_volumnD = #{fVolumnd}</if>
-            <if test="fGrossweightd != null ">and leg.f_grossweightD = #{fGrossweightd}</if>
-            <if test="fNetweightd != null ">and leg.f_netweightD = #{fNetweightd}</if>
-            <if test="fVolumnc != null ">and leg.f_volumnC = #{fVolumnc}</if>
-            <if test="fQtyc != null ">and leg.f_qtyC = #{fQtyc}</if>
-            <if test="fOriginalbilldate != null ">and leg.f_originalbilldate = #{fOriginalbilldate}</if>
-            <if test="fMarks != null  and fMarks != ''">and leg.f_marks = #{fMarks}</if>
-            <if test="fQtyblc != null ">and leg.f_qtyblc = #{fQtyblc}</if>
-            <if test="fGrossweightc != null ">and leg.f_grossweightC = #{fGrossweightc}</if>
-            <if test="fNetweightc != null ">and leg.f_netweightC = #{fNetweightc}</if>
-            <if test="fGrossweightblc != null ">and leg.f_grossweightblc = #{fGrossweightblc}</if>
-            <if test="fNetweightblc != null ">and leg.f_netweightblc = #{fNetweightblc}</if>
-            <if test="fCntrno != null  and fCntrno != ''">and leg.f_cntrno = #{fCntrno}</if>
-            <if test="fStatus != null  and fStatus != ''">and leg.f_status = #{fStatus}</if>
-            <if test="fWarehouseid != null ">and leg.f_warehouseid = #{fWarehouseid} </if>
-            <if test="fLocation != null  and fLocation ==1 ">
-                and leg.f_warehouse_locationid = #{fWarehouseLocationid}
-            </if>
-            <if test="fLocation != null  and fLocation ==0 ">
-                and ware.ancestors  LIKE  concat('%', #{fWarehouseLocationid}, '%')
-            </if>
+            AND	wh.supervise = 1
+            AND leg.f_qtyblc != 0
+            AND leg.f_grossweightblc != 0
+            AND leg.f_netweightblc != 0
         </where>
     </select>
     <!--根据客户id或加上提单号查询库存不为0的仓库名-->
@@ -1383,4 +1349,21 @@
         order by quantity desc limit 10
     </select>
 
+    <select id="warehouseSupervise" resultType="map">
+        select f_id as fId,
+               parent_id as parentId,
+               f_no as fNo,
+               f_name as fName,
+               f_addr as fAddr,
+               f_contacts as fContacts,
+               f_tel as fTel
+        from t_warehouse
+        <where>
+            <if test="parent != null">
+                <if test="parent == 100">and supervise = 1</if>
+                and parent_id = #{parent}
+            </if>
+        </where>
+    </select>
+
 </mapper>