Sfoglia il codice sorgente

'销售钢材订单'

HUJIANGUO 3 anni fa
parent
commit
628f8ec637

+ 8 - 0
pom.xml

@@ -94,6 +94,14 @@
             <artifactId>framework</artifactId>
             <version>1.0</version>
         </dependency>
+
+        <!--中交新路的包这个问杨-->
+        <dependency>
+            <groupId>com.ZhongJiaoXingLu</groupId>
+            <artifactId>openapi-sdk</artifactId>
+            <version>6.0</version>
+        </dependency>
+
     </dependencies>
     <build>
         <plugins>

+ 7 - 2
src/main/java/com/steerinfo/dil/controller/OmstruckOrderSeparateController.java

@@ -203,8 +203,13 @@ public class OmstruckOrderSeparateController extends BaseRESTfulController {
 
     @ApiOperation(value = "该车牌号下的所有订单号 以及 订单ID")
     @PostMapping("/getCapacityAllOrder")
-    public RESTfulResult getCapacityAllOrder(String capacityNumber){
-        List<Map<String, Object>> capacityAllOrderList = omstruckOrderSeparateService.getCapacityAllOrder(capacityNumber);
+    public RESTfulResult getCapacityAllOrder(String capacityNumber,String date){
+        Map<String, Object> map = new HashMap<>();
+        map.put("capacityNumber",capacityNumber);
+        if(date != null){
+            map.put("date",date);
+        }
+        List<Map<String, Object>> capacityAllOrderList = omstruckOrderSeparateService.getCapacityAllOrder(map);
         return success(capacityAllOrderList);
     }
 

+ 3 - 1
src/main/java/com/steerinfo/dil/mapper/OmstruckOrderMapper.java

@@ -198,7 +198,7 @@ public interface OmstruckOrderMapper extends IBaseMapper<OmstruckOrder, BigDecim
     Map<String, Object> getInwardOrderMap(BigDecimal orderId);
 
     //通过订单Id查询该订单下所有的物资
-    List<Map<String,Object>> getMaterialMes(@Param("orderId") BigDecimal orderId);
+    List<Map<String,Object>> getMaterialMes(@Param("orderId") BigDecimal orderId, @Param("steelJudge") String steelJudge);
 
     //根据运输订单查询车牌号
     String selectCapacityNumber(BigDecimal orderId);
@@ -334,4 +334,6 @@ public interface OmstruckOrderMapper extends IBaseMapper<OmstruckOrder, BigDecim
     List<Map<String, Object>> getLoadForLoadCarResult(Map<String, Object> map);
     // 查询路段顺序号
     BigDecimal getLineSeq(BigDecimal orderId);
+
+    String getCapacityNumberByCapacityId(BigDecimal capacityNumber);
 }

+ 7 - 0
src/main/java/com/steerinfo/dil/mapper/OmstruckOrderMaterialMapper.java

@@ -4,6 +4,7 @@ import com.steerinfo.dil.model.OmstruckOrder;
 import com.steerinfo.dil.model.OmstruckOrderMaterial;
 import com.steerinfo.framework.mapper.IBaseMapper;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Select;
 
 import java.math.BigDecimal;
@@ -50,4 +51,10 @@ public interface OmstruckOrderMaterialMapper extends IBaseMapper<OmstruckOrderMa
 
     //修改出库实绩
     int updateOutBoundResult(OmstruckOrderMaterial omstruckOrderMaterial);
+
+    //修改出库实绩
+    Map<String, Object> getSaleOrderMaterialNum(@Param("orderId")BigDecimal orderId,@Param("materialId") BigDecimal materialId);
+
+
+    int updateSaleOrderMaterialMes(BigDecimal saleMaterialId, BigDecimal materialNum, BigDecimal newWeight);
 }

+ 1 - 1
src/main/java/com/steerinfo/dil/mapper/OmstruckOrderSeparateMapper.java

