luobang 2 jaren geleden
bovenliggende
commit
a260265623

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

@@ -139,4 +139,12 @@ public interface TmstruckWeightResultMapper extends IBaseMapper<TmstruckWeightRe
 
     String selectTruckWeightResultOld(BigDecimal resultTotalId);
 
+    BigDecimal getWeightTaskResultIdNoNet(Map<String, Object> map);
+
+    BigDecimal getSaleMaterialId(Map<String, Object> map);
+
+    int updateWeightTaskBySaleMaterialId(@Param("weightTaskResultId") BigDecimal weightTaskResultId,@Param("saleMaterialId") BigDecimal saleMaterialId);
+
+    Map<String,Object> getWeightAndSaleMaterialId(Map<String, Object> map);
+
 }

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

@@ -105,7 +105,7 @@ public class RmsConsigneeServiceImpl implements IRmsConsigneeService {
 //        String s = HttpUtil.doJsonPost("https://wl.dasteel.cn:32322/icore.icp.web/pass/v1/sysusers/", json, token);
         Map<String, Object> resultMap;
         // 传formData格式--URL?参数&参数
-        resultMap = ssoFeign.addUser("Bearer " + token, consigneeCompanyName, consigneeCompanyName, "shouhuokehu", "收货客户", "506514577756917769", "713710108567277568", "958023746726268928");
+        resultMap = ssoFeign.addUser("Bearer " + token, consigneeCompanyName, consigneeCode, "shouhuokehu", "收货客户", "506514577756917769", "713710108567277568", "958023746726268928");
         // 赋权
         String code = (String) resultMap.get("code");
         String userId = null;

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

@@ -244,6 +244,15 @@ public class TmstruckWeightResultServiceImpl implements ITmstruckWeightResultSer
                 throw new Exception("系统找不到该物资");
             }
             map.put("materialId",materialId);
