Explorar o código

Merge remote-tracking branch 'origin/master'

zengyf %!s(int64=2) %!d(string=hai) anos
pai
achega
1809ce4dc1
Modificáronse 20 ficheiros con 282 adicións e 34 borrados
  1. 8 0
      src/main/java/com/steerinfo/dil/controller/AmsSaleOrderController.java
  2. 21 0
      src/main/java/com/steerinfo/dil/controller/DilNoticeController.java
  3. 4 0
      src/main/java/com/steerinfo/dil/mapper/AmsDispatchSaleOrderMapper.java
  4. 2 0
      src/main/java/com/steerinfo/dil/mapper/AmsSaleMaterialMapper.java
  5. 2 0
      src/main/java/com/steerinfo/dil/mapper/AmsSaleOrderMaterialMapper.java
  6. 2 0
      src/main/java/com/steerinfo/dil/mapper/DilNoticeMapper.java
  7. 4 0
      src/main/java/com/steerinfo/dil/mapper/OmstruckOrderMapper.java
  8. 2 0
      src/main/java/com/steerinfo/dil/service/IAmsSaleOrderMaterialService.java
  9. 2 0
      src/main/java/com/steerinfo/dil/service/IDilNoticeService.java
  10. 14 4
      src/main/java/com/steerinfo/dil/service/impl/AmsContractTruckPriceServiceImpl.java
  11. 69 0
      src/main/java/com/steerinfo/dil/service/impl/AmsSaleOrderMaterialServiceImpl.java
  12. 85 27
      src/main/java/com/steerinfo/dil/service/impl/AmsSaleOrderServiceImpl.java
  13. 5 0
      src/main/java/com/steerinfo/dil/service/impl/DilNoticeServiceImpl.java
  14. 5 2
      src/main/resources/com/steerinfo/dil/mapper/AmsContractTruckPriceMapper.xml
  15. 9 0
      src/main/resources/com/steerinfo/dil/mapper/AmsDispatchSaleOrderMapper.xml
  16. 4 0
      src/main/resources/com/steerinfo/dil/mapper/AmsSaleMaterialMapper.xml
  17. 3 0
      src/main/resources/com/steerinfo/dil/mapper/AmsSaleOrderMapper.xml
  18. 8 1
      src/main/resources/com/steerinfo/dil/mapper/AmsSaleOrderMaterialMapper.xml
  19. 24 0
      src/main/resources/com/steerinfo/dil/mapper/DilNoticeMapper.xml
  20. 9 0
      src/main/resources/com/steerinfo/dil/mapper/OmstruckOrderMapper.xml

+ 8 - 0
src/main/java/com/steerinfo/dil/controller/AmsSaleOrderController.java

@@ -1715,4 +1715,12 @@ public class AmsSaleOrderController<RedisTemplate> extends BaseRESTfulController
         return success(i);
     }
 
+    @ApiOperation("执行拆分操作")
+    @PostMapping("splitOrder")
+    public RESTfulResult splitOrder(@RequestBody(required = false) Map<String,Object> map) {
+        int i = 0 ;
+        i += amsSaleOrderMaterialService.splitOrder(map);
+        return success(i);
+    }
+
 }

+ 21 - 0
src/main/java/com/steerinfo/dil/controller/DilNoticeController.java

@@ -320,5 +320,26 @@ public class DilNoticeController extends BaseRESTfulController {
         return success(noticeData);
     }
 
+    @ApiOperation(value = "模糊查询通知信息", notes = "分页查询")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "pageNum", value = "查询页数", required = false, dataType = "Integer"),
+            @ApiImplicitParam(name = "pageSize", value = "每页记录数", required = false, dataType = "Integer"),
+            @ApiImplicitParam(name = "apiId", value = "196", required = false, dataType = "BigDecimal"),
+    })
+    @PostMapping(value = "/getNoticeUser")
+    public RESTfulResult getNoticeUser(@RequestBody(required = false) Map<String, Object> mapValue,
+                                             @RequestParam("pageNum") Integer pageNum,
+                                             @RequestParam("pageSize") Integer pageSize,
+                                             @RequestParam("apiId") Integer apiId) {
+        if (mapValue==null){
+            mapValue=new HashMap<>();
+        }
+        PageHelper.startPage(pageNum, pageSize);
+        //分页查询数据
+        List<Map<String, Object>> columnList = dilNoticeService.getNoticeUser(mapValue);
+        PageListAdd data = columnDataUtil.tableColumnData(apiId, null, columnList);
+        return success(data);
+    }
+
 
 }

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

