luobang há 2 anos atrás
pai
commit
ed117afa58

+ 6 - 0
src/main/java/com/steerinfo/dil/controller/TmstruckWeightResultController.java

@@ -111,5 +111,11 @@ public class TmstruckWeightResultController extends BaseRESTfulController {
         return success(tmstruckFeign.sendAbnormalReturn(map));
     }
 
+    @PostMapping("checkOrder")
+    @ApiOperation(value = "检查钢材运单是否正确")
+    public Boolean checkOrder(@RequestBody(required = false) Map<String,Object> map) {
+        return tmstruckWeightResultServiceImpl.checkOrder(map);
+    }
+
 
 }

+ 9 - 0
src/main/java/com/steerinfo/dil/mapper/TmstruckWeightResultMapper.java

@@ -91,4 +91,13 @@ public interface TmstruckWeightResultMapper extends IBaseMapper<TmstruckWeightRe
     Map<String, Object> getSaleOrderMaterialNum(Map<String, Object> map);
 
     int updateSaleMaterialId(@Param("saleMaterialId") BigDecimal saleMaterialId, @Param("materialNum") BigDecimal materialNum, @Param("newWeight") BigDecimal newWeight);
+
+    int checkOrder(Map<String, Object> map);
+
+    int checkOrderIsSteel(Map<String, Object> map);
+
+    int updateOmsRedQrCode(Map<String, Object> map);
+
+    int checkOrderByFlId(Map<String, Object> map);
+
 }

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

@@ -39,4 +39,6 @@ public interface ITmstruckWeightResultService {
      * @return
      **/
     String receiveTmsTruckWeightResultByDaXing(List<Map<String, Object>> mapList);
+
+    Boolean checkOrder(Map<String, Object> map);
 }

+ 46 - 1
src/main/java/com/steerinfo/dil/service/impl/TmstruckWeightResultServiceImpl.java

@@ -341,7 +341,7 @@ public class TmstruckWeightResultServiceImpl implements ITmstruckWeightResultSer
                     map.put("segmentSqe", map.get("grossSegmentSqe")); //毛重路段顺序
                 }
                 utilsService.updateOrderLineSequence(map);
-            }else{
+            }else if(resultNum == 1){
                 //只剩一条数据时则是计毛后计皮顺序
                 //如果毛重数据为空 则是第一次计量为毛重  此时第一次计量时间放皮重时间里面
                 if(resultCrossWeightTime == null || resultCrossWeightTime.length() == 0){
@@ -729,4 +729,49 @@ public class TmstruckWeightResultServiceImpl implements ITmstruckWeightResultSer
             }
         return mesMap.get("orderNumber") + "数据修改成功";
     }
+
+    @Override
+    public Boolean checkOrder(Map<String, Object> map) {
+        //获取三个参数
+        try {
+            if (map != null) {
+                JSONObject jsonObject = new JSONObject(map);
+                try{
+                    new Thread( new Runnable() {
+                        public void run(){
+                            try {
+                                newFileTool.newFile(jsonObject.toString(),"计量物流金蝶核对");
+                            } catch (IOException e) {
+                                e.printStackTrace();
+                            }
+                        }
+                    }).start();
+                }catch (Exception e) {
+                    e.printStackTrace();
+                }
+                //判断该车的运输订单号是否是钢材且是否是正在作业中的,如果不是就返回true
+                int i = tmstruckWeightResultMapper.checkOrderIsSteel(map);
+                if (i == 0) {
+                     return  true;
+                }
+                //判断该分录是不是在物流系统,如果不在返回true
+                int count = tmstruckWeightResultMapper.checkOrderByFlId(map);
+                if (count == 0) {
+                    return true;
+                }
+                int j = tmstruckWeightResultMapper.checkOrder(map);
+                if (j == 0) {
+                    //如果对不上,那么就将运输订单里面的状态变一下
+                    tmstruckWeightResultMapper.updateOmsRedQrCode(map);
+                    return  false;
+                }else{
+                    return true;
+                }
+            }
+        } catch (Exception e) {
+            return true;
+        }
+        return true;
+    }
+
 }

+ 5 - 11
src/main/java/com/steerinfo/dil/util/newFileTool.java

@@ -1,5 +1,7 @@
 package com.steerinfo.dil.util;
 
+import org.apache.commons.lang.time.FastDateFormat;
+
 import java.io.File;
 import java.io.FileWriter;
 import java.io.IOException;
@@ -10,8 +12,9 @@ import java.util.zip.CheckedOutputStream;
 public class newFileTool {
 
     public static int newFile(String jsonString,String type) throws IOException {
-        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
-        String date  = sdf.format(new Date());
+        //SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+        FastDateFormat format = FastDateFormat.getInstance("yyyy-MM-dd");
+        String date  = format.format(new Date());
         File file = new File("../log/" + date + "-" + type);
         FileWriter fileWriter = new FileWriter(file,true);
         SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
@@ -27,13 +30,4 @@ public class newFileTool {
         return 1;
     }
 
-    //public static void main(String[] args) {
-    //    //System.out.println(new Date().getDate());
-    //
-    //    try {
-    //        newFile("我输入一个文件","计量");
-    //    } catch (IOException e) {
-    //        e.printStackTrace();
-    //    }
-    //}
 }

+ 30 - 0
src/main/resources/com/steerinfo/dil/mapper/TmstruckWeightResultMapper.xml

@@ -1059,4 +1059,34 @@
         </if>
         where SALE_MATERIAL_ID = #{saleMaterialId}
     </update>
+
+    <select id="checkOrder" resultType="java.lang.Integer" parameterType="map">
+        SELECT count(ASM.SALE_MATERIAL_ID)  FROM OMSTRUCK_ORDER OO
+        LEFT JOIN AMS_SALE_ORDER_MATERIAL ASOM
+        ON ASOM.SALE_ORDER_MATERIAL_ID = OO.ORDER_PLAN_ID
+        LEFT JOIN AMS_SALE_TRUCKNO_MATERIAL ASTM
+        ON ASTM.SALE_ORDER_MATERIAL_ID = ASOM.SALE_ORDER_MATERIAL_ID
+        LEFT JOIN AMS_SALE_MATERIAL ASM
+        ON ASM.SALE_MATERIAL_ID = ASTM.MATERIAL_ID
+        WHERE OO.ORDER_STATUS = 5
+        AND OO.ORDER_NUMBER = #{orderNumber}
+        AND ASM.EAS_PRIMARY_ID = #{flId}
+    </select>
+    <select id="checkOrderIsSteel" resultType="java.lang.Integer" parameterType="map">
+        SELECT count(OO.ORDER_ID)  FROM OMSTRUCK_ORDER OO
+        WHERE OO.ORDER_NUMBER = #{orderNumber}
+        and OO.ORDER_STATUS = 5
+        and oo.order_type = 1
+    </select>
+    <update id="updateOmsRedQrCode" parameterType="map">
+        UPDATE OMSTRUCK_ORDER OO
+        SET OO.DELETED = 2,
+            UPDATE_USERNAME = '三方校验物资错误,二维码变红色'
+        WHERE OO.ORDER_NUMBER = #{orderNumber}
+        and OO.ORDER_STATUS = 5
+    </update>
+    <select id="checkOrderByFlId" resultType="java.lang.Integer">
+        SELECT count(ASM.SALE_MATERIAL_ID)  FROM AMS_SALE_MATERIAL ASM
+        WHERE ASM.EAS_PRIMARY_ID = #{flId}
+    </select>
 </mapper>