txf 3 years ago
parent
commit
fcaef50726

+ 5 - 1
src/main/java/com/steerinfo/dil/controller/TmstruckLoadResultController.java

@@ -132,7 +132,11 @@ public class TmstruckLoadResultController extends BaseRESTfulController {
     @PostMapping("/addSaleLoadResult")
     public RESTfulResult addSaleLoadResult(@RequestBody(required=false) Map<String, Object> map){
         int i = tmstruckLoadResultService.addXSLoadResult(map);
-        return success(i);
+        if(i > 0){
+            return success("装车成功");
+        }else{
+            return failed("装车失败!请联系管理员");
+        }
     }
 
     @ApiOperation(value="销售新增钢渣、水渣、危化品装车实绩 ")

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

@@ -40,7 +40,7 @@ public interface TmstruckEnfactoryResultMapper extends IBaseMapper<TmstruckEnfac
     Integer selectGatepostIdByGatepostName(String gatepostName);
 
     //根据orderNumber获取实绩id  总实绩Id 订单id  订单类型 orderTypee
-    Map<String, Object> selectEnFactoryResultId(String orderNumber);
+    Map<String, Object> selectEnFactoryResultId(BigDecimal resultTotalId);
 
     //查找排队序号
     Integer selectNodeNumber(String orderNumber);

+ 3 - 0
src/main/java/com/steerinfo/dil/mapper/TmstruckLoadResultMapper.java

@@ -125,4 +125,7 @@ public interface TmstruckLoadResultMapper extends IBaseMapper<TmstruckLoadResult
 
     //查询这个物资是否已经装过了
     Integer checkMaterialIdLoad(@Param("resultTotalId") BigDecimal resultTotalId,@Param("materialId") BigDecimal materialId);
+
+    //通过钢材运输订单号查询装车实绩
+    Map<String, Object> getSteelLoadResult(String orderNumber);
 }

+ 5 - 8
src/main/java/com/steerinfo/dil/service/impl/TmstruckEnfactoryResultServiceImpl.java

@@ -163,7 +163,7 @@ public class TmstruckEnfactoryResultServiceImpl implements ITmstruckEnfactoryRes
         else if (orderType == 21){//调用计时作业方法
             return orderType21Use(map, orderNumber, DataChange.dataToBigDecimal(mesMap.get("orderId")));
         }
-        Map<String, Object> selectMap = tmstruckEnfactoryResultMapper.selectEnFactoryResultId(orderNumber);
+        Map<String, Object> selectMap = tmstruckEnfactoryResultMapper.selectEnFactoryResultId(resultTotalId);
         if(selectMap == null){
             throw new Exception("该车已进厂!!");
         }else{
@@ -174,17 +174,14 @@ public class TmstruckEnfactoryResultServiceImpl implements ITmstruckEnfactoryRes
                 throw  new Exception("作业环节未到进厂!");
             }
         }
