Przeglądaj źródła

Merge branch 'master' of https://git.steerinfo.com/DAL-DAZHOU1/DAL-TMS-TRUCK-API

liyg 2 lat temu
rodzic
commit
1b85271942

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

@@ -114,7 +114,7 @@ public interface TmstruckLeaveFactoryResultMapper extends IBaseMapper<TmstruckLe
      * @Date: 2022-08-30
      * @Description:根据物资ID和订单编号查询物资件数
     */
-    BigDecimal queryNumber(BigDecimal materialid,String orderNumber);
+    BigDecimal queryNumber(BigDecimal materialid,String orderNumber,BigDecimal saleMaterialIdOld);
 
     /**
      * @author:zyf
@@ -157,10 +157,10 @@ public interface TmstruckLeaveFactoryResultMapper extends IBaseMapper<TmstruckLe
     //查询所有待出厂钢材
     List<Map<String,Object>> getSteelForLeave(Map<String,Object> map);
 
-    //出厂
-    int updateLeaveTime(Map<String,Object> map);
-    //关单
-    int updateLeaveOrder(Map<String,Object> map);
+    ////出厂
+    //int updateLeaveTime(Map<String,Object> map);
+    ////关单
+    //int updateLeaveOrder(Map<String,Object> map);
 
     int updateResultTotalOutStatus(BigDecimal resultTotalId);
 

+ 14 - 9
src/main/java/com/steerinfo/dil/service/impl/TmstruckLeaveFactoryResultServiceImpl.java

@@ -360,19 +360,24 @@ public class TmstruckLeaveFactoryResultServiceImpl implements ITmstruckLeaveFact
                             String mobile = (String)messageMap.get("saleOrderConsigneeTEL");
                             tmstruckSmsRusultService.generaSendMessage(mobile,capacityNum,orderId);
                     }
-                    //销售厂外监控
-                    Map<String, Object> parem = getTruckFactoryResult(orderNumber);
-                    parem.put("turnOf","0");
-                    otmsFeign.createTotalResult(parem);
                     // 调用结算
-                    try {
-                        bmsTruckFeign.addDetailsOrder(orderId);
-                    } catch (Exception e) {
-                        e.printStackTrace();
-                    }
                 }catch (Exception ex){
                     System.out.println(ex.getMessage());
                 }
+                //销售厂外监控
+                try {
+                    Map<String, Object> parem = getTruckFactoryResult(orderNumber);
+                    parem.put("turnOf","0");
+                    otmsFeign.createTotalResult(parem);
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+                try {
+                    System.out.println(orderId + "生成结算数据");
+                    bmsTruckFeign.addDetailsOrder(orderId);
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
                 break;
             case 2:
             case 3:

+ 9 - 4
src/main/java/com/steerinfo/dil/service/impl/TmstruckSelfMachineService.java

@@ -82,9 +82,11 @@ public class TmstruckSelfMachineService implements ITmstruckSelfMachineService {
                 //判断为棒材还是线材
                 for (Map<String,Object> map1:deliveryOrderMaterialList){
                     BigDecimal materialid = (BigDecimal) map1.get("materialId");
+                    BigDecimal saleMaterialIdOld = DataChange.dataToBigDecimal(map1.get("saleMaterialIdOld"));
                     String materialName =(String) map1.get("materialName");
                     map.put("materialName",materialName);
-                    BigDecimal Bigdecimal1 = tmstruckLeaveFactoryResultMapper.queryNumber(materialid, orderNumber);
+                    map.put("saleMaterialIdOld",saleMaterialIdOld);
+                    BigDecimal Bigdecimal1 = tmstruckLeaveFactoryResultMapper.queryNumber(materialid, orderNumber,saleMaterialIdOld);
                     map1.put("materialNumber",Bigdecimal1);
                     //判断是实重还是理重的标志
                     BigDecimal isPoundSale = (BigDecimal) map1.get("isPoundSale");
@@ -93,8 +95,9 @@ public class TmstruckSelfMachineService implements ITmstruckSelfMachineService {
                     List<Map<String, Object>> netWeightlist = tmstruckLeaveFactoryResultMapper.getNetWeightByOrder(map);
                     for (Map<String, Object> stringObjectMap : netWeightlist) {
                         BigDecimal materialid1 = (BigDecimal) stringObjectMap.get("materialid");
+                        BigDecimal saleMaterialId = DataChange.dataToBigDecimal(stringObjectMap.get("saleMaterialId"));
                         if(materialid1 !=null&&!("".equals(materialid1))){
-                            if (materialid.compareTo(materialid1) == 0) {
+                            if (materialid.compareTo(materialid1) == 0 && saleMaterialIdOld.compareTo(saleMaterialId) == 0) {
                                 BigDecimal nowNetWeight = (BigDecimal) stringObjectMap.get("nowNetWeight");
                                 if (nowNetWeight != null) {
                                     map1.put("netWeightTime",stringObjectMap.get("netWeightTime"));
@@ -111,8 +114,9 @@ public class TmstruckSelfMachineService implements ITmstruckSelfMachineService {
                     if (isPoundSale !=null && isPoundSale.compareTo(BigDecimal.valueOf(0))==0){
                         for (Map<String, Object> stringObjectMap : netWeightlist) {
                             BigDecimal materialid1 = (BigDecimal) stringObjectMap.get("materialid");
+                            BigDecimal saleMaterialId = DataChange.dataToBigDecimal(stringObjectMap.get("saleMaterialId"));
                             if(materialid1 !=null&&!("".equals(materialid1))){
-                                if (materialid.compareTo(materialid1) == 0) {
+                                if (materialid.compareTo(materialid1) == 0 && saleMaterialIdOld.compareTo(saleMaterialId) == 0) {
                                     BigDecimal nowNetWeight = (BigDecimal) stringObjectMap.get("nowNetWeight");
                                     if (nowNetWeight != null) {
                                         map1.put("materialWeight", nowNetWeight);
@@ -127,7 +131,8 @@ public class TmstruckSelfMachineService implements ITmstruckSelfMachineService {
                         List<Map<String, Object>> theoryWeightlist = tmstruckLeaveFactoryResultMapper.getTheoryWeight(map);
                         for (Map<String, Object> stringObjectMap : theoryWeightlist) {
                             BigDecimal materialid1 = (BigDecimal) stringObjectMap.get("materialid");
-                            if (materialid.compareTo(materialid1) == 0){
+                            BigDecimal saleMaterialId = DataChange.dataToBigDecimal(stringObjectMap.get("saleMaterialId"));
+                            if (materialid.compareTo(materialid1) == 0 && saleMaterialIdOld.compareTo(saleMaterialId) == 0){
                                 BigDecimal theoryWeight=(BigDecimal) stringObjectMap.get("theoreticalWeight");
                                 if (theoryWeight != null){
                                     map1.put("materialWeight",theoryWeight);

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

@@ -1923,7 +1923,7 @@
        SELECT * FROM (
              SELECT distinct OO.ORDER_ID "orderId",
                     ASO.SALE_ORDER_ID "saleOrderId",
-                    ASM.SALE_MAKE_DATE  "saleMakeDate",
+                    to_char(ASM.SALE_MAKE_DATE,'yyyy-mm-dd HH24:mi')  "saleMakeDate",
                     to_char(ASOM.SALE_DATE_OF_RECEIPT-1,'yyyy-mm-dd') "orderTime",
                     ASO.INSERT_UPDATE_REMARK "saleOrderInertUpdateRemark",
                     ASO.SALE_NUMBER "saleOrderNo",
@@ -2013,7 +2013,10 @@
                     OO.INSERT_UPDATE_REMARK "orderInsertUpdateRemark",
                     TAR.INSERT_TIME "arrivalTime",
                     TRR.INSERT_TIME "receiptTime",
-                    ASO.sale_remark "saleRemark",
+                    (CASE WHEN ASM.TRANSFER_IN_OF_WAREHOUSE IS NOT NULL
+                        THEN ASM.TRANSFER_IN_OF_WAREHOUSE
+                        ELSE ASO.SALE_REMARK
+                        END) "saleRemark",
                     (CASE WHEN
                         ASO.sale_remark is not null and  instr(ASO.sale_remark,'钢材工程组') > 0
                         then 1
@@ -2022,7 +2025,7 @@
                     (CASE WHEN
                         TLFR.RESULT_OUT_GATE_TIME IS NULL
                         then null
-                        WHEN OO.PRINTNUMBER = 1
+                        WHEN OO.PRINTNUMBER >= 1
                         then '已打印'
                         else  '未打印'
                         END)  "isPrintDelivery",
@@ -2129,7 +2132,17 @@
                         and R_CARRIER.CARRIER_SSO_ID = #{carrierSsoId}
                     </if>
                     <if test="remark != null" >
-                        and RSR.SALER_NAME || RCA.CAPACITY_NUMBER || RC.CONSIGNEE_COMPANY_NAME || R_CARRIER.CARRIER_ABBREVIATION || RM.MATERIAL_NAME || RM.MATERIAL_MODEL || RM.MATERIAL_SPECIFICATION LIKE #{remark}
+                        and RSR.SALER_NAME || RCA.CAPACITY_NUMBER || RC.CONSIGNEE_COMPANY_NAME || R_CARRIER.CARRIER_ABBREVIATION || RM.MATERIAL_NAME || RM.MATERIAL_MODEL || RM.MATERIAL_SPECIFICATION
+                        || (CASE WHEN RRA_HISTORY.ADDRESS_PROVINCE is not null
+                        THEN '新地址:' || RRA.ADDRESS_PROVINCE || RRA.ADDRESS_DISTRICT ||
+                        RRA.ADDRESS_TOWN || RRP.ADDRESS_DELIVERY_ADDRESS
+                        || ';旧地址:' || RRA_HISTORY.ADDRESS_PROVINCE || RRA_HISTORY.ADDRESS_DISTRICT ||
+                        RRA_HISTORY.ADDRESS_TOWN || RRP_HISTORY.ADDRESS_DELIVERY_ADDRESS
+                        ELSE
+                        RRA.ADDRESS_PROVINCE || RRA.ADDRESS_DISTRICT ||
+                        RRA.ADDRESS_TOWN || RRP.ADDRESS_DELIVERY_ADDRESS
+                        END)
+                                LIKE #{remark}
                     </if>
                     <if test="easPrimaryId != null">
                         and ASM.EAS_PRIMARY_ID = #{easPrimaryId}
@@ -2341,6 +2354,8 @@
         "carrierName",
         OO.ORDER_NUMBER "orderNo",
         (CASE
+            WHEN BDO.DETAILS_ID IS NULL and TLFR.RESULT_OUT_GATE_TIME is not null
+            THEN null
             WHEN ACTP.PRICE_VALUE IS NOT NULL
             THEN ROUND(ACTP.PRICE_VALUE,2)
             ELSE ROUND(ACTP2.PRICE_VALUE,2)
@@ -2383,7 +2398,10 @@
         NVL(R_CARRIER.CARRIER_ID,0) "carrierIds",
         OO.CAN_WORK     "canwork",
         OO.ORDER_STATUS              "carStatus",
-        RSA.AREA_NAME "areaName",
+        (CASE WHEN ASM.TRANSFER_OUT_OF_WAREHOUSE IS NOT NULL
+            THEN ASM.TRANSFER_OUT_OF_WAREHOUSE
+            ELSE RSA.AREA_NAME
+            END)  "areaName",
         TAR.INSERT_TIME "arrivalTime",
         TRR.INSERT_TIME "receiptTime",
         ASO.sale_remark "saleRemark",
@@ -2402,7 +2420,7 @@
         --计划件数
         ASM.MATERIAL_PLAN_NUMBER "materialPlanNumber",
         --制单时间
-        ASM.SALE_MAKE_DATE "saleMakeDate",
+        to_char(ASM.SALE_MAKE_DATE,'yyyy-fmmm-dd HH24:mi') "saleMakeDate",
         --操作人
         OO.RECORD_USERNAME "recordUserName"
         FROM AMS_SALE_ORDER ASO
@@ -2448,8 +2466,9 @@
         LEFT JOIN TMSTRUCK_ENFACTORY_RESULT TER
         ON TER.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
         LEFT JOIN TMSTRUCK_WEIGHT_RESULT TWR
-        ON TWR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
-        AND TWR.MATERIAL_ID = RM.MATERIAL_ID
+        ON TWR.SALE_MATERIAL_ID = ASM.SALE_MATERIAL_ID
+        and twr.SALE_MATERIAL_ID is not null
+        OR ( TWR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID AND TWR.MATERIAL_ID = RM.MATERIAL_ID and twr.sale_material_id is null )
         LEFT JOIN BMSTRUCK_DETAILS_ORDER BDO
         ON BDO.WEIGHT_TASK_RESULT_ID = TWR.WEIGHT_TASK_RESULT_ID
         LEFT JOIN AMS_CONTRACT_TRANSPORT_PRICE actp
@@ -2477,7 +2496,16 @@
             and to_date(#{endDate}, 'yyyy-mm-dd') >=  to_date(to_char(ASOM.SALE_DATE_OF_RECEIPT-1,'yyyy-mm-dd'),'yyyy-mm-dd')
         </if>
         <if test="remark != null" >
-            and RSR.SALER_NAME || RCA.CAPACITY_NUMBER || RC.CONSIGNEE_COMPANY_NAME || R_CARRIER.CARRIER_ABBREVIATION || RM.MATERIAL_NAME || RM.MATERIAL_MODEL || RM.MATERIAL_SPECIFICATION LIKE #{remark}
+            and RSR.SALER_NAME || RCA.CAPACITY_NUMBER || RC.CONSIGNEE_COMPANY_NAME || R_CARRIER.CARRIER_ABBREVIATION || RM.MATERIAL_NAME || RM.MATERIAL_MODEL || RM.MATERIAL_SPECIFICATION
+            || (CASE WHEN RRA_HISTORY.ADDRESS_PROVINCE is not null
+            THEN '新地址:' || RRA.ADDRESS_PROVINCE || RRA.ADDRESS_DISTRICT ||
+            RRA.ADDRESS_TOWN || RRP.ADDRESS_DELIVERY_ADDRESS
+            || ';旧地址:' || RRA_HISTORY.ADDRESS_PROVINCE || RRA_HISTORY.ADDRESS_DISTRICT ||
+            RRA_HISTORY.ADDRESS_TOWN || RRP_HISTORY.ADDRESS_DELIVERY_ADDRESS
+            ELSE
+            RRA.ADDRESS_PROVINCE || RRA.ADDRESS_DISTRICT ||
+            RRA.ADDRESS_TOWN || RRP.ADDRESS_DELIVERY_ADDRESS
+            END)  LIKE #{remark}
         </if>
         <if test="salers != null">
             and RSR.SALER_NAME = #{salers}
@@ -2599,6 +2627,7 @@
         ASO.SALE_ORDER_ID "saleOrderId",
         to_char(ASOM.SALE_DATE_OF_RECEIPT-1,'yyyy-mm-dd') "orderTime",
         ASO.SALE_NUMBER "saleOrderNo",
+        ASO.SALE_ORDER_STATUS "saleOrderStatus",
         ASM.SALE_MATERIAL_ID "saleMaterialId",
         CASE
         WHEN nvl(TWR.RESULT_GROSS_WEIGHT,0) =0
@@ -2606,6 +2635,14 @@
         when nvl(TWR.RESULT_GROSS_WEIGHT,0) !=0
         then ASM.MATERIAL_NUMBER
         end "materialNum",
+        (CASE WHEN
+        ASM.SALE_MAKE_DATE IS NULL
+        THEN null
+        WHEN  ASM.IS_POUND_SALE = 0
+        THEN TWR.RESULT_NET_WEIGHT
+        WHEN ASM.IS_POUND_SALE = 1
+        THEN ASM.MATERIAL_WEIGHT
+        END) "materialAcWeight",
         ASM.EAS_PRIMARY_ID "closeEntryId",
         ASM.DELETED "deletedStatus",
         RC.CONSIGNEE_COMPANY_NAME "consigneeName",
@@ -2629,8 +2666,14 @@
         END)
         "carrierName",
         OO.ORDER_NUMBER "orderNo",
-        TO_CHAR(ACTP.PRICE_VALUE,'9999999990.99') AS "priceValue",
-        TO_CHAR(BDO.DETAILS_AMOUNT,'9999999990.99') "detailsAmount",
+        (CASE
+        WHEN BDO.DETAILS_ID IS NULL and TLFR.RESULT_OUT_GATE_TIME is not null
+        THEN null
+        WHEN ACTP.PRICE_VALUE IS NOT NULL
+        THEN ROUND(ACTP.PRICE_VALUE,2)
+        ELSE ROUND(ACTP2.PRICE_VALUE,2)
+        END) AS "priceValue",
+        ROUND(BDO.DETAILS_AMOUNT,2) "detailsAmount",
         (CASE WHEN RRA_HISTORY.ADDRESS_PROVINCE is not null
         THEN '新地址:' || RRA.ADDRESS_PROVINCE || RRA.ADDRESS_DISTRICT ||
         RRA.ADDRESS_TOWN || RRP.ADDRESS_DELIVERY_ADDRESS
@@ -2642,7 +2685,7 @@
         END) "addressPlace",
         --卸货城市
         RRA3.ADDRESS_PROVINCE || RRA3.ADDRESS_DISTRICT ||
-        RRA3.ADDRESS_TOWN|| RRP3.ADDRESS_DELIVERY_ADDRESS  "actualAddress",
+        RRA3.ADDRESS_TOWN|| RRP3.ADDRESS_DELIVERY_ADDRESS "actualAddress",
         RRA.ADDRESS_PROVINCE || RRA.ADDRESS_DISTRICT ||
         RRA.ADDRESS_TOWN AS "actualCity",
         RRP.PLACE_ID "placeId",
@@ -2668,7 +2711,10 @@
         NVL(R_CARRIER.CARRIER_ID,0) "carrierIds",
         OO.CAN_WORK     "canwork",
         OO.ORDER_STATUS              "carStatus",
-        RSA.AREA_NAME "areaName",
+        (CASE WHEN ASM.TRANSFER_OUT_OF_WAREHOUSE IS NOT NULL
+        THEN ASM.TRANSFER_OUT_OF_WAREHOUSE
+        ELSE RSA.AREA_NAME
+        END)  "areaName",
         TAR.INSERT_TIME "arrivalTime",
         TRR.INSERT_TIME "receiptTime",
         ASO.sale_remark "saleRemark",
@@ -2678,16 +2724,16 @@
         ASM.MATERIAL_WEIGHT "materialWeight",
         --收款客户
         ASO.SALE_ORDER_RECEIVE_CUSTOMER "saleOrderReceiveCustomer",
-        --付款客户
-        ASO.SALE_ORDER_RECEIVE_CUSTOMER "paymentCustomer",
         --结算方式
         RC.CONSIGNEE_SETTLEMENT_METHOD "consingneeSettlementMethod",
+        --付款客户
+        ASO.SALE_ORDER_RECEIVE_CUSTOMER "paymentCustomer",
         --卸货类别
         RRP.UNLOAD_TYPE "unloadType",
         --计划件数
         ASM.MATERIAL_PLAN_NUMBER "materialPlanNumber",
         --制单时间
-        ASM.SALE_MAKE_DATE "saleMakeDate",
+        to_char(ASM.SALE_MAKE_DATE,'yyyy-fmmm-dd HH24:mi') "saleMakeDate",
         --操作人
         OO.RECORD_USERNAME "recordUserName"
         FROM AMS_SALE_ORDER ASO
@@ -2733,12 +2779,15 @@
         LEFT JOIN TMSTRUCK_ENFACTORY_RESULT TER
         ON TER.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
         LEFT JOIN TMSTRUCK_WEIGHT_RESULT TWR
-        ON TWR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
-        AND TWR.MATERIAL_ID = RM.MATERIAL_ID
+        ON TWR.SALE_MATERIAL_ID = ASM.SALE_MATERIAL_ID
+        and twr.SALE_MATERIAL_ID is not null
+        OR ( TWR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID AND TWR.MATERIAL_ID = RM.MATERIAL_ID and twr.sale_material_id is null )
         LEFT JOIN BMSTRUCK_DETAILS_ORDER BDO
         ON BDO.WEIGHT_TASK_RESULT_ID = TWR.WEIGHT_TASK_RESULT_ID
         LEFT JOIN AMS_CONTRACT_TRANSPORT_PRICE actp
-        ON actp.PRICE_ID = oo.PRICE_ID
+        ON actp.PRICE_ID = OO.PRICE_ID
+        LEFT JOIN AMS_CONTRACT_TRANSPORT_PRICE actp2
+        ON actp2.PRICE_ID = ASOM.PRICE_ID
         LEFT JOIN TMSTRUCK_LEAVE_FACTORY_RESULT TLFR
         ON TLFR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
         LEFT JOIN TMSTRUCK_ARRIVAL_RESULT TAR
@@ -2746,7 +2795,7 @@
         LEFT JOIN TMStRUCK_RECEIPT_RESULT TRR
         ON TTR.RESULT_TOTAL_ID = TRR.RESULT_TOTAL_ID
         WHERE ASO.SALE_TYPE = 1
-        and (aso.DELETED = 1 and aso.SALE_ORDER_STATUS = 4 or aso.DELETED != 1 and aso.SALE_ORDER_STATUS between 0 and 4)
+        and (aso.DELETED between 1 and 2 and aso.SALE_ORDER_STATUS = 4 or aso.DELETED = 0 and aso.SALE_ORDER_STATUS between 0 and 4)
         and ASM.SALE_MATERIAL_ID IS NOT NULL
         and BDO.WETHER_TO_STATEMENT = 1
         <if test="oneDate != null">
@@ -2760,7 +2809,16 @@
             and to_date(#{endDate}, 'yyyy-mm-dd') >=  to_date(to_char(ASOM.SALE_DATE_OF_RECEIPT-1,'yyyy-mm-dd'),'yyyy-mm-dd')
         </if>
         <if test="remark != null" >
-            and RSR.SALER_NAME || RCA.CAPACITY_NUMBER || RC.CONSIGNEE_COMPANY_NAME || R_CARRIER.CARRIER_ABBREVIATION || RM.MATERIAL_NAME || RM.MATERIAL_MODEL || RM.MATERIAL_SPECIFICATION LIKE #{remark}
+            and RSR.SALER_NAME || RCA.CAPACITY_NUMBER || RC.CONSIGNEE_COMPANY_NAME || R_CARRIER.CARRIER_ABBREVIATION || RM.MATERIAL_NAME || RM.MATERIAL_MODEL || RM.MATERIAL_SPECIFICATION
+            || (CASE WHEN RRA_HISTORY.ADDRESS_PROVINCE is not null
+            THEN '新地址:' || RRA.ADDRESS_PROVINCE || RRA.ADDRESS_DISTRICT ||
+            RRA.ADDRESS_TOWN || RRP.ADDRESS_DELIVERY_ADDRESS
+            || ';旧地址:' || RRA_HISTORY.ADDRESS_PROVINCE || RRA_HISTORY.ADDRESS_DISTRICT ||
+            RRA_HISTORY.ADDRESS_TOWN || RRP_HISTORY.ADDRESS_DELIVERY_ADDRESS
+            ELSE
+            RRA.ADDRESS_PROVINCE || RRA.ADDRESS_DISTRICT ||
+            RRA.ADDRESS_TOWN || RRP.ADDRESS_DELIVERY_ADDRESS
+            END)  LIKE #{remark}
         </if>
         <if test="salers != null">
             and RSR.SALER_NAME = #{salers}
@@ -2863,6 +2921,12 @@
             0,'未上报') like '%${item}%'
         </foreach>
         </if>
+        <if test="saleMaterialIds != null">
+            and  ASM.SALE_MATERIAL_ID IN
+            <foreach collection="saleMaterialIds" item="item" open="(" separator="," close=")">
+                '${item}'
+            </foreach>
+        </if>
         <if test="consigneeLoginName != null">
             and RC.CONSIGNEE_COMPANY_NAME LIKE '%${consigneeLoginName}%'
         </if>
@@ -3293,8 +3357,9 @@
         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
-        AND TWR.MATERIAL_ID = RM.MATERIAL_ID
+        ON   TWR.SALE_MATERIAL_ID = ASM.SALE_MATERIAL_ID
+        and twr.SALE_MATERIAL_ID is not null
+        OR ( TWR.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID AND TWR.MATERIAL_ID = RM.MATERIAL_ID and twr.sale_material_id is null )
         LEFT JOIN BMSTRUCK_DETAILS_ORDER BDO
         ON BDO.WEIGHT_TASK_RESULT_ID = TWR.WEIGHT_TASK_RESULT_ID
         LEFT JOIN TMSTRUCK_LOAD_RESULT TLR

+ 36 - 20
src/main/resources/com/steerinfo/dil/mapper/TmstruckLeaveFactoryResultMapper.xml

@@ -1078,16 +1078,18 @@
         left join RMS_SHIPPER rsh
         on rsh.SHIPPER_ID = aso.SHIPPER_ID
         where oo.order_number =#{orderNumber}
-        and oo.order_status=5
+        Order by oo.order_id desc
+        fetch first 1 row only
     </select>
 
     <select id="getDeliveryOrderMaterial" parameterType="java.lang.String" resultType="java.util.LinkedHashMap">
-        SELECT DISTINCT
+        SELECT
         rm.material_name "materialName",
         rm.material_specification "materialSpe",
         rm.material_model "materialModel",
         rm.material_id "materialId",
-        asm.is_pound_sale "isPoundSale"
+        asm.is_pound_sale "isPoundSale",
+        asm.SALE_MATERIAL_ID "saleMaterialIdOld"
         FROM
         omstruck_order oo
         LEFT JOIN rms_capacity rc ON rc.capacity_id = oo.capacity_id
@@ -1097,7 +1099,12 @@
         LEFT JOIN AMS_SALE_ORDER ASO ON ASO.SALE_ORDER_ID = ASM.SALE_ORDER_ID
         LEFT JOIN rms_material rm ON rm.material_id = ASM.MATERIAL_ID
         LEFT JOIN rms_unit_of_measure ruom ON ruom.unit_of_measure_id = rm.unit_of_measure_id
-        where oo.order_number = #{orderNumber}
+        where
+        ASM.DELETED IS NULL
+        AND
+        ASM.SALE_MATERIAL_ID IS NOT NULL
+        AND
+        oo.order_number = #{orderNumber}
     </select>
     <!--零星物资出厂实绩列表 -->
     <select id="getSporadicLeaveFactory" parameterType="java.util.Map" resultType="java.util.Map">
@@ -1305,7 +1312,8 @@
 <!--    获取物资理重-->
     <select id="getTheoryWeight" resultType="java.util.Map" parameterType="java.util.Map">
         select ASM.MATERIAL_WEIGHT "theoreticalWeight",
-        ASM.MATERIAL_ID "materialid"
+        ASM.MATERIAL_ID "materialid",
+        ASM.SALE_MATERIAL_ID "saleMaterialId"
        from OMSTRUCK_ORDER oo
        left join AMS_SALE_ORDER_MATERIAL ASOM
        ON ASOM.SALE_ORDER_MATERIAL_ID = OO.ORDER_PLAN_ID
@@ -1317,7 +1325,7 @@
        ON ASO.SALE_ORDER_ID=ASM.SALE_ORDER_ID
         left join RMS_MATERIAL RM
         ON RM.MATERIAL_ID=ASM.MATERIAL_ID
-       where  oo.ORDER_NUMBER=#{orderNumber}  and RM.MATERIAL_NAME=#{materialName}
+       where  oo.ORDER_NUMBER=#{orderNumber}  and RM.MATERIAL_NAME=#{materialName} and asm.sale_material_id = #{saleMaterialIdOld}
     </select>
 
     <select id="querynote" resultType="java.lang.String">
@@ -1358,6 +1366,7 @@
                  LEFT JOIN AMS_SALE_MATERIAL ASM
                            ON ASM.SALE_MATERIAL_ID = ASTM.MATERIAL_ID
         where  ASM.MATERIAL_ID=#{materialid}
+          and ASM.SALE_MATERIAL_ID = #{saleMaterialIdOld}
           and OO.order_number=#{orderNumber} and oo.order_status in (2,5)
             FETCH NEXT 1 ROW ONLY
     </select>
@@ -1375,7 +1384,9 @@
 
     <update id="changeNumber">
         update OMSTRUCK_ORDER oo
-        set oo.PRINTNUMBER= nvl(oo.PRINTNUMBER,0) + 1,oo.PRINTDATE=sysdate
+        set oo.PRINTNUMBER= nvl(oo.PRINTNUMBER,0) + 1,
+            oo.PRINTDATE=sysdate,
+            oo.INSERT_UPDATE_REMARK = '修改送货单打印次数'
         where oo.ORDER_NUMBER=#{orderNumber} and OO.ORDER_STATUS=5
     </update>
 
@@ -1548,18 +1559,18 @@
         AND #{nowDate} > OO .PRINTDATE
     </select>
 
-    <update id="updateLeaveTime">
-        UPDATE TMSTRUCK_LEAVE_FACTORY_RESULT
-        SET TMSTRUCK_LEAVE_FACTORY_RESULT.RESULT_OUT_GATE_TIME = SYSDATE,
-            TMSTRUCK_LEAVE_FACTORY_RESULT.RESULT_OUT_MODE = '24h自动补扫出厂'
-        WHERE
-            TMSTRUCK_LEAVE_FACTORY_RESULT.RESULT_TOTAL_ID = #{resultTotalId}
-    </update>
-    <update id="updateLeaveOrder">
-        UPDATE OMSTRUCK_ORDER
-        SET ORDER_STATUS = 2
-        WHERE ORDER_ID = #{orderId}
-    </update>
+<!--    <update id="updateLeaveTime">-->
+<!--        UPDATE TMSTRUCK_LEAVE_FACTORY_RESULT-->
+<!--        SET TMSTRUCK_LEAVE_FACTORY_RESULT.RESULT_OUT_GATE_TIME = SYSDATE,-->
+<!--            TMSTRUCK_LEAVE_FACTORY_RESULT.RESULT_OUT_MODE = '24h自动补扫出厂'-->
+<!--        WHERE-->
+<!--            TMSTRUCK_LEAVE_FACTORY_RESULT.RESULT_TOTAL_ID = #{resultTotalId}-->
+<!--    </update>-->
+<!--    <update id="updateLeaveOrder">-->
+<!--        UPDATE OMSTRUCK_ORDER-->
+<!--        SET ORDER_STATUS = 2-->
+<!--        WHERE ORDER_ID = #{orderId}-->
+<!--    </update>-->
     <update id="updateResultTotalOutStatus" parameterType="java.math.BigDecimal">
         UPDATE TMSTRUCK_TOTAL_RESULT TTR
         SET TTR.ORDER_STATUS = '已出厂',
@@ -1567,9 +1578,14 @@
         where TTR.RESULT_TOTAL_ID = #{resultTotalId}
     </update>
     <select id="getSaleRemark" resultType="java.lang.String" parameterType="decimal">
-        SELECT DISTINCT ASO.SALE_REMARK
+        SELECT
+        (CASE WHEN ASM.TRANSFER_IN_OF_WAREHOUSE IS NOT NULL
+            THEN ASM.TRANSFER_IN_OF_WAREHOUSE
+            ELSE ASO.SALE_REMARK
+            END)
         FROM AMS_SALE_MATERIAL ASM
         LEFT JOIN AMS_SALE_ORDER ASO ON ASO.SALE_ORDER_ID = ASM.SALE_ORDER_ID
         WHERE ASM.SALE_MATERIAL_ID = #{saleMaterialId}
+        fetch first 1 row only
     </select>
 </mapper>

+ 2 - 1
src/main/resources/com/steerinfo/dil/mapper/TmstruckTotalResultMapper.xml

@@ -777,7 +777,8 @@
     </select>
     <update id="updateLineId">
         UPDATE OMSTRUCK_ORDER
-        SET LINE_ID=#{lineId}
+        SET LINE_ID=#{lineId},
+        ORDER_STATUS = '修改线路ID'
         <if test="orderStatus!=null">
             ,ORDER_STATUS=#{orderStatus}
         </if>