Your Name %!s(int64=3) %!d(string=hai) anos
pai
achega
867328dbec

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

@@ -51,4 +51,5 @@ public interface TmstruckUnloadResultMapper extends IBaseMapper<TmstruckUnloadRe
      //查询物资是否被计量(map:orderNumber,MaterialId)
     Integer selectUnloadMaterialId(Map<String,Object> map);
 
+    Map<String,Object> selectOrderId(Map<String, Object> map);
 }

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

@@ -153,17 +153,20 @@ public class TmstruckEnfactoryResultServiceImpl implements ITmstruckEnfactoryRes
         String orderNumber = (String) map.get("orderNumber");
         //通过订单号查询订单类型 及总实绩Id
         Map<String, Object> mesMap = utilsMapper.getOrderTypeByOrderNumber(orderNumber);
+        String capacityNumber = (String) mesMap.get("capacityNumber");
+        BigDecimal resultTotalId = DataChange.dataToBigDecimal(map.get("resultTotalId"));
         Integer orderType = DataChange.dataToBigDecimal(mesMap.get("orderType")).intValue();
-
         if(orderType == 11){
             //内转订单类型  没有生成实绩 直接新增
-            Integer sqe = utilsMapper.getLineSequenceByOrderNumber(orderNumber);
-            sqe = sqe == null ? 1 : sqe + 1;
+            Integer sqe = DataChange.dataToBigDecimal(mesMap.get("Sqe")).intValue();
+            sqe = sqe + 1;
             map.put("resultId", tmstruckEnfactoryResultMapper.selectMaxId());  //插入进厂实绩Id
             map.put("Sqe", sqe); //查询路段顺序号 + 1
+            map.put("totalId",resultTotalId);
             i += tmstruckEnfactoryResultMapper.insertSelective(generateEnFactoryResult(map));
             mesMap.put("orderLineSequence", sqe);
             i += utilsService.updateOrderLineSqeByOrderNumber(mesMap); //更新路段顺序号
+            utilsService.pushMesToWebsocket(capacityNumber, "车辆进厂");
             return i;
         }
 
@@ -180,7 +183,7 @@ public class TmstruckEnfactoryResultServiceImpl implements ITmstruckEnfactoryRes
         }
         map.putAll(selectMap);
         BigDecimal orderId = DataChange.dataToBigDecimal(map.get("orderId"));
-        BigDecimal resultTotalId = DataChange.dataToBigDecimal(map.get("resultTotalId"));
+
         //判断委托是否发送成功
         int checkMeasureCommission = 0;
         switch (orderType){
@@ -240,7 +243,7 @@ public class TmstruckEnfactoryResultServiceImpl implements ITmstruckEnfactoryRes
         i += tmstruckEnfactoryResultMapper.updateByPrimaryKeySelective(generateEnFactoryResult(map)); //添加进厂实绩
         //修改路段顺序号
         i += utilsService.updateOrderLineSequence(map);
-        utilsService.pushMesToWebsocket((String) map.get("capacityNumber"), "车辆进厂");
+        utilsService.pushMesToWebsocket(capacityNumber, "车辆进厂");
         return i;
 
     }

+ 37 - 1
src/main/java/com/steerinfo/dil/service/impl/TmstruckLeaveFactoryResultServiceImpl.java

@@ -164,6 +164,22 @@ public class TmstruckLeaveFactoryResultServiceImpl implements ITmstruckLeaveFact
         String orderNumber = (String) map.get("orderNumber");
         String substring = orderNumber.substring(0, orderNumber.length() - 1);
         Map<String, Object> selectMap = tmstruckLeaveFactoryResultMapper.selectResultId(substring);
