luobang 2 jaren geleden
bovenliggende
commit
fad6c6ae54

+ 1 - 1
pom.xml

@@ -111,7 +111,7 @@
                     <!--包名-->
                     <targetPackage>com.steerinfo.dil</targetPackage>
                     <tables>
-                        <param>OMSTRUCK_ORDER_MATERIAL</param>
+                        <param>AMS_SALE_MATERIAL</param>
                     </tables>
                 </configuration>
                 <executions>

+ 47 - 1
src/main/java/com/steerinfo/dil/controller/AmsSaleOrderController.java

@@ -1756,7 +1756,42 @@ public class AmsSaleOrderController<RedisTemplate> extends BaseRESTfulController
     @PostMapping("mergeOrder")
     public RESTfulResult mergeOrder(@RequestBody(required = false) Map<String,Object> map) {
         int i = 0 ;
-        i = amsSaleOrderMaterialService.mergeOrder(map);
+        try {
+            Map<String,Object> map1 = amsSaleOrderMaterialService.mergeOrder(map);
+            if(map1 != null && map1.get("continue") != null) {
+                List<Map<String,Object>> mapList = new ArrayList<>();
+                mapList.add(map1);
+                i = amsSaleOrderService.continueSteelOrder(mapList);
+                // 调用EAS接口将车牌号传给金蝶
+                Map<String,Object> input = joinFeign.findCarNumberByOrderList(mapList);
+                Map<String, Object> totalMap = new HashMap<>();
+                totalMap.putAll(easCapacityTestUtil.getTotalMap());
+                totalMap.put("input",input);
+                System.out.println(totalMap);
+                String json = JSONUtils.toJSONString(totalMap);
+                System.out.println(json);
+                Map<String,Object> s = joinFeign.pushCarNumberToEas(totalMap);
+                try {
+                    newFileTool.newFile("pushCarNumberToEas:"+totalMap,"金蝶通讯报文");
+                }catch (Exception e){
+                    e.printStackTrace();
+                }
+                if (s == null || s.size() == 0) {
+                    try{
+                        //失败,存入重试队列,准备重试
+                        retryQueen.add(mapList);
+                    }catch (Exception e){
+                        System.out.println("保存失败车牌失败");
+                    }
+                    throw new Exception("登录金蝶失败");
+                }
+                System.out.println(s);
+                return success(i);
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+            return failed(e.getMessage());
+        }
         return success(i);
     }
 
@@ -1765,6 +1800,9 @@ public class AmsSaleOrderController<RedisTemplate> extends BaseRESTfulController
     public RESTfulResult splitOrder(@RequestBody(required = false) Map<String,Object> map) {
         int i = 0 ;
         i += amsSaleOrderMaterialService.splitOrder(map);
+        if(i == -1) {
+            return failed("拆分失败,该订单已有净重!");
+        }
         return success(i);
     }
 
@@ -1785,4 +1823,12 @@ public class AmsSaleOrderController<RedisTemplate> extends BaseRESTfulController
         return success("修改成功");
     }
 
+    @ApiOperation("重置销售订单备注")
+    @PostMapping("/updateSaleOrderRemark")
+    public RESTfulResult updateSaleOrderRemark(@RequestBody(required = false) Map<String,Object> map) {
+        List<Map<String, Object>> list = (List<Map<String, Object>>) map.get("list");
+        int i = amsSaleOrderService.updateSaleOrderRemark(list);
+        return success(i);
+    }
+
 }

+ 8 - 0
src/main/java/com/steerinfo/dil/mapper/AmsSaleOrderMaterialMapper.java

@@ -86,4 +86,12 @@ public interface AmsSaleOrderMaterialMapper extends IBaseMapper<AmsSaleOrderMate
 
     BigDecimal getDeatailsOrder(BigDecimal closeWlEntryId);
 
+    int getNetWeightCount(BigDecimal orderId);
+
+    int deleteToMergeOrderMaterial(BigDecimal orderId);
+
+    BigDecimal getResultTotalId(BigDecimal previousOrderId);
+
+    BigDecimal getDispatchedOrderWeight(BigDecimal saleOrderId);
+
 }

+ 4 - 0
src/main/java/com/steerinfo/dil/mapper/OmstruckOrderMapper.java

@@ -73,4 +73,8 @@ public interface OmstruckOrderMapper extends IBaseMapper<OmstruckOrder, BigDecim
 
     int selectOutFactory(BigDecimal orderId);
 
+    String getOldCapacityNumber(BigDecimal oldCapacityId);
+
+    int updateOrderStatus(BigDecimal previousOrderId);
+
 }

+ 15 - 0
src/main/java/com/steerinfo/dil/model/AmsSaleMaterial.java

