Browse Source

道和银行接口
2022年7月28日15点01分

纪新园 3 years ago
parent
commit
282fb82c9c
21 changed files with 758 additions and 83 deletions
  1. 64 2
      ruoyi-admin/src/main/java/com/ruoyi/web/controller/plugin/CcbController.java
  2. 101 0
      ruoyi-plugin/src/main/java/com/ruoyi/ccb/domain/DeviceDetail.java
  3. 32 0
      ruoyi-plugin/src/main/java/com/ruoyi/ccb/domain/Devices.java
  4. 21 0
      ruoyi-plugin/src/main/java/com/ruoyi/ccb/domain/DevicesByStorage.java
  5. 118 0
      ruoyi-plugin/src/main/java/com/ruoyi/ccb/domain/DevicesDetail.java
  6. 23 0
      ruoyi-plugin/src/main/java/com/ruoyi/ccb/domain/FindDeviceData.java
  7. 28 0
      ruoyi-plugin/src/main/java/com/ruoyi/ccb/domain/HistoryData.java
  8. 38 0
      ruoyi-plugin/src/main/java/com/ruoyi/ccb/service/CcbHttpService.java
  9. 115 12
      ruoyi-plugin/src/main/java/com/ruoyi/ccb/service/impl/CcbHttpServiceImpl.java
  10. 1 1
      ruoyi-plugin/src/main/java/com/ruoyi/ccb/service/impl/CcbServiceImpl.java
  11. 9 2
      ruoyi-warehouse/src/main/java/com/ruoyi/approvalFlow/service/impl/AuditPathsServiceImpl.java
  12. 2 0
      ruoyi-warehouse/src/main/java/com/ruoyi/basicData/mapper/TGoodsMapper.java
  13. 11 0
      ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/domain/TWarehousebillsitems.java
  14. 1 1
      ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/service/IWarehouseBillsCcbService.java
  15. 130 27
      ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/service/impl/TWarehouseBillsServiceImpl.java
  16. 19 12
      ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/service/impl/WarehouseBillsCcbServiceImpl.java
  17. 3 2
      ruoyi-warehouse/src/main/resources/mapper/basicData/TCorpsMapper.xml
  18. 5 0
      ruoyi-warehouse/src/main/resources/mapper/basicData/TGoodsMapper.xml
  19. 18 7
      ruoyi-warehouse/src/main/resources/mapper/warehouseBusiness/TWarehousebillsMapper.xml
  20. 15 13
      ruoyi-warehouse/src/main/resources/mapper/warehouseBusiness/TWarehousebillsfeesMapper.xml
  21. 4 4
      ruoyi-warehouse/src/main/resources/mapper/warehouseBusiness/TWarehousebillsitemsMapper.xml

+ 64 - 2
ruoyi-admin/src/main/java/com/ruoyi/web/controller/plugin/CcbController.java

@@ -15,7 +15,7 @@ import org.springframework.web.bind.annotation.*;
 @AllArgsConstructor
 @RestController
 @RequestMapping("/ccb")
