luobang 2 éve
szülő
commit
816cf34ffb

+ 8 - 2
src/main/java/com/steerinfo/dil/controller/TmsTruckQualityResultController.java

@@ -1,5 +1,6 @@
 package com.steerinfo.dil.controller;
 
+import com.steerinfo.dil.model.TmstruckWeightResult;
 import com.steerinfo.dil.service.impl.TmsTruckQualityService;
 import com.steerinfo.dil.util.BaseRESTfulController;
 import com.steerinfo.framework.controller.RESTfulResult;
@@ -22,12 +23,17 @@ import java.io.IOException;
 @RequestMapping("/${api.version}/tmsTruckQualityResult")
 public class TmsTruckQualityResultController extends BaseRESTfulController {
 
-    //@Autowired
-    //TmsTruckQualityService tmsTruckQualityService;
+    @Autowired
+    TmsTruckQualityService tmsTruckQualityService;
     //@ApiModelProperty(value = "发送磅单号,接收质检实绩信息")
     //@GetMapping("/insert")
     ////@Transactional
     //public RESTfulResult addQualityResult() throws IOException, DocumentException {
     //    return success(tmsTruckQualityService.insertQualityResult());
     //}
+
+    //@GetMapping("/delete")
+    //public RESTfulResult deleteQualityResult(){
+    //    return success(tmsTruckQualityService.deleteQualityResult());
+    //}
 }

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

@@ -4,6 +4,7 @@ import com.steerinfo.dil.model.TmstruckQualityResult;
 import com.steerinfo.dil.model.TmstruckQualityResult;
 import com.steerinfo.framework.mapper.IBaseMapper;
 import java.math.*;
+import java.util.List;
 import java.util.Map;
 
 import org.apache.ibatis.annotations.Mapper;
@@ -21,4 +22,6 @@ public interface TmstruckQualityResultMapper extends IBaseMapper<TmstruckQuality
     BigDecimal qualityId();
 
 
+    List<Map<String, Object>> selectRepeatResult();
+
 }

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

@@ -86,4 +86,9 @@ public interface TmstruckWeightResultMapper extends IBaseMapper<TmstruckWeightRe
 
     int getHaveNetWeightByMaterial(Map<String, Object> map);
 
+    int updateOrderMaterial(Map<String, Object> map);
+
+    Map<String, Object> getSaleOrderMaterialNum(Map<String, Object> map);
+
+    int updateSaleMaterialId(@Param("saleMaterialId") BigDecimal saleMaterialId, @Param("materialNum") BigDecimal materialNum, @Param("newWeight") BigDecimal newWeight);
 }

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

@@ -13,4 +13,6 @@ import java.util.Map;
  */
 public interface ITmsTruckQualityResultService {
     int insertQualityResult() throws IOException, DocumentException;
+
+    //int deleteQualityResult();
 }

+ 8 - 0
src/main/java/com/steerinfo/dil/service/impl/TmsTruckQualityService.java

@@ -128,4 +128,12 @@ public class TmsTruckQualityService implements ITmsTruckQualityResultService {
         return 1;
     }
 
+    //@Override
+    //public int deleteQualityResult() {
+    //    //查询有重复的质检实绩
+    //    List<Map<String,Object>> mapList = tmstruckQualityResultMapper.selectRepeatResult();
+    //    for(Map<String,Object> map : mapList) {
+    //        tmstruckQualityResultMapper.deleteQualityResult()
+    //    }
+    //}
 }

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

@@ -137,7 +137,7 @@ public class TmstruckWeightResultServiceImpl implements ITmstruckWeightResultSer
                 utilsService.pushMesToWebsocket((String) map.get("carNo"), "计量");
                 return map.get("carNo") + "传输成功";
             } catch (Exception e) {
-                System.out.println(map.get("carNo") + "传输失败");
+                System.out.println(map.get("carNo") + e.getMessage() + "传输失败");
                 return map.get("carNo")  + e.getMessage() + "传输失败";
             }
         }
@@ -208,6 +208,9 @@ public class TmstruckWeightResultServiceImpl implements ITmstruckWeightResultSer
         //磅单号
         tmstruckWeightResult.setResultPoundNo((String) map.get("resultPoundNo"));
         String resultCrossWeightTime = (String) map.get("resultCrossWeightTime");
+        if(map.get("orderNumber") != null) {
+            tmstruckWeightResult.setInsertUpdateRemark((String)map.get("orderNumber"));
+        }
         //根据传输过来的物资名称和规格型号
         Object resultNetWeight = map.get("resultNetWeight");
         if(resultNetWeight  != null && !"".equals(resultNetWeight)) {
@@ -223,6 +226,24 @@ public class TmstruckWeightResultServiceImpl implements ITmstruckWeightResultSer
             }
             tmstruckWeightResult.setMaterialId(materialId);
             tmstruckWeightResult.setMaterialNum(DataChange.dataToBigDecimal(map.get("goodNum")));