@@ -75,7 +75,7 @@ public interface OmstruckOrderSeparateMapper {
 
 
     //查询当前车辆之前所有已完成的订单
-    List<Map<String, Object>> getCapacityAllOrder(String capacityNumber);
+    List<Map<String, Object>> getCapacityAllOrder(Map<String,Object> map);
 
     //查询订单发货日期(订单类型为2)
     Integer getDeliveryDate(Object orderId);

+ 29 - 0
src/main/java/com/steerinfo/dil/mapper/ZJXLUtilMapper.java

@@ -0,0 +1,29 @@
+package com.steerinfo.dil.mapper;
+
+import org.apache.ibatis.annotations.*;
+
+import java.math.BigDecimal;
+
+@Mapper
+public interface ZJXLUtilMapper {
+    //获取区域Id
+    @Select("select DV.VERSION_VALUE from DIL_VERSION DV where DV.VERSION_TYPE = 2")
+    String getAreaId();
+
+    //更新区域ID
+    @Update("update DIL_VERSION DV set DV.VERSION_VALUE = #{areaId}, UPDATE_TIME = SYSDATE where DV.VERSION_TYPE = 2")
+    int updateAreaId(@Param("areaId") String areaId);
+
+    @Select("select VERSION_VALUE from DIL_VERSION where VERSION_TYPE = 3")
+    String getToken();
+
+    @Update("update DIL_VERSION set VERSION_VALUE = #{token}, UPDATE_TIME = SYSDATE where VERSION_TYPE = 3")
+    int updateToken(@Param("token") String token);
+
+    @Select("select seq_QMS_SUB_CAPACITY.nextval from dual")
+    BigDecimal getSubCapacityMaxId();
+
+    int insertSubCapacity(@Param("subCapacityId")BigDecimal subCapacityId, @Param("capacityNumber")String capacityNumber, @Param("resultTotalId")BigDecimal resultTotalId);
+
+    int cancelSubCapacity(@Param("capacityNumber")String capacityNumber);
+}

+ 24 - 5
src/main/java/com/steerinfo/dil/service/impl/OmstruckOrderMaterialServiceImpl.java

@@ -293,14 +293,33 @@ public class OmstruckOrderMaterialServiceImpl implements IOmstruckOrderMaterialS
     public int updateMaterialMes(Map<String, Object> map){
         OmstruckOrderMaterial omstruckOrderMaterial = new OmstruckOrderMaterial();
         List<Map<String,Object>>mapList = (List<Map<String, Object>>) map.get("mapList");
-        for (Map<String, Object>map1:mapList
-             ) {
-            omstruckOrderMaterial.setOrderId(DataChange.dataToBigDecimal(map.get("orderId")));
-            omstruckOrderMaterial.setMaterialId(DataChange.dataToBigDecimal(map1.get("materialId")));
-            omstruckOrderMaterial.setOrderMaterialNumber(DataChange.dataToBigDecimal(map1.get("materialNum")));
+        for (Map<String, Object>map1 : mapList) {
+            BigDecimal orderId = DataChange.dataToBigDecimal(map.get("orderId"));
+            BigDecimal materialId = DataChange.dataToBigDecimal(map1.get("materialId"));
+            BigDecimal materialNum = DataChange.dataToBigDecimal(map1.get("materialNum"));
+            //修改物资子表总理重 通过订单ID找到件数和总理重,算出单件理重
+            Map<String, Object> saleMaterialMes = omstruckOrderMaterialMapper.getSaleOrderMaterialNum(orderId, materialId);
+            BigDecimal saleMaterialId = DataChange.dataToBigDecimal(saleMaterialMes.get("saleMaterialId"));//销售订单存放物资子表id
+            BigDecimal materialWeight = DataChange.dataToBigDecimal(saleMaterialMes.get("materialWeight"));//旧总理重
+            BigDecimal newWeight = null;
+            if(materialWeight.intValue() != 0){ //如果总重量不为0,才进行重量更新
+                BigDecimal orderMaterialNumber = DataChange.dataToBigDecimal(saleMaterialMes.get("orderMaterialNumber"));//旧件数
+                BigDecimal theoreticalWeight = materialWeight.divide(orderMaterialNumber, 4);
+                newWeight = theoreticalWeight.multiply(theoreticalWeight); //得到现有理重
+
+                omstruckOrderMaterial.setOrderMaterialWeight(newWeight);
+            }
+            //修改销售订单物资子表
+            omstruckOrderMaterialMapper.updateSaleOrderMaterialMes(saleMaterialId, materialNum, newWeight);
+
+            //修改订单物资子表 与出库实绩
+            omstruckOrderMaterial.setOrderId(orderId);
+            omstruckOrderMaterial.setMaterialId(materialId);
+            omstruckOrderMaterial.setOrderMaterialNumber(materialNum);
             omstruckOrderMaterial.setUpdateTime(new Date());
             omstruckOrderMaterialMapper.updateMaterialMes(omstruckOrderMaterial);
             omstruckOrderMaterialMapper.updateOutBoundResult(omstruckOrderMaterial);
+
         }
         return 1;
     }

+ 21 - 12
src/main/java/com/steerinfo/dil/service/impl/OmstruckOrderSeparateServiceImpl.java

@@ -496,8 +496,8 @@ public class OmstruckOrderSeparateServiceImpl implements IOmstruckOrderSeparateS
      * @param capacityNumber 车牌号
      * @return 查询当前车辆之前所有已完成的订单号 以及 订单ID
      **/
-    public List<Map<String, Object>> getCapacityAllOrder(String capacityNumber){
-        return omstruckOrderSeparateMapper.getCapacityAllOrder(capacityNumber);
+    public List<Map<String, Object>> getCapacityAllOrder(Map<String,Object>map){
+        return omstruckOrderSeparateMapper.getCapacityAllOrder(map);
     }
 
 
@@ -665,16 +665,25 @@ public class OmstruckOrderSeparateServiceImpl implements IOmstruckOrderSeparateS
         int i = omstruckOrderSeparateMapper.closeInwardOrder(orderId, sqe);
         Map<String, Object> map = omstruckOrderMapper.selectInwardTimeByOrderId(new BigDecimal(orderId));
         //根据运输订单id查找需求日期是否超过一个月
-        if(map != null){
-            Date dueDate = (Date) map.get("dueTime");
-            //当前时间小于截至日期
-            long DueTime = dueDate.getTime() + 86400000;
-            //获取当前时间
-            Date date = new Date();
-            long nowTime = date.getTime();
-            if (nowTime < DueTime){
-                //推送
-                i += addNewTransportOrder(new BigDecimal(orderId));
+        if (map != null) {
+            if (DataChange.dataToBigDecimal(map.get("orderType")).intValue() == 11) {
+                Date dueDate = (Date) map.get("dueTime");
+                //当前时间小于截至日期
+                long DueTime = dueDate.getTime() + 86400000;
+                //获取当前时间
+                Date date = new Date();
+                long nowTime = date.getTime();
+                if (nowTime < DueTime) {
+                    //推送
+                    i += addNewTransportOrder(new BigDecimal(orderId));
+                }
+            }
+            if (DataChange.dataToBigDecimal(map.get("orderType")).intValue() == 15 || DataChange.dataToBigDecimal(map.get("orderType")).intValue() == 16) {
+                Integer planEnableStatus = DataChange.dataToBigDecimal(map.get("planEnableStatus")).intValue();
+                if (planEnableStatus == 1) {
+                    //推送
+                    i += addNewTransportOrder(new BigDecimal(orderId));
+                }
             }
         }
         //根据订单ID查找需求里面的承运范围和物资

+ 53 - 18
src/main/java/com/steerinfo/dil/service/impl/OmstruckOrderServiceImpl.java

@@ -65,6 +65,12 @@ public class OmstruckOrderServiceImpl implements IOmstruckOrderService {
     @Autowired
     OmstruckOrderSeparateMapper omstruckOrderSeparateMapper;
 
+    @Autowired
+    private ZJXLUtilServiceImpl zjxlUtilService;
+
+    @Autowired
+    private ZJXLUtilMapper zjxlUtilMapper;
+
     /**
      * 用于远程调用运输订单新增
      *
@@ -547,7 +553,7 @@ public class OmstruckOrderServiceImpl implements IOmstruckOrderService {
     }
 
     //撤销订单
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     @Override
     public int undoOrder(Map<String, Object> map) throws Exception{
         int result=0;
@@ -576,6 +582,19 @@ public class OmstruckOrderServiceImpl implements IOmstruckOrderService {
                 result += omstruckOrderMapper.deleteTimeTaskByTotalId(resultTotalId);
             }
         }
+        if(orderType == 1){
+            //取消订阅车辆
+            String remark = String.valueOf(mesMap.get("insertUpdateRemark"));
+            if("电子围栏订阅成功".equals(remark)){
+                String capacityNumber = String.valueOf(map.get("capacityNumber"));
+                map.put("capacityNumber", capacityNumber + "_2");
+//                int i = zjxlUtilService.cancelSubsCapacity(map, 1);
+                int i = 1;
+                if(i == 1){
+                    zjxlUtilMapper.cancelSubCapacity(capacityNumber);
+                }
+            }
+        }
         //通过总实绩ID删除所有已经生成的实绩
         result += omstruckOrderMapper.deleteEnResult(resultTotalId);
         result += omstruckOrderMapper.deleteWeightResult(resultTotalId);
@@ -595,7 +614,6 @@ public class OmstruckOrderServiceImpl implements IOmstruckOrderService {
                 omstruckOrderSeparateMapper.updateTranTimes(orderPlanId, transTimes.intValue() - 1);
             }
         }
-
         return result;
     }
    //修改运力
@@ -634,7 +652,6 @@ public class OmstruckOrderServiceImpl implements IOmstruckOrderService {
             capacityMap.put("capacityNumber",capacityNumber);
             List<RmsCapacity> rmsCapacities = rmsCapacityMapper.selectByParameters(capacityMap);
             RmsCapacity rmsCapacity = rmsCapacities.get(0);
-//            rmsCapacity.setCapacityStatus(new BigDecimal(2));
             result +=rmsCapacityMapper.updateByPrimaryKeySelective(rmsCapacity);
             BigDecimal capacityId = rmsCapacity.getCapacityId();
             capacityMap.clear();
@@ -658,7 +675,9 @@ public class OmstruckOrderServiceImpl implements IOmstruckOrderService {
             omstruckOrder.setInsertUpdateRemark("无");
             omstruckOrder.setDeleted(new BigDecimal(0));
             omstruckOrder.setOrderType(orderType);
-            omstruckOrder.setLineId(lineId);
+            if(lineId != null){
+                omstruckOrder.setLineId(lineId);
+            }
             result +=omstruckOrderMapper.insertSelective(omstruckOrder);
             OmstruckOrderMaterial omstruckOrderMaterial = new OmstruckOrderMaterial();
             BigDecimal orderMaterialId = omstruckOrderMaterialMapper.selectMaxId();
@@ -678,10 +697,6 @@ public class OmstruckOrderServiceImpl implements IOmstruckOrderService {
     @Override
     public List<Map<String, Object>> getPurInwardOrderList(Map<String, Object> mapValue) {
         List<Map<String,Object>> mapList = omstruckOrderMapper.getPurInwardOrderList(mapValue);
-        for (Map<String,Object>map:mapList
-             ) {
-            map.put("loadName","化工园区铁专线");
-        }
         return mapList;
     }
 
@@ -798,7 +813,21 @@ public class OmstruckOrderServiceImpl implements IOmstruckOrderService {
                 throw new RuntimeException("订单已被接收或已被拒绝!");
             }
             int orderType = DataChange.dataToBigDecimal(orderMessage.get("orderType")).intValue();
-            if(orderType == 11){
+            if(orderType == 1){
+                //订阅车辆 查询车牌号
+                String capacityNumber = omstruckOrderMapper.getCapacityNumberByCapacityId(DataChange.dataToBigDecimal(orderMessage.get("capacityId")));
+                Map<String, Object> subMap = new HashMap<>();
+                subMap.put("capacityNumber", capacityNumber + "_2");
+                String s = zjxlUtilService.subsCapacity(subMap, 1);
+                if(!"成功".equals(s.substring(s.length() - 2))){
+                    System.out.println("车辆订阅失败:" + capacityNumber);
+                    omstruckOrder.setInsertUpdateRemark("电子围栏订阅失败");
+                }else{
+                    omstruckOrder.setInsertUpdateRemark("电子围栏订阅成功");
+                    zjxlUtilMapper.insertSubCapacity(zjxlUtilMapper.getSubCapacityMaxId(), capacityNumber, DataChange.dataToBigDecimal(orderMessage.get("resultTotalId")));
+                }
+            }
+            if(orderType == 11 || orderType == 15 || orderType == 16){
                 //发送计量委托
                 orderMessage.put("asd", 1);
                 orderMessage.put("orderId", orderId);
@@ -1591,7 +1620,7 @@ public class OmstruckOrderServiceImpl implements IOmstruckOrderService {
             BigDecimal orderId = (BigDecimal) map.get("orderId");
             BigDecimal orderType = (BigDecimal) map.get("orderType");
             // 查询物资信息
-            List<Map<String,Object>> materialMapList = omstruckOrderMapper.getMaterialMes(orderId);
+            List<Map<String,Object>> materialMapList = omstruckOrderMapper.getMaterialMes(orderId, null);
             String allMaterialName = "";
             String allMaterialNumber = "";
             String allMaterialWeight = "";
@@ -1775,7 +1804,7 @@ public class OmstruckOrderServiceImpl implements IOmstruckOrderService {
             BigDecimal orderId = (BigDecimal) map.get("orderId");
             BigDecimal orderType = (BigDecimal) map.get("orderType");
             // 查询物资信息
-            List<Map<String, Object>> materialMapList = omstruckOrderMapper.getMaterialMes(orderId);
+            List<Map<String, Object>> materialMapList = omstruckOrderMapper.getMaterialMes(orderId, null);
             String allMaterialName = "";
             String allMaterialNumber = "";
             String allMaterialWeight = "";
@@ -1896,11 +1925,7 @@ public class OmstruckOrderServiceImpl implements IOmstruckOrderService {
      **/
     public boolean getDriverConfirmation(Map<String, Object> map){
         Integer driverConfirmation = omstruckOrderMapper.getDriverConfirmation(DataChange.dataToBigDecimal(map.get("orderId")));
-        if(driverConfirmation == null){
-            return true;
-        }else {
-            return false;
-        }
+        return driverConfirmation == null;
     }
 
     /**
@@ -1918,9 +1943,11 @@ public class OmstruckOrderServiceImpl implements IOmstruckOrderService {
             orderType = DataChange.dataToBigDecimal(map.get("orderType")).intValue();
         }
         Map<String, Object> mesMap = new HashMap<>();
+        String steelJudge = null;
         switch (orderType){
             case 1:
                 mesMap = omstruckOrderMapper.getSteelOrderMessageToApp(map);
+                steelJudge = "steel";
                 break;
             case 2:
                 mesMap = omstruckOrderMapper.getXSOrderMessageToApp(map);
@@ -1949,6 +1976,14 @@ public class OmstruckOrderServiceImpl implements IOmstruckOrderService {
                     mesMap.put("organizationCode","二厂");
                 }
                 break;
+            case 15:
+                mesMap = omstruckOrderMapper.getNZOrderMessageToApp(map);
+                mesMap.put("loadName","老区轨道衡");
+                break;
+            case 16:
+                mesMap = omstruckOrderMapper.getNZOrderMessageToApp(map);
+                mesMap.put("loadName","一焦化");
+                break;
             case 11:
                 mesMap = omstruckOrderMapper.getInwardOrderMessageToApp(map);
                 mesMap.put("inwardType", "计重");
@@ -1966,7 +2001,7 @@ public class OmstruckOrderServiceImpl implements IOmstruckOrderService {
                  mesMap=omstruckOrderMapper.getSporadicOrder(map);
                  mesMap.put("type", "零星退货");
         }
-        mesMap.put("materialMesList", omstruckOrderMapper.getMaterialMes(orderId));
+        mesMap.put("materialMesList", omstruckOrderMapper.getMaterialMes(orderId, steelJudge));
 
         return mesMap;
     }
@@ -1992,7 +2027,7 @@ public class OmstruckOrderServiceImpl implements IOmstruckOrderService {
                     continue;
                 }
             }
-            if(orderType == 10|| orderType == 20){
+            if(orderType == 10|| orderType == 20 || orderType == 15 || orderType == 16){
                 Integer planEnable = omstruckOrderSeparateMapper.getOrderPlanEnable(orderMesMap.get("orderId"));
                 if(planEnable == 0){ // 数据为0则失效
                     omstruckOrderMapper.closeTruckOrder(DataChange.dataToBigDecimal(orderMesMap.get("orderId")));

+ 218 - 0
src/main/java/com/steerinfo/dil/service/impl/ZJXLUtilServiceImpl.java

@@ -0,0 +1,218 @@
+package com.steerinfo.dil.service.impl;
+
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.openapi.sdk.service.DataExchangeService;
+import com.steerinfo.dil.mapper.ZJXLUtilMapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+import org.springframework.util.StringUtils;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * @ author    :TXF
+ * @ time      :2022/1/11 15:27
+ */
+
+@Service
+public class ZJXLUtilServiceImpl {
+
+    @Autowired
+    private ZJXLUtilMapper zjxlUtilMapper;
+
+    @Value("${str.ZhongJiaoXingLu.cid}")
+    private  String cid;
+    @Value("${str.ZhongJiaoXingLu.srt}")
+    private  String srt;
+    @Value("${str.ZhongJiaoXingLu.user}")
+    private  String user;
+    @Value("${str.ZhongJiaoXingLu.pwd}")
+    private  String pwd;
+
+
+    private String userflag = "DaZhouGangTie";  //标识
+
+    private String lonlat = "107.4628199,31.1925279"; //中心点坐标
+
+    private String radius = "3000"; //半径
+
+    /**
+     * 车辆订阅接口
+     * @Author TXF
+     * @Date 2022/1/12 14:18
+     * @param map
+     * @return
+     **/
+    public String subsCapacity(Map<String, Object> map,int i){
+
+        if (i==3){
+            return "超出递归次数限制";
+        }
+
+        if (map.get("capacityNumber")==null||"".equals(map.get("capacityNumber").toString())){
+            return "参数【capacityNumber】车号,为空";
+        }
+        Map<String, String> mesMap = new HashMap<>();
+        mesMap.put("token", zjxlUtilMapper.getToken());
+        mesMap.put("cid", cid);
+        mesMap.put("srt", srt);
+        mesMap.put("userflag", userflag);
+        String areaId = zjxlUtilMapper.getAreaId();
+        if(areaId==null){
+            return "区域id为空";
+        }
+        mesMap.put("areaid", areaId);
+        mesMap.put("vnos", (String) map.get("capacityNumber"));
+        String url = "https://openapi.sinoiov.cn/save/apis/vnoReg";
+        try {
+            DataExchangeService des = new DataExchangeService(5000, 8000);
+            // 通过 https 方式调用,此方法内部会使用私钥生成签名参数 sign,私钥不会发送
+            String res = des.postHttps(url, mesMap);
+            Map<String, Object> jsonMap = JSON.parseObject(res);
+            Object status = jsonMap.get("status");
+            if("1016".equals(status.toString())){
+                if(login() == 1){
+                    return subsCapacity(map,i+1); //递归订阅
+                }else {
+                    return "登录失败,状态码:"+status;
+                }
+            }
+            if("1001".equals(status.toString())){
+                if("2".equals(jsonMap.get("result").toString())){
+                    //如果是自定义区域不存在则重新注册自定义区域
+                    if(registerAreaReg() == 1){
+                        return subsCapacity(map,i+1);
+                    }
+                }else {
+                    return "订阅成功";
+                }
+            }
+        } catch (Exception e) {
+            System.out.println("错误信息:" + e.getMessage());
+        }
+        return "订阅失败";
+    }
+
+    /**
+     * 自定义区域注册接口
+     * @Author TXF
+     * @Date 2022/1/12 14:36
+     * @param
+     * @return 1 成功  0 失败
+     **/
+    public int registerAreaReg(){
+        Map<String, String> mesMap = new HashMap<>(9);
+        mesMap.put("token",  zjxlUtilMapper.getToken());
+        mesMap.put("cid", cid);
+        mesMap.put("srt", srt);
+        mesMap.put("userflag", userflag);
+        mesMap.put("areaname", "达州钢铁老厂区");
+        mesMap.put("lonlat", lonlat);
+        mesMap.put("radius", radius);
+        mesMap.put("type", "1");
+        mesMap.put("actiontype", "1");
+        String url = "https://openapi.sinoiov.cn/save/apis/areaReg";
+        try {
+            DataExchangeService des = new DataExchangeService(5000, 8000);
+            // 通过 https 方式调用,此方法内部会使用私钥生成签名参数 sign,私钥不会发送
+            String res = des.postHttps(url, mesMap);
+            Map<String, Object> jsonMap = JSON.parseObject(res);
+            if("1001".equals(jsonMap.get("status").toString())){
+                // 更新注册区域ID
+                Map<String, Object> areaIdMap = (Map<String, Object>) jsonMap.get("result");
+                if("1".equals(areaIdMap.get("state").toString())){
+                    String areaid = String.valueOf(areaIdMap.get("areaid"));
+                    int i = zjxlUtilMapper.updateAreaId(areaid);
+                    if(i==0){
+                        return 0;
+                    }
+                    System.out.println("new areaid: " + areaid);
+                    return 1;
+                }else {
+                    return 0;
+                }
+            }
+        } catch (Exception e) {
+            System.out.println("错误信息:" + e.getMessage());
+        }
+        return 0;
+    }
+
+
+    /**
+     * 登录接口
+     * @Author TXF
+     * @Date 2022/1/12 15:23
+     * @param
+     * @return 1 成功 0 失败
+     **/
+    public int login() {
+        try {
+            Map<String, String> map = new HashMap<>(4);
+            map.put("user", user);
+            map.put("pwd", pwd);
+            map.put("cid", cid);
+            map.put("srt", srt);
+            String url = "https://openapi.sinoiov.cn/save/apis/login/";
+            DataExchangeService des = new DataExchangeService(5000, 8000);
+            // 通过 https 方式调用,此方法内部会使用私钥生成签名参数 sign,私钥不会发送
+            String res = des.postHttps(url, map);
+            JSONObject jsonObject = JSONObject.parseObject(res);
+            String token = jsonObject.get("result").toString();
+            zjxlUtilMapper.updateToken(token);
+            return 1;
+        } catch (Exception e) {
+            System.out.println("登录中交兴路出错"+e.getMessage());
+            return 0;
+        }
+
+    }
+
+    /**
+     * 删除车辆订阅接口
+     * @Author TXF
+     * @Date 2022/1/12 17:11
+     * @param map
+     * @return
+     **/
+    public int cancelSubsCapacity(Map<String, Object> map,int i){
+        if (i==3){
+            return -2;
+        }
+        Map<String, String> mesMap = new HashMap<>(4);
+        mesMap.put("cid", cid);
+        mesMap.put("srt", srt);
+        mesMap.put("token",  zjxlUtilMapper.getToken());
+        mesMap.put("userflag", userflag);
+        mesMap.put("vnos", (String) map.get("capacityNumber"));
+        mesMap.put("areaid", zjxlUtilMapper.getAreaId());
+        String url = "https://openapi.sinoiov.cn/save/apis/vnoDel";
+        try {
+            DataExchangeService des = new DataExchangeService(5000, 8000);
+            String res = des.postHttps(url, mesMap);
+            JSONObject jsonObject = JSONObject.parseObject(res);
+            if("1016".equals(StringUtils.isEmpty(jsonObject.get("status"))?"":jsonObject.get("status").toString())){
+                if (login()==1) {
+                    return cancelSubsCapacity(map,i+1);
+                }else {
+                    return -1;
+                }
+            }
+            if("1001".equals(StringUtils.isEmpty(jsonObject.get("status"))?"":jsonObject.get("status").toString())){
+                if("1".equals(StringUtils.isEmpty(jsonObject.get("result"))?"":jsonObject.get("result").toString())){
+                    return 1;
+                }else {
+                    return 0;
+                }
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+            return 0;
+        }
+        return 0;
+    }
+}

+ 9 - 0
src/main/resources/bootstrap.yml

@@ -51,3 +51,12 @@ mybatis:
     #    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
     mapUnderscoreToCamelCase: true
     call-setters-on-nulls: true
+
+str:
+  tengxun:
+    key: WDTBZ-A5VKJ-UDLFI-KYJY6-WTP2S-A6B4Y
+  ZhongJiaoXingLu:
+    cid: 84254ac6-9f05-47c7-ba3c-1d3398590d70
+    srt: b7c4b6ee-09c8-4865-a0b7-934d42205012
+    user: 108e0bda-1795-4e43-9df9-426a446eb77f
+    pwd: cKyp9G98yFy3gHBHG21us7z85377S1

+ 56 - 14
src/main/resources/com/steerinfo/dil/mapper/OmstruckOrderMapper.xml

@@ -2541,10 +2541,15 @@
         AIR.REQUIREMENT_WORK_ENVIRONMENT   AS "requirementWorkEnvironment",
         AIR.REQUIREMENT_ESTIMATED_DURATION AS "requirementEstimatedDuration",
         OO.ORDER_ID                        AS "orderId",
-        AIP.INSERT_TIME                    AS "insertTime"
+        AIP.INSERT_TIME                    AS "insertTime",
+        RW.WAREHOUSE_NAME                  AS "unloadName",
+        RW1.WAREHOUSE_NAME                 AS "loadName",
+        RM.MATERIAL_NAME                   AS "materialName"
         FROM OMSTRUCK_ORDER OO
         LEFT JOIN OMSTRUCK_ORDER_MATERIAL OOM
         ON OOM.ORDER_ID = OO.ORDER_ID
+        LEFT JOIN RMS_MATERIAL RM
+        ON RM.MATERIAL_ID = OOM.MATERIAL_ID
         LEFT JOIN RMS_CAPACITY RC
         ON RC.CAPACITY_ID = OO.CAPACITY_ID
         LEFT JOIN AMSTRUCK_INWARD_PLAN AIP
@@ -2557,6 +2562,10 @@
         ON ARM.REQUIREMENT_ID = AIR.REQUIREMENT_ID
         LEFT JOIN RMS_CARRIER RCA
         ON RCA.CARRIER_ID = AIP.CARRIER_ID
+        LEFT JOIN RMS_WAREHOUSE RW
+        ON RW.WAREHOUSE_ID = ARM.REQUIREMENT_UNLOAD_UNIT_ID
+        LEFT JOIN  RMS_WAREHOUSE RW1
+        ON RW1.WAREHOUSE_ID = ARM.REQUIREMENT_PLATFORM_ID
         WHERE AIP.DELETED = 0
         AND OO.ORDER_TYPE = 11
         <if test="carrierId != null">
@@ -2622,6 +2631,24 @@
                     "capacityNumber" like '%${item}%'
                 </foreach>
             </if>
+            <if test="unloadName != null">
+                and
+                <foreach collection="unloadName" item="item" open="(" separator="or" close=")">
+                    "unloadName" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="loadName != null">
+                and
+                <foreach collection="loadName" item="item" open="(" separator="or" close=")">
+                    "loadName" like '%${item}%'
+                </foreach>
+            </if>
+            <if test="materialName != null">
+                and
+                <foreach collection="materialName" item="item" open="(" separator="or" close=")">
+                    "materialName" like '%${item}%'
+                </foreach>
+            </if>
         </where>
         <include refid="orderBy"></include>
     </select>
@@ -2663,7 +2690,12 @@
 
     <!-- 物资信息 -->
     <select id="getMaterialMes" parameterType="DECIMAL" resultType="java.util.LinkedHashMap">
-        SELECT RM.MATERIAL_NAME  "materialName",
+        SELECT
+               RM.MATERIAL_NAME
+                <if test="steelJudge != null">
+                    || '   ' || RW.WAREHOUSE_NAME
+                </if>
+                "materialName",
                RM.MATERIAL_ID   "materialId",
                OOM.MATERIAL_PRIORITY "materialPriority",
                CONCAT(CONCAT(RM.MATERIAL_MODEL, '('), CONCAT(MATERIAL_SPECIFICATION, ')')) "materialMC",
@@ -2685,6 +2717,10 @@
         FROM OMSTRUCK_ORDER_MATERIAL OOM
                  LEFT JOIN RMS_MATERIAL RM
                            ON RM.MATERIAL_ID = OOM.MATERIAL_ID
+                 <if test="steelJudge != null">
+                     LEFT JOIN RMS_WAREHOUSE RW
+                           ON OOM.MATERIAL_PRIORITY = RW.WAREHOUSE_ID
+                 </if>
         WHERE ORDER_ID = #{orderId}
         ORDER BY RM.MATERIAL_NAME
     </select>
@@ -2920,7 +2956,8 @@
         OO.ORDER_STATUS "orderStatus",
         RS.SUPPLIER_NAME "shipperName",
         RCG.CONSIGNEE_COMPANY_NAME "consigneeCompanyName",
-        APO.PURCHASING_ORGANIZATION_ID "organizationId"
+        APO.PURCHASING_ORGANIZATION_ID "organizationId",
+        DB.RESULT_FOREIGN_SHIP_NAME "shipName"
         FROM OMSTRUCK_ORDER OO
         LEFT JOIN AMSTRUCK_INWARD_PLAN AIP
         ON OO.ORDER_PLAN_ID = AIP.PLAN_ID
@@ -2930,6 +2967,8 @@
         ON AIR.REQUIREMENT_ID = ARP.REQUIREMENT_ID
         LEFT JOIN AMS_PURCHASE_ORDER APO
         ON APO.PURCHASE_ORDER_ID = AIR.PURCHASE_ORDER_ID
+        LEFT JOIN DIL_BATCH DB
+        ON DB.BATCH_ID = APO.BATCH_ID
         LEFT JOIN RMS_SUPPLIER RS
         ON RS.SUPPLIER_ID = APO.SUPPLIER_UNIT_ID
         LEFT JOIN RMS_CONSIGNEE RCG
@@ -3165,7 +3204,8 @@
         OO.ORDER_ID                AS "orderId",
         RS.SUPPLIER_NAME           AS "supplierName",
         RCE.CONSIGNEE_COMPANY_NAME AS "consigneeName",
-        OO.ORDER_NUMBER            AS "orderNo"
+        OO.ORDER_NUMBER            AS "orderNo",
+        DB.RESULT_FOREIGN_SHIP_NAME AS "shipName"
         FROM OMSTRUCK_ORDER OO
         LEFT JOIN OMSTRUCK_ORDER_MATERIAL OOM
         ON OOM.ORDER_ID = OO.ORDER_ID
@@ -3194,7 +3234,7 @@
         LEFT JOIN RMS_CONSIGNEE RCE
         ON RCE.CONSIGNEE_ID = APO.RECEIVE_UNIT_ID
         WHERE AIP.DELETED = 0
-        AND OO.ORDER_TYPE IN (4,9,10,11,20,21)
+        AND OO.ORDER_TYPE IN (10,20,15,16)
         AND OO.ORDER_STATUS = #{orderStatus}
         <if test="carrierId !=null">
             AND AIP.CARRIER_ID = (SELECT RCR.CARRIER_ID FROM RMS_CARRIER RCR WHERE RCR.CARRIER_SSO_ID = #{carrierId})
@@ -3355,7 +3395,9 @@
     </select>
 <!-- 根据运输订单id查找需求日期 -->
  <select id="selectInwardTimeByOrderId" parameterType="java.math.BigDecimal" resultType="java.util.Map">
-    select AIR.DUE_DATE  "dueTime"
+    select AIR.DUE_DATE  "dueTime",
+           OO.ORDER_TYPE "orderType",
+           aip.PLAN_EABLE_STATUS "planEnableStatus"
     from OMSTRUCK_ORDER OO
     left join AMSTRUCK_INWARD_PLAN AIP
     on AIP.PLAN_ID=OO.ORDER_PLAN_ID
@@ -3566,7 +3608,8 @@
         RS.SHIPPER_NAME "shipperName",
         ASOM.SALE_DATE_OF_RECEIPT "saleDateOfReceipt",
         RC2.CONSIGNEE_COMPANY_NAME "consigneeCompanyName",
-        CONCAT(CONCAT( CONCAT( CONCAT( RDA.ADDRESS_PROVINCE, RDA.ADDRESS_DISTRICT ), RDA.ADDRESS_TOWN ),RDA.ADDRESS_DELIVERY_ADDRESS ),RRP.ADDRESS_DELIVERY_ADDRESS) "receiveAddressName"
+        CONCAT(CONCAT( CONCAT( CONCAT( RDA.ADDRESS_PROVINCE, RDA.ADDRESS_DISTRICT ), RDA.ADDRESS_TOWN ),RDA.ADDRESS_DELIVERY_ADDRESS ),RRP.ADDRESS_DELIVERY_ADDRESS) "receiveAddressName",
+        TTR.RESULT_TOTAL_ID "resultTotalId"
 
         FROM
         OMSTRUCK_ORDER OO
@@ -3577,6 +3620,7 @@
         LEFT JOIN RMS_CAPACITY RC ON RC.CAPACITY_ID = OO.CAPACITY_ID
         LEFT JOIN RMS_RECEIVE_PLACE RRP ON RRP.PLACE_ID = ASOM.SALE_SHIPPING_ADDRESS_ID
         LEFT JOIN RMS_RECEIVE_ADDRESS RDA ON RDA.ADDRESS_ID = RRP.ADDRESS_ID
+        LEFT JOIN TMSTRUCK_TOTAL_RESULT TTR ON OO.ORDER_ID = TTR.ORDER_ID
         WHERE
         OO.ORDER_ID = #{orderId}
         <if test="status == null">
@@ -3608,13 +3652,7 @@
         LEFT JOIN TMSTRUCK_WEIGHT_RESULT TWR
         ON TWR.RESULT_TOTAL_ID=TTR.RESULT_TOTAL_ID
         where TLR.CAPACITY_REMARK IS NOT NULL and TLR.CAPACITY_REMARK=#{userName}
-        <if test="oneDate != null">
-            and to_date(#{oneDate}, 'yyyy-mm-dd hh24:mi:ss') &lt; = TLR.RESULT_LOAD_END_TIME
-        </if>
-        <if test="startDate != null">
-            and to_date(#{startDate}, 'yyyy-mm-dd hh24:mi:ss') &lt;= TLR.RESULT_LOAD_END_TIME
-            and to_date(#{endDate}, 'yyyy-mm-dd hh24:mi:ss') >= TLR.RESULT_LOAD_END_TIME
-        </if>
+        and TLR.RESULT_LOAD_END_TIME >= to_date(#{limitTime}, 'yyyy-mm-dd')
         GROUP BY TLR.CAPACITY_REMARK
         )
     </select>
@@ -3624,4 +3662,8 @@
         FROM OMSTRUCK_ORDER OO
         WHERE OO.ORDER_ID = #{orderId}
     </select>
+
+    <select id="getCapacityNumberByCapacityId" parameterType="java.math.BigDecimal" resultType="java.lang.String">
+        select CAPACITY_NUMBER from RMS_CAPACITY  where CAPACITY_ID = #{capacityId}
+    </select>
 </mapper>

+ 25 - 1
src/main/resources/com/steerinfo/dil/mapper/OmstruckOrderMaterialMapper.xml

@@ -496,7 +496,8 @@
         and OO.ORDER_TYPE = 1
     </select>
 
-    <!-- 批量删除物资子表 -->
+
+  <!-- 批量删除物资子表 -->
   <delete id="batchByOrderIdDelete" parameterType="java.util.List">
     delete from OMSTRUCK_ORDER_MATERIAL OOM
     where OOM.ORDER_ID in
@@ -537,4 +538,27 @@
       WHERE OO.ORDER_ID = #{orderId}
         AND WORM.MATERIAL_ID = #{materialId})
   </update>
+
+
+  <select id="getSaleOrderMaterialNum" resultType="java.util.Map">
+    select OOM.ORDER_MATERIAL_NUMBER "orderMaterialNumber",
+           ASM.MATERIAL_WEIGHT "materialWeight",
+           ASM.SALE_MATERIAL_ID "saleMaterialId"
+    from OMSTRUCK_ORDER OO
+        left join AMS_SALE_ORDER_MATERIAL ASOM on OO.ORDER_PLAN_ID = ASOM.SALE_ORDER_MATERIAL_ID
+        left join AMS_SALE_TRUCKNO_MATERIAL ASTM on ASOM.SALE_ORDER_MATERIAL_ID = ASTM.SALE_ORDER_MATERIAL_ID
+        left join AMS_SALE_MATERIAL ASM on ASTM.MATERIAL_ID = ASM.SALE_MATERIAL_ID
+        left join OMSTRUCK_ORDER_MATERIAL OOM on OO.ORDER_ID = OOM.ORDER_ID
+    where OO.ORDER_ID = #{orderId} and OOM.MATERIAL_ID = #{materialId} and ASM.MATERIAL_ID = #{materialId}
+  </select>
+
+
+  <update id="updateSaleOrderMaterialMes">
+    update AMS_SALE_MATERIAL
+    set MATERIAL_NUMBER = #{materialNum}
+    <if test="newWeight != null">
+     , MATERIAL_WEIGHT = #{newWeight}
+    </if>
+    where SALE_MATERIAL_ID = #{saleMaterialId}
+  </update>
 </mapper>

+ 10 - 6
src/main/resources/com/steerinfo/dil/mapper/OmstruckOrderSeparateMapper.xml

@@ -75,7 +75,8 @@
                OO.UNLOAD_POINT_ID AS "unloadPointId",
                OO.LINE_ID     "lineId",
                OO.ORDER_STATUS "orderStatus",
-               TTR.RESULT_TOTAL_ID  "resultTotalId"
+               TTR.RESULT_TOTAL_ID  "resultTotalId",
+               OO.CAPACITY_ID   "capacityId"
         FROM OMSTRUCK_ORDER OO
             left join TMSTRUCK_TOTAL_RESULT TTR
                 on TTR.ORDER_ID = OO.ORDER_ID
@@ -433,12 +434,12 @@
     </select>
 
 <!--    查询当前车辆之前所有已完成的订单  -->
-    <select id="getCapacityAllOrder" parameterType="string" resultType="java.util.Map">
+    <select id="getCapacityAllOrder" parameterType="java.util.Map" resultType="java.util.Map">
         select *
         from (
                  select OO.ORDER_ID     "orderId",
-                        OO.ORDER_NUMBER "orderNumber"
-
+                        OO.ORDER_NUMBER "orderNumber",
+                        OO.ORDER_RECEIVE_REFUSE_TIME "orderDate"
                  from OMSTRUCK_ORDER OO
                           left join RMS_CAPACITY RC
                                     on RC.CAPACITY_ID = OO.CAPACITY_ID
@@ -446,7 +447,9 @@
                    and OO.ORDER_STATUS = 2
                  order by OO.ORDER_RECEIVE_REFUSE_TIME desc
              )
-        where rownum &lt;= 51
+        <if test="date != null">
+            Where to_char("orderDate",'YYYY-MM') = #{date}
+        </if>
     </select>
 
 <!--  查询订单发货日期 (订单类型为2) -->
@@ -735,7 +738,8 @@
     <select id="getOrderMesByOrderId" parameterType="java.math.BigDecimal" resultType="java.util.Map">
         select OO.ORDER_TYPE    "orderType",
                OO.ORDER_PLAN_ID "orderPlanId",
-               TTR.RESULT_TOTAL_ID  "resultTotalId"
+               TTR.RESULT_TOTAL_ID  "resultTotalId",
+               OO.INSERT_UPDATE_REMARK  "insertUpdateRemark"
         from OMSTRUCK_ORDER OO
                  left join TMSTRUCK_TOTAL_RESULT TTR on OO.ORDER_ID = TTR.ORDER_ID
         where OO.ORDER_ID = #{orderId}

+ 19 - 0
src/main/resources/com/steerinfo/dil/mapper/ZJXLUtilMapper.xml

@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.steerinfo.dil.mapper.ZJXLUtilMapper">
+
+    <insert id="insertSubCapacity">
+        insert into QMS_SUB_CAPACITY (SUB_CAPACITY_ID, CAPACITY_NUMBER, RESULT_TOTAL_ID, SUB_STATUS, INSERT_TIME)
+        values (#{subCapacityId}, #{capacityNumber}, #{resultTotalId}, 0, SYSDATE)
+    </insert>
+
+    <update id="cancelSubCapacity">
+        update QMS_SUB_CAPACITY
+        set SUB_STATUS  = 1,
+            UPDATE_TIME = SYSDATE
+        where CAPACITY_NUMBER = #{capacityNumber}
+          and SUB_STATUS = 0
+    </update>
+
+
+</mapper>