@@ -158,6 +158,12 @@ public class AmsSaleMaterial implements IBasePO<BigDecimal> {
     @ApiModelProperty(value="计划件数",required=false)
     private BigDecimal materialPlanNumber;
 
+    /**
+     * 销售订单号(SALE_NO,VARCHAR,255)
+     */
+    @ApiModelProperty(value="销售订单号",required=false)
+    private String saleNo;
+
     private static final long serialVersionUID = 1L;
 
     @Override
@@ -370,6 +376,14 @@ public class AmsSaleMaterial implements IBasePO<BigDecimal> {
         this.materialPlanNumber = materialPlanNumber;
     }
 
+    public String getSaleNo() {
+        return saleNo;
+    }
+
+    public void setSaleNo(String saleNo) {
+        this.saleNo = saleNo == null ? null : saleNo.trim();
+    }
+
     @Override
     public String toString() {
         StringBuilder sb = new StringBuilder();
@@ -401,6 +415,7 @@ public class AmsSaleMaterial implements IBasePO<BigDecimal> {
         sb.append(", controlQuantity=").append(controlQuantity);
         sb.append(", saleMakeDate=").append(saleMakeDate);
         sb.append(", materialPlanNumber=").append(materialPlanNumber);
+        sb.append(", saleNo=").append(saleNo);
         sb.append(", serialVersionUID=").append(serialVersionUID);
         sb.append("]");
         return sb.toString();

+ 1 - 1
src/main/java/com/steerinfo/dil/service/IAmsSaleOrderMaterialService.java

@@ -72,7 +72,7 @@ public interface IAmsSaleOrderMaterialService{
     // 得到单价和单价id
     Map<String, Object> getBenPrice(Map<String, Object> map);
 
-    int mergeOrder(Map<String, Object> map);
+    Map<String,Object> mergeOrder(Map<String, Object> map) throws Exception;
 
     int splitOrder(Map<String, Object> map);
 

+ 3 - 0
src/main/java/com/steerinfo/dil/service/IAmsSaleOrderService.java

@@ -195,4 +195,7 @@ public interface IAmsSaleOrderService {
     int batchPushCarNumberToEas(List<Map<String,Object>> list) throws Exception;
 
     int batchUpdateCapacity(List<Map<String, Object>> mapList) throws Exception;
+
+    int updateSaleOrderRemark(List<Map<String, Object>> list);
+
 }

+ 104 - 31
src/main/java/com/steerinfo/dil/service/impl/AmsSaleOrderMaterialServiceImpl.java

@@ -6,6 +6,7 @@ import com.steerinfo.dil.mapper.*;
 import com.steerinfo.dil.model.*;
 import com.steerinfo.dil.service.IAmsSaleOrderMaterialService;
 import com.steerinfo.dil.util.DataChange;
+import com.steerinfo.dil.util.SaleLogUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -51,6 +52,8 @@ public class AmsSaleOrderMaterialServiceImpl implements IAmsSaleOrderMaterialSer
     RmsReceivePlaceMapper rmsReceivePlaceMapper;
     @Autowired
     AmsSaleMaterialMapper amsSaleMaterialMapper;
+    @Autowired
+    SaleLogUtil saleLogUtil;
 
     @Override
     public int addAmsSaleOrderMaterial(AmsSaleOrderMaterial amsSaleOrderMaterial) {
@@ -334,6 +337,14 @@ public class AmsSaleOrderMaterialServiceImpl implements IAmsSaleOrderMaterialSer
             if (saleMaterialNetWeight == null) {
                 saleMaterialNetWeight = new BigDecimal(0);
             }
+            //需要加上现在派出去的不能超过97%
+            for (Map<String, Object> map1 : mapList) {
+                BigDecimal orderPlanWeight = DataChange.dataToBigDecimal(map1.get("orderPlanWeight"));
+                saleMaterialNetWeight = saleMaterialNetWeight.add(orderPlanWeight);
+            }
+            //再加上已经派出去的没有净重的
+            BigDecimal dispatchedOrderWeight = amsSaleOrderMaterialMapper.getDispatchedOrderWeight(saleOrderId);
+            saleMaterialNetWeight = saleMaterialNetWeight.add(dispatchedOrderWeight);
             // 计算净重所占销售订单中的比例
             Double percent = saleMaterialNetWeight.doubleValue()/saleMaterialWeight.doubleValue();
             if (percent >= 0.97) {
@@ -467,19 +478,14 @@ public class AmsSaleOrderMaterialServiceImpl implements IAmsSaleOrderMaterialSer
             // 运单状态
             omstruckOrder.setOrderStatus(new BigDecimal(4));
             BigDecimal status;
-            // 钢材
-            if (isSteel != null && isSteel.intValue() == 1) {
-                status = new BigDecimal(1);
-            }
-            // 非钢材(危化品,焦炭,副产品)
-            else {
-                status = new BigDecimal(2);
-            }
+            status = new BigDecimal(2);
+
             // 订单类型
             omstruckOrder.setOrderType(status);
             // 运输线路id
             omstruckOrder.setLineId(lineId);
             omstruckOrder.setInsertTime(new Date());
+            saleLogUtil.logOrder(orderId,"普通派车" ,mapValue, SaleLogUtil.INSERT);
             /*
              运输订单子表
              */
@@ -512,6 +518,7 @@ public class AmsSaleOrderMaterialServiceImpl implements IAmsSaleOrderMaterialSer
             result += tmsTruckFeign.addTotalResult(orderIdMap);
             // 车序号累加
             count++;
+
         }
 
         return result;
@@ -998,43 +1005,104 @@ public class AmsSaleOrderMaterialServiceImpl implements IAmsSaleOrderMaterialSer
 
     @Override
     @Transactional
-    public int mergeOrder(Map<String, Object> map) {
+    public synchronized Map<String,Object> mergeOrder(Map<String, Object> map) throws Exception {
         System.out.println(new Date() + "-----------");
         System.out.println(map);
         System.out.println(new Date() + "-----------");
-        int i = 0 ;
+        Map<String, Object> responseMap = new HashMap<>();
         List<Map<String,Object>> mapList = (List<Map<String,Object>>)map.get("mapList");
-        BigDecimal toMergeSaleOrderMaterialID = DataChange.dataToBigDecimal(mapList.get(0).get("saleOrderMaterialId"));
-        BigDecimal saleOrderId = DataChange.dataToBigDecimal(mapList.get(0).get("saleOrderId"));
+        List<Map<String,Object>> mapListNoNetWeight = new ArrayList<>();
+        BigDecimal netWeightSaleOrderMaterialId = null;
+        BigDecimal netWeightSaleOrderId = null;
+        String previousOrderNo = null;
+        BigDecimal previousOrderId = null;
+        BigDecimal previousResultTotalId = null;
+        String previousCapacityNo = null;
+        int netWeightCount = 0;
+        //首先遍历列表,判断哪些车序号主键有净重
         for (Map<String,Object> map1 : mapList) {
             //获取车序号ID
             BigDecimal saleOrderMaterialId = DataChange.dataToBigDecimal(map1.get("saleOrderMaterialId"));
             //判断该车序号下有没有运单,如果有,直接删除
             BigDecimal orderId = DataChange.dataToBigDecimal(map1.get("orderId"));
             if(orderId != null && orderId.intValue() != 0) {
-                i += amsSaleOrderMaterialMapper.deleteToMergeOrder(orderId);
+                //有运单号判断哪些有净重
+                if(amsSaleOrderMaterialMapper.getNetWeightCount(orderId) > 0) {
+                    netWeightCount++;
+                    //将该车序号ID赋予给有净重的车序号ID
+                    netWeightSaleOrderMaterialId = saleOrderMaterialId;
+                    netWeightSaleOrderId = DataChange.dataToBigDecimal(map1.get("saleOrderId"));
+                    //将该车的运单号赋予给运单号
+                }else{
+                    mapListNoNetWeight.add(map1);
+                }
+                previousOrderNo = map1.get("orderNo").toString();
+                previousOrderId = DataChange.dataToBigDecimal(map1.get("orderId"));
+                previousResultTotalId = amsSaleOrderMaterialMapper.getResultTotalId(previousOrderId);
+                previousCapacityNo = map1.get("capacityNo").toString();
+            }else{
+                mapListNoNetWeight.add(map1);
             }
-            //找出该车序号的物资子表ID
-            List<BigDecimal> truckNoMaterialIds = amsSaleTrucknoMaterialMapper.getTruckNoMaterialIds(saleOrderMaterialId);
-            List<BigDecimal> saleMaterialIds = amsSaleMaterialMapper.getSaleMaterialIds(saleOrderMaterialId);
-            for (BigDecimal truckNoMaterialId : truckNoMaterialIds) {
-                AmsSaleTrucknoMaterial amsSaleTrucknoMaterial = new AmsSaleTrucknoMaterial();
-                amsSaleTrucknoMaterial.setTrucknoMaterialId(truckNoMaterialId);
-                amsSaleTrucknoMaterial.setSaleOrderMaterialId(toMergeSaleOrderMaterialID);
-                amsSaleTrucknoMaterial.setUpdateTime(new Date());
-                amsSaleTrucknoMaterial.setInsertUpdateRemark("执行合并操作,原车序号ID为" + saleOrderMaterialId);
-                i += amsSaleTrucknoMaterialMapper.updateByPrimaryKeySelective(amsSaleTrucknoMaterial);
+        }
+        if (netWeightCount > 1) {
+            throw new Exception("合并失败,有多个运单存在净重! 请仔细选择!");
+        }else if(mapListNoNetWeight != null && mapListNoNetWeight.size() > 0){
+            BigDecimal toMergeSaleOrderMaterialID = DataChange.dataToBigDecimal(mapListNoNetWeight.get(0).get("saleOrderMaterialId"));
+            BigDecimal saleOrderId = DataChange.dataToBigDecimal(mapListNoNetWeight.get(0).get("saleOrderId"));
+            if(netWeightSaleOrderMaterialId != null) {
+                //将放进数组里进行后续的遍历
+                Map<String, Object> netMap = new HashMap<>();
+                netMap.put("saleOrderMaterialId",netWeightSaleOrderMaterialId);
+                mapListNoNetWeight.add(netMap);
+                //将这个车序号对应的订单完成
+                omstruckOrderMapper.updateOrderStatus(previousOrderId);
+                saleLogUtil.logOrder(previousOrderId,"执行合并操作,改变运单状态,车牌号为:" + previousCapacityNo,map, SaleLogUtil.UPDATE);
+            }
+            for (Map<String,Object> map1 : mapListNoNetWeight) {
+                //获取车序号ID
+                BigDecimal saleOrderMaterialId = DataChange.dataToBigDecimal(map1.get("saleOrderMaterialId"));
+                //判断该车序号下有没有运单,如果有,直接删除
+                BigDecimal orderId = DataChange.dataToBigDecimal(map1.get("orderId"));
+                if(orderId != null && orderId.intValue() != 0) {
+                    saleLogUtil.logOrder(orderId,"执行合并操作,删除运单,车牌号为:" + map1.get("capacityNo"),map1, SaleLogUtil.DELETE);
+                    amsSaleOrderMaterialMapper.deleteToMergeOrder(orderId);
+                    amsSaleOrderMaterialMapper.deleteToMergeOrderMaterial(orderId);
+                }
+                //找出该车序号的物资子表ID
+                List<BigDecimal> truckNoMaterialIds = amsSaleTrucknoMaterialMapper.getTruckNoMaterialIds(saleOrderMaterialId);
+                List<BigDecimal> saleMaterialIds = amsSaleMaterialMapper.getSaleMaterialIds(saleOrderMaterialId);
+                for (BigDecimal truckNoMaterialId : truckNoMaterialIds) {
+                    AmsSaleTrucknoMaterial amsSaleTrucknoMaterial = new AmsSaleTrucknoMaterial();
+                    amsSaleTrucknoMaterial.setTrucknoMaterialId(truckNoMaterialId);
+                    amsSaleTrucknoMaterial.setSaleOrderMaterialId(toMergeSaleOrderMaterialID);
+                    amsSaleTrucknoMaterial.setUpdateTime(new Date());
+                    amsSaleTrucknoMaterial.setInsertUpdateRemark("执行合并操作,原车序号ID为" + saleOrderMaterialId);
+                    amsSaleTrucknoMaterialMapper.updateByPrimaryKeySelective(amsSaleTrucknoMaterial);
+                }
+                for (BigDecimal saleMaterialId : saleMaterialIds) {
+                    AmsSaleMaterial amsSaleMaterial = new AmsSaleMaterial();
+                    amsSaleMaterial.setSaleMaterialId(saleMaterialId);
+                    amsSaleMaterial.setSaleOrderId(saleOrderId);
+                    amsSaleMaterial.setInsertUpdateRemark("执行合并操作,原销售订单号为" + saleOrderId);
+                    amsSaleMaterial.setUpdateTime(new Date());
+                    amsSaleMaterialMapper.updateByPrimaryKeySelective(amsSaleMaterial);
+                }
             }
-            for (BigDecimal saleMaterialId : saleMaterialIds) {
-                AmsSaleMaterial amsSaleMaterial = new AmsSaleMaterial();
-                amsSaleMaterial.setSaleMaterialId(saleMaterialId);
-                amsSaleMaterial.setSaleOrderId(saleOrderId);
-                amsSaleMaterial.setInsertUpdateRemark("执行合并操作,原销售订单号为" + saleOrderId);
-                amsSaleMaterial.setUpdateTime(new Date());
-                i += amsSaleMaterialMapper.updateByPrimaryKeySelective(amsSaleMaterial);
+            AmsSaleOrderMaterial amsSaleOrderMaterial = amsSaleOrderMaterialMapper.selectByPrimaryKey(toMergeSaleOrderMaterialID);
+            amsSaleOrderMaterial.setPreviousOrderNumber(previousOrderNo);
+            amsSaleOrderMaterial.setInsertUpdateRemark("进行合并操作,操作人" + map.get("userName"));
+            amsSaleOrderMaterialMapper.updateByPrimaryKeySelective(amsSaleOrderMaterial);
+            if(netWeightSaleOrderMaterialId != null) {
+                responseMap.put("orderNumber",previousOrderNo);
+                responseMap.put("saleOrderMaterialId",toMergeSaleOrderMaterialID);
+                responseMap.put("saleOrderId",saleOrderId);
+                responseMap.put("orderId",previousOrderId);
+                responseMap.put("resultTotalId",previousResultTotalId);
+                responseMap.put("continue",1);
+                return responseMap;
             }
         }
-        return i;
+        return responseMap;
     }
 
 
@@ -1062,6 +1130,11 @@ public class AmsSaleOrderMaterialServiceImpl implements IAmsSaleOrderMaterialSer
         if(orderIds != null && orderIds.size() > 0) {
             for (BigDecimal orderId :orderIds) {
                 if(orderId != null && orderId.intValue() != 0) {
+                    //判断该订单有没有有没有净重
+                    int netWeightCount = amsSaleOrderMaterialMapper.getNetWeightCount(orderId);
+                    if(netWeightCount > 0) {
+                        return -1;
+                    }
                     omstruckOrderMapper.deleteByPrimaryKey(orderId);
                 }
             }

+ 28 - 21
src/main/java/com/steerinfo/dil/service/impl/AmsSaleOrderServiceImpl.java

@@ -827,6 +827,7 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
             amsSaleMaterial.setMaterialId(materialId);
             amsSaleMaterial.setMaterialNumber(materialNumber);
             amsSaleMaterial.setMaterialPlanNumber(materialNumber);
+            amsSaleMaterial.setSaleNo(amsSaleOrder.getSaleNumber());
             try {
                 amsSaleMaterial.setTransferInOfWarehouse(saleRemark);
             } catch (Exception e) {
@@ -955,7 +956,7 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
                 }
             }
             //校验结束,上传金蝶
-            pushCarNumberToEas(map);
+            //pushCarNumberToEas(map);
             // 得到车序号表主键
             BigDecimal saleOrderMaterialId = DataChange.dataToBigDecimal(map.get("saleOrderMaterialId"));
             // 得到承运商
@@ -1056,13 +1057,7 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
                 }
                 BigDecimal status;
                 // 钢材
-                if (isSteel != null && isSteel.intValue() == 1) {
-                    status = new BigDecimal(1);
-                }
-                // 非钢材(危化品,焦炭,副产品)
-                else {
-                    status = new BigDecimal(2);
-                }
+                status = new BigDecimal(1);
                 // 订单类型
                 omstruckOrder.setOrderType(status);
                 // 运输线路id
@@ -1071,7 +1066,7 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
                 omstruckOrder.setInsertUsername("");
                 result += omstruckOrderMapper.insertSelective(omstruckOrder);
                 //插入日志
-                saleLogUtil.logOrder(orderId,"普通派单",map,SaleLogUtil.INSERT);
+                saleLogUtil.logOrder(orderId,"普通派单,派车号:" + capacityNumber,map,SaleLogUtil.INSERT);
             } else {
                 omstruckOrder = omstruckOrders.get(0);
             }
@@ -1138,6 +1133,18 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
         return 0;
     }
 
+    @Override
+    public int updateSaleOrderRemark(List<Map<String, Object>> list) {
+        int i = 0;
+        for(Map<String,Object> map :list) {
+            BigDecimal saleOrderId = DataChange.dataToBigDecimal(map.get("saleOrderId"));
+            AmsSaleOrder amsSaleOrder = amsSaleOrderMapper.selectByPrimaryKey(saleOrderId);
+            amsSaleOrder.setInsertUpdateRemark("重新设置继续装");
+            i += amsSaleOrderMapper.updateByPrimaryKeySelective(amsSaleOrder);
+        }
+        return i;
+    }
+
     @Override
     public int continueSteelOrder(List<Map<String, Object>> mapList) throws Exception {
         int result = 0;
@@ -1741,7 +1748,7 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
             }
             omstruckOrderMapper.updateByPrimaryKeySelective(omstruckOrder);
             //插入日志
-            saleLogUtil.logOrder(orderId,"修改收货地址",mapValue,SaleLogUtil.UPDATE);
+            saleLogUtil.logOrder(orderId,"关闭分录,同步关闭运单",mapValue,SaleLogUtil.UPDATE);
             // 得到销售订单物资表主键
             List<Map<String,Object>> saleMaterialIdList = amsSaleOrderMapper.getSaleMaterialId(saleOrderMaterialId);
             for (Map<String, Object> map : saleMaterialIdList) {
@@ -1754,6 +1761,8 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
             }
             return 0;
         }
+        //插入日志
+        saleLogUtil.logOrder(orderId,"修改收货地址",mapValue,SaleLogUtil.UPDATE);
         // 判断是否需要修改派车
         Object isNewCar = mapValue.get("isNewCar");
         // 省市县ID
@@ -1765,7 +1774,6 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
         AmsSaleOrderMaterial amsSaleOrderMaterial = amsSaleOrderMaterialMapper.selectByPrimaryKey(saleOrderMaterialId);
         if (place != null && !("".equals(place))) {
             List<Map<String, Object>> placeIdList = amsSaleOrderMaterialMapper.getPlaceId(place,shippingAddressId);
-
             if (placeIdList == null || placeIdList.size() == 0) {
                 RmsReceivePlace rmsReceivePlace = new RmsReceivePlace();
                 BigDecimal placeId = rmsReceivePlaceMapper.selectMaxId();
@@ -2095,6 +2103,7 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
         }
         //查询输入进来的车牌号是否与原有车牌号一致,如果一致则退出
         BigDecimal oldCapacityId = omstruckOrderMapper.getOldCapacityId(DataChange.dataToBigDecimal(mapValue.get("orderId")));
+        String oldCapacityNumber = omstruckOrderMapper.getOldCapacityNumber(oldCapacityId);
         if(oldCapacityId.compareTo(DataChange.dataToBigDecimal(mapValue.get("capacityId"))) == 0) {
             mapValue.put("result",1);
             pushCarNumberToEas(mapValue);
@@ -2151,7 +2160,7 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
         //}catch (Exception e){
         //    e.printStackTrace();
         //}
-        saleLogUtil.logOrder(DataChange.dataToBigDecimal(mapValue.get("orderId")),"修改车牌号",mapValue,SaleLogUtil.UPDATE);
+        saleLogUtil.logOrder(DataChange.dataToBigDecimal(mapValue.get("orderId")),"修改车牌号,当前车牌号为:" + capacityNo + "上一个车牌号为:" + oldCapacityNumber,mapValue,SaleLogUtil.UPDATE);
         if (lineSequence == null || "0".equals(lineSequence.toString()) || "1".equals(lineSequence.toString()) || "2".equals(lineSequence.toString())) {
             String capacityids="";
             Integer capacityid1= (Integer) mapValue.get("capacityIds");
@@ -2974,6 +2983,7 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
             amsSaleMaterial.setUpdateTime(new Date());
             amsSaleMaterial.setIsPoundSale(isPoundSale);
             amsSaleMaterial.setInsertUpdateRemark("物流新增");
+            amsSaleMaterial.setSaleNo(amsSaleOrder.getSaleNumber());
             try {
                 amsSaleMaterial.setTransferInOfWarehouse(saleRemark);
             } catch (Exception e) {
@@ -3090,6 +3100,7 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
         String json = JSONUtils.toJSONString(totalMap);
         System.out.println(json);
         totalMap.put("output",s);
+        System.out.println(totalMap);
         try {
             newFileTool.newFile("pushCarNumberToEas:"+totalMap,"金蝶通讯报文");
         }catch (Exception e){
@@ -3267,13 +3278,8 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
             }
             BigDecimal status;
             // 钢材
-            if (isSteel != null && isSteel.intValue() == 1) {
-                status = new BigDecimal(1);
-            }
-            // 非钢材(危化品,焦炭,副产品)
-            else {
-                status = new BigDecimal(2);
-            }
+            status = new BigDecimal(1);
+
             // 订单类型
             omstruckOrder.setOrderType(status);
             // 运输线路id
@@ -3282,7 +3288,7 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
             omstruckOrder.setInsertUsername("");
             result += omstruckOrderMapper.insertSelective(omstruckOrder);
             //插入日志
-            saleLogUtil.logOrder(orderId,"普通派单",map,SaleLogUtil.INSERT);
+            saleLogUtil.logOrder(orderId,"普通派单,当前派车为:" + capacityNumber,map,SaleLogUtil.INSERT);
         } else {
             omstruckOrder = omstruckOrders.get(0);
         }
@@ -3344,6 +3350,7 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
         }
         //查询输入进来的车牌号是否与原有车牌号一致,如果一致则退出
         BigDecimal oldCapacityId = omstruckOrderMapper.getOldCapacityId(DataChange.dataToBigDecimal(mapValue.get("orderId")));
+        String oldCapacityNumber = omstruckOrderMapper.getOldCapacityNumber(oldCapacityId);
         if(oldCapacityId.compareTo(DataChange.dataToBigDecimal(mapValue.get("capacityId"))) == 0) {
             return 1;
         }
@@ -3382,7 +3389,7 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
                 throw new Exception("该车没有GPS定位信息,请联系销售公司物流部,申请是否可以派车。");
             }
         }
-        saleLogUtil.logOrder(DataChange.dataToBigDecimal(mapValue.get("orderId")),"修改车牌号",mapValue,SaleLogUtil.UPDATE);
+        saleLogUtil.logOrder(DataChange.dataToBigDecimal(mapValue.get("orderId")),"修改车牌号,当前车号为:" + capacityNo + "上一个车牌号为:" + oldCapacityNumber,mapValue,SaleLogUtil.UPDATE);
         if (lineSequence == null || "0".equals(lineSequence.toString()) || "1".equals(lineSequence.toString()) || "2".equals(lineSequence.toString())) {
             String capacityids="";
             Integer capacityid1= (Integer) mapValue.get("capacityIds");

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

@@ -27,13 +27,14 @@
     <result column="CONTROL_QUANTITY" jdbcType="VARCHAR" property="controlQuantity" />
     <result column="SALE_MAKE_DATE" jdbcType="TIMESTAMP" property="saleMakeDate" />
     <result column="MATERIAL_PLAN_NUMBER" jdbcType="DECIMAL" property="materialPlanNumber" />
+    <result column="SALE_NO" jdbcType="VARCHAR" property="saleNo" />
   </resultMap>
   <sql id="columns">
     SALE_MATERIAL_ID, SALE_ORDER_ID, MATERIAL_ID, MATERIAL_WEIGHT, MATERIAL_NUMBER, EAS_PRIMARY_ID,
     INSERT_USERNAME, INSERT_TIME, UPDATE_USERNAME, UPDATE_TIME, INSERT_UPDATE_REMARK,
     DELETED, SALE_WAREHOUSE, STEEL_METER, IS_POUND_SALE, METER_WEIGHT, TRANSFER_OUT_OF_WAREHOUSE,
     TRANSFER_IN_OF_WAREHOUSE, INVENTORY_TYPE, INVENTORY_STATUS, TRANSFER_IN_PLAN_DATE,
-    TRANSFER_OUT_PLAN_DATE, CONTROL_QUANTITY, SALE_MAKE_DATE, MATERIAL_PLAN_NUMBER
+    TRANSFER_OUT_PLAN_DATE, CONTROL_QUANTITY, SALE_MAKE_DATE, MATERIAL_PLAN_NUMBER, SALE_NO
   </sql>
   <sql id="columns_alias">
     t.SALE_MATERIAL_ID, t.SALE_ORDER_ID, t.MATERIAL_ID, t.MATERIAL_WEIGHT, t.MATERIAL_NUMBER,
@@ -41,7 +42,7 @@
     t.INSERT_UPDATE_REMARK, t.DELETED, t.SALE_WAREHOUSE, t.STEEL_METER, t.IS_POUND_SALE,
     t.METER_WEIGHT, t.TRANSFER_OUT_OF_WAREHOUSE, t.TRANSFER_IN_OF_WAREHOUSE, t.INVENTORY_TYPE,
     t.INVENTORY_STATUS, t.TRANSFER_IN_PLAN_DATE, t.TRANSFER_OUT_PLAN_DATE, t.CONTROL_QUANTITY,
-    t.SALE_MAKE_DATE, t.MATERIAL_PLAN_NUMBER
+    t.SALE_MAKE_DATE, t.MATERIAL_PLAN_NUMBER, t.SALE_NO
   </sql>
   <sql id="select">
     SELECT <include refid="columns" /> FROM AMS_SALE_MATERIAL
@@ -126,6 +127,9 @@
       <if test="materialPlanNumber != null">
         and MATERIAL_PLAN_NUMBER = #{materialPlanNumber}
       </if>
+      <if test="saleNo != null and saleNo != ''">
+        and SALE_NO = #{saleNo}
+      </if>
     </where>
   </sql>
   <sql id="whereLike">
@@ -205,6 +209,9 @@
       <if test="materialPlanNumber != null">
         and MATERIAL_PLAN_NUMBER = #{materialPlanNumber}
       </if>
+      <if test="saleNo != null and saleNo != ''">
+        and SALE_NO LIKE '%${saleNo}%'
+      </if>
     </where>
   </sql>
   <delete id="deleteByPrimaryKey" parameterType="java.math.BigDecimal">
@@ -286,6 +293,9 @@
     <if test="materialPlanNumber != null">
       or MATERIAL_PLAN_NUMBER = #{materialPlanNumber}
     </if>
+    <if test="saleNo != null and saleNo != ''">
+      or SALE_NO = #{saleNo}
+    </if>
   </delete>
   <insert id="insert" parameterType="com.steerinfo.dil.model.AmsSaleMaterial">
     insert into AMS_SALE_MATERIAL (SALE_MATERIAL_ID, SALE_ORDER_ID, MATERIAL_ID,
@@ -296,7 +306,8 @@
                                    METER_WEIGHT, TRANSFER_OUT_OF_WAREHOUSE, TRANSFER_IN_OF_WAREHOUSE,
                                    INVENTORY_TYPE, INVENTORY_STATUS, TRANSFER_IN_PLAN_DATE,
                                    TRANSFER_OUT_PLAN_DATE, CONTROL_QUANTITY,
-                                   SALE_MAKE_DATE, MATERIAL_PLAN_NUMBER)
+                                   SALE_MAKE_DATE, MATERIAL_PLAN_NUMBER, SALE_NO
+    )
     values (#{saleMaterialId,jdbcType=DECIMAL}, #{saleOrderId,jdbcType=DECIMAL}, #{materialId,jdbcType=DECIMAL},
             #{materialWeight,jdbcType=DECIMAL}, #{materialNumber,jdbcType=DECIMAL}, #{easPrimaryId,jdbcType=VARCHAR},
             #{insertUsername,jdbcType=VARCHAR}, #{insertTime,jdbcType=TIMESTAMP}, #{updateUsername,jdbcType=VARCHAR},
@@ -305,7 +316,8 @@
             #{meterWeight,jdbcType=DECIMAL}, #{transferOutOfWarehouse,jdbcType=VARCHAR}, #{transferInOfWarehouse,jdbcType=VARCHAR},
             #{inventoryType,jdbcType=VARCHAR}, #{inventoryStatus,jdbcType=VARCHAR}, #{transferInPlanDate,jdbcType=TIMESTAMP},
             #{transferOutPlanDate,jdbcType=TIMESTAMP}, #{controlQuantity,jdbcType=VARCHAR},
-            #{saleMakeDate,jdbcType=TIMESTAMP}, #{materialPlanNumber,jdbcType=DECIMAL})
+            #{saleMakeDate,jdbcType=TIMESTAMP}, #{materialPlanNumber,jdbcType=DECIMAL}, #{saleNo,jdbcType=VARCHAR}
+           )
   </insert>
   <insert id="insertSelective" parameterType="com.steerinfo.dil.model.AmsSaleMaterial">
     insert into AMS_SALE_MATERIAL
@@ -385,6 +397,9 @@
       <if test="materialPlanNumber != null">
         MATERIAL_PLAN_NUMBER,
       </if>
+      <if test="saleNo != null">
+        SALE_NO,
+      </if>
     </trim>
     <trim prefix="values (" suffix=")" suffixOverrides=",">
       <if test="saleMaterialId != null">
@@ -462,6 +477,9 @@
       <if test="materialPlanNumber != null">
         #{materialPlanNumber,jdbcType=DECIMAL},
       </if>
+      <if test="saleNo != null">
+        #{saleNo,jdbcType=VARCHAR},
+      </if>
     </trim>
   </insert>
   <update id="updateByPrimaryKey" parameterType="com.steerinfo.dil.model.AmsSaleMaterial">
@@ -489,7 +507,8 @@
         TRANSFER_OUT_PLAN_DATE = #{transferOutPlanDate,jdbcType=TIMESTAMP},
         CONTROL_QUANTITY = #{controlQuantity,jdbcType=VARCHAR},
         SALE_MAKE_DATE = #{saleMakeDate,jdbcType=TIMESTAMP},
-        MATERIAL_PLAN_NUMBER = #{materialPlanNumber,jdbcType=DECIMAL}
+        MATERIAL_PLAN_NUMBER = #{materialPlanNumber,jdbcType=DECIMAL},
+        SALE_NO = #{saleNo,jdbcType=VARCHAR}
     where SALE_MATERIAL_ID = #{saleMaterialId,jdbcType=DECIMAL}
   </update>
   <update id="updateByPrimaryKeySelective" parameterType="com.steerinfo.dil.model.AmsSaleMaterial">
@@ -567,6 +586,9 @@
       <if test="materialPlanNumber != null">
         MATERIAL_PLAN_NUMBER = #{materialPlanNumber,jdbcType=DECIMAL},
       </if>
+      <if test="saleNo != null">
+        SALE_NO = #{saleNo,jdbcType=VARCHAR},
+      </if>
     </set>
     where SALE_MATERIAL_ID = #{saleMaterialId,jdbcType=DECIMAL}
   </update>
@@ -595,8 +617,8 @@
     TRANSFER_IN_OF_WAREHOUSE, INVENTORY_TYPE,
     INVENTORY_STATUS, TRANSFER_IN_PLAN_DATE,
     TRANSFER_OUT_PLAN_DATE, CONTROL_QUANTITY,
-    SALE_MAKE_DATE, MATERIAL_PLAN_NUMBER
-    )
+    SALE_MAKE_DATE, MATERIAL_PLAN_NUMBER,
+    SALE_NO)
     ( <foreach collection="list" item="item" separator="union all">
     select
     #{item.saleMaterialId,jdbcType=DECIMAL},
@@ -610,8 +632,8 @@
     #{item.transferInOfWarehouse,jdbcType=VARCHAR}, #{item.inventoryType,jdbcType=VARCHAR},
     #{item.inventoryStatus,jdbcType=VARCHAR}, #{item.transferInPlanDate,jdbcType=TIMESTAMP},
     #{item.transferOutPlanDate,jdbcType=TIMESTAMP}, #{item.controlQuantity,jdbcType=VARCHAR},
-    #{item.saleMakeDate,jdbcType=TIMESTAMP}, #{item.materialPlanNumber,jdbcType=DECIMAL}
-    from dual
+    #{item.saleMakeDate,jdbcType=TIMESTAMP}, #{item.materialPlanNumber,jdbcType=DECIMAL},
+    #{item.saleNo,jdbcType=VARCHAR} from dual
   </foreach> )
   </insert>
   <update id="batchUpdate" parameterType="java.util.List">
@@ -717,6 +739,10 @@
     <foreach close="end" collection="list" index="index" item="item" open="case SALE_MATERIAL_ID" separator=" ">
       when #{item.saleMaterialId,jdbcType=DECIMAL} then #{item.materialPlanNumber,jdbcType=DECIMAL}
     </foreach>
+    ,SALE_NO=
+    <foreach close="end" collection="list" index="index" item="item" open="case SALE_MATERIAL_ID" separator=" ">
+      when #{item.saleMaterialId,jdbcType=DECIMAL} then #{item.saleNo,jdbcType=VARCHAR}
+    </foreach>
     where SALE_MATERIAL_ID in
     <foreach close=")" collection="list" index="index" item="item" open="(" separator=",">
       #{item.saleMaterialId,jdbcType=DECIMAL}
@@ -735,7 +761,6 @@
   <!-- 请将自己写的代码放在此标签之下,方便以后粘贴复制。-->
   <!-- 友情提示!!!-->
   <!-- 请将自己写的代码放在此标签之下,方便以后粘贴复制。-->
-
   <select id="getMaterialCount" parameterType="DECIMAL" resultType="java.lang.Integer">
     SELECT RM.MATERIAL_COUNT AS "materialCount"
     FROM RMS_MATERIAL RM
@@ -860,6 +885,14 @@
     <select id="getSaleMaterialIds" resultType="java.math.BigDecimal" parameterType="java.math.BigDecimal">
       SELECT ASTM.MATERIAL_ID FROM AMS_SALE_TRUCKNO_MATERIAL ASTM
       WHERE ASTM.SALE_ORDER_MATERIAL_ID = #{saleOrderMaterialId}
+      AND ASTM.MATERIAL_ID NOT IN (SELECT NVL(TWR.SALE_MATERIAL_ID,0) FROM OMSTRUCK_ORDER OO
+      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
+      WHERE OO.ORDER_PLAN_ID = #{saleOrderMaterialId}
+      AND OO.ORDER_TYPE = 1
+      )
     </select>
   <update id="updateSaleMaterialMakeDate">
     update AMS_SALE_MATERIAL ASM

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

@@ -4700,8 +4700,7 @@
       </if>
       <if test="easPrimaryList == null">
          and ASM.SALE_MAKE_DATE IS NULL
-         AND ASOM.SALE_DATE_OF_RECEIPT  &lt; sysdate + 1
-         AND ASOM.SALE_DATE_OF_RECEIPT  > sysdate - 2
+
          ORDER BY OO.ORDER_ID
          FETCH NEXT 50000 ROWS ONLY
       </if>

+ 30 - 1
src/main/resources/com/steerinfo/dil/mapper/AmsSaleOrderMaterialMapper.xml

@@ -970,7 +970,11 @@
     delete from OMSTRUCK_ORDER OO
     where oo.ORDER_ID = #{orderId}
   </delete>
-  <select id="getPriceByPlace" resultType="java.math.BigDecimal">
+  <delete id="deleteToMergeOrderMaterial" parameterType="java.math.BigDecimal">
+     DELETE FROM OMSTRUCK_ORDER_MATERIAL OOM
+     WHERE OOM.ORDER_ID = #{orderId}
+  </delete>
+    <select id="getPriceByPlace" resultType="java.math.BigDecimal">
     SELECT ACTP.PRICE_ID    AS "priceId"
     FROM AMS_CONTRACT_TRANSPORT_PRICE ACTP
     WHERE ACTP.PLACE_ID = #{placeId}
@@ -991,4 +995,29 @@
     where ttr.SALE_MATERIAL_ID = #{closeWlEntryId}
     FETCH NEXT 1 ROWS ONLY
   </select>
+  <select id="getNetWeightCount" resultType="java.lang.Integer" parameterType="java.math.BigDecimal">
+    SELECT COUNT(TWR.WEIGHT_TASK_RESULT_ID)  FROM TMSTRUCK_TOTAL_RESULT TTR
+    LEFT JOIN TMSTRUCK_WEIGHT_RESULT TWR on TTR.RESULT_TOTAL_ID = TWR.RESULT_TOTAL_ID
+    WHERE TWR.RESULT_NET_WEIGHT IS NOT NULL
+          AND TTR.ORDER_ID = #{orderId}
+  </select>
+  <select id="getResultTotalId" resultType="java.math.BigDecimal" parameterType="java.math.BigDecimal">
+    SELECT TTR.RESULT_TOTAL_ID FROM TMSTRUCK_TOTAL_RESULT TTR
+    WHERE TTR.ORDER_ID = #{previousOrderId}
+  </select>
+  <select id="getDispatchedOrderWeight" resultType="java.math.BigDecimal">
+    select NVL(sum(OOM.ORDER_MATERIAL_NUMBER),0)
+    from OMSTRUCK_ORDER_MATERIAL OOM
+           left join OMSTRUCK_ORDER OO
+                     on OO.ORDER_ID = OOM.ORDER_ID
+           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
+           LEFT JOIN TMSTRUCK_TOTAL_RESULT TTR on OO.ORDER_ID = TTR.ORDER_ID
+           LEFT JOIN TMSTRUCK_WEIGHT_RESULT TWR on TTR.RESULT_TOTAL_ID = TWR.RESULT_TOTAL_ID
+    WHERE ASO.SALE_ORDER_ID = #{saleOrderId}
+    AND TWR.RESULT_NET_WEIGHT IS NULL
+    and OO.ORDER_STATUS IN (4,5)
+  </select>
 </mapper>

+ 8 - 0
src/main/resources/com/steerinfo/dil/mapper/AmsSaleTrucknoMaterialMapper.xml

@@ -425,6 +425,14 @@
     <select id="getTruckNoMaterialIds" resultType="java.math.BigDecimal" parameterType="java.math.BigDecimal">
       SELECT ASTM.TRUCKNO_MATERIAL_ID FROM AMS_SALE_TRUCKNO_MATERIAL ASTM
       WHERE ASTM.SALE_ORDER_MATERIAL_ID = #{saleOrderMaterialId}
+      AND ASTM.MATERIAL_ID NOT IN (SELECT NVL(TWR.SALE_MATERIAL_ID,0) FROM OMSTRUCK_ORDER OO
+      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
+      WHERE OO.ORDER_PLAN_ID = #{saleOrderMaterialId}
+      AND OO.ORDER_TYPE = 1
+    )
     </select>
 
 </mapper>

+ 13 - 1
src/main/resources/com/steerinfo/dil/mapper/OmstruckOrderMapper.xml

@@ -796,6 +796,7 @@
             #{item.orderId,jdbcType=DECIMAL}
         </foreach>
     </update>
+
     <delete id="batchDelete" parameterType="java.util.List">
         delete from OMSTRUCK_ORDER
         where ORDER_ID in
@@ -960,5 +961,16 @@
         WHERE TTR.ORDER_ID = #{orderId}
         AND TLFR.RESULT_OUT_GATE_TIME IS NOT NULL
     </select>
-
+    <select id="getOldCapacityNumber" resultType="java.lang.String" parameterType="java.math.BigDecimal">
+        SELECT CAPACITY_NUMBER FROM RMS_CAPACITY
+        WHERE CAPACITY_ID = #{oldCapacityId}
+        FETCH FIRST 1 ROW ONLY
+    </select>
+    <update id="updateOrderStatus" parameterType="java.math.BigDecimal">
+        UPDATE OMSTRUCK_ORDER OO
+        SET OO.ORDER_STATUS = 2,
+            OO.INSERT_UPDATE_REMARK = '执行合并操作,有净重的订单将之完成'
+        WHERE OO.ORDER_TYPE = 1
+        AND OO.ORDER_ID = #{previousOrderId}
+    </update>
 </mapper>