luobang 2 년 전
부모
커밋
07282f2edc

+ 2 - 0
src/main/java/com/steerinfo/dil/mapper/AmsSaleMaterialMapper.java

@@ -46,4 +46,6 @@ public interface AmsSaleMaterialMapper extends IBaseMapper<AmsSaleMaterial, BigD
 
     int getSaleMaterialWeight(Map<String, Object> mapValue);
 
+    Integer getAbleFlcount(BigDecimal saleOrderMaterialId);
+
 }

+ 12 - 0
src/main/java/com/steerinfo/dil/service/impl/AmsSaleOrderServiceImpl.java

@@ -893,6 +893,11 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
         String selfMention = amsSaleOrderMapper.findSelfMention(DataChange.dataToBigDecimal(stringObjectMap.get("saleOrderMaterialId")));
         //如果这个车序号下面有运单,则证明已经派了
         Map<String,Object> orderMap = amsSaleOrderMapper.getSteelOrderMap(DataChange.dataToBigDecimal(stringObjectMap.get("saleOrderMaterialId")));
+        //判断该车序号对应的分录是否全部关闭
+        Integer flCount = amsSaleMaterialMapper.getAbleFlcount(DataChange.dataToBigDecimal(stringObjectMap.get("saleOrderMaterialId")));
+        if(flCount == 0) {
+            throw new Exception("该运单下所有分录被关闭,无法派车");
+        }
         if (orderMap != null) {
             throw new Exception("该订单已派发,无法重复派车");
         }
@@ -2056,6 +2061,13 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
         if (mapValue.get("orderId") == null) {
             throw new Exception("还未派车,不允许修改车牌号");
         }
+        //判断该车序号对应的分录是否全部关闭
+        if(mapValue.get("saleOrderMaterialId") != null && DataChange.dataToBigDecimal(mapValue.get("capacityId")).compareTo(new BigDecimal(35128)) != 0) {
+            Integer flCount = amsSaleMaterialMapper.getAbleFlcount(DataChange.dataToBigDecimal(mapValue.get("saleOrderMaterialId")));
+            if(flCount == 0) {
+                throw new Exception("该运单下所有分录被关闭,无法派车");
+            }
+        }
         //查询输入进来的车牌号是否与原有车牌号一致,如果一致则退出
         BigDecimal oldCapacityId = omstruckOrderMapper.getOldCapacityId(DataChange.dataToBigDecimal(mapValue.get("orderId")));
         if(oldCapacityId.compareTo(DataChange.dataToBigDecimal(mapValue.get("capacityId"))) == 0) {

+ 10 - 0
src/main/resources/com/steerinfo/dil/mapper/AmsSaleMaterialMapper.xml

@@ -880,4 +880,14 @@
     AND
     OO.ORDER_ID = #{orderId}
   </select>
+    <select id="getAbleFlcount" resultType="java.lang.Integer" parameterType="decimal">
+      SELECT
+        COUNT( ASM.SALE_MATERIAL_ID )
+      FROM
+        AMS_SALE_TRUCKNO_MATERIAL ASTM
+          LEFT JOIN AMS_SALE_MATERIAL ASM ON ASM.SALE_MATERIAL_ID = ASTM.MATERIAL_ID
+      WHERE
+        ASTM.SALE_ORDER_MATERIAL_ID = #{saleOrderMaterialId}
+        AND ASM.DELETED IS NULL
+    </select>
 </mapper>