luobang před 2 roky
rodič
revize
03171dee92

+ 39 - 3
src/main/java/com/steerinfo/dil/controller/BmstruckDetailsOrderController.java

@@ -137,7 +137,8 @@ public class BmstruckDetailsOrderController extends BaseRESTfulController {
                                                      String capacityNo,
                                                      String shipperNames,
                                                      String transRangeValues,
-                                                     String materialTypeNames){
+                                                     String materialTypeNames,
+                                                     String isPage){
         if (carrierSsoId != null && carrierSsoId.equals("undefined")) {
             carrierSsoId = null;
         }
@@ -162,6 +163,9 @@ public class BmstruckDetailsOrderController extends BaseRESTfulController {
         }
         DataChange.queryDataByDateTime(startTime, endTime, mapValue, sdfDateTime);//根据时间段查询数据
         mapValue.put("detailStatus",detailStatus);
+        if("yes".equals(isPage)){
+            return success(bmstruckDetailsOrderService.getInwardWeightDetailsOrder(mapValue,orderType));
+        }
         PageHelper.startPage(pageNum, pageSize);
         //分页查询数据
         List<Map<String, Object>> columnList = bmstruckDetailsOrderService.getInwardWeightDetailsOrder(mapValue,orderType);
@@ -177,7 +181,13 @@ public class BmstruckDetailsOrderController extends BaseRESTfulController {
                                             String carrierSsoId,
                                             String userId,
                                             String startTime,
-                                            String endTime){
+                                            String endTime,
+                                            String orgCode,
+                                            String capacityNo,
+                                            String transRangeValues,
+                                            String materialTypeNames,
+                                            String shipperNames,
+                                            String isPage){
         if (carrierSsoId != null && carrierSsoId.equals("undefined")) {
             carrierSsoId = null;
         }
@@ -188,7 +198,22 @@ public class BmstruckDetailsOrderController extends BaseRESTfulController {
         if(userId != null){
             mapValue.put("userId","%"+ userId +"%");
         }
+        if(capacityNo != null && !"null".equals(capacityNo)){
+            mapValue.put("capacityNo","%"+ capacityNo +"%");
+        }
+        if(shipperNames != null && !"null".equals(shipperNames)){
+            mapValue.put("shipperNames","%"+ shipperNames +"%");
+        }
+        if(transRangeValues != null && !"null".equals(transRangeValues)){
+            mapValue.put("transRangeValues","%"+ transRangeValues +"%");
+        }
+        if(materialTypeNames != null && !"null".equals(materialTypeNames)){
+            mapValue.put("materialTypeNames","%"+ materialTypeNames +"%");
+        }
         DataChange.queryDataByDateTime(startTime, endTime, mapValue, sdfDateTime);//根据时间段查询数据
+        if("yes".equals(isPage)){
+            return success(bmstruckDetailsOrderService.getNoInwardDetails(mapValue));
+        }
         PageHelper.startPage(pageNum, pageSize);
         //分页查询数据
         List<Map<String, Object>> columnList = bmstruckDetailsOrderService.getNoInwardDetails(mapValue);
@@ -251,7 +276,7 @@ public class BmstruckDetailsOrderController extends BaseRESTfulController {
             @ApiImplicitParam(name = "orderId", value = "汽运计量实绩id", required = false, dataType = "BigDecimal"),
     })
     @PostMapping("/addInwardDetailsOrder")
-    public RESTfulResult addInwardDetailsOrder(@RequestBody(required = false) Map<String, Object> mapVal) {
+    public synchronized RESTfulResult  addInwardDetailsOrder(@RequestBody(required = false) Map<String, Object> mapVal) {
         int code = bmstruckDetailsOrderService.inserInwardOrder(mapVal);
         return success(code);
     }
@@ -368,5 +393,16 @@ public class BmstruckDetailsOrderController extends BaseRESTfulController {
         return success(data);
     }
 
+    @ApiOperation("根据运输订单ID查询计重结算需要的信息")
+    @PostMapping("newInwardSettle")
+    public RESTfulResult newInwardSettle(@RequestBody Map<String,Object> map){
+        //接收到运输订单号数组
+        List<Integer> orderIds = (List<Integer>)map.get("orderIds");
+        int i = bmstruckDetailsOrderService.newInwardSettle(orderIds);
+        return success(i);
+
+    }
+
+
 
 }

+ 24 - 0
src/main/java/com/steerinfo/dil/feign/OmsFeign.java

@@ -0,0 +1,24 @@
+package com.steerinfo.dil.feign;
+
+import com.steerinfo.framework.controller.RESTfulResult;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestParam;
+
+import java.math.BigDecimal;
+import java.util.Map;
+
+/**
+ * @ author    :TXF
+ * @ time      :2021/10/27 18:05
+ */
+
+@FeignClient(value = "dil-oms-dev", url = "${openfeign.OmsFeign.url}")
+public interface OmsFeign {
+
+    @PostMapping("api/v1/oms/omstruckorderseparates/closeInwardOrder")
+    Map<String,Object> closeInwardOrder(@RequestParam("orderId") Integer orderId,
+                                        @RequestParam(value = "status") Integer status);
+
+}

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

@@ -154,4 +154,5 @@ public interface BmstruckDetailsOrderMapper extends IBaseMapper<BmstruckDetailsO
 
     List<Map<String, Object>> getSteelTruckDetailsOrder(Map<String, Object> mapValue);
 
+    Integer selectDetailsByOrder(BigDecimal orderId);
 }

+ 2 - 0
src/main/java/com/steerinfo/dil/service/IBmstruckDetailsOrderService.java

@@ -112,4 +112,6 @@ public interface IBmstruckDetailsOrderService {
     List<Map<String, Object>> getNoInwardDetails(Map<String, Object> mapValue);
 
     List<Map<String, Object>> getSteelTruckDetailsOrder(Map<String, Object> mapValue);
+
+    int newInwardSettle(List<Integer> orderIds);
 }

+ 24 - 0
src/main/java/com/steerinfo/dil/service/impl/BmstruckDetailsOrderServiceImpl.java

@@ -1,6 +1,7 @@
 package com.steerinfo.dil.service.impl;
 
 import com.steerinfo.dil.feign.JoinApiFeign;
+import com.steerinfo.dil.feign.OmsFeign;
 import com.steerinfo.dil.mapper.BmstruckDetailsOrderMapper;
 import com.steerinfo.dil.mapper.OmstruckOrderMapper;
 import com.steerinfo.dil.model.BmstruckDetailsOrder;
@@ -44,6 +45,8 @@ public class BmstruckDetailsOrderServiceImpl implements IBmstruckDetailsOrderSer
     @Autowired
     OmstruckOrderMapper omstruckOrderMapper;
 
+    @Autowired
+    OmsFeign omsFeign;
 
     //以下订单类型是需要算计量实绩的
     final private List<Integer>  inwardTypeList = Arrays.asList(10,11,15,16,23,24,20);
@@ -556,6 +559,10 @@ public class BmstruckDetailsOrderServiceImpl implements IBmstruckDetailsOrderSer
         BigDecimal orderId= DataChange.dataToBigDecimal(mapVal.get("orderId"));
         //根据运输订单去查找订单类型
         BigDecimal orderType = bmstruckDetailsOrderMapper.getOrderType(orderId);
+        //根据运输订单id去查询计费详单id
+        if(bmstruckDetailsOrderMapper.selectDetailsByOrder(orderId) > 0){
+            return -1;
+        }
         List<Map<String,Object>> priceAmountList = new ArrayList<>();
         if(inwardTypeList.contains(orderType.intValue())){
             //获取该订单的计量实绩ID以及净重,只会返回一条数据
@@ -706,4 +713,21 @@ public class BmstruckDetailsOrderServiceImpl implements IBmstruckDetailsOrderSer
     public List<Map<String, Object>> getSteelTruckDetailsOrder(Map<String, Object> mapValue) {
         return bmstruckDetailsOrderMapper.getSteelTruckDetailsOrder(mapValue);
     }
+
+    @Override
+    public int newInwardSettle(List<Integer> orderIds) {
+        int count = 0;
+        //遍历数组
+        for(Integer orderId:orderIds){
+            //根据运输ID获取订单类型
+            BigDecimal orderType = bmstruckDetailsOrderMapper.getOrderType(new BigDecimal(orderId));
+            //根据订单类型调用不同的方法
+            //如果订单类型是11,
+            if(orderType.intValue() == 11){
+                omsFeign.closeInwardOrder(orderId,1);
+                count++;
+            }
+        }
+        return count;
+    }
 }

+ 2 - 0
src/main/resources/application-prod.yml

@@ -11,6 +11,8 @@ spring:
 openfeign:
   ColumnDataFeign:
     url: ${COLUMNDATAFEIGN_URL:172.16.33.166:8083}
+  OmsFeign:
+    url: ${OMSFEIGN_URL:172.16.33.166:8095}
 
 server:
   port: 8076

+ 38 - 9
src/main/resources/com/steerinfo/dil/mapper/BmstruckDetailsOrderMapper.xml

@@ -1620,6 +1620,25 @@
         </if>
         order by twr.result_tare_weight_time desc
         )