+        BigDecimal orderType = DataChange.dataToBigDecimal(selectMap.get("orderTypee"));
+        BigDecimal resultTotalId = DataChange.dataToBigDecimal(selectMap.get("resultTotalId"));
+        if(orderType.intValue() == 11){
+            //内转订单类型 没有生成实绩 直接新增
+            Integer sqe = utilsMapper.getLineSequenceByOrderNumber(substring);
+            sqe = sqe == null ? 1 : sqe + 1;
+            map.put("resultId",tmstruckLeaveFactoryResultMapper.selectMaxId());//出厂实绩ID
+            map.put("Sqe",sqe);//查询路段顺序号+1
+            map.put(("totalId"),resultTotalId);
+            i += tmstruckLeaveFactoryResultMapper.insertSelective(generateLeaveFactory(map));
+            //更新路段顺序号
+            selectMap.put("orderLineSequence",sqe);
+            i += utilsService.updateOrderLineSqeByOrderNumber(selectMap);
+            utilsService.pushMesToWebsocket((String) map.get("capacityNumber"), "出厂");
+            return i;
+        }
         if(selectMap == null){
             throw new Exception("该车已出厂!!");
         }else{
@@ -176,7 +192,6 @@ public class TmstruckLeaveFactoryResultServiceImpl implements ITmstruckLeaveFact
         }
         map.putAll(selectMap);
         map.put("orderNumber", substring);
-        BigDecimal orderType = DataChange.dataToBigDecimal(map.get("orderTypee"));
         BigDecimal orderId = DataChange.dataToBigDecimal(map.get("orderId"));
         i += updateLeaveResultByPDA(map); //更新出厂实绩
         //更新路段顺序号
@@ -264,6 +279,27 @@ public class TmstruckLeaveFactoryResultServiceImpl implements ITmstruckLeaveFact
         return i;
     }
 
+    //内转订单类型新增出厂实绩
+    private TmstruckLeaveFactoryResult generateLeaveFactory(Map<String, Object> map) {
+        TmstruckLeaveFactoryResult tmstruckLeaveFactoryResult = new TmstruckLeaveFactoryResult();
+        //获取出厂实绩ID
+        tmstruckLeaveFactoryResult.setResultId(DataChange.dataToBigDecimal(map.get("resultId")));
+        //添加门岗
+        tmstruckLeaveFactoryResult.setGatepostId(DataChange.dataToBigDecimal(map.get("gatepostId")));
+        //添加出厂时间
+        tmstruckLeaveFactoryResult.setResultOutGateTime(new Date());
+        tmstruckLeaveFactoryResult.setInsertTime(new Date());
+        tmstruckLeaveFactoryResult.setResultOutMode("手动抬杆");
+        tmstruckLeaveFactoryResult.setInsertUsername("admin");
+        if(map.get("Sqe") !=null){
+            tmstruckLeaveFactoryResult.setSegmentSqe(DataChange.dataToBigDecimal(map.get("Sqe")));
+        }
+        if(map.get("totalId") !=null){
+            tmstruckLeaveFactoryResult.setSegmentSqe(DataChange.dataToBigDecimal(map.get("totalId")));
+        }
+        return tmstruckLeaveFactoryResult;
+    }
+
     /**
      * 更新出厂实绩
      * @param mapValue {运输订单号:orderNumber 门岗名称:gatepostName}

+ 52 - 18
src/main/java/com/steerinfo/dil/service/impl/TmstruckLoadResultServiceImpl.java

@@ -255,10 +255,30 @@ public class TmstruckLoadResultServiceImpl implements ITmstruckLoadResultService
      */
     @Transactional
     public int addXS2LoadResult(Map<String, Object> map) throws Exception {
-        int j=0;
+
+        //通过运输订单号查询订单类型
+        String orderNumber = (String) map.get("orderNumber");
+        //通过订单号查询订单类型 及总实绩Id
+        Map<String, Object> mesMap = utilsMapper.getOrderTypeByOrderNumber(orderNumber);
+        String capacityNumber = (String) mesMap.get("capacityNumber");
+        BigDecimal orderType = DataChange.dataToBigDecimal(mesMap.get("orderType"));
+        BigDecimal resultTotalId = DataChange.dataToBigDecimal(mesMap.get("totalId"));
+        if(orderType.intValue() == 11){
+            Integer sqe = DataChange.dataToBigDecimal(mesMap.get("Sqe")).intValue();
+            sqe = sqe + 1;
+            map.put("resultId",tmstruckLoadResultMapper.selectMaxId());
+            map.put("Sqe",sqe);//查询路段顺序号+1
+            map.put("resultTotalId", resultTotalId);
+            int i =tmstruckLoadResultMapper.insertSelective(generateLoad(map));
+            //更新路段顺序号
+            mesMap.put("orderLineSequence",sqe);
+            utilsService.updateOrderLineSqeByOrderNumber(mesMap);
+            //推送消息到websocket
+            utilsService.pushMesToWebsocket(capacityNumber, "装货");
+            return i;
+        }
         //通过运输订单号 查询 总实绩ID、订单类型
         Map<String,Object> orderMap = tmstruckEnfactoryResultMapper.selectTotalResultIdByCpAndOn(map);
-        BigDecimal resultTotalId = (BigDecimal) orderMap.get("resultTotalId");
         //查询装车实绩ID
         map.putAll(tmstruckLoadResultMapper.getLoadResultIdByMIdAndTotalId(resultTotalId.intValue(), null));
         TmstruckLoadResult tmstruckLoadResult = new TmstruckLoadResult();
@@ -281,18 +301,6 @@ public class TmstruckLoadResultServiceImpl implements ITmstruckLoadResultService
                 tmstruckLoadResult.setLoaderId(new BigDecimal(personnelId));
             }
         }
