liyg 2 éve
szülő
commit
01e34ce672

+ 4 - 1
src/main/java/com/steerinfo/dil/mapper/TmstrainLoadingTempMapper.java

@@ -18,8 +18,11 @@ public interface TmstrainLoadingTempMapper extends IBaseMapper<TmstrainLoadingTe
      BigDecimal getBatchIdbyPurchaseNo(String purchaseNo);
 
      //修改物资总吨位
-     int updateTonnage(BigDecimal outResultId,int wagonWeightNew);
+     int updateTonnage(BigDecimal outResultId,BigDecimal wagonWeightNew);
 
      //为港口出库查询信息
      Map<String, Object> getWagonDetails(BigDecimal resultId);
+
+     //修改港存库
+     int updateWgmTonnage(Map<String,Object> map);
 }

+ 26 - 15
src/main/java/com/steerinfo/dil/service/impl/TmstrainLoadingResultServiceImpl.java

@@ -927,7 +927,7 @@ public class TmstrainLoadingResultServiceImpl implements ITmstrainLoadingResultS
                     BigDecimal code = DataChange.dataToBigDecimal(stringObjectMap.get("code"));
                     if (code.intValue()==200){
                          data =DataChange.dataToBigDecimal(stringObjectMap.get("data"));
-                         tmstrainLoadingTempMapper.updateTonnage(outResultId,tonnage.intValue()+TotalTonnage);
+                         tmstrainLoadingTempMapper.updateTonnage(outResultId,tonnage.add(new BigDecimal(TotalTonnage)));
                     }else {
                         String message = stringObjectMap.get("data").toString();
                         throw new Exception(message);
@@ -938,7 +938,7 @@ public class TmstrainLoadingResultServiceImpl implements ITmstrainLoadingResultS
                     map.put("resultMaterialNumber",TotalTonnage);
                     map.put("batchId",batchIdOld);
                     wmshBoundFeign.addWarehousingResult(map);
-                    tmstrainLoadingTempMapper.updateTonnage(outResultId,tonnage.intValue()-TotalTonnage);
+                    tmstrainLoadingTempMapper.updateTonnage(outResultId,tonnage.subtract(new BigDecimal(TotalTonnage)));
                 }
             }
         }else {
@@ -964,7 +964,7 @@ public class TmstrainLoadingResultServiceImpl implements ITmstrainLoadingResultS
                     BigDecimal code = DataChange.dataToBigDecimal(stringObjectMap.get("code"));
                     if (code.intValue() == 200){
                         data =DataChange.dataToBigDecimal(stringObjectMap.get("data"));
-                        tmstrainLoadingTempMapper.updateTonnage(outResultId,tonnage.intValue()+TotalTonnage);
+                        tmstrainLoadingTempMapper.updateTonnage(outResultId,tonnage.add(new BigDecimal(TotalTonnage)));
                     }else {
                         String message =(String) stringObjectMap.get("data");
                         throw new Exception(message);
@@ -975,7 +975,7 @@ public class TmstrainLoadingResultServiceImpl implements ITmstrainLoadingResultS
                     map.put("resultMaterialNumber",TotalTonnage);
                     map.put("batchId",batchIdNew);
                      wmshBoundFeign.addWarehousingResult(map);
-                    tmstrainLoadingTempMapper.updateTonnage(outResultId,tonnage.intValue()-TotalTonnage);
+                    tmstrainLoadingTempMapper.updateTonnage(outResultId,tonnage.subtract(new BigDecimal(TotalTonnage)));
                 }
             }
         }