+            BigDecimal materialNum = DataChange.dataToBigDecimal(map.get("goodNum"));
+            //通过订单ID和物资id,查询当单个物资的理重方便后续计算
+            Map<String, Object> saleMaterialMes = tmstruckWeightResultMapper.getSaleOrderMaterialNum(map);
+            if(saleMaterialMes == null) {
+                throw new Exception("该订单没有该物资分录");
+            }
+            BigDecimal saleMaterialId = DataChange.dataToBigDecimal(saleMaterialMes.get("saleMaterialId"));//销售订单存放物资子表id
+            BigDecimal materialWeight = DataChange.dataToBigDecimal(saleMaterialMes.get("materialWeight"));//旧总理重
+            BigDecimal newWeight = null;
+            if (materialWeight.intValue() != 0) { //如果总重量不为0,才进行重量更新
+                BigDecimal orderMaterialNumber = DataChange.dataToBigDecimal(saleMaterialMes.get("orderMaterialNumber"));//旧件数
+                BigDecimal theoreticalWeight = materialWeight.multiply(materialNum);
+                newWeight =  theoreticalWeight.divide(orderMaterialNumber,3, 4);//得到现有理重
+                map.put("newWeight",newWeight);
+                //更新运输订单物资子表的件数和理论重量
+            }
+            tmstruckWeightResultMapper.updateOrderMaterial(map);
+            tmstruckWeightResultMapper.updateSaleMaterialId(saleMaterialId,materialNum,newWeight);
         }
         addWeightResult(tmstruckWeightResult, map); //添加计量实绩数据
         // 更新订单中路段顺序号,如果毛重时间为空则为计皮:也就是销售第一次计皮,反之有毛重时间则为计毛

+ 5 - 0
src/main/resources/com/steerinfo/dil/mapper/TmstruckQualityResultMapper.xml

@@ -493,4 +493,9 @@
   <select id="Count" resultType="java.math.BigDecimal">
     select max(tqr.RESULT_ID)+1 from TMSTRUCK_QUALITY_RESULT tqr
   </select>
+    <select id="selectRepeatResult" resultType="java.util.Map">
+      select * from (select count(TOTAL_RESULT_ID)-1 "totalResultCount" ,TOTAL_RESULT_ID "totalResultId" from TMSTRUCK_QUALITY_RESULT tqr
+      group by tqr.TOTAL_RESULT_ID )
+      where "totalResultCount" != 1
+    </select>
 </mapper>

+ 31 - 1
src/main/resources/com/steerinfo/dil/mapper/TmstruckWeightResultMapper.xml

@@ -1001,7 +1001,20 @@
         WHERE RM.MATERIAL_NAME = #{good}
         AND RM.MATERIAL_SPECIFICATION || '(' ||  RM.MATERIAL_MODEL || ')' = #{goodspa}
     </select>
-
+    <select id="getSaleOrderMaterialNum" resultType="java.util.Map" parameterType="map">
+        select OOM.ORDER_MATERIAL_NUMBER "orderMaterialNumber",
+        ASM.MATERIAL_WEIGHT "materialWeight",
+        ASM.SALE_MATERIAL_ID "saleMaterialId",
+        ASM.MATERIAL_NUMBER "materialNumber"
+        from AMS_SALE_ORDER_MATERIAL ASOM
+        left join OMSTRUCK_ORDER OO on OO.ORDER_PLAN_ID = ASOM.SALE_ORDER_MATERIAL_ID
+        left join AMS_SALE_TRUCKNO_MATERIAL ASTM on ASOM.SALE_ORDER_MATERIAL_ID = ASTM.SALE_ORDER_MATERIAL_ID
+        left join AMS_SALE_MATERIAL ASM on ASTM.MATERIAL_ID = ASM.SALE_MATERIAL_ID
+        left join OMSTRUCK_ORDER_MATERIAL OOM on OO.ORDER_ID = OOM.ORDER_ID
+        where ASM.MATERIAL_ID = #{materialId}
+        AND OO.ORDER_ID = #{orderId}
+        AND OOM.MATERIAL_ID = #{materialId}
+    </select>
 
 
     <update id="updateOmsTruckPlanId" parameterType="map">
@@ -1028,4 +1041,21 @@
             where OO.ORDER_NUMBER = #{orderNumber}
             )
     </update>
+    <update id="updateOrderMaterial" parameterType="map">
+        update OMSTRUCK_ORDER_MATERIAL OOM
+        SET OOM.ORDER_MATERIAL_NUMBER = #{goodNum}
+        <if test="newWeight != null">
+            , and OOM.ORDER_MATERIAL_WEIGHT = #{newWeight}
+        </if>
+        WHERE OOM.ORDER_ID = #{orderId}
+        and OOM.MATERIAL_ID = #{materialId}
+    </update>
+    <update id="updateSaleMaterialId">
+        update AMS_SALE_MATERIAL
+        set MATERIAL_NUMBER = #{materialNum}
+        <if test="newWeight != null">
+            , MATERIAL_WEIGHT = #{newWeight}
+        </if>
+        where SALE_MATERIAL_ID = #{saleMaterialId}
+    </update>
 </mapper>