+            try {
+                Map<String,Object> weightSaleMes = tmstruckWeightResultMapper.getWeightAndSaleMaterialId(map);
+                if(weightSaleMes != null && DataChange.dataToBigDecimal(weightSaleMes.get("materialIdSale")).compareTo(materialId) == 0) {
+                    map.putAll(weightSaleMes);
+                    tmstruckWeightResult.setId(DataChange.dataToBigDecimal(map.get("weightTaskResultId")));
+                }
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
             //判断此物资是不是已经有净重了,如果有抛出异常
             //int netWeightCount = tmstruckWeightResultMapper.getHaveNetWeightByMaterial(map);
             //if(netWeightCount != 0){
@@ -267,7 +276,7 @@ public class TmstruckWeightResultServiceImpl implements ITmstruckWeightResultSer
             if (materialWeight.intValue() != 0) { //如果总重量不为0,才进行重量更新
                 BigDecimal orderMaterialNumber = DataChange.dataToBigDecimal(saleMaterialMes.get("orderMaterialNumber"));//旧件数
                 BigDecimal theoreticalWeight = materialWeight.multiply(materialNum);
-                newWeight =  theoreticalWeight.divide(orderMaterialNumber,3, 4);//得到现有理重
+                newWeight =  theoreticalWeight.divide(orderMaterialNumber,3,4);//得到现有理重
                 map.put("newWeight",newWeight);
                 //更新运输订单物资子表的件数和理论重量
             }
@@ -769,7 +778,9 @@ public class TmstruckWeightResultServiceImpl implements ITmstruckWeightResultSer
                     weightMap.put("resultTotalId",orderMes.get("resultTotalId"));
                     weightMap.put("materialId",materialId);
                     weightMap.put("resultGrossWeightTime",resultGrossWeightTime);
+                    weightMap.put("saleMaterialId",map.get("saleMaterialId"));
                     Map<String,Object> map1 = tmstruckWeightResultMapper.selectWeightMes(weightMap);
+
                     //根据查询信息判断是哪一拼
                     Integer spellNum = (DataChange.dataToBigDecimal(map1.get("grossSqe")).intValue() + DataChange.dataToBigDecimal(map1.get("tareSqe")).intValue()) / 6;
                     if(spellNum == 1){
@@ -852,6 +863,14 @@ public class TmstruckWeightResultServiceImpl implements ITmstruckWeightResultSer
                 }
                 //判断该分录是不是在物流系统,如果不在返回true
                 int j = tmstruckWeightResultMapper.checkOrder(map);
+                //根据运输订单号查询计量实绩ID
+                BigDecimal weightTaskResultId = tmstruckWeightResultMapper.getWeightTaskResultIdNoNet(map);
+                BigDecimal saleMaterialId = tmstruckWeightResultMapper.getSaleMaterialId(map);
+                if(weightTaskResultId != null && saleMaterialId != null) {
+                    //更新计量实绩
+                    System.out.println("更新计量实绩校验");
+                    tmstruckWeightResultMapper.updateWeightTaskBySaleMaterialId(weightTaskResultId,saleMaterialId);
+                }
                 if (j == 0) {
                         //如果是自提,则更换规格
                         BigDecimal jlSaleOrderMaterialId = tmstruckWeightResultMapper.getJlSaleOrderMaterialId(map);

+ 1 - 1
src/main/resources/application-prod.yml

@@ -9,7 +9,7 @@ spring:
 
 openfeign:
   OmsFeign:
-    url: ${OMSFEIGN_URL:localhost:8095}
+    url: ${OMSFEIGN_URL:172.16.33.166:8095}
   imFeign:
     url: ${IMFEIGN_URL:172.16.33.166:8055}
   TmsTruckFeign:

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

@@ -1050,7 +1050,11 @@
         AND ASM.SALE_MATERIAL_ID NOT IN (
         SELECT nvl(TWR.SALE_MATERIAL_ID,0) FROM TMSTRUCK_TOTAL_RESULT TTR
         LEFT JOIN TMSTRUCK_WEIGHT_RESULT TWR ON TWR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
-        WHERE TTR.ORDER_ID = #{orderId})
+        WHERE TTR.ORDER_ID = #{orderId}
+        AND TWR.RESULT_NET_WEIGHT IS not NULL)
+        <if test="saleMaterialId != null">
+            AND ASM.SALE_MATERIAL_ID = #{saleMaterialId}
+        </if>
         fetch first 1 row only
     </select>
 
@@ -1178,6 +1182,9 @@
         WHERE TWR.RESULT_GROSS_WEIGHT_TIME = to_date(#{resultGrossWeightTime},'yyyy-MM-dd HH24:mi:ss')
         AND TWR.MATERIAL_ID = #{materialId}
         AND TWR.RESULT_TOTAL_ID = #{resultTotalId}
+        <if test="saleMaterialId != null">
+            AND TWR.SALE_MATERIAL_ID = #{saleMaterialId}
+        </if>
     </select>
     <select id="selectOrderLineSqe" resultType="java.lang.Integer" parameterType="decimal">
         SELECT TWR.GROSS_SEGMENT_SQE FROM TMSTRUCK_WEIGHT_RESULT TWR
@@ -1191,6 +1198,10 @@
         WHERE
             nvl(OOM.MATERIAL_PRIORITY,0) != 71
         AND OOM.ORDER_ID = #{orderId}
+        AND OOM.MATERIAL_ID NOT IN (SELECT nvl(TWR.MATERIAL_ID,0) FROM TMSTRUCK_TOTAL_RESULT TTR
+            LEFT JOIN TMSTRUCK_WEIGHT_RESULT TWR
+            ON TWR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
+            WHERE TTR.ORDER_ID = #{orderId})
         FETCH FIRST 1 row only
     </select>
     <select id="getIsSelfMention" resultType="java.lang.String" parameterType="map">
@@ -1240,6 +1251,7 @@
         SET OOM.SALE_MATERIAL_ID = null
         WHERE OOM.ORDER_ID = #{jlOrderId}
     </update>
+
     <select id="selectNewPlanId" resultType="java.math.BigDecimal" parameterType="map">
         SELECT ARP.PLAN_ID FROM AMSTRUCK_INWARD_REQUIREMENT AIR
         LEFT JOIN AMSTRUCK_REQUIREMENT_PLAN ARP
@@ -1254,4 +1266,38 @@
         TWR.RESULT_NET_WEIGHT IS NOT NULL
         AND TWR.RESULT_TOTAL_ID = #{resultTotalId}
     </select>
+    <select id="getWeightTaskResultIdNoNet" resultType="java.math.BigDecimal" parameterType="map">
+        SELECT TWR.WEIGHT_TASK_RESULT_ID FROM OMSTRUCK_ORDER OO
+        LEFT JOIN TMSTRUCK_TOTAL_RESULT TTR
+        ON TTR.ORDER_ID = OO.ORDER_ID
+        LEFT JOIN TMSTRUCK_WEIGHT_RESULT TWR
+        ON TWR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
+        WHERE OO.ORDER_NUMBER = #{orderNumber}
+        AND OO.ORDER_STATUS = 5
+        AND OO.ORDER_TYPE = 1
+        AND TWR.RESULT_NET_WEIGHT IS NULL
+        ORDER BY TWR.WEIGHT_TASK_RESULT_ID
+        FETCH FIRST 1 ROW ONLY
+    </select>
+    <select id="getSaleMaterialId" resultType="java.math.BigDecimal" parameterType="map">
+        SELECT DISTINCT ASM.SALE_MATERIAL_ID
+        FROM AMS_SALE_MATERIAL ASM
+        WHERE ASM.EAS_PRIMARY_ID = #{flId}
+    </select>
+    <update id="updateWeightTaskBySaleMaterialId">
+        UPDATE TMSTRUCK_WEIGHT_RESULT TWR
+        SET TWR.SALE_MATERIAL_ID = #{saleMaterialId}
+        WHERE TWR.WEIGHT_TASK_RESULT_ID = #{weightTaskResultId}
+    </update>
+    <select id="getWeightAndSaleMaterialId" resultType="java.util.Map" parameterType="map">
+        SELECT TWR.WEIGHT_TASK_RESULT_ID "weightTaskResultId",
+               TWR.SALE_MATERIAL_ID "saleMaterialId",
+               ASM.MATERIAL_ID  "materialIdSale"
+        FROM TMSTRUCK_WEIGHT_RESULT TWR
+        LEFT JOIN AMS_SALE_MATERIAL ASM
+        ON ASM.SALE_MATERIAL_ID = TWR.SALE_MATERIAL_ID
+        WHERE TWR.RESULT_TOTAL_ID = #{resultTotalId}
+        AND TWR.RESULT_NET_WEIGHT IS NULL
+        AND TWR.SALE_MATERIAL_ID IS NOT NULL
+    </select>
 </mapper>