@@ -55,4 +55,8 @@ public interface AmsDispatchSaleOrderMapper extends IBaseMapper<AmsDispatchSaleO
 
     List<BigDecimal> getDispatchCarriers(BigDecimal saleOrderMaterialId);
 
+    List<BigDecimal> selectDispatchIdsBySale(BigDecimal toSplitSaleOrderMaterialID);
+
+    BigDecimal selectCarrierBySaleOrderMaterialId(BigDecimal toSplitSaleOrderMaterialID);
+
 }

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

@@ -42,4 +42,6 @@ public interface AmsSaleMaterialMapper extends IBaseMapper<AmsSaleMaterial, BigD
 
     BigDecimal selectTransPortOrderId(BigDecimal closeWlEntryId);
 
+    List<BigDecimal> getSaleMaterialIds(BigDecimal saleOrderMaterialId);
+
 }

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

@@ -73,4 +73,6 @@ public interface AmsSaleOrderMaterialMapper extends IBaseMapper<AmsSaleOrderMate
 
     int deleteToMergeOrder(BigDecimal orderId);
 
+    BigDecimal selectEnFactory(BigDecimal orderId);
+
 }

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

@@ -164,4 +164,6 @@ public interface DilNoticeMapper extends IBaseMapper<DilNotice, BigDecimal> {
      * @return
      */
     int readAll(Map<String, Object> map);
+
+    List<Map<String, Object>>  getNoticeUser(Map<String, Object> mapValue);
 }

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

@@ -64,4 +64,8 @@ public interface OmstruckOrderMapper extends IBaseMapper<OmstruckOrder, BigDecim
 
     int selectNetWeightCount(BigDecimal orderId);
 
+    List<BigDecimal> getOrderIdsBySale(BigDecimal toSplitSaleOrderMaterialID);
+
+    String getOrderCapacityHistory(BigDecimal orderId);
+
 }

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

@@ -73,4 +73,6 @@ public interface IAmsSaleOrderMaterialService{
     Map<String, Object> getBenPrice(Map<String, Object> map);
 
     int mergeOrder(Map<String, Object> map);
+
+    int splitOrder(Map<String, Object> map);
 }

+ 2 - 0
src/main/java/com/steerinfo/dil/service/IDilNoticeService.java

@@ -55,4 +55,6 @@ public interface IDilNoticeService {
 
     List<Map<String,Object>> getCarrierId();*/
 
+    List<Map<String, Object>> getNoticeUser(Map<String,Object> mapValue);
+
 }

+ 14 - 4
src/main/java/com/steerinfo/dil/service/impl/AmsContractTruckPriceServiceImpl.java

@@ -15,8 +15,8 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
-import java.lang.reflect.Array;
 import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.*;
@@ -340,7 +340,7 @@ public class AmsContractTruckPriceServiceImpl implements IAmsContractTruckPriceS
      */
     @Override
     @Transactional