-        BigDecimal orderType =(BigDecimal) orderMap.get("orderType");
-        BigDecimal orderId=DataChange.dataToBigDecimal("orderId");
-        if (orderType.intValue()==11){
-            //判断是否需要第二次计量
-            //根据运输订单号查找物资
-            Integer materialNum = utilsMapper.countMaterialByOrderId(orderId);
-            if (materialNum>1) {
-                //发送第二次计量委托
-                j += tmstruckMeasureCommissionService.sendMeasureCommssion(map);
-
-            }
-        }
         // 更新装货点
         tmstruckLoadResult.setLoadingId(DataChange.dataToBigDecimal(map.get("warehouseId")));
         //更新路段顺序号
@@ -305,16 +313,42 @@ public class TmstruckLoadResultServiceImpl implements ITmstruckLoadResultService
             }
             tmstruckLoadResult.setInsertUpdateRemark(insertUpdateRemark);
         }
-        if (j == 0) {
-            throw new Exception("第二次委托发送失败");
-        }
         tmstruckLoadResult.setCaseNumber((String) map.get("caseNumber"));
         i += tmstruckLoadResultMapper.updateByPrimaryKeySelective(tmstruckLoadResult);
         //推送消息到websocket
-        utilsService.pushMesToWebsocket((String) orderMap.get("capacityNumber"), "装货");
+        utilsService.pushMesToWebsocket(capacityNumber, "装货");
         return i;
     }
 
