浏览代码

添加计量联动修改订单信息

txf 3 年之前
父节点
当前提交
321dcf0437

+ 10 - 0
src/main/java/com/steerinfo/dil/mapper/TmstruckWeightResultMapper.java

@@ -60,5 +60,15 @@ public interface TmstruckWeightResultMapper extends IBaseMapper<TmstruckWeightRe
     //钢材查询下一个未计量的实绩
     List<Map<String, Object>> getNoNetWeightResultId(BigDecimal resultTotalId);
 
+    //通过采购订单号查询采购订单ID  和物资ID
+    Map<String, Object> getAPOMes(String arrivalBillNo);
 
+    //修改普通采购运输订单实绩关联的采购订单ID
+    int updateOmsTruckPlanId(Map<String, Object> mesMap);
+
+    //修改运输订单子表物资ID
+    int updateOmsTruckMaterialId(Map<String, Object> mesMap);
+
+    //修改采购内转的运输订单需求中关联的采购订单Id
+    int updatePurchaseInwordAPOId(Map<String, Object> mesMap);
 }

+ 29 - 0
src/main/java/com/steerinfo/dil/service/impl/TmstruckWeightResultServiceImpl.java

@@ -131,6 +131,10 @@ public class TmstruckWeightResultServiceImpl implements ITmstruckWeightResultSer
         if(orderType == 11 || orderType == 15 || orderType == 16){
             return insertWeightResultBy11(map, oneMap);
         }
+        //为1的时候计量重新更新单据
+        if(DataChange.dataToBigDecimal(map.get("WLReUpdateFlag")).intValue() == 1){
+            return linkUpdateAPO(map, orderType);
+        }
         //通过运输订单号查询计量实绩Id
         Map<String, Object> stringObjectMap = tmstruckWeightResultMapper.selectWeightIdByOrderId(map);
         if(stringObjectMap == null){
@@ -560,4 +564,29 @@ public class TmstruckWeightResultServiceImpl implements ITmstruckWeightResultSer
         }
         return "success";
     }
+
+    /**
+     * 计量联动修改方法(修改关联的采购订单,以及同步修改运输订单物资子表的物资)
+     * @param map
+     * @param orderType
+     * @return
+     */
+    public String linkUpdateAPO(Map<String, Object> map, Integer orderType){
+            //如果等于1 则代表是需要变更采购订单号的订单
+            Map<String, Object> mesMap = tmstruckWeightResultMapper.getAPOMes(String.valueOf(map.get("ArrivalBillNo")));
+            if (mesMap == null){
+                return map.get("ArrivalBillNo") + "系统没有此订单号!失败";
+            }
+            mesMap.put("orderNumber", map.get("orderNumber"));
+            if(orderType == 20){
+                //20订单修改的表不一样呀
+                tmstruckWeightResultMapper.updatePurchaseInwordAPOId(mesMap);
+                tmstruckWeightResultMapper.updateOmsTruckMaterialId(mesMap);
+            }else{
+                //修改订单管理采购订单ID 以及物资子表 物资ID
+                tmstruckWeightResultMapper.updateOmsTruckPlanId(mesMap);
+                tmstruckWeightResultMapper.updateOmsTruckMaterialId(mesMap);
+            }
+        return mesMap.get("orderNumber") + "数据修改成功";
+    }
 }

+ 1 - 1
src/main/resources/bootstrap.yml

@@ -1,7 +1,7 @@
 api.version: api/v1/join
 spring:
   profiles:
-    include: ${SPRING_PROFILES:prod}
+    include: ${SPRING_PROFILES:dev}
   jackson:
     date-format: yyyy-MM-dd HH:mm:ss
     time-zone: GMT+8

+ 32 - 0
src/main/resources/com/steerinfo/dil/mapper/TmstruckWeightResultMapper.xml

@@ -894,4 +894,36 @@
         WHERE ROWNUM &lt;= 2
     </select>
 
+    <select id="getAPOMes" parameterType="string" resultType="map">
+        select APO.PURCHASE_ORDER_ID    "purchaseOrderId",
+               DB.MATERIAL_ID       "materialId"
+        from AMS_PURCHASE_ORDER APO
+        left join DIL_BATCH DB on APO.BATCH_ID = DB.BATCH_ID
+        where APO.PURCHASE_ORDER_NO = #{arrivalBillNo}
+    </select>
+
+    <update id="updateOmsTruckPlanId" parameterType="map">
+        update OMSTRUCK_ORDER
+        set ORDER_PLAN_ID = #{purchaseOrderId}
+        where ORDER_NUMBER = #{orderNumber}
+    </update>
+
+    <update id="updateOmsTruckMaterialId" parameterType="map">
+        update OMSTRUCK_ORDER_MATERIAL
+        set MATERIAL_ID = #{materialId}
+        where ORDER_ID = (select ORDER_ID from OMSTRUCK_ORDER where ORDER_NUMBER = #{orderNumber})
+    </update>
+
+    <update id="updatePurchaseInwordAPOId" parameterType="map">
+        update AMSTRUCK_INWARD_REQUIREMENT AIR
+        set AIR.PURCHASE_ORDER_ID = #{purchaseOrderId}
+        where AIR.REQUIREMENT_ID = (
+            select air.REQUIREMENT_ID
+            from OMSTRUCK_ORDER OO
+                     left join AMSTRUCK_INWARD_PLAN AIP on aip.plan_id = oo.order_plan_id
+                     LEFT JOIN amstruck_requirement_plan arp ON arp.plan_id = aip.plan_id
+                     LEFT JOIN amstruck_inward_requirement air ON air.requirement_id = arp.requirement_id
+            where OO.ORDER_NUMBER = #{orderNumber}
+            )
+    </update>
 </mapper>