Przeglądaj źródła

新增关联批次校验

liyg 2 lat temu
rodzic
commit
7a67accb9d

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

@@ -6,10 +6,18 @@ import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Select;
 
 import java.math.BigDecimal;
+import java.util.Map;
 
 @Mapper
 public interface DilBatchInfacotryMapper extends IBaseMapper<DilBatchInfacotry, BigDecimal> {
     //获取主键id
     @Select("select seq_DIL_BATCH_INFACOTRY.nextval from dual")
     BigDecimal selectDilBatchId();
+
+
+    //校验新旧批次
+    Map<String,Object> checkForBind(Map<String,Object> map);
+
+    //修改批次中间表绑定的批次
+    int updateForBind(Map<String,Object> map);
 }

+ 6 - 12
src/main/java/com/steerinfo/dil/service/impl/DilBatchServiceImpl.java

@@ -138,20 +138,14 @@ public class DilBatchServiceImpl  implements IDilBatchService {
     public int bindBatch(Map<String, Object> map) throws Exception {
         int i=0;
         //校验
-        if(map.get("batchInfactoryId")==null || map.get("batchIdOld")==null || map.get("batchId") ==null
-                || map.get("userId") ==null || map.get("gmId")==null || map.get("portId")==null){
+        if( map.get("batchIdOld")==null || map.get("batchId") ==null || map.get("userId") ==null){
             throw new Exception("数据异常,请检查是否输入正确数据!");
         }
-        //取值
-        BigDecimal batchInfactoryId = DataChange.dataToBigDecimal(map.get("batchInfactoryId"));
-        BigDecimal batchId = DataChange.dataToBigDecimal(map.get("batchId"));
-        BigDecimal userId = DataChange.dataToBigDecimal(map.get("userId"));
-        //更新批次中间表的关联批次
-        DilBatchInfacotry dilBatchInfacotry=new DilBatchInfacotry();
-        dilBatchInfacotry.setBatchInfacotryId(batchInfactoryId);
-        dilBatchInfacotry.setBatchId(batchId);
-        dilBatchInfacotry.setUpdateUsername(userId.toString());
-        i+=dilBatchInfacotryMapper.updateByPrimaryKeySelective(dilBatchInfacotry);
+        if(dilBatchInfacotryMapper.checkForBind(map)==null){
+            throw new Exception("外轮船名不相等,请检查批次是否正确!");
+        }
+        //更新批次中间表的所有关联批次
+        i+=dilBatchInfacotryMapper.updateForBind(map);
         //更新港存库、入库、出库的批次id
         wmshboundFeign.updateWmshGridMaterial(map);
         return i;

+ 11 - 1
src/main/resources/com/steerinfo/dil/mapper/DilBatchInfacotryMapper.xml

@@ -366,5 +366,15 @@
 
   <!-- 友情提示!!!-->
   <!-- 请将自己写的代码放在此标签之下,方便以后粘贴复制。-->
-  
+  <update id="updateForBind">
+    UPDATE DIL_BATCH_INFACOTRY
+    SET BATCH_ID=#{batchId}
+    WHERE BATCH_ID=#{batchIdOld}
+  </update>
+  <select id="checkForBind" resultType="java.util.Map">
+    select * from DIL_BATCH
+    where BATCH_ID=#{batchId} and RESULT_FOREIGN_SHIP_NAME in (
+     select RESULT_FOREIGN_SHIP_NAME from DIL_BATCH DB
+     where BATCH_ID=#{batchIdOld})
+  </select>
 </mapper>

+ 1 - 5
src/main/resources/com/steerinfo/dil/mapper/DilBatchMapper.xml

@@ -440,15 +440,11 @@
   </select>
   <select id="findBatchForBind" resultType="java.util.Map">
     select DISTINCT
-      ADN.NOTICE_ID "noticeId",
       DB.RESULT_FOREIGN_SHIP_NAME "foreignShipName",
       RM.MATERIAL_NAME            "materialName",
-      DBI.BATCH_INFACOTRY_ID      "batchInfactoryId",
       DB.BATCH_ID      "batchId",
-      ADN.PORT_ID       "portId",
       APO.PURCHASE_ORDER_NO       "purchaseOrderNo",
-      DB.INSERT_UPDATE_REMARK "remark",
-      WGM.GM_ID "gmId"
+      DB.INSERT_UPDATE_REMARK "remark"
     from AMSSHIP_DELIVERY_NOTICE ADN
           LEFT JOIN DIL_BATCH_INFACOTRY DBI
           ON DBI.BATCH_INFACOTRY_ID = ADN.BATCH_ID