Procházet zdrojové kódy

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

xucaiqin před 2 roky
rodič
revize
89ad0efb9d

+ 16 - 2
sckw-common/sckw-common-core/src/main/java/com/sckw/core/model/enums/CarWaybillEnum.java

@@ -136,11 +136,11 @@ public enum CarWaybillEnum {
 
     /**
      * @param code 状态码
-     * @desc 是否可以变更司机/车辆
+     * @desc 是否可以变更司机
      * @author zk
      * @date 2023/8/2
      **/
-    public static boolean changeDriverAndTruck(int code) {
+    public static boolean changeDriver(int code) {
         if (code == CarWaybillEnum.COMPLETION_UNLOADING.getCode()
                 || code == CarWaybillEnum.APPROVAL_PASS.getCode()
                 || code == CarWaybillEnum.REJECT_ORDER.getCode()
@@ -151,4 +151,18 @@ public enum CarWaybillEnum {
         }
         return true;
     }
+
+    /**
+     * @param code 状态码
+     * @desc 是否可以变更司机/车辆
+     * @author zk
+     * @date 2023/8/2
+     **/
+    public static boolean changeTruck(int code) {
+        if (code == CarWaybillEnum.PENDING_ORDER.getCode()
+                || code == CarWaybillEnum.PENDING_VEHICLE.getCode()) {
+            return true;
+        }
+        return false;
+    }
 }

+ 21 - 21
sckw-modules/sckw-fleet/src/main/java/com/sckw/fleet/dubbo/RemoteFleetServiceImpl.java

@@ -46,7 +46,7 @@ public class RemoteFleetServiceImpl implements RemoteFleetService {
     public Map<Long, RDriverVo> findDriver(List<Long> driverIds) {
         /**获取数据**/
         Map<Long, RDriverVo> driverMap = new HashMap<>(Global.NUMERICAL_SIXTEEN);
-        List<Map<String, Object>> drivers = driverDao.findList(new HashMap<>(Global.NUMERICAL_SIXTEEN) {{
+        List<KwfDriver> drivers = driverDao.findDriver(new HashMap<>(Global.NUMERICAL_SIXTEEN) {{
             put("ids", driverIds);
         }});
         if (CollectionUtils.isEmpty(drivers)) {
@@ -54,16 +54,16 @@ public class RemoteFleetServiceImpl implements RemoteFleetService {
         }
 
         /**数据处理**/
-        for (Map<String, Object> driver : drivers) {
+        for (KwfDriver driver : drivers) {
             RDriverVo driverVo = new RDriverVo();
-            driverVo.setId(NumberUtils.parseEmptyLong(driver.get("id")));
-            driverVo.setName(StringUtils.objectStr(driver.get("name")));
-            driverVo.setPhone(StringUtils.objectStr(driver.get("phone")));
-            driverVo.setIdcard(StringUtils.objectStr(driver.get("idcard")));
-            driverVo.setTotalComplete(NumberUtils.parseEmptyInteger(driver.get("totalComplete")));
-            driverVo.setTotalTake(NumberUtils.parseEmptyInteger(driver.get("totalTake")));
-            driverVo.setTotalWeight(new BigDecimal(NumberUtils.parseDouble(driver.get("totalWeight"))));
-            driverVo.setBusinessStatus(NumberUtils.parseEmptyInteger(driver.get("businessStatus")));
+            driverVo.setId(driver.getId());
+            driverVo.setName(driver.getName());
+            driverVo.setPhone(driver.getPhone());
+            driverVo.setIdcard(driver.getIdcard());
+            driverVo.setTotalComplete(driver.getTotalComplete());
+            driverVo.setTotalTake(driver.getTotalTake());
+            driverVo.setTotalWeight(driver.getTotalWeight());
+            driverVo.setBusinessStatus(driver.getBusinessStatus());
             driverMap.put(driverVo.getId(), driverVo);
         }
         return driverMap;
@@ -127,23 +127,23 @@ public class RemoteFleetServiceImpl implements RemoteFleetService {
     public Map<String, RTruckVo> findTruck(List<String> truckNos) {
         /**获取数据**/
         Map<String, RTruckVo> truckMap = new HashMap<>(Global.NUMERICAL_SIXTEEN);
-        List<Map<String, Object>> trucks = truckDao.findList(new HashMap<>(Global.NUMERICAL_SIXTEEN){{put("truckNos", truckNos);}});
+        List<KwfTruck> trucks = truckDao.findTruck(new HashMap<>(Global.NUMERICAL_SIXTEEN){{put("truckNos", truckNos);}});
         if (CollectionUtils.isEmpty(trucks)) {
             return truckMap;
         }
 
         /**数据处理**/
-        for (Map<String, Object> truck : trucks) {
+        for (KwfTruck truck : trucks) {
             RTruckVo truckVo = new RTruckVo();
-            truckVo.setId(NumberUtils.parseEmptyLong(truck.get("id")));
-            truckVo.setTruckNo(StringUtils.objectStr(truck.get("truckNo")));
-            truckVo.setActualWeight(NumberUtils.parseEmptyDouble(truck.get("actualWeight")));
-            truckVo.setTrailerNo(StringUtils.objectStr(truck.get("trailerNo")));
-            truckVo.setTotalComplete(NumberUtils.parseEmptyInteger(truck.get("totalComplete")));
-            truckVo.setTotalTake(NumberUtils.parseEmptyInteger(truck.get("totalTake")));
-            truckVo.setTotalWeight(new BigDecimal(NumberUtils.parseDouble(truck.get("totalWeight"))));
-            truckVo.setBusinessStatus(NumberUtils.parseEmptyInteger(truck.get("businessStatus")));
-            truckVo.setTruckType(truck.get("truckType") == null ? null : truck.get("truckType").toString());
+            truckVo.setId(truck.getId());
+            truckVo.setTruckNo(truck.getTruckNo());
+            truckVo.setActualWeight(truck.getActualWeight() != null ? truck.getActualWeight().doubleValue() : null );
+            truckVo.setTrailerNo(truck.getTrailerNo());
+            truckVo.setTotalComplete(truck.getTotalComplete());
+            truckVo.setTotalTake(truck.getTotalTake());
+            truckVo.setTotalWeight(truck.getTotalWeight());
+            truckVo.setBusinessStatus(truck.getBusinessStatus());
+            truckVo.setTruckType(StringUtils.objectStr(truck.getType()));
             truckMap.put(truckVo.getTruckNo(), truckVo);
         }
         return truckMap;

+ 8 - 0
sckw-modules/sckw-fleet/src/main/resources/mapper/KwfDriverMapper.xml

@@ -291,6 +291,14 @@
         <if test="authStatus != null and authStatus != '' and authStatus != 0">
             and dr.auth_status = #{authStatus, jdbcType=VARCHAR}
         </if>
+        <choose>
+            <when test="ids != null and ids != '' and ids.size() > 0">
+                and dr.id in
+                <foreach collection="ids" item="id" open="(" close=")" separator=",">
+                    #{id,jdbcType=BIGINT}
+                </foreach>
+            </when>
+        </choose>
         ORDER BY create_time desc
     </select>
 

+ 8 - 0
sckw-modules/sckw-fleet/src/main/resources/mapper/KwfTruckMapper.xml

@@ -298,6 +298,14 @@
         <if test="authStatus != null and authStatus != '' and authStatus != 0">
             and auth_status = #{authStatus, jdbcType=VARCHAR}
         </if>
+        <choose>
+            <when test="truckNos != null and truckNos != '' and truckNos.size() > 0">
+                and truck_no in
+                <foreach collection="truckNos" item="truckNo" open="(" close=")" separator=",">
+                    #{truckNo,jdbcType=VARCHAR}
+                </foreach>
+            </when>
+        </choose>
         ORDER BY create_time desc
     </select>
 

+ 5 - 0
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/model/vo/WaybillOrderDriverVo.java

@@ -99,6 +99,11 @@ public class WaybillOrderDriverVo {
      */
     private String unit;
 
+    /**
+     * 单位(吨、方、箱、件)
+     */
+    private String unitName;
+
     /**
      * 装货地址名称
      */

+ 33 - 7
sckw-modules/sckw-transport/src/main/java/com/sckw/transport/service/KwtWaybillOrderService.java

@@ -153,19 +153,24 @@ public class KwtWaybillOrderService {
 
         /**数据配置**/
         List<Long> entIds = new ArrayList<>();
+        List<String> dictKey = new ArrayList<>();
         for (WaybillOrderDriverVo waybillOrder : waybillOrders) {
             entIds.add(waybillOrder.getCarrierEntId());
+            dictKey.add(DictTypeEnum.UNIT_TYPE.getType() + Global.POUND + waybillOrder.getUnit());
         }
         //企业数据集
         entIds = entIds.stream().distinct().collect(Collectors.toList());
         Map<Long, EntCacheResDto> ents = remoteSystemService.queryEntCacheMapByIds(entIds);
+        //数据字典
+        Map<String, SysDictResDto> dicts = this.dict(dictKey);
 
         //数据组装
         for (WaybillOrderDriverVo waybillOrder : waybillOrders) {
             EntCacheResDto ent = ents == null ? null : ents.get(waybillOrder.getCarrierEntId());
-            String value = getDictValue(DictTypeEnum.UNIT_TYPE.getType(), waybillOrder.getUnit());
+            SysDictResDto unit = dicts == null ? null : dicts.get(DictTypeEnum.UNIT_TYPE.getType() + Global.POUND + waybillOrder.getUnit());
+            //String value = getDictValue(DictTypeEnum.UNIT_TYPE.getType(), waybillOrder.getUnit());
             waybillOrder.setCarrierFirmName(ent != null ? ent.getFirmName() : null);
-            waybillOrder.setUnit(value);
+            waybillOrder.setUnitName(unit != null ? unit.getLabel() : null);
         }
         return waybillOrders;
     }
@@ -235,6 +240,11 @@ public class KwtWaybillOrderService {
         if (waybillOrder == null && circulate == null) {
             return HttpResult.error("车辆运单不存在!");
         }
+        if (waybillOrder != null) {
+            if (!CarWaybillEnum.changeDriver(waybillOrder.getStatus())) {
+                return HttpResult.error("车辆运单当前状态不能变更司机!");
+            }
+        }
 
         /**循环派车**/
         if (params.getType() == Global.NUMERICAL_TWO) {
@@ -249,7 +259,7 @@ public class KwtWaybillOrderService {
         }
 
         if (waybillOrder != null) {
-            if (!CarWaybillEnum.changeDriverAndTruck(waybillOrder.getStatus())) {
+            if (!CarWaybillEnum.changeDriver(waybillOrder.getStatus())) {
                 return HttpResult.error("车辆运单当前状态不能变更司机!");
             }
             /**更新车辆运单**/
@@ -282,6 +292,11 @@ public class KwtWaybillOrderService {
         if (waybillOrder == null && circulate == null) {
             return HttpResult.error("车辆运单不存在!");
         }
+        if (waybillOrder != null) {
+            if (!CarWaybillEnum.changeTruck(waybillOrder.getStatus())) {
+                return HttpResult.error("车辆运单当前状态不能变更车辆!");
+            }
+        }
 
         /**循环派车**/
         if (params.getType() == Global.NUMERICAL_TWO) {
@@ -296,9 +311,6 @@ public class KwtWaybillOrderService {
         }
 
         if (waybillOrder != null) {
-            if (!CarWaybillEnum.changeDriverAndTruck(waybillOrder.getStatus())) {
-                return HttpResult.error("车辆运单当前状态不能变更车辆!");
-            }
             /**更新车辆运单**/
             changeWaybillOrder(null, params);
             wOrder.set_id(params.getWOrderId());
@@ -328,7 +340,6 @@ public class KwtWaybillOrderService {
         //循环派车信息
         KwtLogisticsOrderCirculate circulate = new KwtLogisticsOrderCirculate();
         if (driver != null) {
-            circulate.setId(circulateId);
             circulate.setDriverId(driver.getDriverId());
             circulate.setDriverPhone(driver.getDriverPhone());
             circulate.setDriverName(driver.getDriverName());
@@ -338,6 +349,7 @@ public class KwtWaybillOrderService {
             circulate.setTruckId(truck.getTruckId());
             circulate.setTruckNo(truck.getTruckNo());
         }
+        circulate.setId(circulateId);
         logisticsOrderCirculateDao.updateById(circulate);
     }
 
@@ -2691,4 +2703,18 @@ public class KwtWaybillOrderService {
         SysDictResDto dict = dicts == null ? null : dicts.get(DictTypeEnum.APPROVED_DRIVING.getType() + Global.POUND + value);
         return dict != null ? dict.getLabel() : null;
     }
+
+    /**
+     * @param dictKey 字典值
+     * @desc 获取数据字典
+     * @author zk
+     * @date 2023/9/11
+     **/
+    public Map<String, SysDictResDto> dict(List<String> dictKey) {
+        if (CollectionUtils.isEmpty(dictKey)) {
+            return Collections.emptyMap();
+        }
+        dictKey = dictKey.stream().distinct().collect(Collectors.toList());
+        return remoteSystemService.queryDictMapByTypeValues(String.join(Global.COMMA, dictKey));
+    }
 }

+ 3 - 2
sckw-modules/sckw-transport/src/main/resources/mapper/KwtWaybillOrderMapper.xml

@@ -434,7 +434,7 @@
             parameterType="java.util.Map">
         SELECT
         wo.id wOrderId, wo.w_order_no wOrderNo, wo.l_order_id lOrderId, lo.l_order_no lOrderNo,
-        lo.unit, lo.loss_unit lossUnit, wo.type,
+        lo.unit, lo.loss, lo.loss_unit lossUnit, wo.type,
         wo.ent_id carrierEntId, 'xxxxx' carrierFirmName, log.goods_name goodsName, wo.start_time startTime,
         wo.end_time endTime, wo.entrust_amount entrustAmount, woa1.name loadName, woa1.city_code loadCityCode,
         woa1.city_name loadCityName, woa1.detail_address loadDetailAddress, woa2.name unloadName, woa2.city_code
@@ -473,7 +473,8 @@
             ORDER BY wo.start_time
         </if>
         <if test="busStatus != null and busStatus == 4">
-            ORDER BY wo.update_time desc
+            ORDER BY CASE WHEN wo.status = 12 THEN  wo.status * -1  ELSE wo.status END ASC,
+            wo.update_time desc
         </if>
     </select>