zx 2 anni fa
parent
commit
2a29489c6e

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

@@ -60,6 +60,12 @@ public interface TmstruckWeightResultMapper extends IBaseMapper<TmstruckWeightRe
     //钢材查询下一个未计量的实绩
     List<Map<String, Object>> getNoNetWeightResultId(BigDecimal resultTotalId);
 
+    //销售退货查询下一个未计量的实绩
+     List<Map<String,Object>> getNoNetWeightResultForSaleReturn(BigDecimal resultTotalId);
+
+     //查询是否为多拼
+    List<Map<String,Object>> getMaterialNumber(BigDecimal resultTotalId);
+
     //通过采购订单号查询采购订单ID  和物资ID
     Map<String, Object> getAPOMes(String arrivalBillNo);
 

+ 33 - 2
src/main/java/com/steerinfo/dil/service/impl/TmstruckWeightResultServiceImpl.java

@@ -167,7 +167,7 @@ public class TmstruckWeightResultServiceImpl implements ITmstruckWeightResultSer
         }
         tmstruckWeightResultMapper.updateByPrimaryKeySelective(tmstruckWeightResult);
         //如果订单类型是零星订单 需要查询一下是否还有未计量物资
-        if(orderType == 12 || orderType == 13|| orderType == 19){
+        if(orderType == 12 || orderType == 13){
             dealWithLxOrder(map, stringObjectMap);
         }
         //推送数据
@@ -199,10 +199,23 @@ public class TmstruckWeightResultServiceImpl implements ITmstruckWeightResultSer
                 map.put("segmentSqe", map.get("grossSegmentSqe")); //毛重路段顺序
                 utilsService.updateOrderLineSequence(map);
             }else {
-                addWeightResult(tmstruckWeightResult, map); //添加计量实绩数据
+                addWeightResult(tmstruckWeightResult, map);
                 //更新订单中路段顺序号
                 map.put("segmentSqe", map.get("tareSegmentSqe")); //皮重路段顺序
                 utilsService.updateOrderLineSequence(map);
+                if (orderType==19){
+                    //获取第二个还未计量的物资将第一个物资的皮重作为第二个物资的毛重。
+                    List<Map<String, Object>> resultMapList = tmstruckWeightResultMapper.getNoNetWeightResultForSaleReturn(DataChange.dataToBigDecimal(map.get("resultTotalId")));
+                    if (resultMapList.size()>=2){//如果为多拼
+                        Map<String, Object> saleReturnMap = resultMapList.get(1);
+                        Object resultNetWeight = map.get("resultNetWeight");
+                        if(resultNetWeight != null && !"".equals(resultNetWeight)){
+                            updateSaleReturnAssemble(map, saleReturnMap); //更新下一拼实绩
+                            map.put("segmentSqe", saleReturnMap.get("tareSegmentSqe"));
+                            utilsService.updateOrderLineSequence(map);// 修改路段顺序号直接到下一皮重路段顺序
+                        }
+                    }
+                }//添加计量实绩数据
                 String orderNumber = (String) map.get("orderNumber");
                 //如果是采购订单 计皮后自动完成签收
                 //查询是此订单是否已签收过
@@ -524,6 +537,24 @@ public class TmstruckWeightResultServiceImpl implements ITmstruckWeightResultSer
     }
 
 
+    //修改拼装退货物资
+    /**
+     * 修改拼装钢材物资
+     * @param map
+     * @param steelMap
+     */
+    public void updateSaleReturnAssemble(Map<String, Object> map, Map<String, Object> steelMap) throws Exception{
+        //更新实绩
+        TmstruckWeightResult SaleReturn = new TmstruckWeightResult();
+        SaleReturn.setId(DataChange.dataToBigDecimal(steelMap.get("weightTaskResultId"))); //查询出来的主键
+        steelMap.put("resultCrossCalculateNumber", map.get("resultTareCalculateNumber")); //皮重汽车衡即为毛重汽车衡
+        steelMap.put("resultCrossWeight", map.get("resultTareWeight"));//毛重即皮重
+        steelMap.put("resultCrossWeightTime", map.get("resultTareWeightTime"));//毛重时间即皮重时间
+        addWeightResult(SaleReturn, steelMap);
+        tmstruckWeightResultMapper.updateByPrimaryKeySelective(SaleReturn);
+    }
+
+
 
     /**
      * 回传数据给金蝶方法

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

@@ -849,6 +849,16 @@
         where OO.ORDER_NUMBER = #{orderNumber}
     </select>
 
+    <select id="getMaterialNumber" parameterType="java.math.BigDecimal" resultType="java.util.Map">
+    select  OOM.MATERIAL_ID "materialId"
+    from TMSTRUCK_TOTAL_RESULT TTR
+    LEFT JOIN  OMSTRUCK_ORDER OO
+    ON OO.ORDER_ID = TTR.ORDER_ID
+    LEFT JOIN OMSTRUCK_ORDER_MATERIAL OOM
+    ON OOM.ORDER_ID = OO.ORDER_ID
+    WHERE  TTR.RESULT_TOTAL_ID =#{resultTotalId}
+    </select>
+
 <!--  查询采购内转总厂到老区的订单信息  -->
     <select id="get20PurOrderMesToKD" parameterType="string" resultType="java.util.Map">
         SELECT
@@ -895,6 +905,20 @@
         WHERE ROWNUM &lt;= 2
     </select>
 
+    <select id="getNoNetWeightResultForSaleReturn" parameterType="java.math.BigDecimal" resultType="java.util.Map">
+        SELECT *
+        FROM (
+                 SELECT TWR.WEIGHT_TASK_RESULT_ID "weightTaskResultId",
+                        TWR.GROSS_SEGMENT_SQE      "tareSegmentSqe"
+                 FROM TMSTRUCK_WEIGHT_RESULT TWR
+                 WHERE TWR.RESULT_TOTAL_ID = #{resultTotalId}
+                   AND TWR.RESULT_NET_WEIGHT IS NULL
+                 ORDER BY TWR.GROSS_SEGMENT_SQE
+             )
+        WHERE ROWNUM &lt;= 2
+    </select>
+
+
     <select id="getAPOMes" parameterType="string" resultType="map">
         select APO.PURCHASE_ORDER_ID    "purchaseOrderId",
                DB.MATERIAL_ID       "materialId"