+    //内转添加装货实绩
+    private TmstruckLoadResult generateLoad(Map<String, Object> map) {
+        TmstruckLoadResult tmstruckLoadResult = new TmstruckLoadResult();
+        tmstruckLoadResult.setId(DataChange.dataToBigDecimal(map.get("resultId")));
+        tmstruckLoadResult.setResultTotalId(DataChange.dataToBigDecimal(map.get("resultTotalId")));
+        tmstruckLoadResult.setStatus(new BigDecimal(0));
+        tmstruckLoadResult.setSegmentSqe(DataChange.dataToBigDecimal(map.get("Sqe")));
+        tmstruckLoadResult.setMaterialId(DataChange.dataToBigDecimal(map.get("materialId")));
+        //添加装车开始时间
+        Date loadStartTime = new Date((long) map.get("loadStartTime"));
+        tmstruckLoadResult.setResultLoadStartTime(loadStartTime);
+        //添加装车结束时间(当前时间)
+        Date loadEndTime = new Date();
+        tmstruckLoadResult.setResultLoadEndTime(loadEndTime);
+        //计算装车时长 取分钟
+        long differentTime = (loadEndTime.getTime() - loadStartTime.getTime()) / 60000;
+        tmstruckLoadResult.setResultLoadDuration(new BigDecimal(differentTime));
+        if(map.get("personnelSsoId") != null){
+            //通过SSo主键查询人员管理主键
+            Integer personnelId = utilsMapper.getPersonnelIdBySsoId((String) map.get("personnelSsoId"));
+            if(personnelId != null){
+                tmstruckLoadResult.setLoaderId(new BigDecimal(personnelId));
+            }
+        }
+        // 添加装货点
+        tmstruckLoadResult.setLoadingId(DataChange.dataToBigDecimal(map.get("warehouseId")));
+        return tmstruckLoadResult;
+    }
+
     /**
      * 更改最大路段顺序号 -1
      * @Author TXF

+ 56 - 1
src/main/java/com/steerinfo/dil/service/impl/TmstruckUnloadResultServiceImpl.java

@@ -8,6 +8,8 @@ import com.steerinfo.dil.util.DataChange;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+
+import javax.xml.crypto.Data;
 import java.math.BigDecimal;
 import java.util.Date;
 import java.util.HashMap;
@@ -140,8 +142,29 @@ public class TmstruckUnloadResultServiceImpl implements ITmstruckUnloadResultSer
     @Transactional
     public int updateUnloadResult(Map<String, Object> map) {
         int i = 0;
+        //通过运输订单号查询订单类型
+        String orderNumber = (String) map.get("orderNumber");
+        //通过订单号查询订单类型 及总实绩Id
+        Map<String, Object> mesMap = utilsMapper.getOrderTypeByOrderNumber(orderNumber);
+        BigDecimal orderType = DataChange.dataToBigDecimal(mesMap.get("orderType"));
+        //判断是不是内转
+        if(orderType.intValue() == 11){
+            //如果是内转新增卸货实绩
+            Integer sqe = utilsMapper.getLineSequenceByOrderNumber((String) map.get("orderNumber"));
+            sqe = sqe == null ? 1 : sqe +1;
+            BigDecimal totalId = DataChange.dataToBigDecimal(mesMap.get("totalId"));
+            map.put("resultId",tmstruckUnloadResultMapper.selectMaxId());
+            map.put("Sqe",sqe);
+            map.put("totalId",totalId);
+            i += tmstruckUnloadResultMapper.insertSelective(generateUnload(map));
+            //更新路段顺序号
+            mesMap.put("orderLineSequence",sqe);
+            i += utilsService.updateOrderLineSqeByOrderNumber(mesMap);
+            //卸货成功后推送消息给websocket
+            utilsService.pushMesToWebsocket((String) map.get("capacityNumber"), "卸货");
+            return i;
+        }
         map.putAll(tmstruckUnloadResultMapper.selectTotalIdByOrderNo((String) map.get("orderNumber")));
-        BigDecimal orderType = DataChange.dataToBigDecimal(map.get("orderTypee"));
         i += updateUnloadResultBy(map); //更新卸货实绩
         //路段顺序号 + 1
         i += utilsService.updateOrderLineSequence(map);
@@ -179,6 +202,38 @@ public class TmstruckUnloadResultServiceImpl implements ITmstruckUnloadResultSer
         return i;
     }
 
+    /*
+    内转物流新增卸货实绩
+     */
+    private TmstruckUnloadResult generateUnload(Map<String, Object> map) {
+        TmstruckUnloadResult tmstruckUnloadResult = new TmstruckUnloadResult();
+        tmstruckUnloadResult.setResultId(DataChange.dataToBigDecimal(map.get("resultId")));
+        tmstruckUnloadResult.setResultTotalId(DataChange.dataToBigDecimal(map.get("totalId")));
+        tmstruckUnloadResult.setSegmentSqe(DataChange.dataToBigDecimal(map.get("Sqe")));
+        //添加卸货点
+        if(map.get("warehouseId") !=null){
+            tmstruckUnloadResult.setResultUnloadPlaceId(DataChange.dataToBigDecimal(map.get("warehouseId")));
+        }if(map.get("personnelSsoId") !=null){
+            //通过SSo主键查询人员管理主键
+            Integer personnelId = utilsMapper.getPersonnelIdBySsoId((String)map.get("personnelSsoId"));
+            if(personnelId !=null){
+                tmstruckUnloadResult.setUnloaderId(new BigDecimal(personnelId));
+            }
+        }
+        //判断物资是否为空
+        if(map.get("materialId") != null){
+            tmstruckUnloadResult.setUnloaderId(DataChange.dataToBigDecimal(map.get("materialId")));
+        }
+        //添加卸货时间
+        tmstruckUnloadResult.setResultEndTime(new Date());
+        //确认卸货设为同意
+        tmstruckUnloadResult.setUnloadStatus("同意");
+        tmstruckUnloadResult.setInsertTime(new Date());
+        tmstruckUnloadResult.setInsertUsername("admin");
+        return tmstruckUnloadResult;
+
+
+    }
 
 
     /**

+ 0 - 3
src/main/resources/com/steerinfo/dil/mapper/TmstruckEnfactoryResultMapper.xml

@@ -661,7 +661,6 @@
                OO.ORDER_TYPE              "orderTypee", --避免与筛选条件重名
                OO.ORDER_TYPE              "orderType",
                TER.RESULT_TOTAL_ID        "resultTotalId",
-               RC.CAPACITY_NUMBER         "capacityNumber",
                TER.SEGMEN_SQE             "segmentSqe", --进厂的路段顺序号
                OO.ORDER_LINE_SEQUENCE       "orderSegmentSqe",
                ter.result_entry_gate_time
@@ -670,8 +669,6 @@
             on OO.ORDER_ID = TTR.ORDER_ID
           left join TMSTRUCK_ENFACTORY_RESULT TER
             on TER.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
-          left join RMS_CAPACITY RC
-            on RC.CAPACITY_ID = OO.CAPACITY_ID
          where OO.ORDER_NUMBER = #{orderNumber}
            and ter.result_entry_gate_time is null
          order by TER.SEGMEN_SQE)

+ 10 - 0
src/main/resources/com/steerinfo/dil/mapper/TmstruckUnloadResultMapper.xml

@@ -1048,5 +1048,15 @@
                 LEFT JOIN TMSTRUCK_WEIGHT_RESULT TWR ON TWR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
         WHERE OOM.MATERIAL_ID=#{materialId}  AND OO.ORDER_ID=#{orderId}
     </select>
+    <select id="selectOrderId" resultType="java.util.Map" parameterType="java.util.Map">
+        SELECT OO.ORDER_ID "orderId",
+               oo.ORDER_NUMBER "orderNumber",
+
+               TTR.RESULT_TOTAL_ID "totalId"
+               FROM OMSTRUCK_ORDER OO
+               LEFT JOIN TMSTRUCK_TOTAL_RESULT TTR
+               ON TTR.ORDER_ID = OO.ORDER_ID
+               WHERE OO.ORDER_NUMBER = #{orderNumber}
+    </select>
 
 </mapper>

+ 6 - 2
src/main/resources/com/steerinfo/dil/mapper/UtilsMapper.xml

@@ -193,11 +193,15 @@
     <select id="getOrderTypeByOrderNumber" parameterType="string" resultType="map">
         select OO.ORDER_TYPE "orderType",
                TTR.RESULT_TOTAL_ID "totalId",
-               OO.ORDER_ID      "orderId"
+               OO.ORDER_ID      "orderId",
+               OO.ORDER_LINE_SEQUENCE "Sqe",
+               RC.CAPACITY_NUMBER   "capacityNumber"
         from OMSTRUCK_ORDER OO
         left join TMSTRUCK_TOTAL_RESULT TTR
             on TTR.ORDER_ID = OO.ORDER_ID
-        where  OO.ORDER_ID=#{orderNumber}
+        left join RMS_CAPACITY RC
+            on OO.CAPACITY_ID = RC.CAPACITY_ID
+        where  OO.order_Number=#{orderNumber}
     </select>
 
     <select id="getLineSequenceByOrderNumber" parameterType="string" resultType="java.lang.Integer">