+        <where>
+            <if test="capacityNo!= null">
+                and
+                "capacityNumber" like #{capacityNo}
+            </if>
+            <if test="shipperNames!= null">
+                and
+                "shipperName" like #{shipperNames}
+            </if>
+            <if test="transRangeValues!= null">
+                and
+                "transRangeValue" like #{transRangeValues}
+            </if>
+            <if test="materialTypeNames!= null">
+                and
+                "materialTypeName" like #{materialTypeNames}
+            </if>
+        </where>
+
 
     </select>
     <select id="getPriceInfoPur" resultType="java.util.Map" parameterType="DECIMAL">
@@ -1728,11 +1747,11 @@
                                 AND AIR.INSERT_USERNAME LIKE #{userId}
                             </if>
                             <if test="oneDate != null">
-                                and to_date(#{oneDate}, 'yyyy-mm-dd hh24:mi:ss') &lt;= bdo.INSERT_TIME
+                                and to_date(#{oneDate}, 'yyyy-mm-dd hh24:mi:ss') &lt;= GREATEST(TWR.RESULT_GROSS_WEIGHT_TIME, TWR.RESULT_TARE_WEIGHT_TIME)
                             </if>
                             <if test="startDate != null">
-                                and to_date(#{startDate}, 'yyyy-mm-dd hh24:mi:ss') &lt;= bdo.INSERT_TIME
-                                and to_date(#{endDate}, 'yyyy-mm-dd hh24:mi:ss') >= bdo.INSERT_TIME
+                                and to_date(#{startDate}, 'yyyy-mm-dd hh24:mi:ss') &lt;= GREATEST(TWR.RESULT_GROSS_WEIGHT_TIME, TWR.RESULT_TARE_WEIGHT_TIME)
+                                and to_date(#{endDate}, 'yyyy-mm-dd hh24:mi:ss') >= GREATEST(TWR.RESULT_GROSS_WEIGHT_TIME, TWR.RESULT_TARE_WEIGHT_TIME)
                             </if>
                           UNION ALL
                           select rc.capacity_number "capacityNumber",
@@ -1809,11 +1828,11 @@
                                 AND AIR.INSERT_USERNAME LIKE #{userId}
                             </if>
                             <if test="oneDate != null">
-                                and to_date(#{oneDate}, 'yyyy-mm-dd hh24:mi:ss') &lt;= bdo.INSERT_TIME
+                                and to_date(#{oneDate}, 'yyyy-mm-dd hh24:mi:ss') &lt;= GREATEST(TWR.RESULT_GROSS_WEIGHT_TIME, TWR.RESULT_TARE_WEIGHT_TIME)
                             </if>
                             <if test="startDate != null">
-                                and to_date(#{startDate}, 'yyyy-mm-dd hh24:mi:ss') &lt;= bdo.INSERT_TIME
-                                and to_date(#{endDate}, 'yyyy-mm-dd hh24:mi:ss') >= bdo.INSERT_TIME
+                                and to_date(#{startDate}, 'yyyy-mm-dd hh24:mi:ss') &lt;= GREATEST(TWR.RESULT_GROSS_WEIGHT_TIME, TWR.RESULT_TARE_WEIGHT_TIME)
+                                and to_date(#{endDate}, 'yyyy-mm-dd hh24:mi:ss') >= GREATEST(TWR.RESULT_GROSS_WEIGHT_TIME, TWR.RESULT_TARE_WEIGHT_TIME)
                             </if>
                           UNION ALL SELECT
                                         rc.capacity_number "capacityNumber",
@@ -1868,11 +1887,11 @@
                                 AND AIR.INSERT_USERNAME LIKE #{userId}
                             </if>
                             <if test="oneDate != null">
-                                and to_date(#{oneDate}, 'yyyy-mm-dd hh24:mi:ss') &lt;= bdo.INSERT_TIME
+                                and to_date(#{oneDate}, 'yyyy-mm-dd hh24:mi:ss') &lt;= GREATEST(TWR.RESULT_GROSS_WEIGHT_TIME, TWR.RESULT_TARE_WEIGHT_TIME)
                             </if>
                             <if test="startDate != null">
-                                and to_date(#{startDate}, 'yyyy-mm-dd hh24:mi:ss') &lt;= bdo.INSERT_TIME
-                                and to_date(#{endDate}, 'yyyy-mm-dd hh24:mi:ss') >= bdo.INSERT_TIME
+                                and to_date(#{startDate}, 'yyyy-mm-dd hh24:mi:ss') &lt;= GREATEST(TWR.RESULT_GROSS_WEIGHT_TIME, TWR.RESULT_TARE_WEIGHT_TIME)
+                                and to_date(#{endDate}, 'yyyy-mm-dd hh24:mi:ss') >= GREATEST(TWR.RESULT_GROSS_WEIGHT_TIME, TWR.RESULT_TARE_WEIGHT_TIME)
                             </if>
         )
         <where>
@@ -1928,6 +1947,12 @@
                     "materialName" in #{item}
                 </foreach>
             </if>
+            <if test="materialTypeName!= null">
+                and
+                <foreach collection="materialTypeName" item="item" open="(" separator="," close=")">
+                    "materialTypeName" in #{item}
+                </foreach>
+            </if>
         </where>
         <include refid="orderBy"></include>
     </select>
@@ -1994,5 +2019,9 @@
                         order by oo.order_id desc
             )
     </select>
+    <select id="selectDetailsByOrder" resultType="java.lang.Integer" parameterType="decimal">
+        SELECT count(BDO.DETAILS_ID) FROM BMSTRUCK_DETAILS_ORDER BDO
+        WHERE BDO.ORDER_ID = #{orderId}
+    </select>
 
 </mapper>