-    public int batchUpdateTransportPriceByOilPrice(Map<String,Object> map){
+    public synchronized int batchUpdateTransportPriceByOilPrice(Map<String,Object> map){
         //正数的判断条件
         String flag= (String) map.get("flag");
         //运输单价变化的条数
@@ -362,9 +362,12 @@ public class AmsContractTruckPriceServiceImpl implements IAmsContractTruckPriceS
                 }else{
                     //判断省市区(镇),拿到关联的中标数据
                     Map<String, Object> zb = amsContractTruckPriceMapper.selectByPlaceId(DataChange.dataToBigDecimal(stringObjectMap.get("placeId")));
+                    if(zb == null){
+                        continue;
+                    }
                     BigDecimal zbDistance = DataChange.dataToBigDecimal(zb.get("haulDistance"));
                     BigDecimal distance = DataChange.dataToBigDecimal(stringObjectMap.get("haulDistance"));
-                    if (zbDistance.intValue()!=0 && distance.intValue()!=0){
+                    if (zbDistance != null && distance != null && zbDistance.intValue()!=0 && distance.intValue()!=0){
                         BigDecimal subtract = zbDistance.subtract(distance);
                         if (subtract.intValue()>10 || subtract.intValue()<-10){
                             //大于正负10km重新计算价格
@@ -386,7 +389,9 @@ public class AmsContractTruckPriceServiceImpl implements IAmsContractTruckPriceS
             //获取该条单价的油价变化率阈值
             BigDecimal oilpriceChangeThreshold = DataChange.dataToBigDecimal(stringObjectMap.get("oilpriceChangeThreshold"));
             //计算油价变化率,公式:n=(当前油价-基数)÷基数×100%   (9.06-8.26)/8.26
-            BigDecimal n = (oilpriceBase.subtract(newOilPrice)).divide(newOilPrice,4,4);
+            BigDecimal n = (newOilPrice.subtract(oilpriceBase)).divide(oilpriceBase,4,4);
+            System.out.println(n);
+            //return i;
             //若油价变化率超过该条单价的油价变化率阈值,修改原单价为历史数据,新增一条单价
             if(n.abs().doubleValue()>oilpriceChangeThreshold.doubleValue()){
                 //加一个判断(如果数据为正数则需要二次判断,如果数据为负数则直接生效)
@@ -456,6 +461,7 @@ public class AmsContractTruckPriceServiceImpl implements IAmsContractTruckPriceS
         AmsContractTransportPrice amsContractTransportPrice = amsContractTruckPriceMapper.selectByPrimaryKey(priceId);
         //生成主键
         BigDecimal i = amsContractTruckPriceMapper.selectMaxId();
+        //如果是钢材的单价那么就需要改变吨公里
         amsContractTransportPrice.setPriceId(i);
         //生成执行日期
         amsContractTransportPrice.setPriceDate(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse((String) stringObjectMap.get("priceDate")));
@@ -516,6 +522,10 @@ public class AmsContractTruckPriceServiceImpl implements IAmsContractTruckPriceS
             e.printStackTrace();
             return 0;
         }
+        if(amsContractTransportPrice.getType().compareTo(new BigDecimal(1)) == 0) {
+            BigDecimal newOldPriceTonKilometer = amsContractTransportPrice.getPriceValue().divide(amsContractTransportPrice.getHaulDistance(),4, RoundingMode.HALF_UP);
+            amsContractTransportPrice.setPriceTonKilometer(newOldPriceTonKilometer);
+        }
         //新增数据
         int insert = amsContractTruckPriceMapper.insert(amsContractTransportPrice);
         return insert;

+ 69 - 0
src/main/java/com/steerinfo/dil/service/impl/AmsSaleOrderMaterialServiceImpl.java

@@ -49,6 +49,8 @@ public class AmsSaleOrderMaterialServiceImpl implements IAmsSaleOrderMaterialSer
     AmsContractTransportPriceMapper amsContractTransportPriceMapper;
     @Autowired
     RmsReceivePlaceMapper rmsReceivePlaceMapper;
+    @Autowired
+    AmsSaleMaterialMapper amsSaleMaterialMapper;
 
     @Override
     public int addAmsSaleOrderMaterial(AmsSaleOrderMaterial amsSaleOrderMaterial) {
@@ -994,10 +996,12 @@ public class AmsSaleOrderMaterialServiceImpl implements IAmsSaleOrderMaterialSer
 
 
     @Override
+    @Transactional
     public int mergeOrder(Map<String, Object> map) {
         int i = 0 ;
         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"));
         for (Map<String,Object> map1 : mapList) {
             //获取车序号ID
             BigDecimal saleOrderMaterialId = DataChange.dataToBigDecimal(map1.get("saleOrderMaterialId"));
@@ -1008,6 +1012,7 @@ public class AmsSaleOrderMaterialServiceImpl implements IAmsSaleOrderMaterialSer
             }
             //找出该车序号的物资子表ID
             List<BigDecimal> truckNoMaterialIds = amsSaleTrucknoMaterialMapper.getTruckNoMaterialIds(saleOrderMaterialId);
+            List<BigDecimal> saleMaterialIds = amsSaleMaterialMapper.getSaleMaterialIds(saleOrderMaterialId);
             for (BigDecimal truckNoMaterialId : truckNoMaterialIds) {
                 AmsSaleTrucknoMaterial amsSaleTrucknoMaterial = new AmsSaleTrucknoMaterial();
                 amsSaleTrucknoMaterial.setTrucknoMaterialId(truckNoMaterialId);
@@ -1015,6 +1020,70 @@ public class AmsSaleOrderMaterialServiceImpl implements IAmsSaleOrderMaterialSer
                 amsSaleTrucknoMaterial.setInsertUpdateRemark("执行合并操作,原车序号ID为" + saleOrderMaterialId);
                 i += amsSaleTrucknoMaterialMapper.updateByPrimaryKeySelective(amsSaleTrucknoMaterial);
             }
+            for (BigDecimal saleMaterialId : saleMaterialIds) {
+                AmsSaleMaterial amsSaleMaterial = new AmsSaleMaterial();
+                amsSaleMaterial.setSaleMaterialId(saleMaterialId);
+                amsSaleMaterial.setSaleOrderId(saleOrderId);
+                amsSaleMaterial.setInsertUpdateRemark("执行合并操作,原销售订单号为" + saleOrderId);
+                i += amsSaleMaterialMapper.updateByPrimaryKeySelective(amsSaleMaterial);
+            }
+        }
+        return i;
+    }
+
+
+    @Override
+    @Transactional
+    public int splitOrder(Map<String, Object> map) {
+        int i = 0;
+        List<Map<String,Object>> mapList = (List<Map<String,Object>>)map.get("mapList");
+        BigDecimal toSplitSaleOrderMaterialID = DataChange.dataToBigDecimal(mapList.get(0).get("saleOrderMaterialId"));
+        //先做异常处理.如果该车序号对应多条授权承运商实绩
+        List<BigDecimal> dispatchIds = amsDispatchSaleOrderMapper.selectDispatchIdsBySale(toSplitSaleOrderMaterialID);
+        if(dispatchIds != null && dispatchIds.size() > 1) {
+            //删除所有已授权,
+            for(int j=1;j<dispatchIds.size() ; j++) {
+                if(dispatchIds.get(i) != null) {
+                    amsDispatchSaleOrderMapper.deleteByPrimaryKey(dispatchIds.get(j));
+                }
+            }
+        }
+        //再查一下该车序号对应有几个运输订单,删除该车序号表下所有运单
+        List<BigDecimal> orderIds = omstruckOrderMapper.getOrderIdsBySale(toSplitSaleOrderMaterialID);
+        if(orderIds != null && orderIds.size() > 0) {
+            for (BigDecimal orderId :orderIds) {
+                if(orderId != null && orderId.intValue() != 0) {
+                    omstruckOrderMapper.deleteByPrimaryKey(orderId);
+                }
+            }
+        }
+        //首先根据车序号主键id查询车序号实体类
+        AmsSaleOrderMaterial amsSaleOrderMaterial = amsSaleOrderMaterialMapper.selectByPrimaryKey(toSplitSaleOrderMaterialID);
+        //查询承运商授权信息
+        AmsDispatchSaleOrder amsDispatchSaleOrder = new AmsDispatchSaleOrder();
+        if(dispatchIds != null && dispatchIds.size() > 0 && dispatchIds.get(0) != null) {
+            amsDispatchSaleOrder = amsDispatchSaleOrderMapper.selectByPrimaryKey(dispatchIds.get(0));
+        }
+        //根据主键ID查询车序号子表主键id
+        List<BigDecimal> truckNoMaterialIds = amsSaleTrucknoMaterialMapper.getTruckNoMaterialIds(toSplitSaleOrderMaterialID);
+        //如果车序号子表只有一条则不执行
+        if(truckNoMaterialIds != null && truckNoMaterialIds.size() > 1) {
+            //遍历车序号子表,第一个不变,后面的都变
+            for(int k=1;k < truckNoMaterialIds.size() ; k++) {
+                if(truckNoMaterialIds.get(k) != null){
+                    BigDecimal saleOrderMaterialID = amsSaleOrderMaterialMapper.selectMaxId();
+                    amsSaleOrderMaterial.setSaleOrderMaterialId(saleOrderMaterialID);
+                    amsSaleOrderMaterial.setInsertUpdateRemark("拆分订单,拆分前车序号为" + toSplitSaleOrderMaterialID);
+                    i += amsSaleOrderMaterialMapper.insertSelective(amsSaleOrderMaterial);
+                    AmsSaleTrucknoMaterial amsSaleTrucknoMaterial = amsSaleTrucknoMaterialMapper.selectByPrimaryKey(truckNoMaterialIds.get(k));
+                    amsSaleTrucknoMaterial.setSaleOrderMaterialId(saleOrderMaterialID);
+                    i += amsSaleTrucknoMaterialMapper.updateByPrimaryKeySelective(amsSaleTrucknoMaterial);
+                    BigDecimal dispatchId = amsDispatchSaleOrderMapper.selectOtherId();
+                    amsDispatchSaleOrder.setDispatchId(dispatchId);
+                    amsDispatchSaleOrder.setSaleOrderMaterialId(saleOrderMaterialID);
+                    amsDispatchSaleOrderMapper.insertSelective(amsDispatchSaleOrder);
+                }
+            }
         }
         return i;
     }

+ 85 - 27
src/main/java/com/steerinfo/dil/service/impl/AmsSaleOrderServiceImpl.java

@@ -863,6 +863,13 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
         int result = 0;
         // 遍历每一行
         for (Map<String,Object> map : mapList) {
+            //得到此次是否校验GPS
+            boolean onceCheck = true;
+            try{
+                onceCheck = (boolean) map.get("isCheckGPS");
+            }catch (Exception e){
+                //取值失败不处理,默认校验GPS
+            }
             // 得到车牌号
             String capacityNumber = (String) map.get("capacityNumber");
             //Map<String,Object> details = amsSaleOrderMapper.getOrderIdByCapacity(map);
@@ -878,7 +885,8 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
             //    }
             //    throw new Exception(capacityNumber+"有未完成的运输订单任务,无法派单");
             //}
-            if(isCheckGps!=null && isCheckGps==0){
+            //非自提订单 && 本次校验GPS && 全局GPS校验打开
+            if((selfMention==null || selfMention.equals("否")) && onceCheck && (isCheckGps!=null && isCheckGps==0)){
                 Map<String,Object> locationResult = null;
                 int isGPS=0;
                 try{
@@ -1940,6 +1948,9 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
     public Map<String, Object> updateCapacityNumberInFactory(Map<String, Object> mapValue) throws Exception {
         Object lineSequence = mapValue.get("lineSequence");
         int result = 0;
+        if (mapValue.get("orderId") == null) {
+            throw new Exception("还未派车,不允许修改车牌号");
+        }
         //查询输入进来的车牌号是否与原有车牌号一致,如果一致则退出
         BigDecimal oldCapacityId = omstruckOrderMapper.getOldCapacityId(DataChange.dataToBigDecimal(mapValue.get("orderId")));
         if(oldCapacityId.compareTo(DataChange.dataToBigDecimal(mapValue.get("capacityId"))) == 0) {
@@ -1948,7 +1959,18 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
         }
         Integer isCheckGps = amsSaleOrderMapper.getDispachSwitch();
         String capacityNo = (String) mapValue.get("capacityNo");
-        if(isCheckGps!=null && isCheckGps==0){
+        //得到此次是否校验GPS
+        boolean onceCheck = true;
+        //查询是否自提
+        String selfMention = "否";
+        try{
+            selfMention = amsSaleOrderMapper.findSelfMention(DataChange.dataToBigDecimal(mapValue.get("saleOrderMaterialId")));
+            onceCheck = (boolean) mapValue.get("isCheckGPS");
+        }catch (Exception e){
+            //取值失败不处理,取默认值
+        }
+        //非自提,单次校验且全局校验
+        if((selfMention==null || selfMention.equals("否")) && onceCheck && (isCheckGps!=null && isCheckGps==0)){
             Map<String,Object> data = (Map<String,Object>)otmsFeign.getCurrentLocation(capacityNo).getData();
             Map<String,Object> locationResult = (Map<String,Object>)data.get("result");
             int isGPS=amsSaleOrderMapper.isGPS(capacityNo);
@@ -1973,37 +1995,73 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
             }
             mapValue.put("capacityids",capacityids);
             //这是修改车牌号
-            //将排队信息删掉
-            Map<String, Object> isSpellingMap = omstruckOrderMapper.getSteelIsSpelling(DataChange.dataToBigDecimal(mapValue.get("orderId")));
-            if(isSpellingMap != null && isSpellingMap.get("listId") != null){
-                int isSpelling = DataChange.dataToBigDecimal(isSpellingMap.get("isSpelling")).intValue();
-                if(isSpelling == 1 ){
-                    result += omstruckOrderMapper.deleteSpellingList(isSpellingMap.get("listId"));
+            //取消是新车牌号,那么不删除排队信息,不删除实绩信息,将运单状态变为7
+            if (DataChange.dataToBigDecimal(mapValue.get("capacityId")).compareTo(new BigDecimal(35128)) != 0) {
+                //根据订单id查询车牌号改动记录
+                String oldCpacityIds = omstruckOrderMapper.getOrderCapacityHistory(DataChange.dataToBigDecimal(mapValue.get("orderId")));
+                BigDecimal oldOldCapacityId = null;
+                if(oldCpacityIds != null) {
+                    oldOldCapacityId = DataChange.dataToBigDecimal(oldCpacityIds.split(",")[0]);
+                }
+                //如果旧车号是取消,且取消的前一个车与该车相等,那么就将状态还原
+                if (oldCapacityId.compareTo(new BigDecimal(35128)) == 0 && DataChange.dataToBigDecimal(mapValue.get("capacityId")).compareTo(oldOldCapacityId) == 0 ) {
+                    //判断该订单下有没有子实绩
+                    BigDecimal  resultId = amsSaleOrderMaterialMapper.selectEnFactory(DataChange.dataToBigDecimal(mapValue.get("orderId")));
+                    if(resultId == null) {
+                        OmstruckOrder omstruckOrder = new OmstruckOrder();
+                        omstruckOrder.setOrderId(DataChange.dataToBigDecimal(mapValue.get("orderId")));
+                        omstruckOrder.setOrderStatus(new BigDecimal(4));
+                        omstruckOrder.setOrderLineSequence(new BigDecimal(0));
+                        omstruckOrder.setInsertUpdateRemark("将取消改回来原来的车状态不变!");
+                        /*omstruckOrder.set*/
+                        result += omstruckOrderMapper.updateByPrimaryKeySelective(omstruckOrder);
+                    }else{
+                        OmstruckOrder omstruckOrder = new OmstruckOrder();
+                        omstruckOrder.setOrderId(DataChange.dataToBigDecimal(mapValue.get("orderId")));
+                        omstruckOrder.setOrderStatus(new BigDecimal(5));
+                        omstruckOrder.setInsertUpdateRemark("将取消改回来原来的车状态不变!");
+                        /*omstruckOrder.set*/
+                        result += omstruckOrderMapper.updateByPrimaryKeySelective(omstruckOrder);
+                    }
+
                 }else{
-                    result += omstruckOrderMapper.deleteQueueList(isSpellingMap.get("listId"));
+                    //将排队信息删掉
+                    Map<String, Object> isSpellingMap = omstruckOrderMapper.getSteelIsSpelling(DataChange.dataToBigDecimal(mapValue.get("orderId")));
+                    if(isSpellingMap != null && isSpellingMap.get("listId") != null){
+                        int isSpelling = DataChange.dataToBigDecimal(isSpellingMap.get("isSpelling")).intValue();
+                        if(isSpelling == 1 ){
+                            result += omstruckOrderMapper.deleteSpellingList(isSpellingMap.get("listId"));
+                        }else{
+                            result += omstruckOrderMapper.deleteQueueList(isSpellingMap.get("listId"));
+                        }
+                    }
+                    //若是接单之后还需要删除实绩且将状态变为4
+                    //查询运输订单的状态和总实绩ID
+                    Map<String, Object> orderMesMap = amsSaleOrderMapper.getOrderMes(mapValue);
+                    BigDecimal resultTotalId = DataChange.dataToBigDecimal(orderMesMap.get("resultTotalId"));
+                    //删除排队实绩
+                    if (resultTotalId !=null && !("".equals(resultTotalId))){
+                        omstruckOrderMapper.deleteQueuingPerformance(resultTotalId);
+                    }
+                    OmstruckOrder omstruckOrder = new OmstruckOrder();
+                    omstruckOrder.setOrderId(DataChange.dataToBigDecimal(mapValue.get("orderId")));
+                    omstruckOrder.setOrderStatus(new BigDecimal(4));
+                    omstruckOrder.setOrderLineSequence(new BigDecimal(0));
+                        /*omstruckOrder.set*/
+                    result += omstruckOrderMapper.updateByPrimaryKeySelective(omstruckOrder);
+                    result += omstruckOrderMapper.deleteEnResult(resultTotalId);
+                    result += omstruckOrderMapper.deleteWeightResult(resultTotalId);
+                    result += omstruckOrderMapper.deleteLoadResult(resultTotalId);
+                    result += omstruckOrderMapper.deleteLeaveResult(resultTotalId);
                 }
-            }
-            result += amsSaleOrderMapper.updateCapacityNumberInFactory(mapValue);
-            //若是接单之后还需要删除实绩且将状态变为4
-            //查询运输订单的状态和总实绩ID
-            Map<String, Object> orderMesMap = amsSaleOrderMapper.getOrderMes(mapValue);
-            BigDecimal resultTotalId = DataChange.dataToBigDecimal(orderMesMap.get("resultTotalId"));
-            //删除排队实绩
-            if (resultTotalId !=null && !("".equals(resultTotalId))){
-                omstruckOrderMapper.deleteQueuingPerformance(resultTotalId);
-            }
-            if(DataChange.dataToBigDecimal(orderMesMap.get("orderStatus")).intValue() == 5){
+            }else{
                 OmstruckOrder omstruckOrder = new OmstruckOrder();
                 omstruckOrder.setOrderId(DataChange.dataToBigDecimal(mapValue.get("orderId")));
-                omstruckOrder.setOrderStatus(new BigDecimal(4));
-                omstruckOrder.setOrderLineSequence(new BigDecimal(0));
-                /*omstruckOrder.set*/
+                omstruckOrder.setOrderStatus(new BigDecimal(7));
+                omstruckOrder.setInsertUpdateRemark("取消车牌号,保留实绩将状态变为7");
                 result += omstruckOrderMapper.updateByPrimaryKeySelective(omstruckOrder);
-                result += omstruckOrderMapper.deleteEnResult(resultTotalId);
-                result += omstruckOrderMapper.deleteWeightResult(resultTotalId);
-                result += omstruckOrderMapper.deleteLoadResult(resultTotalId);
-                result += omstruckOrderMapper.deleteLeaveResult(resultTotalId);
             }
+            result += amsSaleOrderMapper.updateCapacityNumberInFactory(mapValue);
         }
         mapValue.put("result",result);
         return mapValue;

+ 5 - 0
src/main/java/com/steerinfo/dil/service/impl/DilNoticeServiceImpl.java

@@ -330,4 +330,9 @@ public class DilNoticeServiceImpl  implements IDilNoticeService {
     public int readAll(Map<String, Object> map) {
         return dilNoticeMapper.readAll(map);
     }
+
+    @Override
+    public List<Map<String, Object>> getNoticeUser(Map<String, Object> mapValue) {
+        return dilNoticeMapper.getNoticeUser(mapValue);
+    }
 }

+ 5 - 2
src/main/resources/com/steerinfo/dil/mapper/AmsContractTruckPriceMapper.xml

@@ -276,7 +276,7 @@
       </if>
     </where>
   </sql>
-  <delete id="deleteByPrimaryKey" parameterType="java.lang.Short">
+  <delete id="deleteByPrimaryKey" parameterType="java.math.BigDecimal">
     delete from AMS_CONTRACT_TRANSPORT_PRICE
     where PRICE_ID = #{priceId,jdbcType=DECIMAL}
   </delete>
@@ -611,7 +611,7 @@
     </set>
     where PRICE_ID = #{priceId,jdbcType=DECIMAL}
   </update>
-  <select id="selectByPrimaryKey" parameterType="java.lang.Short" resultMap="BaseResultMap">
+  <select id="selectByPrimaryKey" parameterType="java.math.BigDecimal" resultMap="BaseResultMap">
     <include refid="select" />
     where PRICE_ID = #{priceId,jdbcType=DECIMAL}
   </select>
@@ -1541,6 +1541,9 @@
         from  AMS_CONTRACT_TRANSPORT_PRICE
        where place_id in (select place_id from RMS_RECEIVE_PLACE t where address_id =
        (select address_id from RMS_RECEIVE_PLACE t where place_id=#{placeId} )) and reference_ht is not null
+       AND DELETED = 0
+       ORDER BY PRICE_DATE DESC
+       FETCH FIRST 1 ROW ONLY
   </select>
 
   <update id="updateByPriceId" parameterType="map">

+ 9 - 0
src/main/resources/com/steerinfo/dil/mapper/AmsDispatchSaleOrderMapper.xml

@@ -703,4 +703,13 @@
         SELECT ADSO.DISPATCH_ID "dispatchId" FROM AMS_DISPATCH_SALE_ORDER ADSO
         WHERE ADSO.SALE_ORDER_MATERIAL_ID = #{saleOrderMaterialId}
     </select>
+    <select id="selectDispatchIdsBySale" resultType="java.math.BigDecimal" parameterType="java.math.BigDecimal">
+        SELECT ADSO.DISPATCH_ID FROM AMS_DISPATCH_SALE_ORDER ADSO
+        WHERE ADSO.SALE_ORDER_MATERIAL_ID = #{toSplitSaleOrderMaterialID}
+    </select>
+    <select id="selectCarrierBySaleOrderMaterialId" resultType="java.math.BigDecimal" parameterType="java.math.BigDecimal">
+        SELECT ADSO.CARRIER_ID FROM AMS_DISPATCH_SALE_ORDER ADSO
+        WHERE SALE_ORDER_MATERIAL_ID = #{toSplitSaleOrderMaterialID}
+        FETCH FIRST 1 ROW ONLY
+    </select>
 </mapper>

+ 4 - 0
src/main/resources/com/steerinfo/dil/mapper/AmsSaleMaterialMapper.xml

@@ -855,6 +855,10 @@
       ON OO.ORDER_PLAN_ID = ASOM.SALE_ORDER_MATERIAL_ID
       WHERE ASM.SALE_MATERIAL_ID = #{closeWlEntryId}
     </select>
+    <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}
+    </select>
     <update id="updateSaleMaterialMakeDate">
     update AMS_SALE_MATERIAL ASM
     SET ASM.SALE_MAKE_DATE = #{easprimaryIdMakeDate}

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

@@ -1552,6 +1552,9 @@
     <if test="saler != null " >
         and  R_SALER.INSERT_UPDATE_REMARK like  #{saler}
     </if>
+    <if test="consigneeName != null">
+      and r_consignee.CONSIGNEE_COMPANY_NAME = #{consigneeName}
+    </if>
     <if test="oneDate != null">
       and to_date(#{oneDate}, 'yyyy-mm-dd hh24:mi:ss') &lt;= a_s_order.UPDATE_TIME
     </if>

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

@@ -926,8 +926,15 @@
       SELECT RRA.INSERT_UPDATE_REMARK FROM RMS_RECEIVE_ADDRESS RRA
       WHERE RRA.ADDRESS_ID = #{saleShippingAddressId}
     </select>
+  <select id="selectEnFactory" resultType="java.math.BigDecimal" parameterType="java.math.BigDecimal">
+    SELECT TER.RESULT_ID FROM TMSTRUCK_ENFACTORY_RESULT TER
+    LEFT JOIN TMSTRUCK_TOTAL_RESULT TTR
+    ON TTR.RESULT_TOTAL_ID = TER.RESULT_TOTAL_ID
+    WHERE TTR.ORDER_ID = #{orderId}
+    FETCH FIRST 1 ROW ONLY
+  </select>
 
-    <update id="updateSendStation">
+  <update id="updateSendStation">
     update
       TMSTRAIN_PLEASE_APPROVE_RESULT
     set SEND_STATION_ID=#{sendStationId}

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

@@ -812,4 +812,28 @@
       WHERE INSERT_USERNAME = #{insertUserName}
     )
   </update>
+
+  <select id="getNoticeUser" resultType="java.util.Map">
+    SELECT DN.NOTICE_TITLE AS "noticetitle",
+    DN.NOTICE_CONTENT AS "noticecontent",
+    DN.INSERT_USERNAME AS "insertusername",
+    DN.INSERT_TIME AS "inserttime",
+    DN.NOTICE_ID AS "noticeId",
+    SU .USER_NAME "userName",
+    decode(DNU.STATUS,1,'已读','未读') "status"
+    FROM DIL_NOTICE	DN
+    LEFT JOIN DIL_NOTICE_USERS DNU ON DNU .NOTICE_ID=DN .NOTICE_ID
+    LEFT JOIN SSO.SYS_USER SU ON SU .USER_ID = DNU .USER_ID
+    <where>
+      <if test="noticeId!=null">
+        AND DNU.NOTICE_ID=#{noticeId}
+      </if>
+      <if test="userId!=null">
+        AND DNU.USER_ID=#{userId}
+      </if>
+      AND DNU.NOTICE_ID IS NOT NULL
+      AND SYSDATE > DN.INSERT_TIME
+      ORDER BY DN.INSERT_TIME DESC
+    </where>
+  </select>
 </mapper>

+ 9 - 0
src/main/resources/com/steerinfo/dil/mapper/OmstruckOrderMapper.xml

@@ -941,4 +941,13 @@
         TWR.RESULT_NET_WEIGHT IS NOT NULL
         AND TTR.ORDER_ID = #{orderId}
     </select>
+    <select id="getOrderIdsBySale" resultType="java.math.BigDecimal" parameterType="java.math.BigDecimal">
+        SELECT OO.ORDER_ID FROM OMSTRUCK_ORDER OO
+        WHERE OO.ORDER_PLAN_ID = #{toSplitSaleOrderMaterialID}
+        and OO.ORDER_TYPE = 1
+    </select>
+    <select id="getOrderCapacityHistory" resultType="java.lang.String" parameterType="java.math.BigDecimal">
+        SELECT OO.CAPACITYIDS FROM OMSTRUCK_ORDER OO
+        WHERE OO.ORDER_ID = #{orderId}
+    </select>
 </mapper>