luobang преди 2 години
родител
ревизия
0f94c78d2e

+ 8 - 0
src/main/java/com/steerinfo/dil/feign/TmsTruckFeign.java

@@ -57,4 +57,12 @@ public interface TmsTruckFeign {
     //新增计时作业实绩
     @PostMapping("api/v1/truckTms/tmstrucktimetaskresults/addTimeTaskResult")
     RESTfulResult addTimeTaskResult(@RequestBody(required = false) Map<String, Object> map);
+
+
+    @ApiOperation(value="PDA扫描更新进厂作业实绩")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "mapValue", value = "运输计划实绩对象", required = false, dataType = "Map"),
+    })
+    @PostMapping("api/v1/truckTms/tmstruckenfactoryresults/enFactoryResultByPDA")
+    Map<String, Object> enFactoryResultByPDA(@RequestBody(required=false) Map<String,Object> mapValue);
 }

+ 6 - 0
src/main/java/com/steerinfo/dil/mapper/OmstruckOrderMapper.java

@@ -401,4 +401,10 @@ public interface OmstruckOrderMapper extends IBaseMapper<OmstruckOrder, BigDecim
 
     int clsoePlanByPlan(BigDecimal bigDecimal);
 
+    Date selectCapacityTimesTwoDay(String capacityNumber);
+
+    int selectOutFactoryTimes(String capacityNumber, Date enFactoryTime);
+
+    int updateEnFactoryResultRemark(BigDecimal resultTotalId);
+
 }

+ 23 - 0
src/main/java/com/steerinfo/dil/service/impl/OmstruckOrderServiceImpl.java

@@ -22,6 +22,7 @@ import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.RequestBody;
 
 import javax.xml.crypto.Data;
+import java.io.IOException;
 import java.math.BigDecimal;
 import java.text.SimpleDateFormat;
 import java.util.*;
@@ -993,6 +994,28 @@ public class OmstruckOrderServiceImpl implements IOmstruckOrderService {
         long time = receiveTime.getTime() - issueTime.getTime();
         long min = time / (1000 * 60);
         omstruckOrder.setOrderCommunicationDuration(new BigDecimal(min));
+        try{
+            new Thread( new Runnable() {
+                public void run(){
+                    if (orderType == 1) {
+                        //如果是钢材订单,判断两天有没有进厂
+                        Date enFactoryTime = omstruckOrderMapper.selectCapacityTimesTwoDay((String) map.get("capacityNumber"));
+                        if (enFactoryTime != null) {
+                            //如果两天内进厂时间不为空,那么看着两天后车辆有没有出厂纪录
+                            if(omstruckOrderMapper.selectOutFactoryTimes((String) map.get("capacityNumber"),enFactoryTime) == 0) {
+                                //该车两天内有进厂,且进厂后没有出厂纪录
+                                //更新ok
+                                omstruckOrderMapper.updateEnFactoryResultRemark(DataChange.dataToBigDecimal(orderMessage.get("resultTotalId")));
+                                Map<String,Object> map = tmsTruckFeign.enFactoryResultByPDA(orderMessage);
+                            }
+                        }
+                    }
+                }
+            }).start();
+        }catch (Exception e) {
+            e.printStackTrace();
+        }
+
         return  omstruckOrderMapper.updateByPrimaryKeySelective(omstruckOrder);
     }
 

+ 23 - 0
src/main/resources/com/steerinfo/dil/mapper/OmstruckOrderMapper.xml

@@ -4517,4 +4517,27 @@
         SET AIP.PLAN_STATUS = 4
         WHERE AIP.PLAN_ID = #{bigDecimal}
     </update>
+    <select id="selectCapacityTimesTwoDay" resultType="java.util.Date" parameterType="string">
+        SELECT DCT.TIMES_VALUE FROM DIL_CAPACITY_TIMES DCT
+        WHERE
+        DCT.TIMES_VALUE + 2 >= sysdate
+        AND
+        DCT.TIMES_TYPE = 1
+        AND
+        DCT.TIMES_CAPACITY_NUMBER = #{capacityNumber}
+        ORDER BY DCT.TIMES_ID DESC
+        FETCH FIRST 1 ROW ONLY
+    </select>
+    <select id="selectOutFactoryTimes" resultType="java.lang.Integer">
+        SELECT COUNT(DCT.TIMES_ID)  FROM DIL_CAPACITY_TIMES DCT
+        WHERE
+        DCT.TIMES_VALUE > #{enFactoryTime}
+        AND DCT.TIMES_TYPE = 2
+        AND DCT.TIMES_CAPACITY_NUMBER = #{capacityNumber}
+    </select>
+    <update id="updateEnFactoryResultRemark" parameterType="decimal">
+        UPDATE TMSTRUCK_ENFACTORY_RESULT TER
+        SET TER.INSERT_UPDATE_REMARK = 'OK'
+        WHERE TER.RESULT_TOTAL_ID = #{resultTotalId}
+    </update>
 </mapper>