-public class CcbController {
+public class CcbController{
 
 //    private final CcbHttpService ccbHttpService;
     @Autowired
@@ -94,7 +94,8 @@ public class CcbController {
      * @return 结果
      */
     @PostMapping("/syncOrg")
-    public Page syncOrg(@RequestBody SyncOrg syncOrg) {
+    public Page syncOrg(@RequestBody SyncOrg syncOrg)
+    {
         return ccbHttpService.syncOrg(syncOrg);
     }
 
@@ -186,4 +187,65 @@ public class CcbController {
         return ccbHttpService.queryAssets(assets);
     }
 
+
+    /**
+     * 获取所有可用设备列表
+     *
+     * @param devices 报文
+     * @return 结果
+     */
+    @PostMapping("/listAllDevices")
+    public Devices listAllDevices(@RequestBody Devices devices)
+    {
+        return ccbHttpService.listAllDevices(devices);
+    }
+
+    /**
+     * 获取指定设备
+     *
+     * @param deviceId 设备id
+     * @return 结果
+     */
+    @GetMapping("/findDeviceById")
+    public DeviceDetail findDeviceById(@RequestParam(value = "deviceId") String deviceId)
+    {
+        return ccbHttpService.findDeviceById(deviceId);
+    }
+
+    /**
+     * 获取指定货架设备列表
+     *
+     * @param devicesByStorage 报文
+     * @return 结果
+     */
+    @PostMapping("/findDevicesByStorage")
+    public Devices findDevicesByStorage(@RequestBody DevicesByStorage devicesByStorage)
+    {
+        return ccbHttpService.findDevicesByStorage(devicesByStorage);
+    }
+
+    /**
+     * 获取指定监控设备实时数据
+     *
+     * @param deviceId 设备id
+     * @return 结果
+     */
+    @GetMapping("/findDeviceData")
+    public FindDeviceData findDeviceData(@RequestParam(value = "deviceId") String deviceId)
+    {
+        return ccbHttpService.findDeviceData(deviceId);
+    }
+
+    /**
+     * 获取指定监控设备历史数据
+     *
+     * @param historyData 报文
+     * @return 结果
+     */
+    @PostMapping("/findDeviceHistoryData")
+    public FindDeviceData findDeviceHistoryData(@RequestBody HistoryData historyData)
+    {
+        return ccbHttpService.findDeviceHistoryData(historyData);
+    }
+
 }

+ 101 - 0
ruoyi-plugin/src/main/java/com/ruoyi/ccb/domain/DeviceDetail.java

@@ -0,0 +1,101 @@
+package com.ruoyi.ccb.domain;
+
+import lombok.Data;
+
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 设备详情
+ */
+@Data
+public class DeviceDetail {
+
+    /**
+     * 设备名称
+     */
+    private String deviceName;
+    /**
+     * 编码
+     */
+    private String deviceId;
+    /**
+     * 是否可用
+     */
+    private boolean isValid;
+    /**
+     * 类型
+     */
+    private String deviceType;
+    /**
+     * 设备接入码
+     */
+    private String deviceAccessCode;
+    /**
+     * 设备接入方式
+     */
+    private String deviceAccessMethod;
+    /**
+     * 设备接入地址
+     */
+    private String deviceAccessAddress;
+    /**
+     * 设备位置
+     */
+    private String deviceLocationCode;
+
+
+    public static List<DeviceDetail> date() {
+
+        List<DeviceDetail> devicesDetailList = new ArrayList<>();
+
+        DeviceDetail deviceDetail = new DeviceDetail();
+        deviceDetail.setDeviceName("JK-1001");
+        deviceDetail.setDeviceId("1658972843");
+        deviceDetail.setValid(true);
+        deviceDetail.setDeviceType("监控");
+        deviceDetail.setDeviceAccessCode("JRM-EQ-1010");
+        deviceDetail.setDeviceAccessMethod("http请求");
+        deviceDetail.setDeviceAccessAddress("https://test.wms.tubaosoft.com/");
+        deviceDetail.setDeviceLocationCode("1-1-1001");
+        devicesDetailList.add(deviceDetail);
+
+        DeviceDetail deviceDetail1 = new DeviceDetail();
+        deviceDetail1.setDeviceName("JK-1002");
+        deviceDetail1.setDeviceId("1658972886");
+        deviceDetail1.setValid(true);
+        deviceDetail1.setDeviceType("监控");
+        deviceDetail1.setDeviceAccessCode("JRM-EQ-1010");
+        deviceDetail1.setDeviceAccessMethod("http请求");
+        deviceDetail1.setDeviceAccessAddress("https://test.wms.tubaosoft.com/");
+        deviceDetail1.setDeviceLocationCode("2-1-1001");
+        devicesDetailList.add(deviceDetail1);
+
+        DeviceDetail deviceDetail2 = new DeviceDetail();
+        deviceDetail2.setDeviceName("HW-1001");
+        deviceDetail2.setDeviceId("1658972895");
+        deviceDetail2.setValid(true);
+        deviceDetail2.setDeviceType("红外");
+        deviceDetail2.setDeviceAccessCode("JRM-EQ-1010");
+        deviceDetail2.setDeviceAccessMethod("http请求");
+        deviceDetail2.setDeviceAccessAddress("https://test.wms.tubaosoft.com/");
+        deviceDetail2.setDeviceLocationCode("1-1-1002");
+        devicesDetailList.add(deviceDetail2);
+
+        DeviceDetail deviceDetail3 = new DeviceDetail();
+        deviceDetail3.setDeviceName("HW-1002");
+        deviceDetail3.setDeviceId("1658972901");
+        deviceDetail3.setValid(true);
+        deviceDetail3.setDeviceType("红外");
+        deviceDetail3.setDeviceAccessCode("JRM-EQ-1010");
+        deviceDetail3.setDeviceAccessMethod("http请求");
+        deviceDetail3.setDeviceAccessAddress("https://test.wms.tubaosoft.com/");
+        deviceDetail3.setDeviceLocationCode("2-1-1002");
+        devicesDetailList.add(deviceDetail3);
+
+
+        return devicesDetailList;
+    }
+}

+ 32 - 0
ruoyi-plugin/src/main/java/com/ruoyi/ccb/domain/Devices.java

@@ -0,0 +1,32 @@
+package com.ruoyi.ccb.domain;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * 获取所有可用设备列表报文
+ */
+@Data
+public class Devices {
+
+    /**
+     * 内容
+     */
+    private List<DeviceDetail> content;
+
+    /**
+     * 单页大小
+     */
+    private Integer pageSize;
+
+    /**
+     * 总记录数
+     */
+    private Long totalRecords;
+
+    /**
+     * 当前页码
+     */
+    private Integer pageNo;
+}

+ 21 - 0
ruoyi-plugin/src/main/java/com/ruoyi/ccb/domain/DevicesByStorage.java

@@ -0,0 +1,21 @@
+package com.ruoyi.ccb.domain;
+
+import lombok.Data;
+
+/**
+ *
+ */
+@Data
+public class DevicesByStorage {
+
+    /**
+     * 对应设备详情
+     */
+    private String deviceLocationCode;
+
+    /**
+     * 分页数据
+     */
+    private Devices page;
+
+}

+ 118 - 0
ruoyi-plugin/src/main/java/com/ruoyi/ccb/domain/DevicesDetail.java

@@ -0,0 +1,118 @@
+package com.ruoyi.ccb.domain;
+
+
+import lombok.Data;
+
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 设备信息
+ */
+@Data
+public class DevicesDetail {
+
+    /**
+     * 设备的ip
+     */
+    private String HardwareListId;
+    /**
+     * 设备的类型
+     */
+    private String HardwareType;
+    /**
+     * 设备的名字
+     */
+    private String HardwareName;
+    /**
+     * 设备的状态
+     */
+    private String DeviceStatus;
+    /**
+     * 网络状态
+     */
+    private String NetStat;
+    /**
+     * 镜像时间
+     */
+    private String MonitorTime;
+    /**
+     * 最近时间
+     */
+    private String LastTime;
+    /**
+     * 设备的id
+     */
+    private String DeviceId;
+
+
+    public static List<DevicesDetail> date() {
+
+        List<DevicesDetail> devicesDetailList = new ArrayList<>();
+
+        //监控
+        DevicesDetail devicesDetail = new DevicesDetail();
+        devicesDetail.setHardwareListId("192.168.0.1");
+        devicesDetail.setHardwareType("监控");
+        devicesDetail.setHardwareName("JK-1001");
+        devicesDetail.setDeviceStatus("可用");
+        devicesDetail.setNetStat("正常");
+        devicesDetail.setMonitorTime(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
+        devicesDetail.setLastTime(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
+        devicesDetail.setDeviceId("1658972843");
+        devicesDetailList.add(devicesDetail);
+
+        //监控
+        DevicesDetail devicesDetail1 = new DevicesDetail();
+        devicesDetail1.setHardwareListId("192.168.0.2");
+        devicesDetail1.setHardwareType("监控");
+        devicesDetail1.setHardwareName("JK-1002");
+        devicesDetail1.setDeviceStatus("可用");
+        devicesDetail1.setNetStat("正常");
+        devicesDetail1.setMonitorTime(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
+        devicesDetail1.setLastTime(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
+        devicesDetail1.setDeviceId("1658972886");
+        devicesDetailList.add(devicesDetail1);
+
+        //红外
+        DevicesDetail devicesDetail2 = new DevicesDetail();
+        devicesDetail2.setHardwareListId("192.168.0.3");
+        devicesDetail2.setHardwareType("红外");
+        devicesDetail2.setHardwareName("HW-1001");
+        devicesDetail2.setDeviceStatus("可用");
+        devicesDetail2.setNetStat("正常");
+        devicesDetail2.setMonitorTime(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
+        devicesDetail2.setLastTime(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
+        devicesDetail2.setDeviceId("1658972895");
+        devicesDetailList.add(devicesDetail2);
+
+        //红外
+        DevicesDetail devicesDetail3 = new DevicesDetail();
+        devicesDetail3.setHardwareListId("192.168.0.4");
+        devicesDetail3.setHardwareType("红外");
+        devicesDetail3.setHardwareName("HW-1001");
+        devicesDetail3.setDeviceStatus("可用");
+        devicesDetail3.setNetStat("正常");
+        devicesDetail3.setMonitorTime(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
+        devicesDetail3.setLastTime(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
+        devicesDetail3.setDeviceId("1658972901");
+        devicesDetailList.add(devicesDetail3);
+
+        //热成像
+        DevicesDetail devicesDetail4 = new DevicesDetail();
+        devicesDetail4.setHardwareListId("192.168.0.5");
+        devicesDetail4.setHardwareType("热成像");
+        devicesDetail4.setHardwareName("RCX-1001");
+        devicesDetail4.setDeviceStatus("可用");
+        devicesDetail4.setNetStat("正常");
+        devicesDetail4.setMonitorTime(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
+        devicesDetail4.setLastTime(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
+        devicesDetail4.setDeviceId("1658972908");
+        devicesDetailList.add(devicesDetail4);
+
+        return devicesDetailList;
+    }
+
+}

+ 23 - 0
ruoyi-plugin/src/main/java/com/ruoyi/ccb/domain/FindDeviceData.java

@@ -0,0 +1,23 @@
+package com.ruoyi.ccb.domain;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * 获取指定监控设备实时数据
+ */
+@Data
+public class FindDeviceData {
+
+    /**
+     * 设备数据
+     */
+    private List<DevicesDetail> deviceId;
+
+    /**
+     * 数据接入url
+     */
+    private String url;
+
+}

+ 28 - 0
ruoyi-plugin/src/main/java/com/ruoyi/ccb/domain/HistoryData.java

@@ -0,0 +1,28 @@
+package com.ruoyi.ccb.domain;
+
+import lombok.Data;
+
+import java.sql.Timestamp;
+
+/**
+ * 监控设备历史数据报文
+ */
+@Data
+public class HistoryData {
+
+    /**
+     * 设备唯一编号
+     */
+    private String deviceId;
+
+    /**
+     * 开始时间
+     */
+    private Timestamp startTime;
+
+    /**
+     * 结束时间
+     */
+    private Timestamp endTime;
+
+}

+ 38 - 0
ruoyi-plugin/src/main/java/com/ruoyi/ccb/service/CcbHttpService.java

@@ -126,4 +126,42 @@ public interface CcbHttpService {
      */
     ReplenishmentR cargosRF(Replenishment replenishment);
 
+    /**
+     * 获取所有可用设备列表
+     * @param devices
+     * @return
+     */
+    Devices listAllDevices(Devices devices);
+
+    /**
+     * 获取指定设备
+     *
+     * @param deviceId 设备id
+     * @return 结果
+     */
+    DeviceDetail findDeviceById(String deviceId);
+
+    /**
+     * 获取指定货架设备列表
+     *
+     * @param devicesByStorage 报文
+     * @return 结果
+     */
+    Devices findDevicesByStorage(DevicesByStorage devicesByStorage);
+
+    /**
+     * 获取指定监控设备实时数据
+     *
+     * @param deviceId 设备id
+     * @return 结果
+     */
+    FindDeviceData findDeviceData(String deviceId);
+
+    /**
+     * 获取指定监控设备历史数据
+     *
+     * @param historyData 报文
+     * @return 结果
+     */
+    FindDeviceData findDeviceHistoryData(HistoryData historyData);
 }

+ 115 - 12
ruoyi-plugin/src/main/java/com/ruoyi/ccb/service/impl/CcbHttpServiceImpl.java

@@ -16,14 +16,12 @@ import com.ruoyi.reportManagement.domain.TWhgenleg;
 import com.ruoyi.warehouseBusiness.domain.TWarehousebillsitems;
 import com.ruoyi.warehouseBusiness.service.IWarehouseBillsCcbService;
 import lombok.AllArgsConstructor;
+import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -152,7 +150,7 @@ public class CcbHttpServiceImpl implements CcbHttpService {
     @Override
     @Transactional(rollbackFor = Exception.class)
     public InOutCargoR inCargoReq(InOutCargo inOutCargo) {
-        List<TWarehousebillsitems> items = convert(inOutCargo.getCargos());
+        List<TWarehousebillsitems> items = convert(inOutCargo.getCargos(), inOutCargo.getUserName());
         AjaxResult result = ccbService.inAndOutStock("SJRK", items);
 
         InOutCargoR inOutCargoR = new InOutCargoR();
@@ -170,7 +168,7 @@ public class CcbHttpServiceImpl implements CcbHttpService {
 
     @Override
     public InOutCargoR outCargoReq(InOutCargo inOutCargo) {
-        List<TWarehousebillsitems> items = convert(inOutCargo.getCargos());
+        List<TWarehousebillsitems> items = convert(inOutCargo.getCargos(), inOutCargo.getUserName());
         AjaxResult result = ccbService.inAndOutStock("SJCK", items);
 
         InOutCargoR inOutCargoR = new InOutCargoR();
@@ -189,14 +187,21 @@ public class CcbHttpServiceImpl implements CcbHttpService {
 
     @Override
     public Page syncOrg(SyncOrg syncOrg) {
-        Page page = syncOrg.getPage();
-        if (ObjectUtil.isNull(page)) {
-            page = new Page();
+        System.out.println("请求参数" + syncOrg);
+        Page page = new Page();
+        if (ObjectUtil.isNull(syncOrg.getPage().getPageNo())) {
             page.setPageNo(1);
+        } else {
+            page.setPageNo(syncOrg.getPage().getPageNo());
+        }
+        if (ObjectUtil.isNull(syncOrg.getPage().getPageSize())) {
             page.setPageSize(10);
+        } else {
+            page.setPageSize(syncOrg.getPage().getPageSize());
         }
+        Integer pageNum = page.getPageNo() * page.getPageSize();
+        List<Map<String, Object>> orgList = ccbService.getSyncOrg(pageNum, page.getPageSize(), syncOrg.getRegisterAfter());
 
-        List<Map<String, Object>> orgList = ccbService.getSyncOrg(page.getPageNo(), page.getPageSize(), syncOrg.getRegisterAfter());
         page.setTotalRecords(new PageInfo<>(orgList).getTotal());
 
         List<SyncedOrg> orgListR = orgList.stream()
@@ -599,18 +604,116 @@ public class CcbHttpServiceImpl implements CcbHttpService {
         return replenishmentR;
     }
 
+
+    /**
+     * 获取所有可用设备列表
+     *
+     * @param devices
+     * @return
+     */
+    @Override
+    public Devices listAllDevices(Devices devices) {
+        if (ObjectUtil.isNull(devices.getPageNo())){
+            devices.setPageNo(1);
+        }
+        if (ObjectUtil.isNull(devices.getPageSize())){
+            devices.setPageSize(10);
+        }
+        List<DeviceDetail> devicesDetailList = DeviceDetail.date();
+        Devices devices1 = new Devices();
+        devices1.setContent(devicesDetailList);
+        devices1.setPageNo(devices.getPageNo());
+        devices1.setPageSize(devices.getPageSize());
+        devices1.setTotalRecords((long) devicesDetailList.size());
+        return devices1;
+    }
+
+    /**
+     * 获取指定设备
+     *
+     * @param deviceId 设备id
+     * @return 结果
+     */
+    @Override
+    public DeviceDetail findDeviceById(String deviceId) {
+        List<DeviceDetail> devicesDetailList = DeviceDetail.date();
+        Optional<DeviceDetail> devicesDetail = devicesDetailList.stream().filter(item -> item.getDeviceId().equals(deviceId)).findFirst();
+        DeviceDetail detail = new DeviceDetail();
+        BeanUtils.copyProperties(devicesDetail.get(), detail);
+        return detail;
+    }
+
+    /**
+     * 获取指定货架设备列表
+     *
+     * @param devicesByStorage 报文
+     * @return 结果
+     */
+    @Override
+    public Devices findDevicesByStorage(DevicesByStorage devicesByStorage) {
+        if (ObjectUtil.isNull(devicesByStorage.getPage().getPageNo())){
+            devicesByStorage.getPage().setPageNo(1);
+        }
+        if (ObjectUtil.isNull(devicesByStorage.getPage().getPageSize())){
+            devicesByStorage.getPage().setPageSize(10);
+        }
+        List<DeviceDetail> devicesDetailList = DeviceDetail.date();
+        List<DeviceDetail> deviceDetails = devicesDetailList.stream().filter(item -> item.getDeviceLocationCode().equals(devicesByStorage.getDeviceLocationCode())).collect(Collectors.toList());
+        Devices devices = new Devices();
+        devices.setContent(deviceDetails);
+        devices.setPageNo(devicesByStorage.getPage().getPageNo());
+        devices.setPageSize(devicesByStorage.getPage().getPageSize());
+        devices.setTotalRecords((long) deviceDetails.size());
+        return devices;
+    }
+
+    /**
+     * 获取指定监控设备实时数据
+     *
+     * @param deviceId 设备id
+     * @return 结果
+     */
+    @Override
+    public FindDeviceData findDeviceData(String deviceId) {
+        List<DevicesDetail> devicesDetailList = DevicesDetail.date();
+        List<DevicesDetail> devicesDetail = devicesDetailList.stream().filter(item -> item.getDeviceId().equals(deviceId)).collect(Collectors.toList());
+
+        FindDeviceData findDeviceData = new FindDeviceData();
+        findDeviceData.setUrl("");
+        findDeviceData.setDeviceId(devicesDetail);
+        return findDeviceData;
+    }
+
+    /**
+     * 获取指定监控设备历史数据
+     *
+     * @param historyData 报文
+     * @return 结果
+     */
+    @Override
+    public FindDeviceData findDeviceHistoryData(HistoryData historyData) {
+        List<DevicesDetail> devicesDetailList = DevicesDetail.date();
+        List<DevicesDetail> devicesDetail = devicesDetailList.stream().filter(item -> item.getDeviceId().equals(historyData.getDeviceId())).collect(Collectors.toList());
+
+        FindDeviceData findDeviceData = new FindDeviceData();
+        findDeviceData.setUrl("");
+        findDeviceData.setDeviceId(devicesDetail);
+        return findDeviceData;
+    }
+
     /**
      * 数据转换
      *
      * @param cargos 出入库数据
      * @return 结果
      */
-    private List<TWarehousebillsitems> convert(List<CargoDetail> cargos) {
+    private List<TWarehousebillsitems> convert(List<CargoDetail> cargos, String userName) {
         List<TWarehousebillsitems> items = new ArrayList<>();
         for (CargoDetail cargo : cargos) {
             TWarehousebillsitems item = new TWarehousebillsitems();
             item.setCargoNo(cargo.getCargoNo());
-            item.setCargoBelong(cargo.getCargoBelong());
+            item.setCargoName(cargo.getCargoName());
+            item.setCargoBelong(userName);
             item.setfMblno(cargo.getBlNumber());
             item.setfPackagespecs(cargo.getSpeci());
             item.setfOriginalbillno(cargo.getBlNumber());

+ 1 - 1
ruoyi-plugin/src/main/java/com/ruoyi/ccb/service/impl/CcbServiceImpl.java

@@ -344,4 +344,4 @@ public class CcbServiceImpl implements CcbService {
         return items;
     }
 
-}
+}

+ 9 - 2
ruoyi-warehouse/src/main/java/com/ruoyi/approvalFlow/service/impl/AuditPathsServiceImpl.java

@@ -3,6 +3,7 @@ package com.ruoyi.approvalFlow.service.impl;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.ruoyi.approvalFlow.domain.*;
 import com.ruoyi.approvalFlow.domain.dto.AppAuditItemDTO;
 import com.ruoyi.approvalFlow.domain.enums.AuditStateEnum;
@@ -1338,8 +1339,10 @@ public class AuditPathsServiceImpl implements IAuditPathsService {
         List<Map<String, Object>> balanceList = new ArrayList<>();
 
         for (Map<String, Object> map : mapList) {
-            //计算出库总件数
-            fQty = (long) map.get("fPlanqty") + fQty;
+            if (ObjectUtils.isNotNull(map.get("fPlanqty"))){
+                //计算出库总件数
+                fQty = Long.parseLong(map.get("fPlanqty").toString()) + fQty;
+            }
             //计算出库总毛重
             fGrossweight = fGrossweight.add((BigDecimal) map.get("fPlangrossweight"));
             //计算出库总净重
@@ -1367,6 +1370,10 @@ public class AuditPathsServiceImpl implements IAuditPathsService {
         tWarehouseBillsR.setfGrossweight(fGrossweight);
         tWarehouseBillsR.setfNetweight(fNetweight);
 
+        tWarehouseBillsR.setBalanceList(balanceList);
+
+        tWarehouseBillsR.setCustomerList(customerList);
+
         // 查询订单附件
         List<TEnclosure> tEnclosureList = tEnclosureMapper.selectTEnclosureByPId(tWarehousebills.getfId());
         if (CollectionUtils.isNotEmpty(tEnclosureList)) {

+ 2 - 0
ruoyi-warehouse/src/main/java/com/ruoyi/basicData/mapper/TGoodsMapper.java

@@ -93,4 +93,6 @@ public interface TGoodsMapper {
 
     public TGoods getGoodsByNo(String fNo);
 
+    public TGoods getGoodsByName(String fName);
+
 }

+ 11 - 0
ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/domain/TWarehousebillsitems.java

@@ -379,6 +379,17 @@ public class TWarehousebillsitems extends BaseEntity {
 
     private String cargoNo;
 
+
+    private String cargoName;
+
+    public String getCargoName() {
+        return cargoName;
+    }
+
+    public void setCargoName(String cargoName) {
+        this.cargoName = cargoName;
+    }
+
     private String cargoBelong;
 
     private String warehouseNo;

+ 1 - 1
ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/service/IWarehouseBillsCcbService.java

@@ -108,4 +108,4 @@ public interface IWarehouseBillsCcbService {
      * @return  结果
      */
     int cargosRF(TWhgenleg stock, String userName);
-}
+}

+ 130 - 27
ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/service/impl/TWarehouseBillsServiceImpl.java

@@ -7,7 +7,6 @@ import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
-import com.github.pagehelper.PageHelper;
 import com.ruoyi.approvalFlow.domain.AuditItems;
 import com.ruoyi.approvalFlow.mapper.AuditItemsMapper;
 import com.ruoyi.approvalFlow.mapper.AuditItemsUsersMapper;
@@ -24,8 +23,6 @@ import com.ruoyi.common.core.domain.entity.SysDictData;
 import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.core.domain.entity.TWarehouse;
 import com.ruoyi.common.core.domain.model.LoginUser;
-import com.ruoyi.common.core.page.PageDomain;
-import com.ruoyi.common.core.page.TableSupport;
 import com.ruoyi.common.exception.BaseException;
 import com.ruoyi.common.exception.StorageFeeException;
 import com.ruoyi.common.exception.WarehouseException;
@@ -33,7 +30,6 @@ import com.ruoyi.common.utils.*;
 import com.ruoyi.common.utils.ip.AddressUtils;
 import com.ruoyi.common.utils.poi.DrawExcel;
 import com.ruoyi.common.utils.poi.ExcelUtils;
-import com.ruoyi.common.utils.sql.SqlUtil;
 import com.ruoyi.finance.domain.TFeeDo;
 import com.ruoyi.finance.mapper.TFeeDoMapper;
 import com.ruoyi.quotation.domain.TSeaprice;
@@ -362,9 +358,9 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
         tWarehousebillsfees.setfPid(fId);
         List<TWarehousebillsfees> warehousebillsfeesDr = new ArrayList<>();
         List<TWarehousebillsfees> warehousebillsfeesCr = new ArrayList<>();
-        List<Map<String,Object>> warehousebillsfees = tWarehousebillsfeesMapper.selectTWarehousebillsfeesList1(tWarehousebillsfees);
+        List<Map<String, Object>> warehousebillsfees = tWarehousebillsfeesMapper.selectTWarehousebillsfeesList1(tWarehousebillsfees);
         if (StringUtils.isNotEmpty(warehousebillsfees)) {
-            for (Map<String,Object> fees : warehousebillsfees) {
+            for (Map<String, Object> fees : warehousebillsfees) {
                 String toJSON = JSONObject.toJSONString(fees);
                 TWarehousebillsfees tWarehousebillsfees_ = JSONObject.toJavaObject(JSON.parseObject(toJSON), TWarehousebillsfees.class);
                 if ("C".equals(fees.get("fDc"))) {
@@ -3018,6 +3014,13 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
         return tWarehouseBillsMapper.ruoYiVersionOrderList(tWarehouseBills);
     }
 
+    /**
+     * 凯和提货接口
+     *
+     * @param tWarehouseBills
+     * @param loginUser
+     * @return
+     */
     @Override
     public AjaxResult ruoYiVersionOrderListNew(TWarehouseBills tWarehouseBills, LoginUser loginUser) {
         List<Map<String, Object>> result = tWarehouseBillsMapper.ruoYiVersionOrderList(tWarehouseBills);
@@ -3026,7 +3029,52 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
             for (Map<String, Object> map : result) {
                 // 新建实体
                 ShipperDataVo dataVo = new ShipperDataVo();
-                dataVo.setBillOfLadingNo((String) map.get("fBillno"));
+                dataVo.setBillOfLadingNo((String) map.get("fMblno"));//提单号*
+                dataVo.setOrderEnterprise((String) map.get("corpName"));//预约企业全称*
+                dataVo.setOrderEnterpriseNo((String) map.get("shipAgentNo"));//预约企业社会统一编码
+                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("91370202MA3UG1T04A");//换单企业社会统一编码
+                dataVo.setContEnterprise("青岛凯和志成物流有限公司");//押箱企业全称(负责换单的船公司、船代在云港通注册时填写的社会统一编码)
+                dataVo.setContEnterpriseNo("91370202MA3UG1T04A");//押箱企业社会统一编码(负责押箱的船公司、船代、场站押箱点在云港通注册时填写的社会统一编码)
+                dataVo.setSendEnterprise("青岛凯和志成物流有限公司");//发送方全称*
+                dataVo.setSendType("2");//发送方类型(船代或船公司)1-船代,2-船公司,3-省电子口岸*
+                dataVo.setSwitchBillPerson("凯和");//换单操作员姓名*
+                dataVo.setDeliveryClause((String) map.get("fServiceitems") + (String) map.get("fDestportMode"));//交付条款
+                dataVo.setContractNo((String) map.get("contractNo"));//合同号*
+                dataVo.setBillType("2");//提单类型*
+                dataVo.setOceanFreight("");//到付海运费*
+                dataVo.setCurrency("CNY");//币种(有到付海运费时必填)*
+                dataVo.setShipCompany((String) map.get("vslName"));//船公司全称*
+                dataVo.setXsgsm("khzc");//箱属公司码(船公司代码)
+                dataVo.setImportZone("QDYG");//进口关区(港代码)
+                dataVo.setFirstTrans((String) map.get("fName"));//第一程运输*
+                dataVo.setTradeFlag("N");//内外贸*
+                dataVo.setMtdm("QDYG");//码头代码*
+                dataVo.setLoadingPort((String) map.get("loadportName"));//起运港*
+                dataVo.setDischargePort((String) map.get("destportName"));//卸货港*
+                dataVo.setDestination((String) map.get("destportName"));//目的地*
+                dataVo.setDischargePlace((String) map.get("destportName"));//卸货地点*
+                dataVo.setArrivalDatetime(StringUtils.nowTimeStr(map.get("fAta")));//到达日期*
+                dataVo.setBillMark("fMarks");//提单唛头*
+                dataVo.setVesselNameCn((String) map.get("vslName"));//中文船名*
+                dataVo.setVesselNameEn((String) map.get("vesselNameEn"));//英文船名*
+                dataVo.setVoyageNumber((String) map.get("voyNo"));//海关航次*
+                dataVo.setImo((String) map.get("imo"));//船舶IMO号*
+                dataVo.setGoodsName((String) map.get("goodsName"));//货名*
+                dataVo.setPackages("0");//件数
+                dataVo.setPackagesUnit("pgs");//件数单位
+                dataVo.setWeight("0");//重量
+                dataVo.setWeightUnit("KGS");//重量单位
+                dataVo.setVolume("0");//体积
+                dataVo.setVolumeUnit("CBM");//体积单位
+                dataVo.setTransferRemark((String) map.get("remark"));//备注*
+                dataVo.setConDescribe((String) map.get("fNo"));//集装箱数量箱型描述*
+                dataVo.setLclType("0");//拼箱类型*
+                /*dataVo.setBillOfLadingNo((String) map.get("fMblno"));//提单号*
                 dataVo.setOrderEnterprise((String) map.get("corpName"));
                 dataVo.setOrderEnterpriseNo("91370220334191898X");
                 dataVo.setConsignee((String) map.get("fConsigneername"));
@@ -3062,9 +3110,6 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
                 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("吨");
@@ -3074,8 +3119,8 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
                 dataVo.setVolumeUnit("CBM");
                 dataVo.setTransferRemark("");
                 dataVo.setConDescribe((String) map.get("fNo"));
-                dataVo.setLclType("0");
-                List<ShipperContList> contLists = new ArrayList<>();
+                dataVo.setLclType("0");*/
+                List<ShipperContList> contLists = new ArrayList<>();//箱子列表
                 //配箱信息
                 TWarehousebillsCntritems warehousebillsCntritems = new TWarehousebillsCntritems();
                 warehousebillsCntritems.setfPid(Long.valueOf(map.get("fId").toString()));
@@ -3113,30 +3158,55 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
                 dataVo.setContlist(contLists);
                 // list.add(dataVo);
                 String json = JSONObject.toJSONString(dataVo);
-                //String jsonStr = JSONObject.toJSONString(dataVo);
-                // 请求路径 (测试)
+
+                System.out.println("凯和提单请求数据=" + json);
+                //测试
+                /*// 请求路径
                 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> hashMap = new HashMap<>();
                 hashMap.put("customerCode", "A00001");
                 hashMap.put("data", json);
-                hashMap.put("reqTime", StringUtils.nowTimeStr());
                 //获取数字签名所需的数据
                 String formatUrlMap = TWarehouseBillsServiceImpl.formatUrlMap(hashMap, false, false);
                 //获取数字签名
                 String privateKey = "MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAKkgGJtjBAHHXylZ7SjHiTRf4uU/R8uzEnx4YJgAdMMEcBMAgsdXpkMjuVPeMzksHpWTfpdhnf307l2lE4NgZ2txUJZivAQDP9MquH4jQDym0zPLjXGPYykxO0FqQdIYcjXM9doygz5GcXtTGQDz+6Btz4XWBQC18mOsygaxa6qpAgMBAAECgYA58z17QNpGocIBsUaKCpUA1ToxwxUevyU+cSDn9IANsp+UY0BsfaQCrWL7Uc/Lb0qrhfaCeHhiZGKow7+D7KyCm/DynU7WcW0Z0JLlG2nwQBT/Opwg2WDF7wHnlf0Y5QmArZ8ioabagKWBTyJr358xCC3NNZ8AYQB5ToDdYXOO4QJBAPKieA0v0pUii/3lnPDs83IxMEDy9rAW5OsPzt/De5Rk8k3TwN9kJcrv6toVcU3OsZWqkLy9CvBmn7X05otlp0sCQQCycQfT2Ad5kLN06OKs0Y6WEQNFtW+XgSu+ X7is6feklUUOmAS0UwhYfClFoB5Ddija5MgwZeWJtWr2zsnYrLlbAkBDsSglJa5uhRDhaOn8HV9eAHMh66b/QaPkIKjqrLMRl4gyRl2M9XfFwmGXLlxKBNxukQOIZIVkxHzSWtznDxk5AkARfE3+Dk89NFbBgAimUqqcPfKKJCtZN0koEI0yNIMV16K6uV7MpM5OjWwl7HjKt4ttV7neND337pUatkzFNLe9AkEA7EzVn6WL45D4gaDwp6sRGTOMuyC9GyE1U4Vi 4eRLBpTGdPJTJYz3Pgg4Pr0Sp+1x7bxOaQ/V1XyiL3AMxKfWnw==";
                 String sign = TWarehouseBillsServiceImpl.sign(formatUrlMap, privateKey, "UTF-8");
-
+                //请求时间
+                Date date = new Date();
+                SimpleDateFormat sdf3 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+                String reqTime = sdf3.format(date);
                 MultiValueMap<String, String> params = new LinkedMultiValueMap<>();
                 params.add("customerCode", "A00001");
                 params.add("sign", sign);
-                params.add("reqTime", StringUtils.nowTimeStr());
+                params.add("reqTime", reqTime);
+                params.add("data", json);
+                TResponseVo responseVo = sendPostRequest(postUrl, params);*/
+
+
+                // 请求路径 (正式)
+                String postUrl = "https://api.qingdao-port.net/container/web/wlds_eir/edo/shipagent/insertEdo.do";
+                // 请求参数
+                Map<String, String> hashMap = new HashMap<>();
+                hashMap.put("customerCode", "91370202MA3UG1T04A");
+                hashMap.put("data", json);
+                //获取数字签名所需的数据
+                String formatUrlMap = TWarehouseBillsServiceImpl.formatUrlMap(hashMap, false, false);
+                //获取数字签名
+                String privateKey = "MIICdQIBADANBgkqhkiG9w0BAQEFAASCAl8wggJbAgEAAoGBALTqHZGgkrle6KajfTjZfYDiI5IqSQzch9mEre5rXE3zpf26oOVXRi+qXoz6wRLetqp+5fIS0UNb39ntSoamKXNU1pOIwNlfPIBc3tSCfeZxgOgl1Ag01hJQkluudGqOaRvBQYqJrPjui8j6tPgKwz85OdqTNj3SEiUf5Ls+4FkRAgMBAAECgYBwkI6PUrKYRjZJoMXEPoa5T3tEcaz8JKceL1CtXP2UvvnT8nAz4maYN9AWtdq16/8J/GUEhrLPz3Vruho5x19YCGX/eh8c8fLYA4drsBNtfwWKpq36ZofAe4wK3v0j5KtsKxl8T86qMME1Yf3bU+P5kWAoryXEZz0wlZ1B6zQ68QJBANp7w7tYj3L8rxW5/2Z6rTUo8Cd8mCw50D42KxPAW5kE+1URFfxeSnPKzEiAQb9VAoQp+vDJ6JVA0MtwUPqI1j0CQQDT+t8R4Nu3tA5JIADW1YQKyNMyTQ88SLdMwvJDWbsI6FfnnJLA+2wOHBZFiaO4MIvQlJW6M5t58X4zDngDU09lAkA3MYTk0x6KAeOJLY+jp+IRx+HDV+ppYcGFtdF0D+gT4/pKJyLSuk88qUKqHhx95U/Za3GFWrxy2AjnG9yZLfBRAkAMzwPbmLKuDvst//kNAinQXQIl7/ITunEY+k6ZMzrR9vgYzqUvdAG7eIb//Kkf4A8Ss2e4sJWccLMncqBd0xLhAkBwD6uWGq4n+/fr+Dc1yjEYexKoobA1dUm3Igo2ovjz56GFKSLK6OdS/VGq4GsmDNDXV6NWBJTFUGJq4Q93ByOw";
+                String sign = TWarehouseBillsServiceImpl.sign(formatUrlMap, privateKey, "UTF-8");
+                //请求时间
+                Date date = new Date();
+                SimpleDateFormat sdf3 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+                String reqTime = sdf3.format(date);
+                MultiValueMap<String, String> params = new LinkedMultiValueMap<>();
+                params.add("customerCode", "91370202MA3UG1T04A");
+                params.add("sign", sign);
+                params.add("reqTime", reqTime);
                 params.add("data", json);
                 TResponseVo responseVo = sendPostRequest(postUrl, params);
                 Thread.sleep(2000);
-                System.err.println(responseVo);
+                System.err.println("凯和提货接口返回信息=" + responseVo);
                 if (!responseVo.isSuccess()) {
                     throw new WarehouseException(responseVo.getMessage().get("msg"));
                 }
@@ -4633,7 +4703,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
                             .build();
 
                     String s;
-                    try {
+                  /*  try {
                         s = Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).string();
                     } catch (IOException e) {
                         TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
@@ -4644,7 +4714,7 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
                     if (!CcbConstants.SUCCESS.equals(result.getString("result"))) {
                         TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                         return AjaxResult.error("请求银行反馈失败," + result.getString("reason"));
-                    }
+                    }*/
                 }
             }
         }
@@ -9492,10 +9562,11 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
             });
         }
         String json = JSONObject.toJSONString(receipt);
-        // 请求路径 (测试)
+
+        System.out.println("凯和设备请求数据=" + json);
+        //测试
+/*        // 请求路径
         String postUrl = "https://api.qingdao-port.net/container/web/eir/eir/Shipping/insertEir.do";
-        // 请求路径 (正式)
-        //String postUrl = "https://api.qingdao-port.net/container/web/wlds_eir/edo/shipagent/insertEir.do";
         Map<String, String> map = new HashMap<>();
         map.put("customerCode", "A00001");
         map.put("data", json);
@@ -9504,12 +9575,44 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
         //获取数字签名
         String privateKey = "MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAKkgGJtjBAHHXylZ7SjHiTRf4uU/R8uzEnx4YJgAdMMEcBMAgsdXpkMjuVPeMzksHpWTfpdhnf307l2lE4NgZ2txUJZivAQDP9MquH4jQDym0zPLjXGPYykxO0FqQdIYcjXM9doygz5GcXtTGQDz+6Btz4XWBQC18mOsygaxa6qpAgMBAAECgYA58z17QNpGocIBsUaKCpUA1ToxwxUevyU+cSDn9IANsp+UY0BsfaQCrWL7Uc/Lb0qrhfaCeHhiZGKow7+D7KyCm/DynU7WcW0Z0JLlG2nwQBT/Opwg2WDF7wHnlf0Y5QmArZ8ioabagKWBTyJr358xCC3NNZ8AYQB5ToDdYXOO4QJBAPKieA0v0pUii/3lnPDs83IxMEDy9rAW5OsPzt/De5Rk8k3TwN9kJcrv6toVcU3OsZWqkLy9CvBmn7X05otlp0sCQQCycQfT2Ad5kLN06OKs0Y6WEQNFtW+XgSu+ X7is6feklUUOmAS0UwhYfClFoB5Ddija5MgwZeWJtWr2zsnYrLlbAkBDsSglJa5uhRDhaOn8HV9eAHMh66b/QaPkIKjqrLMRl4gyRl2M9XfFwmGXLlxKBNxukQOIZIVkxHzSWtznDxk5AkARfE3+Dk89NFbBgAimUqqcPfKKJCtZN0koEI0yNIMV16K6uV7MpM5OjWwl7HjKt4ttV7neND337pUatkzFNLe9AkEA7EzVn6WL45D4gaDwp6sRGTOMuyC9GyE1U4Vi 4eRLBpTGdPJTJYz3Pgg4Pr0Sp+1x7bxOaQ/V1XyiL3AMxKfWnw==";
         String sign = TWarehouseBillsServiceImpl.sign(formatUrlMap, privateKey, "UTF-8");
+        //请求时间
+        Date date = new Date();
+        SimpleDateFormat sdf3 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        String reqTime = sdf3.format(date);
         // 请求参数
         MultiValueMap<String, String> params = new LinkedMultiValueMap<>();
         params.add("customerCode", "A00001");
         params.add("data", json);
         params.add("sign", sign);
+        params.add("reqTime", reqTime);
+        TResponseVo responseVo = sendPostRequest(postUrl, params);*/
+
+
+        // 请求路径 (正式)
+        String postUrl = "https://api.qingdao-port.net/container/web/wlds_eir/eir/Shipping/insertEir.do";
+        Map<String, String> map = new HashMap<>();
+        map.put("customerCode", "91370202MA3UG1T04A");
+        map.put("data", json);
+        //获取数字签名所需的数据
+        String formatUrlMap = TWarehouseBillsServiceImpl.formatUrlMap(map, false, false);
+        //获取数字签名
+        String privateKey = "MIICdQIBADANBgkqhkiG9w0BAQEFAASCAl8wggJbAgEAAoGBALTqHZGgkrle6KajfTjZfYDiI5IqSQzch9mEre5rXE3zpf26oOVXRi+qXoz6wRLetqp+5fIS0UNb39ntSoamKXNU1pOIwNlfPIBc3tSCfeZxgOgl1Ag01hJQkluudGqOaRvBQYqJrPjui8j6tPgKwz85OdqTNj3SEiUf5Ls+4FkRAgMBAAECgYBwkI6PUrKYRjZJoMXEPoa5T3tEcaz8JKceL1CtXP2UvvnT8nAz4maYN9AWtdq16/8J/GUEhrLPz3Vruho5x19YCGX/eh8c8fLYA4drsBNtfwWKpq36ZofAe4wK3v0j5KtsKxl8T86qMME1Yf3bU+P5kWAoryXEZz0wlZ1B6zQ68QJBANp7w7tYj3L8rxW5/2Z6rTUo8Cd8mCw50D42KxPAW5kE+1URFfxeSnPKzEiAQb9VAoQp+vDJ6JVA0MtwUPqI1j0CQQDT+t8R4Nu3tA5JIADW1YQKyNMyTQ88SLdMwvJDWbsI6FfnnJLA+2wOHBZFiaO4MIvQlJW6M5t58X4zDngDU09lAkA3MYTk0x6KAeOJLY+jp+IRx+HDV+ppYcGFtdF0D+gT4/pKJyLSuk88qUKqHhx95U/Za3GFWrxy2AjnG9yZLfBRAkAMzwPbmLKuDvst//kNAinQXQIl7/ITunEY+k6ZMzrR9vgYzqUvdAG7eIb//Kkf4A8Ss2e4sJWccLMncqBd0xLhAkBwD6uWGq4n+/fr+Dc1yjEYexKoobA1dUm3Igo2ovjz56GFKSLK6OdS/VGq4GsmDNDXV6NWBJTFUGJq4Q93ByOw";
+
+        String sign = TWarehouseBillsServiceImpl.sign(formatUrlMap, privateKey, "UTF-8");
+
+        //请求时间
+        Date date = new Date();
+        SimpleDateFormat sdf3 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        String reqTime = sdf3.format(date);
+
+        // 请求参数
+        MultiValueMap<String, String> params = new LinkedMultiValueMap<>();
+        params.add("customerCode", "91370202MA3UG1T04A");
+        params.add("data", json);
+        params.add("sign", sign);
+        params.add("reqTime", reqTime);
         TResponseVo responseVo = sendPostRequest(postUrl, params);
+        System.err.println("凯和设备交接单接口返回信息=" + responseVo);
         if (!responseVo.isSuccess()) {
             throw new WarehouseException(responseVo.getMessage().get("msg"));
         }
@@ -9547,14 +9650,14 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
                 //查看商品信息
                 TGoods tGoods = tGoodsMapper.selectTGoodsById(warehousebillsitems.getfGoodsid());
                 //判断商品预警库存是否不为0  true 继续判断是否小于预警库存  false 直接返回
-                if(stockWarning.compareTo(tGoods.getStockWarning()) != 0){
+                if (stockWarning.compareTo(tGoods.getStockWarning()) != 0) {
                     //判断结余净重、出库净重、商品信息是否为空
                     if (ObjectUtil.isNotNull(warehousebillsitems.getfNetweight()) && ObjectUtil.isNotNull(tGoods) && ObjectUtil.isNotNull(warehousebillsitems.getfPlannetweight())) {
                         //计算库存剩余净重
                         BigDecimal surplus = warehousebillsitems.getfPlannetweight().subtract(warehousebillsitems.getfNetweight());
                         //判断库存剩余净重是否小于等于库存预警重量  如果是返回预警信息   (=-1小于 =0为等于  =1为大于)
                         if (surplus.compareTo(tGoods.getStockWarning()) != 1) {
-                            return AjaxResult.error("品名为" + tGoods.getfName() + "提单号为" + warehousebillsitems.getfMblno() + "库存量已小于等于预警量!");
+                            return AjaxResult.success("品名=" + tGoods.getfName() + "、提单号=" + warehousebillsitems.getfMblno() + "库存量已达到库存预警!");
                         }
                     }
                 }

+ 19 - 12
ruoyi-warehouse/src/main/java/com/ruoyi/warehouseBusiness/service/impl/WarehouseBillsCcbServiceImpl.java

@@ -65,9 +65,16 @@ public class WarehouseBillsCcbServiceImpl implements IWarehouseBillsCcbService {
                 return AjaxResult.error("客户不存在!");
             }
 
-            TGoods goods = goodsMapper.getGoodsByNo(item.getCargoNo());
+            TGoods goods = goodsMapper.getGoodsByName(item.getCargoName());
+            TGoods goods1 = new TGoods();
             if (ObjectUtil.isNull(goods)) {
-                return AjaxResult.error("商品不存在!");
+//                String[] arr = item.getCargoName().split(":");
+                goods1.setfName(item.getCargoName());
+                goods1.setfNo(item.getCargoNo());
+                goodsMapper.insertTGoods(goods1);
+//                return AjaxResult.error("商品不存在!");
+            }else{
+                goods1.setfId(goods.getfId());
             }
 
             // 初始化数据
@@ -92,7 +99,7 @@ public class WarehouseBillsCcbServiceImpl implements IWarehouseBillsCcbService {
                 bill.setfTrademodeid(1L);
             }
 
-            bill.setfGoodsid(goods.getfId());
+            bill.setfGoodsid(goods1.getfId());
             bill.setfPlanqty(item.getfPlanqty());
             bill.setfPlangrossweight(item.getfPlangrossweight());
             bill.setfPlannetweight(item.getfPlannetweight());
@@ -126,21 +133,21 @@ public class WarehouseBillsCcbServiceImpl implements IWarehouseBillsCcbService {
                 bill.setfBscorpno(bsCorpNo);
                 bill.setfBusinessType("0");
             } else {
-                TWarehouse warehouse = warehouseMapper.getWarehouseByNo(item.getWarehouseNo());
+               /* TWarehouse warehouse = warehouseMapper.getWarehouseByNo(item.getWarehouseNo());
                 if (ObjectUtil.isNull(warehouse)) {
                     return AjaxResult.error("仓库不存在!");
                 }
 
-                bill.setfWarehouseid(warehouse.getfId());
+                bill.setfWarehouseid(warehouse.getfId());*/
                 bill.setfChargedate(bsDate);
                 bill.setfBusinessType("5");
             }
-
+            bill.setRemark(item.getCargoName());
             billMapper.insertTWarehousebills(bill);
             billId = bill.getfId();
 
             // 从表数据处理
-            item.setfGoodsid(goods.getfId());
+            item.setfGoodsid(goods1.getfId());
             item.setfPid(billId);
             item.setfBillno(billNo);
             item.setfShipper(bill.getfShipper());
@@ -151,7 +158,7 @@ public class WarehouseBillsCcbServiceImpl implements IWarehouseBillsCcbService {
             item.setfBusinessType(1L);
 
             if ("SJCK".equals(billType)) {
-                TWarehouse warehouse = warehouseMapper.getWarehouseByNo(item.getShelvesNo());
+               /* TWarehouse warehouse = warehouseMapper.getWarehouseByNo(item.getShelvesNo());
                 if (ObjectUtil.isNull(warehouse)) {
                     return AjaxResult.error("库区不存在!");
                 }
@@ -171,7 +178,7 @@ public class WarehouseBillsCcbServiceImpl implements IWarehouseBillsCcbService {
                 }
                 item.setfSrcid(stock.getfId());
                 item.setfSrcBsdate(stock.getfBsdate());
-                item.setfChargedate(stock.getfChargedate());
+                item.setfChargedate(stock.getfChargedate());*/
             }
             billItemMapper.insertTWarehousebillsitems(item);
 
@@ -236,8 +243,8 @@ public class WarehouseBillsCcbServiceImpl implements IWarehouseBillsCcbService {
     }
 
     @Override
-    public List<Map<String, Object>> getSyncOrg(Integer page, Integer size, String time) {
-        PageHelper.startPage(page, size);
+    public List<Map<String, Object>> getSyncOrg(Integer pageNum, Integer pageSize, String time) {
+        PageHelper.startPage(pageNum, pageSize);
         return corpMapper.getSyncCorpList(time);
     }
 
@@ -310,4 +317,4 @@ public class WarehouseBillsCcbServiceImpl implements IWarehouseBillsCcbService {
         stock.setfCorpid(corp.getfId());
         return stockMapper.changeBelongTo(stock);
     }
-}
+}

+ 3 - 2
ruoyi-warehouse/src/main/resources/mapper/basicData/TCorpsMapper.xml

@@ -531,11 +531,12 @@
     <select id="getSyncCorpList" parameterType="String" resultType="map">
         select f_id as fId,
                f_no as foreignId,
+               f_name as displayName,
                f_name as userName,
-               uscc,
                f_tel as contractNo,
                f_addr as address,
-               date_format(create_time, '%Y-%m-%d %H:%i:%S') as registrationTime
+               date_format(create_time, '%Y-%m-%d %H:%i:%S') as registrationTime,
+               f_no AS uscc
         from t_corps
         where f_status = 0
             and create_time &gt; #{time}

+ 5 - 0
ruoyi-warehouse/src/main/resources/mapper/basicData/TGoodsMapper.xml

@@ -187,4 +187,9 @@
         where f_no = #{fNo} limit 1
     </select>
 
+    <select id="getGoodsByName" parameterType="String" resultMap="TGoodsResult">
+        <include refid="selectTGoodsVo"/>
+        where f_name = #{fName} limit 1
+    </select>
+
 </mapper>

+ 18 - 7
ruoyi-warehouse/src/main/resources/mapper/warehouseBusiness/TWarehousebillsMapper.xml

@@ -352,9 +352,9 @@
             twfD.f_accamount as fRecycle,
             twfC.f_amount as fDue,
             twfC.f_accamount as fPay,
-            tf.f_apply_money AS fApplyMoney,
-            tf.invoice_no AS invoiceNo,
-            tf.f_accbilldate AS fAccbilldate
+            twfD.f_invamount AS fApplyMoney,
+            twfD.f_invnos AS invoiceNo,
+            twfD.f_invoicing_date AS fAccbilldate
         FROM
             t_warehousebills bill
             LEFT JOIN t_goods g ON g.f_id = bill.f_goodsid
@@ -374,8 +374,11 @@
             f_id,
             f_pid,
             SUM(f_amount) AS f_amount,
-            SUM(f_accamount) AS f_accamount
-            FROM
+            SUM(f_accamount) AS f_accamount,
+            GROUP_CONCAT(f_invnos SEPARATOR ',') AS f_invnos,
+            GROUP_CONCAT(f_invamount SEPARATOR ',') AS f_invamount,
+            GROUP_CONCAT(f_invoicing_date SEPARATOR ',') AS f_invoicing_date
+        FROM
             t_warehousebillsfees
             WHERE f_dc = 'D'
             GROUP BY f_pid
@@ -391,7 +394,6 @@
             WHERE f_dc = 'C'
             GROUP BY f_pid
             ) twfC ON twfC.f_pid = bill.f_id
-            left join t_fee tf on tf.t_mblno = bill.f_mblno
         <where>
             <if test="fTypeid == null or fTypeid == ''">and bill.f_typeid IS NULL</if>
             <if test="fTypeid != null and fTypeid != ''">and bill.f_typeid = #{fTypeid}</if>
@@ -2026,6 +2028,7 @@
         ty.f_no voyNo,
         tw.f_corpid fCorpid,
         tp.f_name corpName,
+        tp.f_no shipAgentNo,
         tw.create_by createBy,
         tw.create_time createTime,
         tw.f_loadportid fLoadportid,
@@ -2130,7 +2133,15 @@
         tw.pick_up_person AS pickUpPerson,
         tw.pick_up_time AS pickUpTime,
         tw.facility_person AS facilityPerson,
-        tw.facility_time AS facilityTime
+        tw.facility_time AS facilityTime,
+        tv.f_ename AS vesselNameEn,
+        tp.f_typeid AS sendType,
+        tp.f_contractno AS contractNo,
+        tv.f_imo AS imo,
+        ta.f_no AS mtdm,
+        tv.f_ower AS shipCompany,
+        tw.f_billtype AS billType,
+        tw.f_paymode AS fPaymode
         FROM
         t_warehousebills tw
         LEFT JOIN t_address ta ON ta.f_id = tw.f_laneid

+ 15 - 13
ruoyi-warehouse/src/main/resources/mapper/warehouseBusiness/TWarehousebillsfeesMapper.xml

@@ -559,13 +559,15 @@
             </if>
             /*判断确认仓库发票*/
             <if test="map.billType == 'FP'">
-                f_invnos = #{map.tFee.fBillno},
-                f_invamount = f_invamount + #{map.tFeeDo.fAmt}
+                f_invnos = #{map.tFee.invoiceNo},
+                f_invamount = f_invamount + #{map.tFeeDo.fAmt},
+                f_invoicing_date = #{map.tFee.fAccbilldate}
             </if>
             /*判断撤销仓库发票*/
             <if test="map.billType == 'FPRevoke'">
-                f_invnos = #{map.tFee.fBillno},
-                f_invamount = f_invamount - #{map.tFeeDo.fAmt}
+                f_invnos = #{map.tFee.invoiceNo},
+                f_invamount = f_invamount - #{map.tFeeDo.fAmt},
+                f_invoicing_date = #{map.tFee.fAccbilldate}
             </if>
         </trim>
         where f_id = #{map.tFeeDo.fSrcid}
@@ -1132,11 +1134,11 @@
         tw.f_warehouseid AS fWarehouseid,
         tw.f_feeUnitid AS fFeeUnitid,
         tw.f_qty AS fQty,
-        tw.f_unitprice AS fQty,
-        tw.f_amount AS fQty,
-        tw.f_currency AS fQty,
-        tw.f_exrate AS fQty,
-        tw.f_taxrate AS fQty,
+        tw.f_unitprice AS fUnitprice,
+        tw.f_amount AS fAmount,
+        tw.f_currency AS fCurrency,
+        tw.f_exrate AS fExrate,
+        tw.f_taxrate AS fTaxrate,
         CASE
         WHEN tw.f_taxrate = 0 THEN
         '0.00%'
@@ -1181,12 +1183,11 @@
         tw.price_date_remarks AS priceDateRemarks,
         tw.f_address_name AS fAddress_name,
         tw.f_address AS fAddress,
-        tf.invoice_no AS fInvnos,
-        tf.f_amtdr AS fInvamount,
-        tf.f_accbilldate AS fInvoicingDate
+        tw.f_invnos AS fInvnos,
+        tw.f_invamount AS fInvamount,
+        tw.f_invoicing_date AS fInvoicingDate
         FROM
         t_warehousebillsfees tw
-        LEFT JOIN t_fee tf ON tw.f_invnos = tf.f_billno
         <where>
             <if test="fPid != null ">and tw.f_pid = #{fPid}</if>
             <if test="fLineno != null ">and tw.f_lineno = #{fLineno}</if>
@@ -1234,6 +1235,7 @@
             <if test="fSrcTypeId != null">and tw.f_src_type_id = #{fSrcTypeId},</if>
             <if test="fAddress != null">and tw.f_address = #{fAddress}</if>
             <if test="fAddressName != null  and fAddressName != ''">and tw.f_address_name = #{fAddressName}</if>
+            GROUP BY tw.f_id
         </where>
     </select>
 </mapper>

+ 4 - 4
ruoyi-warehouse/src/main/resources/mapper/warehouseBusiness/TWarehousebillsitemsMapper.xml

@@ -248,9 +248,9 @@
             item.f_cartype_id AS fCartypeId,
             item.f_dc AS fDc,
             item.create_time AS createTime,
-            tf.f_accbilldate  AS fAccbilldate,
-            tf.invoice_no AS invoiceNo,
-            tf.f_apply_money AS fApplyMoney
+            tf.f_invoicing_date  AS fAccbilldate,
+            tf.f_invnos AS invoiceNo,
+            tf.f_invamount AS fApplyMoney
         FROM
             t_warehousebills w
             LEFT JOIN t_warehousebillsitems item ON item.f_pid = w.f_id
@@ -261,7 +261,7 @@
             LEFT JOIN t_corps f ON f.f_id = item.f_fleet
             LEFT JOIN sys_dict_data l ON l.dict_value = item.f_lntype
             AND l.dict_type = 'ln_way'
-            Left join t_fee tf on tf.t_mblno = w.f_mblno
+            Left join t_warehousebillsfees tf on tf.f_pid = w.f_id
         WHERE
             item.f_pid = #{fPid}
     </select>