+        map.putAll(mesMap);
         map.putAll(selectMap);
         //判断委托是否发送成功
         int checkMeasureCommission = 0;
         switch (orderType){
             case 1:
-                //查询未装车实绩
-                List<Map<String, Object>> mapList = rulesService.judgeLastMaterial(DataChange.dataToBigDecimal(map.get("orderId")));
-                map.put("materialId", mapList.get(0).get("materialId"));
-                checkMeasureCommission = tmstruckMeasureCommissionService.addXSMeasureCommission(map); //添加计皮委托
-                break;
-            case 4:
+                //发送空委托
+                checkMeasureCommission = tmstruckMeasureCommissionService.addSteelMeasureCommission(map);
                 break;
             case 2:
             case 3:
@@ -299,7 +296,7 @@ public class TmstruckEnfactoryResultServiceImpl implements ITmstruckEnfactoryRes
         //通过运输订单号查询订单类型
         String orderNumber = (String) map.get("orderNumber");
         String subString = orderNumber.substring(0,orderNumber.length() - 1);
-        map.putAll(tmstruckEnfactoryResultMapper.selectEnFactoryResultId(subString));
+        map.putAll(tmstruckEnfactoryResultMapper.selectEnFactoryResultId(null));
         BigDecimal orderType = DataChange.dataToBigDecimal(map.get("orderTypee"));
 
         switch (orderType.intValue()){

+ 30 - 48
src/main/java/com/steerinfo/dil/service/impl/TmstruckLoadResultServiceImpl.java

@@ -140,66 +140,48 @@ public class TmstruckLoadResultServiceImpl implements ITmstruckLoadResultService
     }
 
     /**
-     * PDA新增销售钢材装车实绩  (如果是多种物资【多拼】,通过物资Id和运输订单号来确定唯一的装车实绩进行修改)
-     *    orderNumber 运输订单号
-     *  insertUpdateRemark 备注   scanText 扫描结果
+     * 钢材装车
+     * orderNumber materialId loadStartTime loadEndTime  personnelSsoId warehouseId insertUpdateRemark
      * @param map
      * @return
      */
     @Transactional
     public int addXSLoadResult(Map<String, Object> map){
-        //通过扫描结果截取物资唯一编码
-        String scanText = (String) map.get("scanText");
-        String[] split = scanText.split("-");
-        String materialOnlyCode = split[7];
-        //通过物资唯一编码查找物资Id
-        BigDecimal materialId = tmstruckLoadResultMapper.getMaterialIdByMaterialCode(materialOnlyCode);
-        //通过运输订单号查找总实绩ID
-        Map<String,Object> orderMap = tmstruckEnfactoryResultMapper.selectTotalResultIdByCpAndOn(map);
-        BigDecimal resultTotalId = (BigDecimal) orderMap.get("resultTotalId");
-        map.put("resultTotalId", resultTotalId.intValue());
-        //通过总实绩ID与物资ID查找 装车实绩主键ID
-        Map<String, Object> resultIdMap = tmstruckLoadResultMapper.getLoadResultIdByMIdAndTotalId(null);
+        //通过运输订单号查询实绩
+        String orderNumber = (String) map.get("orderNumber");
+        Map<String, Object> steelMesMap = tmstruckLoadResultMapper.getSteelLoadResult(orderNumber);
+        if(steelMesMap == null){
+            return -1;
+        }
         TmstruckLoadResult tmstruckLoadResult = new TmstruckLoadResult();
-        tmstruckLoadResult.setStatus(new BigDecimal(0)); // 添加状态0:正常
-        //编辑装车实绩主键ID对应的各个字段
-        tmstruckLoadResult.setResultId(DataChange.dataToBigDecimal(resultIdMap.get("resultId")));
-        // 获取扫描实绩最小Id  添加扫描开始时间
-        map.put("materialId", materialId);
-        Map<String, Object> scanMap = tmstruckLoadResultMapper.getMinScanIdByOrderNum(map);
-        Date resultLoadStartTime = tmstruckLoadResultMapper.selectLoadTimeByResultId(DataChange.dataToBigDecimal(scanMap.get("resultId")));
-        tmstruckLoadResult.setResultLoadStartTime(resultLoadStartTime);
-        // 添加装卸工Id
-        tmstruckLoadResult.setLoaderId(DataChange.dataToBigDecimal(scanMap.get("loadId")));
-        // 添加扫描结束时间 以调用当前接口时间为结束时间
-        Date resultLoadEndTime = new Date();
-        tmstruckLoadResult.setResultLoadEndTime(resultLoadEndTime);
-        // 添加装车实绩时长  ----  计算装车时长
-        long time = (resultLoadEndTime.getTime() - resultLoadStartTime.getTime()) / 60000; // 分钟
-        tmstruckLoadResult.setResultLoadDuration(new BigDecimal(time));
-        //添加装车标准时长
-        setLoadStandardTimeId((String)map.get("orderNumber"), tmstruckLoadResult);
-        Object platformName = map.get("platformName");
-        if(platformName != null){
-            // 如果月台不为空则更新月台
-            Integer platformId = utilsService.queryPlatformIdByName((String) platformName);
-            tmstruckLoadResult.setLoadingId(new BigDecimal(platformId));
+        //总实绩ID 开始时间 结束时间 装车时长 物资Id 装卸工ID 装货点Id 备注
+        tmstruckLoadResult.setResultId(DataChange.dataToBigDecimal(steelMesMap.get("resultId")));
+        long loadStartTime = (long) map.get("loadStartTime");
+        tmstruckLoadResult.setResultLoadStartTime(new Date(loadStartTime));
+        long loadEndTime = (long) map.get("loadEndTime");
+        tmstruckLoadResult.setResultLoadEndTime(new Date(loadEndTime));
+        long duration = (loadEndTime - loadStartTime) / (60000);
+        tmstruckLoadResult.setResultLoadDuration(new BigDecimal(duration));
+        if(map.get("personnelSsoId") != null){
+            //通过SSo主键查询人员管理主键
+            Integer personnelId = utilsMapper.getPersonnelIdBySsoId((String) map.get("personnelSsoId"));
+            if(personnelId != null){
+                tmstruckLoadResult.setLoaderId(new BigDecimal(personnelId));
+            }
         }
-        // 添加备注
+        tmstruckLoadResult.setMaterialId(DataChange.dataToBigDecimal(map.get("materialId")));
+        tmstruckLoadResult.setLoadingId(DataChange.dataToBigDecimal(map.get("warehouseId")));
         tmstruckLoadResult.setInsertUpdateRemark((String) map.get("insertUpdateRemark"));
-        int i = tmstruckLoadResultMapper.updateByPrimaryKeySelective(tmstruckLoadResult);
-        //更新汽车衡
-        i += tmstruckWeightResultService.calculateTruckCalculate(map, resultTotalId.intValue());
-        //发送计毛委托 订单类型:1
-//        map.put("orderTypee", 1);
-//        tmstruckMeasureCommissionService.addMaoMeasureCommission(map);
-        return i;
+        tmstruckLoadResultMapper.updateByPrimaryKeySelective(tmstruckLoadResult);
+        //更新路段顺序号
+        utilsService.updateOrderLineSequence(steelMesMap); //orderId segmentSqe
+        utilsService.pushMesToWebsocket((String) steelMesMap.get("capacityNumber"), "装货");
+        return 1;
     }
 
     /**
-     * PDA新增销售钢渣、水渣、危化品装车实绩  采购内转
+     * PDA新增装车实绩 (非钢材)
      * loadStartTime 装车开始时间
-     * warehouseId  仓库Id      orderNumber 运输订单号 / orderId   insertUpdateRemark 备注
      * @param map
      * @return
      */

+ 18 - 0
src/main/java/com/steerinfo/dil/service/impl/TmstruckMeasureCommissionServiceImpl.java

@@ -155,6 +155,24 @@ public class TmstruckMeasureCommissionServiceImpl implements ITmstruckMeasureCom
         return i;
     }
 
+    /**
+     * 发送钢材销售委托:只有老厂区有钢材
+     * @param map
+     * @return
+     */
+    public int addSteelMeasureCommission(Map<String, Object> map){
+        if(map.get("firstMC") != null){ //进厂发送空委托
+            Map<String, Object> measureCommission = new HashMap<>();
+            measureCommission.put("flowTo","出厂钢材");
+            measureCommission.put("isDel", false);
+            measureCommission.put("isInsert", true);
+            measureCommission.put("carNum", map.get("capacityNumber"));
+            measureCommission.put("transportNum", map.get("orderNumber"));
+            return sendMesToMeasure(measureCommission);
+        }
+        return 0;
+    }
+
     /**
      * 添加零星物资计量委托
      * @param map

+ 4 - 4
src/main/java/com/steerinfo/dil/service/impl/TmstruckSmsRusultServiceImpl.java

@@ -3,6 +3,7 @@ package com.steerinfo.dil.service.impl;
 import com.steerinfo.dil.feign.JoinFeign;
 import com.steerinfo.dil.mapper.TmstruckLeaveFactoryResultMapper;
 import com.steerinfo.dil.mapper.TmstruckSmsRusultMapper;
+import com.steerinfo.dil.mapper.UtilsMapper;
 import com.steerinfo.dil.model.TmstruckSmsRusult;
 import com.steerinfo.dil.service.ITmstruckSmsRusultService;
 import com.steerinfo.dil.util.MD5Util;
@@ -37,7 +38,7 @@ public class TmstruckSmsRusultServiceImpl extends BaseServiceImpl<TmstruckSmsRus
     @Autowired
     private TmstruckSmsRusultMapper tmstruckSmsRusultMapper;
     @Autowired
-    private TmstruckLeaveFactoryResultMapper tmstruckLeaveFactoryResultMapper;
+    private UtilsMapper utilsMapper;
     @Autowired
     JoinFeign joinFeign;
 //    @Autowired
@@ -64,9 +65,8 @@ public class TmstruckSmsRusultServiceImpl extends BaseServiceImpl<TmstruckSmsRus
         TmstruckSmsRusult tmstruckSmsRusult=new TmstruckSmsRusult();
         tmstruckSmsRusult.setResultId(tmstruckSmsRusultMapper.selectMaxId());
         //新增总实绩id
-        Map<String,Object> map1= tmstruckLeaveFactoryResultMapper.selectResultId(orderNumber);
-        Integer resultTotalId = Integer.parseInt(map1.get("resultTotalId").toString());
-        tmstruckSmsRusult.setTotalResultId(new BigDecimal(resultTotalId));
+        BigDecimal resultTotalId = utilsMapper.getTotalIdByOrderNumber(orderNumber);
+        tmstruckSmsRusult.setTotalResultId(resultTotalId);
         Integer shipperId = tmstruckSmsRusultMapper.selectShipperIdByOrderNumber(orderNumber);
         //设置发送方id
         tmstruckSmsRusult.setSenderId(new BigDecimal(shipperId));

+ 5 - 10
src/main/java/com/steerinfo/dil/util/DataChange.java

@@ -22,17 +22,12 @@ public class DataChange {
      * @return
      */
     public static Date dataToDate(Object vueDate){
-        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
-        Date parseDate = null;
-        if (vueDate != null){
-            try {
-                String date = (String) vueDate;
-                parseDate = sdf.parse(date);
-            } catch (ParseException e) {
-                e.printStackTrace();
-            }
+        if(vueDate instanceof Date){
+            return (Date) vueDate;
+        } else if (vueDate instanceof String) {
+
         }
-        return parseDate;
+        return null;
     }
 
     /**

+ 10 - 18
src/main/resources/com/steerinfo/dil/mapper/TmstruckEnfactoryResultMapper.xml

@@ -669,24 +669,16 @@
     </select>
 
     <!--  通过运输订单号查找实绩Id -->
-    <select id="selectEnFactoryResultId" parameterType="string" resultType="java.util.Map">
-        select * from (select TER.RESULT_ID              "resultId",
-               OO.ORDER_ID                "orderId",
-               OO.ORDER_TYPE              "orderTypee", --避免与筛选条件重名
-               OO.ORDER_TYPE              "orderType",
-               TER.RESULT_TOTAL_ID        "resultTotalId",
-               TER.SEGMEN_SQE             "segmentSqe", --进厂的路段顺序号
-               OO.ORDER_LINE_SEQUENCE       "orderSegmentSqe",
-               ter.result_entry_gate_time
-          from OMSTRUCK_ORDER OO
-          left join TMSTRUCK_TOTAL_RESULT TTR
-            on OO.ORDER_ID = TTR.ORDER_ID
-          left join TMSTRUCK_ENFACTORY_RESULT TER
-            on TER.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
-         where OO.ORDER_NUMBER = #{orderNumber}
-           and ter.result_entry_gate_time is null
-         order by TER.SEGMEN_SQE)
-         where rownum=1
+    <select id="selectEnFactoryResultId" parameterType="java.math.BigDecimal" resultType="java.util.Map">
+        select *
+        from (select TER.RESULT_ID       "resultId",
+                     TER.SEGMEN_SQE      "segmentSqe", --进厂的路段顺序号
+                     TER.RESULT_ENTRY_GATE_TIME
+              from TMSTRUCK_ENFACTORY_RESULT TER
+              where TER.RESULT_TOTAL_ID = #{resultTotalId}
+                and TER.RESULT_ENTRY_GATE_TIME is null
+              order by TER.SEGMEN_SQE)
+        where rownum = 1
     </select>
 
     <!--  查找排队序号 -->

+ 2 - 3
src/main/resources/com/steerinfo/dil/mapper/TmstruckLeaveFactoryResultMapper.xml

@@ -600,10 +600,9 @@
                         OO.ORDER_ID         "orderId",
                         OO.ORDER_TYPE       "orderTypee",
                         TTR.RESULT_TOTAL_ID "resultTotalId",
-                        OO.CAPACITY_ID      "capacityId",
+
                         TLFR.SEGMENT_SQE    "segmentSqe",
-                        OO.ORDER_LINE_SEQUENCE      "orderSegmentSqe",
-                        OO.PRICE_ID             "priceId"
+
                  from OMSTRUCK_ORDER OO
                           left join TMSTRUCK_TOTAL_RESULT TTR
                                     on OO.ORDER_ID = TTR.ORDER_ID

+ 20 - 0
src/main/resources/com/steerinfo/dil/mapper/TmstruckLoadResultMapper.xml

@@ -1670,4 +1670,24 @@
         and  TLR.MATERIAL_ID = #{materialId}
   </select>
 
+  <select id="getSteelLoadResult" parameterType="string" resultType="java.util.Map">
+    SELECT *
+    FROM (
+           SELECT OO.ORDER_ID         "orderId",
+                  OO.ORDER_TYPE       "orderType",
+                  TTR.RESULT_TOTAL_ID "resultTotalId",
+                  TLR.RESULT_ID       "resultId",
+                  TLR.SEGMENT_SQE     "segmentSqe",
+                  RC.CAPACITY_NUMBER   "capacityNumber"
+
+           FROM OMSTRUCK_ORDER OO
+                  LEFT JOIN TMSTRUCK_TOTAL_RESULT TTR ON OO.ORDER_ID = TTR.ORDER_ID
+                  LEFT JOIN TMSTRUCK_LOAD_RESULT TLR ON TTR.RESULT_TOTAL_ID = TLR.RESULT_TOTAL_ID
+                  LEFT JOIN RMS_CAPACITY RC ON OO.CAPACITY_ID = RC.CAPACITY_ID
+           WHERE OO.ORDER_NUMBER = #{orderNumber} AND TLR.RESULT_LOAD_END_TIME IS NULL
+           ORDER BY TLR.SEGMENT_SQE
+         )
+    WHERE ROWNUM = 1
+  </select>
+
 </mapper>

+ 1 - 0
src/main/resources/com/steerinfo/dil/mapper/UtilsMapper.xml

@@ -198,6 +198,7 @@
 
     <select id="getOrderTypeByOrderNumber" parameterType="string" resultType="map">
         select OO.ORDER_TYPE "orderType",
+               OO.ORDER_TYPE              "orderTypee",
                TTR.RESULT_TOTAL_ID "totalId",
                TTR.RESULT_TOTAL_ID "resultTotalId",
                OO.ORDER_ID      "orderId",