@@ -1088,6 +1088,7 @@ public class TmstrainLoadingResultServiceImpl implements ITmstrainLoadingResultS
     }
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public int deleteOutBoundWagonById(BigDecimal resultId) {
         int i=0;
         //逻辑删除
@@ -1096,18 +1097,28 @@ public class TmstrainLoadingResultServiceImpl implements ITmstrainLoadingResultS
         temp.setDeleted(new BigDecimal(1));
         temp.setUpdateTime(new Date());
         i=tmstrainLoadingTempMapper.updateByPrimaryKeySelective(temp);
-        //出库改入库
-        Map<String,Object> map=tmstrainLoadingTempMapper.getWagonDetails(resultId);
-        try{
-            Date workTime=(Date) map.get("workTime");
-            if(workTime!=null){
-                map.put("attorneyTime",workTime.getTime());
-            }
-        }catch (Exception e){
-            e.printStackTrace();
-            System.out.println("删除时的作业时间异常,不影响删除时的入库");
+        //查询出库单和港存库
+        Map<String,Object> map = tmstrainLoadingTempMapper.getWagonDetails(resultId);
+        BigDecimal gmTonnage = DataChange.dataToBigDecimal(map.get("gmTonnage"));//港存库
+        BigDecimal resultTonnage = DataChange.dataToBigDecimal(map.get("resultTonnage"));//出库数量
+        BigDecimal resultMaterialNumber = DataChange.dataToBigDecimal(map.get("resultMaterialNumber"));//车皮吨位
+        //出库数量-车皮吨位=剩余数量
+        BigDecimal inTonnage = resultTonnage.subtract(resultMaterialNumber);
+        if(inTonnage.intValue()<0){
+            //如果出库数量小于车皮吨位,则本次入库数量为出库数量,出库单出库数量为0
+            inTonnage=resultTonnage;
+            resultTonnage=new BigDecimal(0);
+        }else{
+            //否则出库单等于剩余数量,本次入库为车皮吨位
+            resultTonnage=inTonnage;
+            inTonnage=resultMaterialNumber;
         }
-        wmshBoundFeign.addWarehousingResult(map);
+        gmTonnage = gmTonnage.add(inTonnage);
+        map.put("gmTonnage",gmTonnage);
+        //修改出库单
+        tmstrainLoadingTempMapper.updateTonnage(DataChange.dataToBigDecimal(map.get("resultId")),resultTonnage);
+        //修改港存库
+        tmstrainLoadingTempMapper.updateWgmTonnage(map);
         return i;
     }
 }

+ 15 - 6
src/main/resources/com/steerinfo/dil/mapper/TmstrainLoadingTempMapper.xml

@@ -531,6 +531,11 @@
   set WOR.RESULT_TONNAGE =#{wagonWeightNew}
   WHERE WOR.RESULT_ID = #{outResultId}
   </update>
+  <update id="updateWgmTonnage">
+    update WMSH_GRID_MATERIAL
+    set GM_TONNAGE=#{gmTonnage}
+    WHERE GM_ID=#{gmId}
+  </update>
 
   <!--  获取装车作业-->
   <select id="getWareHouseOutresult" resultType="java.util.Map" parameterType="java.math.BigDecimal">
@@ -556,15 +561,19 @@
   </select>
   <select id="getWagonDetails" resultType="java.util.Map" parameterType="java.math.BigDecimal">
     select DISTINCT
-      APO.BATCH_ID "batchId",
-      RP.PORT_ID "portId",
+      WGM.GM_ID "gmId",
+      WOR.RESULT_ID "resultId",
+      WGM.BATCH_ID "batchId",
+      WGM.PORT_ID "portId",
+      WGM.GM_TONNAGE "gmTonnage",
+      WOR.RESULT_TONNAGE "resultTonnage",
       TLT.RESULT_BILLABLE_TONNAGE "resultMaterialNumber",
       WOR.WORK_TIME "workTime"
     from TMSTRAIN_LOADING_TEMP TLT
-           LEFT JOIN AMS_PURCHASE_ORDER APO ON TLT.PURCHASE_ORDER_NO=APO.PURCHASE_ORDER_NO
-           LEFT JOIN WMSH_OUTBOUND_RESULT WOR ON WOR.RESULT_ID = TLT.OUTBOUNT_ID,
-         (SELECT PORT_ID FROM RMS_PORT WHERE PORT_NAME='万州港') RP
-    WHERE TLT.RESULT_ID=#{resultId}
+           LEFT JOIN WMSH_OUTBOUND_RESULT WOR ON WOR.RESULT_ID = TLT.OUTBOUNT_ID
+           LEFT JOIN WMSH_GRID_MATERIAL WGM ON WGM.BATCH_ID=WOR.BATCH_ID AND WGM.PORT_ID=WOR.HARBOR_ID
+    WHERE TLT.RESULT_ID=#{resultId} AND WGM.DELETED=0
+    FETCH NEXT 1 ROWS ONLY
   </select>
 
 </mapper>