Redeem 1 år sedan
förälder
incheckning
1e03de5e37

+ 1 - 1
pom.xml

@@ -6,7 +6,7 @@
 
     <groupId>org.example</groupId>
     <artifactId>dil-tms-truck-api</artifactId>
-    <version>1.4</version>
+    <version>1.5</version>
 
     <parent>
         <groupId>org.springframework.boot</groupId>

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

@@ -180,4 +180,6 @@ public interface TmstruckLeaveFactoryResultMapper extends IBaseMapper<TmstruckLe
 
     String getInboundWarehouse(BigDecimal saleMaterialIdOld);
 
+    List<BigDecimal> selectUnReceive(Map<String, Object> map);
+
 }

+ 8 - 2
src/main/java/com/steerinfo/dil/service/impl/TmstruckLeaveFactoryResultServiceImpl.java

@@ -301,7 +301,7 @@ public class TmstruckLeaveFactoryResultServiceImpl implements ITmstruckLeaveFact
         //查询自提
         String isSelfMention = tmstruckLeaveFactoryResultMapper.getIsSelfMention(orderId);
         String addressPlace = tmstruckLeaveFactoryResultMapper.getAddressPlace(orderId);
-        if(!isArrivalFlag || "是".equals(isSelfMention) && (addressPlace == null || !addressPlace.contains("欧冶"))){
+        if (!isArrivalFlag || "是".equals(isSelfMention) && (addressPlace == null || !addressPlace.contains("欧冶"))){
             //不涉及抵达签收,或者自提,统一在此处直接关单
             i += utilsService.closeOrderNormally(map);
         }
@@ -309,7 +309,13 @@ public class TmstruckLeaveFactoryResultServiceImpl implements ITmstruckLeaveFact
             //如果涉及抵达签收,则标记为允许
             utilsMapper.updateArrival(map);
         }
-
+        if (orderType == 1) {
+            //如果是钢材订单,那么判断该订单是不是有其他的订单未接收,且saleType必须为50
+            List<BigDecimal> orderIds = tmstruckLeaveFactoryResultMapper.selectUnReceive(map);
+            if (orderIds.size() > 0 && orderIds.get(0) != null) {
+                i += utilsService.closeOrderNormally(map);
+            }
+        }
         switch (orderType){
             case 1:
                 try {

+ 3 - 3
src/main/resources/com/steerinfo/dil/mapper/StatisticalReportMapper.xml

@@ -3032,9 +3032,9 @@
             END) "materialAcWeight",
         CASE WHEN
         ASM.EAS_PRIMARY_ID IS NULL
-        THEN ASM.SALE_MATERIAL_ID
+        THEN ASM.SALE_MATERIAL_ID || ''
         ELSE ASM.EAS_PRIMARY_ID
-        END      "closeEntryId",
+        END  "closeEntryId",
         ASM.DELETED "deletedStatus",
         (CASE
         WHEN RC2.CONSIGNEE_COMPANY_NAME IS NOT NULL
@@ -3451,7 +3451,7 @@
         END) "materialAcWeight",
         CASE WHEN
         ASM.EAS_PRIMARY_ID IS NULL
-        THEN ASM.SALE_MATERIAL_ID
+        THEN ASM.SALE_MATERIAL_ID || ''
         ELSE ASM.EAS_PRIMARY_ID
         END  "closeEntryId",
         ASM.DELETED "deletedStatus",

+ 16 - 0
src/main/resources/com/steerinfo/dil/mapper/TmstruckLeaveFactoryResultMapper.xml

@@ -1669,4 +1669,20 @@
         SELECT OOR.INBOUND_WAREHOUSE FROM OYE_OUTBOUND_RESULT OOR
         WHERE OOR.SALE_MATERIAL_ID = #{saleMaterialIdOld}
     </select>
+    <select id="selectUnReceive" resultType="java.math.BigDecimal" parameterType="java.util.Map">
+        SELECT OO.ORDER_ID FROM OMSTRUCK_ORDER OO
+        LEFT JOIN AMS_SALE_ORDER_MATERIAL ASOM
+        ON ASOM.SALE_ORDER_MATERIAL_ID = OO.ORDER_PLAN_ID
+        LEFT JOIN AMS_SALE_ORDER ASO
+        ON ASO.SALE_ORDER_ID = ASOM.SALE_ORDER_ID
+        WHERE ASO.SALE_TYPE = 50
+        AND OO.ORDER_TYPE = 1
+        AND OO.ORDER_STATUS = 4
+        AND OO.CAPACITY_ID = (SELECT CAPACITY_ID FROM OMSTRUCK_ORDER WHERE ORDER_ID = #{orderId})
+        AND to_date(to_char(OO.ORDER_ISSUE_TIME,'yyyy-mm-dd'),'yyyy-mm-dd') =
+            (SELECT to_date(TO_CHAR(ORDER_ISSUE_TIME,'yyyy-mm-dd'),'yyyy-mm-dd') FROM OMSTRUCK_ORDER
+            WHERE ORDER_ID = #{orderId}
+            ORDER BY ORDER_ID DESC
+            FETCH NEXT 1 ROWS ONLY)
+    </select>
 </mapper>