HUJIANGUO 3 years ago
parent
commit
8cff94382c

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

@@ -912,4 +912,62 @@ public class AmsSaleOrderController extends BaseRESTfulController {
         PageListAdd pageList = columnDataUtil.tableColumnData(apiId,null, saleOrderList);
         PageListAdd pageList = columnDataUtil.tableColumnData(apiId,null, saleOrderList);
         return success(pageList);
         return success(pageList);
     }
     }
+
+    /**
+     * 修改收货地址
+     *
+     * @param mapValue
+     * @return
+     */
+    @ApiOperation(value = "修改收货地址")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "map", value = "修改收货地址", required = false, dataType = "java.util.Map")
+    })
+    @PostMapping(value = "/修改收货地址")
+    public RESTfulResult updateCarAddress(@RequestBody Map<String, Object> mapValue) {
+        //分页数据
+        int result = amsSaleOrderService.updateCarAddress(mapValue);
+        return success(result);
+    }
+
+    /**
+     * 修改销售订单中的物资
+     *
+     * @param mapValue
+     * @return
+     */
+    @ApiOperation(value = "修改销售订单中的物资")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "map", value = "修改收货地址", required = false, dataType = "java.util.Map")
+    })
+    @PostMapping(value = "/修改销售订单中的物资")
+    public RESTfulResult updateAllMaterialInSale(@RequestBody Map<String, Object> mapValue) {
+        //分页数据
+        int result = amsSaleOrderService.updateAllMaterialInSale(mapValue);
+        return success(result);
+    }
+
+    @ApiModelProperty(value = "展示副产品销售订单列表")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "pageNum", value = "查询页数", required = false, dataType = "Integer"),
+            @ApiImplicitParam(name = "pageSize", value = "每页记录数", required = false, dataType = "Integer"),
+            @ApiImplicitParam(name = "apiId", value = "481", required = false, dataType = "BigDecimal")
+    })
+    @PostMapping("/getFuSaleOrderList")
+    public RESTfulResult getFuSaleOrderList(@RequestBody(required = false) Map<String, Object> mapValue,
+                                            Integer pageNum,
+                                            Integer pageSize,
+                                            Integer apiId,
+                                            String con
+    ) {
+        if (con != null && !"".equals(con) && !"null".equals(con)) {
+            mapValue.put("con", con);
+        }
+        //不分页筛选数据
+        PageHelper.startPage(pageNum, pageSize);
+        //分页数据
+        List<Map<String, Object>> saleOrderList = amsSaleOrderService.getFuSaleOrderList(mapValue);
+        PageListAdd pageList = columnDataUtil.tableColumnData(apiId, null, saleOrderList);
+        return success(pageList);
+    }
 }
 }

+ 3 - 0
src/main/java/com/steerinfo/dil/feign/JoinFeign.java

@@ -19,4 +19,7 @@ public interface JoinFeign {
 
 
     @PostMapping("/api/v1/join/wsface/pushSaleOrderToEas")
     @PostMapping("/api/v1/join/wsface/pushSaleOrderToEas")
     String pushSaleOrderToEas(@RequestBody Map<String,Object> map);
     String pushSaleOrderToEas(@RequestBody Map<String,Object> map);
+
+    @PostMapping("/api/v1/join/wsface/deleteSaleOrderToEas")
+    String deleteSaleOrderToEas(@RequestBody Map<String,Object> map);
 }
 }

+ 3 - 1
src/main/java/com/steerinfo/dil/mapper/AmsSaleOrderCarrierMapper.java

@@ -3,6 +3,8 @@ package com.steerinfo.dil.mapper;
 import com.steerinfo.dil.model.AmsSaleOrderCarrier;
 import com.steerinfo.dil.model.AmsSaleOrderCarrier;
 import com.steerinfo.framework.mapper.IBaseMapper;
 import com.steerinfo.framework.mapper.IBaseMapper;
 import java.math.*;
 import java.math.*;
+import java.util.Map;
+
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Select;
 import org.apache.ibatis.annotations.Select;
 
 
@@ -12,5 +14,5 @@ public interface AmsSaleOrderCarrierMapper extends IBaseMapper<AmsSaleOrderCarri
     @Select("select seq__SALE_ORDER_CARRIER.nextval from dual")
     @Select("select seq__SALE_ORDER_CARRIER.nextval from dual")
     BigDecimal selectMaxId();
     BigDecimal selectMaxId();
 
 
-    AmsSaleOrderCarrier getAmsSaleOrderCarrier(BigDecimal carrierId, BigDecimal saleOrderId);
+    AmsSaleOrderCarrier getAmsSaleOrderCarrier(Map<String,Integer> map);
 }
 }

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

@@ -116,4 +116,14 @@ public interface AmsSaleOrderMapper extends IBaseMapper<AmsSaleOrder, BigDecimal
     String matchingDriverTelRecently(String capacityNumber);
     String matchingDriverTelRecently(String capacityNumber);
     // 查询内转焦炭订单
     // 查询内转焦炭订单
     List<Map<String,Object>> getCokeInwardOrderList(Map<String, Object> mapValue);
     List<Map<String,Object>> getCokeInwardOrderList(Map<String, Object> mapValue);
+    // 得到定向派单表id
+    BigDecimal getDispatchId(BigDecimal saleOrderMaterialId);
+    // 得到销售订单物资表主键
+    List<Map<String, Object>> getSaleMaterialId();
+    // 得到销售订单物资的集合
+    List<Map<String, Object>> getSaleList(Map<String,Object> truckNoMap);
+    // 副产品订单
+    List<Map<String, Object>> getFuSaleOrderList(Map<String,Object> truckNoMap);
+    // 副产品关闭未进厂的运单
+    int closeOrderNotIn(BigDecimal saleOrderId);
 }
 }

+ 3 - 0
src/main/java/com/steerinfo/dil/mapper/OmstruckOrderMaterialMapper.java

@@ -7,6 +7,8 @@ import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Select;
 import org.apache.ibatis.annotations.Select;
 
 
 import java.math.BigDecimal;
 import java.math.BigDecimal;
+import java.util.List;
+import java.util.Map;
 
 
 @Mapper
 @Mapper
 public interface OmstruckOrderMaterialMapper extends IBaseMapper<OmstruckOrderMaterial, BigDecimal> {
 public interface OmstruckOrderMaterialMapper extends IBaseMapper<OmstruckOrderMaterial, BigDecimal> {
@@ -15,4 +17,5 @@ public interface OmstruckOrderMaterialMapper extends IBaseMapper<OmstruckOrderMa
     @Select("select seq_omstruck_order_material.nextval from dual")
     @Select("select seq_omstruck_order_material.nextval from dual")
     BigDecimal selectMaxId();
     BigDecimal selectMaxId();
 
 
+    List<Map<String, Object>> getMaterialList(BigDecimal orderId);
 }
 }

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

@@ -143,4 +143,10 @@ public interface IAmsSaleOrderService {
     String matchingDriverTelRecently(String capacityNumber);
     String matchingDriverTelRecently(String capacityNumber);
     // 查询内转焦炭订单
     // 查询内转焦炭订单
     List<Map<String, Object>> getCokeInwardOrderList(Map<String, Object> mapValue);
     List<Map<String, Object>> getCokeInwardOrderList(Map<String, Object> mapValue);
+    // 修改车辆收货地址
+    int updateCarAddress(Map<String, Object> mapValue);
+    // 修改销售订单中的物资
+    int updateAllMaterialInSale(Map<String, Object> mapValue);
+    //获取销售公司已审核的订单
+    List<Map<String,Object>> getFuSaleOrderList(Map<String,Object> map);
 }
 }

+ 8 - 2
src/main/java/com/steerinfo/dil/service/impl/AmsSaleOrderCarrierServiceImpl.java

@@ -43,8 +43,9 @@ public class AmsSaleOrderCarrierServiceImpl extends BaseServiceImpl<AmsSaleOrder
         //遍历销售订单
         //遍历销售订单
         for (Map<String,Integer> map :saleOrderIds){
         for (Map<String,Integer> map :saleOrderIds){
             BigDecimal saleOrderId=new BigDecimal(map.get("saleOrderId"));
             BigDecimal saleOrderId=new BigDecimal(map.get("saleOrderId"));
-            //当前订单已经下发给该承运商
-            AmsSaleOrderCarrier saleOrderCarrier= amsSaleOrderCarrierMapper.getAmsSaleOrderCarrier(carrierId,saleOrderId);
+            // 判断订单是否已授权过
+            AmsSaleOrderCarrier saleOrderCarrier= amsSaleOrderCarrierMapper.getAmsSaleOrderCarrier(map);
+            // 未授权过
             if (saleOrderId!=null&&saleOrderCarrier==null){
             if (saleOrderId!=null&&saleOrderCarrier==null){
                 AmsSaleOrderCarrier amsSaleOrderCarrier=new AmsSaleOrderCarrier();
                 AmsSaleOrderCarrier amsSaleOrderCarrier=new AmsSaleOrderCarrier();
                 amsSaleOrderCarrier.setSaleOrderCarrierId(amsSaleOrderCarrierMapper.selectMaxId());
                 amsSaleOrderCarrier.setSaleOrderCarrierId(amsSaleOrderCarrierMapper.selectMaxId());
@@ -54,6 +55,11 @@ public class AmsSaleOrderCarrierServiceImpl extends BaseServiceImpl<AmsSaleOrder
                 amsSaleOrderCarrier.setInsertUsername("admin");
                 amsSaleOrderCarrier.setInsertUsername("admin");
                 count=amsSaleOrderCarrierMapper.insertSelective(amsSaleOrderCarrier);
                 count=amsSaleOrderCarrierMapper.insertSelective(amsSaleOrderCarrier);
             }
             }
+            // 已授权过:更新授权
+            if (saleOrderId!=null&&saleOrderCarrier != null) {
+                saleOrderCarrier.setCarrierId(carrierId);
+                count = amsSaleOrderCarrierMapper.updateByPrimaryKeySelective(saleOrderCarrier);
+            }
         }
         }
         return count;
         return count;
     }
     }

+ 314 - 2
src/main/java/com/steerinfo/dil/service/impl/AmsSaleOrderServiceImpl.java

@@ -7,6 +7,7 @@ import com.steerinfo.dil.mapper.*;
 import com.steerinfo.dil.model.*;
 import com.steerinfo.dil.model.*;
 import com.steerinfo.dil.service.IAmsSaleOrderService;
 import com.steerinfo.dil.service.IAmsSaleOrderService;
 import com.steerinfo.dil.util.DataChange;
 import com.steerinfo.dil.util.DataChange;
+import com.steerinfo.dil.util.EASDeleteUtil;
 import com.steerinfo.dil.util.EASUtil;
 import com.steerinfo.dil.util.EASUtil;
 import com.steerinfo.dil.util.NumberToWeightUtil;
 import com.steerinfo.dil.util.NumberToWeightUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -61,6 +62,8 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
     TmsTruckFeign tmsTruckFeign;
     TmsTruckFeign tmsTruckFeign;
     @Autowired
     @Autowired
     EASUtil easUtil;
     EASUtil easUtil;
+    @Autowired
+    EASDeleteUtil easDeleteUtil;
 
 
     @Override
     @Override
     public List<Map<String, Object>> getSaleOrderInfo(Map<String, Object> map) {
     public List<Map<String, Object>> getSaleOrderInfo(Map<String, Object> map) {
@@ -201,6 +204,8 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
         AmsSaleOrder amsSaleOrder = amsSaleOrderMapper.selectByPrimaryKey(saleOrderId);
         AmsSaleOrder amsSaleOrder = amsSaleOrderMapper.selectByPrimaryKey(saleOrderId);
         // 调用金蝶接口,将销售订单推送到金蝶系统
         // 调用金蝶接口,将销售订单推送到金蝶系统
         Map<String, Object> input = joinFeign.getSaleOrder(saleOrderId);
         Map<String, Object> input = joinFeign.getSaleOrder(saleOrderId);
+        Map<String, Object> head = (Map<String, Object>) input.get("head");
+        head.put("status","");
         // 获得金蝶接口配置
         // 获得金蝶接口配置
         Map<String, Object> totalMap = easUtil.getTotalMap();
         Map<String, Object> totalMap = easUtil.getTotalMap();
         // 组装报文
         // 组装报文
@@ -904,16 +909,40 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
     }
     }
 
 
     /**
     /**
-     *
+     * 同步金蝶删除
      * @param saleOrderId
      * @param saleOrderId
      * @return
      * @return
      */
      */
     @Override
     @Override
     public int deleteSaleOrderById(BigDecimal saleOrderId) {
     public int deleteSaleOrderById(BigDecimal saleOrderId) {
+        int result = 0;
         AmsSaleOrder amsSaleOrder = new AmsSaleOrder();
         AmsSaleOrder amsSaleOrder = new AmsSaleOrder();
         amsSaleOrder.setSaleOrderId(saleOrderId);
         amsSaleOrder.setSaleOrderId(saleOrderId);
         amsSaleOrder.setDeleted(new BigDecimal(1));
         amsSaleOrder.setDeleted(new BigDecimal(1));
-        int result = amsSaleOrderMapper.updateByPrimaryKeySelective(amsSaleOrder);
+        // 如果是已经上传金蝶的销售订单,则同步删除
+        AmsSaleOrder amsSaleOrder1 = amsSaleOrderMapper.selectByPrimaryKey(saleOrderId);
+        if (amsSaleOrder1.getSaleOrderStatus().intValue() == 2 || amsSaleOrder1.getSaleOrderStatus().intValue() == 4) {
+            Map<String, Object> input = joinFeign.getSaleOrder(saleOrderId);
+            Map<String, Object> head = (Map<String, Object>) input.get("head");
+            head.put("status","close");
+            // 获得金蝶接口配置
+            Map<String, Object> totalMap = easUtil.getTotalMap();
+            // 组装报文
+            totalMap.put("input",input);
+            System.out.println(totalMap);
+            String json = JSONUtils.toJSONString(totalMap);
+            System.out.println(json);
+            String s = joinFeign.pushSaleOrderToEas(totalMap);
+            System.out.println(s);
+        }
+        // 如果是副产品订单则关闭时同步关闭未进厂的运单
+        Map<String,Object> map = new HashMap<>();
+        map.put("saleOrderId",saleOrderId);
+        List<AmsSaleMaterial> amsSaleMaterials = amsSaleMaterialMapper.selectByParameters(map);
+        if (amsSaleMaterials != null && amsSaleMaterials.get(0).getSaleWarehouse().equals("副产品库")) {
+            result += amsSaleOrderMapper.closeOrderNotIn(saleOrderId);
+        }
+        result += amsSaleOrderMapper.updateByPrimaryKeySelective(amsSaleOrder);
         return result;
         return result;
     }
     }
 
 
@@ -1200,6 +1229,96 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
         return amsSaleOrderMapper.getCokeInwardOrderList(mapValue);
         return amsSaleOrderMapper.getCokeInwardOrderList(mapValue);
     }
     }
 
 
+    /**
+     * 修改收货地址
+     * @param mapValue
+     * @return
+     */
+    @Override
+    public int updateCarAddress(Map<String, Object> mapValue) {
+        // 判断是否需要删除金蝶分录
+        Integer isCloseEas = (Integer) mapValue.get("isCloseEas");
+        // 判断是否需要修改派车
+        Object isNewCar = mapValue.get("isNewCar");
+        // 销售订单主键
+        BigDecimal saleOrderId = DataChange.dataToBigDecimal(mapValue.get("saleOrderId"));
+        // 车序号id
+        BigDecimal saleOrderMaterialId = DataChange.dataToBigDecimal(mapValue.get("saleOrderMaterialId"));
+        int result = 0;
+        // 运输订单id
+        BigDecimal orderId = DataChange.dataToBigDecimal(mapValue.get("orderId"));
+        // 是
+        if (isCloseEas == 0 && orderId != null && orderId.intValue() != 0) {
+            OmstruckOrder omstruckOrder = new OmstruckOrder();
+            omstruckOrder.setOrderId(orderId);
+            omstruckOrder.setOrderStatus(new BigDecimal(7));
+            omstruckOrderMapper.updateByPrimaryKeySelective(omstruckOrder);
+            // 得到销售订单物资表主键
+            List<Map<String,Object>> saleMaterialIdList = amsSaleOrderMapper.getSaleMaterialId();
+            for (Map<String, Object> map : saleMaterialIdList) {
+                // 删除销售订单物资子表
+                BigDecimal saleMaterialId = (BigDecimal) map.get("saleMaterialId");
+                amsSaleMaterialMapper.deleteByPrimaryKey(saleMaterialId);
+            }
+            // 调用金蝶接口,将销售订单推送到金蝶系统
+            Map<String, Object> input = joinFeign.getSaleOrder(saleOrderId);
+            Map<String, Object> head = (Map<String, Object>) input.get("head");
+            head.put("status","update");
+            // 获得金蝶接口配置
+            Map<String, Object> totalMap = easUtil.getTotalMap();
+            // 组装报文
+            totalMap.put("input",input);
+            System.out.println(totalMap);
+            String json = JSONUtils.toJSONString(totalMap);
+            System.out.println(json);
+            String s = joinFeign.pushSaleOrderToEas(totalMap);
+            System.out.println(s);
+            return 0;
+        }
+        // 省市县ID
+        BigDecimal shippingAddressId = DataChange.dataToBigDecimal(mapValue.get("shipperAddressId"));
+        // 具体地址
+        String place = (String) mapValue.get("place");
+        AmsSaleOrderMaterial amsSaleOrderMaterial = amsSaleOrderMaterialMapper.selectByPrimaryKey(saleOrderMaterialId);
+        if (place != null && !"null".equals(place)) {
+            List<Map<String, Object>> placeIdList = amsSaleOrderMaterialMapper.getPlaceId(place,shippingAddressId);
+            if (placeIdList == null || placeIdList.size() == 0) {
+                RmsReceivePlace rmsReceivePlace = new RmsReceivePlace();
+                rmsReceivePlace.setPlaceId(rmsReceivePlaceMapper.selectMaxId());
+                rmsReceivePlace.setAddressId(shippingAddressId);
+                rmsReceivePlace.setAddressDeliveryAddress(place);
+                amsSaleOrderMaterial.setSaleShippingAddressId(rmsReceivePlace.getPlaceId());
+                rmsReceivePlaceMapper.insertSelective(rmsReceivePlace);
+            } else {
+                amsSaleOrderMaterial.setSaleShippingAddressId((BigDecimal) placeIdList.get(0).get("placeId"));
+            }
+        }
+        result += amsSaleOrderMaterialMapper.updateByPrimaryKeySelective(amsSaleOrderMaterial);
+        // 需要换车
+        if ((Integer) isNewCar == 0) {
+            // 根据车序号得到定向派单表主键
+            BigDecimal dispatchId = amsSaleOrderMapper.getDispatchId(saleOrderMaterialId);
+            if (dispatchId != null) {
+                amsDispatchSaleOrderMapper.deleteByPrimaryKey(dispatchId);
+            }
+            if (amsSaleOrderMaterial.getSaleShippingAddressId() != null) {
+                // 自动匹配承运商
+                List<Map<String, Object>> carrierList = getCarrierByPlace(amsSaleOrderMaterial.getSaleShippingAddressId());
+                // 单一承运商才进行匹配
+                if (carrierList != null && carrierList.size() == 1) {
+                    List<Map<String, Object>> list = new ArrayList<>();
+                    Map<String, Object> map1 = carrierList.get(0);
+                    // 传入车序号主键和承运商id
+                    map1.put("saleOrderMaterialId", saleOrderMaterialId);
+                    map1.put("carrierId", map1.get("value"));
+                    list.add(map1);
+                    dispatchToCarrier(list);
+                }
+            }
+        }
+        return result;
+    }
+
     /**
     /**
      * 展示未匹配承运商的车序号
      * 展示未匹配承运商的车序号
      * @param mapValue
      * @param mapValue
@@ -1251,5 +1370,198 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
         return resultList;
         return resultList;
     }
     }
 
 
+    /**
+     * 修改销售订单中的物资
+     * @param mapValue
+     * @return
+     */
+    @Override
+    public int updateAllMaterialInSale(Map<String, Object> mapValue) {
+        int result = 0;
+        // 得到销售订单主键
+        BigDecimal saleOrderId = DataChange.dataToBigDecimal(mapValue.get("saleOrderId"));
+        BigDecimal saleOrderMaterialId = DataChange.dataToBigDecimal(mapValue.get("saleOrderMaterialId"));
+        BigDecimal orderId = DataChange.dataToBigDecimal(mapValue.get("orderId"));
+        // 得到运单中的物资
+        List<Map<String, Object>> oldList = omstruckOrderMaterialMapper.getMaterialList(orderId);
+        Map<String, Object> toTmsMap = new HashMap<>();
+        Map<String, Object> truckNoMap = new HashMap<>();
+        truckNoMap.put("saleOrderMaterialId",saleOrderMaterialId);
+        toTmsMap.put("orderId", orderId);
+        toTmsMap.put("oldList", oldList);
+        // 得到所有的物资
+        List<Map<String, Object>> mapList = (List<Map<String, Object>>) mapValue.get("mapList");
+        /*
+         删除三个物资表数据
+         */
+        List<AmsSaleTrucknoMaterial> amsSaleTrucknoMaterials = amsSaleTrucknoMaterialMapper.selectByParameters(truckNoMap);
+        for (AmsSaleTrucknoMaterial amsSaleTrucknoMaterial : amsSaleTrucknoMaterials) {
+            // 销售订单物资子表
+            amsSaleMaterialMapper.deleteByPrimaryKey(amsSaleTrucknoMaterial.getMaterialId());
+            // 车序号子表
+            amsSaleTrucknoMaterialMapper.deleteByPrimaryKey(amsSaleTrucknoMaterial.getTrucknoMaterialId());
+        }
+        // 运输订单物资子表
+
+        // 新增拼数/修改拼数
+        for (Map<String, Object> map : mapList) {
+            BigDecimal saleMaterialId = DataChange.dataToBigDecimal(map.get("saleMaterialId"));
+            BigDecimal materialId = DataChange.dataToBigDecimal(map.get("materialId"));
+            BigDecimal materialNumber = DataChange.dataToBigDecimal(map.get("orderPlanWeight"));
+            BigDecimal trucknoMaterialId = DataChange.dataToBigDecimal(map.get("trucknoMaterialId"));
+            BigDecimal isPoundSale = DataChange.dataToBigDecimal(map.get("isPound"));
+            Object steelMeter = map.get("meterNumber");
+            Object easId = map.get("easId");
+            Object warehouse = map.get("warehouse");
+            // 销售订单分录表
+            AmsSaleMaterial amsSaleMaterial = new AmsSaleMaterial();
+            // 车序号子表
+            AmsSaleTrucknoMaterial amsSaleTrucknoMaterial = new AmsSaleTrucknoMaterial();
+            // 运输订单子表
+            OmstruckOrderMaterial omstruckOrderMaterial = new OmstruckOrderMaterial();
+//            // 判断是否要新增运输订单子表
+//            Map<String, Object> orderMap = new HashMap<>();
+//            orderMap.put("orderId", orderId);
+//            orderMap.put("materialId", materialId);
+//            List<OmstruckOrderMaterial> omstruckOrderMaterials = omstruckOrderMaterialMapper.selectByParameters(orderMap);
+//            BigDecimal orderMaterialId;
+//            if (omstruckOrderMaterials == null || omstruckOrderMaterials.size() == 0) {
+//                orderMaterialId = omstruckOrderMaterialMapper.selectMaxId();
+//                omstruckOrderMaterial.setOrderMaterialId(orderMaterialId);
+//                omstruckOrderMaterial.setOrderId(orderId);
+//                omstruckOrderMaterial.setInsertTime(new Date());
+//                omstruckOrderMaterial.setInsertUsername("新增拼数");
+//            } else {
+//                omstruckOrderMaterial = omstruckOrderMaterials.get(0);
+//            }
+//            omstruckOrderMaterial.setMaterialId(materialId);
+//            omstruckOrderMaterial.setOrderMaterialNumber(materialNumber);
+//            omstruckOrderMaterial.setUpdateTime(new Date());
+//            if (omstruckOrderMaterials == null || omstruckOrderMaterials.size() == 0) {
+//                result += omstruckOrderMaterialMapper.insertSelective(omstruckOrderMaterial);
+//            } else {
+//                result += omstruckOrderMaterialMapper.updateByPrimaryKeySelective(omstruckOrderMaterial);
+//            }
+//            // 判断是否是新增的拼数
+//            if (saleMaterialId == null || saleMaterialId.intValue() == 0) {
+//                saleMaterialId = amsSaleMaterialMapper.selectMaxId();
+//                trucknoMaterialId = amsSaleTrucknoMaterialMapper.selectMaxId();
+//                amsSaleMaterial.setInsertTime(new Date());
+//                amsSaleMaterial.setInsertUsername("修改时加拼数");
+//                amsSaleTrucknoMaterial.setInsertTime(new Date());
+//                amsSaleTrucknoMaterial.setInsertUsername("修改时加拼数");
+//            }
+//            // 车序号子表
+//            amsSaleTrucknoMaterial.setTrucknoMaterialId(trucknoMaterialId);
+//            amsSaleTrucknoMaterial.setMaterialId(saleMaterialId);
+//            amsSaleTrucknoMaterial.setSaleOrderMaterialId(saleOrderMaterialId);
+//            amsSaleTrucknoMaterial.setUpdateTime(new Date());
+//            // 销售订单物资表
+//            amsSaleMaterial.setSaleMaterialId(saleMaterialId);
+//            amsSaleMaterial.setMaterialNumber(materialNumber);
+//            amsSaleMaterial.setSaleOrderId(saleOrderId);
+//            amsSaleMaterial.setMaterialId(materialId);
+//            amsSaleMaterial.setIsPoundSale(isPoundSale);
+//            amsSaleMaterial.setUpdateTime(new Date());
+//            if (steelMeter != null) {
+//                amsSaleMaterial.setSteelMeter(new BigDecimal(steelMeter.toString()));
+//            }
+//            if (map.get("saleOrderId") == null) {
+//                result += amsSaleMaterialMapper.insertSelective(amsSaleMaterial);
+//                result += amsSaleTrucknoMaterialMapper.insertSelective(amsSaleTrucknoMaterial);
+//            } else {
+//                result += amsSaleMaterialMapper.updateByPrimaryKeySelective(amsSaleMaterial);
+//                result += amsSaleTrucknoMaterialMapper.updateByPrimaryKeySelective(amsSaleTrucknoMaterial);
+//            }
+        }
+        // 得到运单中的物资
+        List<Map<String, Object>> newList = omstruckOrderMaterialMapper.getMaterialList(orderId);
+        toTmsMap.put("newList", newList);
+        // 调用金蝶接口,将销售订单推送到金蝶系统
+        Map<String, Object> input = joinFeign.getSaleOrder(saleOrderId);
+        Map<String, Object> head = (Map<String, Object>) input.get("head");
+        head.put("status", "update");
+        // 获得金蝶接口配置
+        Map<String, Object> totalMap = easUtil.getTotalMap();
+        // 组装报文
+        totalMap.put("input", input);
+        System.out.println(totalMap);
+        String json = JSONUtils.toJSONString(totalMap);
+        System.out.println(json);
+        String s = joinFeign.pushSaleOrderToEas(totalMap);
+        System.out.println(s);
+        return result;
+    }
+
+    /**
+     * 遍历两次物资集合,找出哪些修改哪些新增哪些删除的物资
+     * @param newMaterialMapList
+     * @param oldMaterialMapList
+     * @return
+     */
+    public static Map<String, Object> checkMaterial(List<Map<String, Object>> oldMaterialMapList, List<Map<String, Object>> newMaterialMapList){
+        Map<String, Object> returnMap = new HashMap<>();
+        List<BigDecimal> delete = new ArrayList<>(); //存放删除的物资ID
+        List<Map<String, Object>> add = new ArrayList<>(); //存放添加的物资ID及件数
+        List<Map<String, Object>> update = new ArrayList<>(); // 存放修改的物资Id及件数
+        //先遍历old中的物资 查找有没有相同的物资     找到修改和删除的物资
+        for (Map<String, Object> map : oldMaterialMapList) {
+            String materialId = String.valueOf(map.get("materialId"));//拿到key
+            //通过这个key去新物资集合中获取是否包含这个key
+            Map<String, Object> newMap = getNewMap(materialId, newMaterialMapList);
+            if(newMap == null){
+                //如果在新物资中没有找到,则代表此物资已删除
+                delete.add(DataChange.dataToBigDecimal(map.get("materialId")));
+            }else{ //如果找到了,取出件数进行对比
+                BigDecimal newNumber = DataChange.dataToBigDecimal(newMap.get("materialNumber")); //拿到新物资中的件数
+                BigDecimal oldNumber = DataChange.dataToBigDecimal(map.get("materialNumber"));
+                int i = newNumber.compareTo(oldNumber);
+                if(i != 0){ //如果件数不相等,则需要进行修改,添加进修改list中
+                    Map<String, Object> updateMap = new HashMap<>();
+                    updateMap.put("materialId", materialId);
+                    updateMap.put("materialNumber", newNumber);
+                    update.add(updateMap);
+                }
+            }
+        }
+        //再次遍历new中的物资 查找 新增 的物资
+        for (Map<String, Object> map : newMaterialMapList) {
+            String materialId = String.valueOf(map.get("materialId"));
+            Map<String, Object> oldMaps = getNewMap(materialId, oldMaterialMapList);
+            if(oldMaps == null){
+                //如果在旧map中没有找到,则代表是新增的物资,将新增的物资存放到新增列表中
+                add.add(map);
+            }
+        }
+        if(add.size() != 0)    returnMap.put("add", add);
+        if(delete.size() != 0) returnMap.put("delete", delete);
+        if(update.size() != 0) returnMap.put("update", update);
+        return returnMap;
+    }
 
 
+    /**
+     * 遍历list查看里面的map是否包含这个值
+     * @param key
+     * @param mapList
+     * @return
+     */
+    public static Map<String, Object> getNewMap(String key, List<Map<String, Object>> mapList){
+        for (Map<String, Object> map : mapList) {
+            if(map.containsValue(key)){
+                return map;
+            }
+        }
+        return null;
+    }
+
+    /**
+     * 副产品订单
+     * @param map
+     * @return
+     */
+    @Override
+    public List<Map<String, Object>> getFuSaleOrderList(Map<String, Object> map) {
+        List<Map<String, Object>> resultList = amsSaleOrderMapper.getFuSaleOrderList(map);
+        return resultList;
+    }
 }
 }

+ 72 - 0
src/main/java/com/steerinfo/dil/util/EASDeleteUtil.java

@@ -0,0 +1,72 @@
+package com.steerinfo.dil.util;
+
+import org.springframework.stereotype.Component;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * 配置金蝶正式环境连接常量Map
+ * @Description:
+ * @Author:HuJianGuo
+ * @GreateTime:2021/11/15 19:44
+ * @Version:V2.0
+ */
+@Component
+public class EASDeleteUtil {
+    // totalMap
+    public final Map<String,Object> totalMap = new HashMap<>();
+    // context
+    public final Map<String,Object> context = new HashMap<>();
+    public final boolean logError = true;
+    public final boolean logData = true;
+    // context
+    public final Map<String,Object> login = new HashMap<>();
+    public final String password = "dgjt@kingdee";
+    public final String dcName = "FDDGEAS85";
+    public final String dbType = "0";
+    public final String userName = "user";
+    // context
+    public final String command = "deleteSaleOrderHandler";
+
+    /**
+     * 得到context的map
+     * @return
+     */
+    public Map<String,Object> getContext(){
+        this.context.put("logError",logError);
+        this.context.put("logData",logData);
+        return this.context;
+    }
+
+    /**
+     * 得到login的map
+     * @return
+     */
+    public Map<String,Object> getLogin(){
+        this.login.put("password",password);
+        this.login.put("dcName",dcName);
+        this.login.put("dbType",dbType);
+        this.login.put("userName",userName);
+        return this.login;
+    }
+
+    /**
+     * 得到command字符串
+     * @return
+     */
+    public String getCommand(){
+        return this.command;
+    }
+
+    /**
+     * 将所有的配置放入到totalMap的map里面
+     * @return
+     */
+    public Map<String,Object> getTotalMap() {
+        totalMap.put("context",getContext());
+        totalMap.put("login",getLogin());
+        totalMap.put("command",getCommand());
+        return this.totalMap;
+    }
+}

+ 64 - 0
src/main/java/com/steerinfo/dil/util/MapToXmlUtil.java

@@ -0,0 +1,64 @@
+package com.steerinfo.dil.util;
+
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+/**
+ * @Description:
+ * @Author:HuJianGuo
+ * @GreateTime:2022/4/27 14:35
+ * @Version:V2.0
+ */
+public class MapToXmlUtil {
+
+    /**
+     * @Description:TODO(循环遍历map节点和value,拼接成xml)
+     * @param: Map<?, ?> map
+     * @param: StringBuffer
+     * @return:
+     * @auther: HuJianGuo
+     * @date: 2022/4/27 14:35
+     * @throws
+     *
+     **/
+    public static void mapToXML(Map<?, ?> map, StringBuffer sb) {
+        Set<?> set = map.keySet();
+        for (Iterator<?> it = set.iterator(); it.hasNext();) {
+            String key = (String) it.next();
+            Object value = map.get(key);
+            if (value instanceof Map) {
+                sb.append("<" + key + ">\n");
+                mapToXML((Map<?, ?>) value, sb);
+                sb.append("</" + key + ">\n");
+            } else if (value instanceof List) {
+                List<?> list = (List<?>) map.get(key);
+                for (int i = 0; i < list.size(); i++) {
+                    sb.append("<" + key + ">\n");
+                    Map<?, ?> hm = (Map<?, ?>) list.get(i);
+                    mapToXML(hm, sb);
+                    sb.append("</" + key + ">\n");
+                }
+            } else {
+                sb.append("<" + key + ">" + value + "</" + key + ">\n");
+            }
+        }
+    }
+
+    public static String getXmlByMap(Map<?, ?> headMap,Map<?, ?> bodyMap) {
+        StringBuffer sb = new StringBuffer();
+        sb.append("<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n");
+        sb.append("<table>\n");
+        sb.append("<rowCount>1</rowCount>\n");
+        sb.append("<headCount>17</headCount>\n");
+        sb.append("<head>\n");
+        mapToXML(headMap, sb);
+        sb.append("</head>\n");
+        sb.append("<body>\n");
+        mapToXML(bodyMap, sb);
+        sb.append("</body>\n");
+        sb.append("</table>");
+        return sb.toString();
+    }
+}

+ 7 - 1
src/main/resources/com/steerinfo/dil/mapper/AmsSaleOrderCarrierMapper.xml

@@ -316,7 +316,13 @@
   <!-- 友情提示!!!-->
   <!-- 友情提示!!!-->
   <!-- 请将自己写的代码放在此标签之下,方便以后粘贴复制。-->
   <!-- 请将自己写的代码放在此标签之下,方便以后粘贴复制。-->
   <select id="getAmsSaleOrderCarrier" resultMap="BaseResultMap">
   <select id="getAmsSaleOrderCarrier" resultMap="BaseResultMap">
-    SELECT <include refid="columns" /> FROM AMS_SALE_ORDER_CARRIER where SALE_ORDER_ID=#{saleOrderId} and CARRIER_ID=#{carrierId}
+    SELECT
+    <include refid="columns"/>
+    FROM AMS_SALE_ORDER_CARRIER
+    where SALE_ORDER_ID=#{saleOrderId}
+    <if test="carrierId != null" >
+      and CARRIER_ID=#{carrierId}
+    </if>
   </select>
   </select>
   
   
 </mapper>
 </mapper>

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

@@ -3450,4 +3450,271 @@
       order by "orderNumber" desc
       order by "orderNumber" desc
     </if>
     </if>
   </select>
   </select>
+  
+  <select id="getDispatchId" parameterType="DECIMAL" resultType="DECIMAL" >
+    SELECT ADSO.DISPATCH_ID AS "dispatchId"
+    FROM AMS_DISPATCH_SALE_ORDER ADSO
+    WHERE ADSO.SALE_ORDER_MATERIAL_ID = #{saleOrderMaterialId}
+  </select>
+
+  <select id="getSaleMaterialId" parameterType="DECIMAL" resultType="DECIMAL" >
+    SELECT ASTM.MATERIAL_ID AS "saleMaterialId"
+    FROM AMS_SALE_ORDER_MATERIAL ASOM
+           LEFT JOIN AMS_SALE_TRUCKNO_MATERIAL ASTM
+                     ON ASTM.SALE_ORDER_MATERIAL_ID = ASOM.SALE_ORDER_MATERIAL_ID
+    WHERE ASOM.SALE_ORDER_MATERIAL_ID = #{saleOrderMaterialId}
+  </select>
+  
+  <select id="getSaleList" resultType="java.util.Map" >
+    SELECT ASTM.TRUCKNO_MATERIAL_ID "truckNoMaterialId",
+           ASM.SALE_MATERIAL_ID     "saleMaterialId",
+           ASM.MATERIAL_ID          "materialId"
+    FROM AMS_SALE_TRUCKNO_MATERIAL ASTM
+           LEFT JOIN AMS_SALE_MATERIAL ASM
+                     ON ASM.SALE_MATERIAL_ID = ASTM.MATERIAL_ID
+    WHERE ASTM.SALE_ORDER_MATERIAL_ID = #{saleOrderMaterialId}
+    AND ASM.MATERIAL_ID = #{materialId}
+  </select>
+
+  <select id="getFuSaleOrderList" parameterType="java.util.Map" resultType="java.util.Map">
+    select * from(
+    select a_s_order.SALE_ORDER_ID "saleOrderId",
+    a_s_order.SALE_NUMBER "saleNumber",
+    r_shipper.SHIPPER_NAME "shipperName",
+    r_consignee.CONSIGNEE_COMPANY_NAME "consigneeCompanyName",
+    r_consignee.CONSIGNEE_WARRANTY_AMOUNT "consigneeWarrantyAmount",
+    r_consignee.CONSIGNEE_WARRANTY_WEIGHT "consigneeWarrantyWeight",
+    a_s_order.SALE_ORDER_ISSELF_MENTION "saleOrderIsselfMention",
+    a_s_order.SALE_ACCOUNT_BALANCE "saleAccountBalance",
+    a_s_order.SALE_CURRENT_ORDER_AMOUNT "saleCurrentOrderAmount",
+    a_s_order.SALE_HISTORICAL_ORDER_AMOUNT "saleHistoricalOrderAmout",
+    a_s_order.SALE_ORDER_RECEIVE_CUSTOMER "saleOrderReceiveCustomer",
+    a_s_order.SALE_UNIT_PRICE "saleUnitPrice",
+    a_s_order.SALE_ORDER_TAX "saleOrderTax",
+    a_s_order.SALE_REMARK "saleRemark",
+    a_s_order.INSERT_TIME "insertTime",
+    DECODE(a_s_order.SALE_ORDER_STATUS,2,'销售已审批',4,'财务已审批') "statusStr",
+    RM.MATERIAL_NAME "materialName",
+    ASM.MATERIAL_WEIGHT "materialWeight",
+    ASM.SALE_WAREHOUSE "saleWareHouse",
+    nvl(sumWeight.weight,0)+nvl(sumWeight2.weight,0) as "totalWeight",
+    nvl(sumWeight.weight ,0) as "netWeight",
+    nvl(sumWeight2.weight ,0) as "weight",
+    nvl(carCount.coun ,0) as "carCount",
+    RCA.CARRIER_NAME as "carrierName"
+    from AMS_SALE_ORDER a_s_order
+    left join RMS_SHIPPER r_shipper
+    on a_s_order.SHIPPER_ID=r_shipper.SHIPPER_ID
+    left join RMS_CONSIGNEE r_consignee
+    on a_s_order.RECEIVE_ID=r_consignee.CONSIGNEE_ID
+    LEFT JOIN AMS_SALE_MATERIAL ASM
+    ON ASM.SALE_ORDER_ID = a_s_order.SALE_ORDER_ID
+    LEFT JOIN AMS_SALE_ORDER_CARRIER ASOC
+    ON ASOC.SALE_ORDER_ID = a_s_order.SALE_ORDER_ID
+    LEFT JOIN RMS_CARRIER RCA
+    ON RCA.CARRIER_ID = ASOC.CARRIER_ID
+    LEFT JOIN RMS_MATERIAL RM
+    ON RM.MATERIAL_ID = ASM.MATERIAL_ID
+    left join (
+    select sum( t_w_result.RESULT_NET_WEIGHT) weight,a_s_o_material.SALE_ORDER_ID SALE_ORDER_ID
+    from AMS_SALE_ORDER_MATERIAL a_s_o_material
+    left join Omstruck_Order o_order
+    on a_s_o_material.SALE_ORDER_MATERIAL_ID=o_order.order_plan_id
+    left join Tmstruck_Total_Result t_t_result
+    on o_order.order_id=t_t_result.order_id
+    left join Tmstruck_Weight_Result t_w_result
+    on t_t_result.result_total_id=t_w_result.result_total_id
+    GROUP BY
+    a_s_o_Material.SALE_ORDER_ID
+
+    ) sumWeight
+    on sumWeight.SALE_ORDER_ID=a_s_order.SALE_ORDER_ID
+    left join (
+    select sum( o_o_material.ORDER_MATERIAL_WEIGHT) weight,a_s_o_Material.SALE_ORDER_ID SALE_ORDER_ID
+    from AMS_SALE_ORDER_MATERIAL a_s_o_material
+    left join Omstruck_Order o_order
+    on a_s_o_material.SALE_ORDER_MATERIAL_ID=o_order.order_plan_id
+    left join Tmstruck_Total_Result t_t_result
+    on o_order.order_id=t_t_result.order_id
+    left join Tmstruck_Weight_Result t_w_result
+    on t_t_result.result_total_id=t_w_result.result_total_id
+    left join OMSTRUCK_ORDER_MATERIAL o_o_material
+    on o_order.order_id=o_o_material.ORDER_ID
+    where t_w_result.RESULT_NET_WEIGHT is null and o_order.order_status in (2,4,5)
+    GROUP BY
+    a_s_o_Material.SALE_ORDER_ID
+
+    ) sumWeight2
+    on sumWeight2.SALE_ORDER_ID=a_s_order.SALE_ORDER_ID
+    left join (
+    select count(o_order.order_id) coun ,a_s_o_Material.SALE_ORDER_ID SALE_ORDER_ID
+    from AMS_SALE_ORDER_MATERIAL a_s_o_material
+    left join Omstruck_Order o_order
+    on a_s_o_material.SALE_ORDER_MATERIAL_ID=o_order.order_plan_id
+    left join Tmstruck_Total_Result t_t_result
+    on o_order.order_id=t_t_result.order_id
+    left join Tmstruck_Weight_Result t_w_result
+    on t_t_result.result_total_id=t_w_result.result_total_id
+    where t_w_result.RESULT_NET_WEIGHT is null and o_order.order_status in (2,4,5)
+    GROUP BY
+    a_s_o_Material.SALE_ORDER_ID
+
+    ) carCount
+    on carCount.SALE_ORDER_ID=a_s_order.SALE_ORDER_ID
+    where ASM.SALE_WAREHOUSE = '副产品库'
+    and a_s_order.SALE_ORDER_STATUS in (2,4)
+    and a_s_order.CLOSE_STATUS is null
+    and a_s_order.DELETED = 0
+    and a_s_order.SHIPPER_ID = 1
+    and a_s_order.SALE_TYPE is null
+    <if test="con != null">
+      and (instr(r_consignee.CONSIGNEE_COMPANY_NAME, #{con}) > 0 or instr(a_s_order.SALE_NUMBER, #{con}) > 0)
+    </if>
+    <if test="consigneeSsoId != null">
+      and r_consignee.CONSIGNEE_SSO_ID = #{consigneeSsoId}
+    </if>
+    ORDER BY a_s_order.UPDATE_TIME DESC
+    )
+    <where>
+      <if test="saleNumber != null">
+        <foreach collection="saleNumber" item="item" open="(" separator="or" close=")">
+          "saleNumber" like '%${item}%'
+        </foreach>
+      </if>
+      <if test="materialName != null">
+        <foreach collection="materialName" item="item" open="(" separator="or" close=")">
+          "materialName" like '%${item}%'
+        </foreach>
+      </if>
+      <if test="materialSpecification != null">
+        <foreach collection="materialSpecification" item="item" open="(" separator="or" close=")">
+          "materialSpecification" like '%${item}%'
+        </foreach>
+      </if>
+      <if test="materialModel != null">
+        <foreach collection="materialModel" item="item" open="(" separator="or" close=")">
+          "materialModel" like '%${item}%'
+        </foreach>
+      </if>
+      <if test="statusStr != null">
+        <foreach collection="statusStr" item="item" open="(" separator="or" close=")">
+          and "statusStr" like '%${item}%'
+        </foreach>
+      </if>
+      <if test="shipperName != null">
+        and
+        <foreach collection="shipperName" item="item" open="(" separator="or" close=")">
+          "shipperName" like '%${item}%'
+        </foreach>
+      </if>
+      <if test="consigneeCompanyName != null">
+        and
+        <foreach collection="consigneeCompanyName" item="item" open="(" separator="or" close=")">
+          "consigneeCompanyName" like '%${item}%'
+        </foreach>
+      </if>
+      <if test="consigneeWarrantyAmount != null">
+        and
+        <foreach collection="consigneeWarrantyAmount" item="item" open="(" separator="or" close=")">
+          "consigneeWarrantyAmount" like '%${item}%'
+        </foreach>
+      </if>
+      <if test="consigneeWarrantyWeight != null">
+        and
+        <foreach collection="consigneeWarrantyWeight" item="item" open="(" separator="or" close=")">
+          "consigneeWarrantyWeight" like '%${item}%'
+        </foreach>
+      </if>
+      <if test="saleOrderIsselfMention != null">
+        and
+        <foreach collection="saleOrderIsselfMention" item="item" open="(" separator="or" close=")">
+          "saleOrderIsselfMention" like '%${item}%'
+        </foreach>
+      </if>
+      <if test="saleAccountBalance != null">
+        and
+        <foreach collection="saleAccountBalance" item="item" open="(" separator="or" close=")">
+          "saleAccountBalance" like '%${item}%'
+        </foreach>
+      </if>
+      <if test="saleCurrentOrderAmount != null">
+        and
+        <foreach collection="saleCurrentOrderAmount" item="item" open="(" separator="or" close=")">
+          "saleCurrentOrderAmount" like '%${item}%'
+        </foreach>
+      </if>
+      <if test="saleHistoricalOrderAmout != null">
+        and
+        <foreach collection="saleHistoricalOrderAmout" item="item" open="(" separator="or" close=")">
+          "saleHistoricalOrderAmout" like '%${item}%'
+        </foreach>
+      </if>
+      <if test="saleOrderReceiveCustomer != null">
+        and
+        <foreach collection="saleOrderReceiveCustomer" item="item" open="(" separator="or" close=")">
+          "saleOrderReceiveCustomer" like '%${item}%'
+        </foreach>
+      </if>
+      <if test="saleUnitPrice != null">
+        and
+        <foreach collection="saleUnitPrice" item="item" open="(" separator="or" close=")">
+          "saleUnitPrice" like '%${item}%'
+        </foreach>
+      </if>
+      <if test="saleOrderTax != null">
+        and
+        <foreach collection="saleOrderTax" item="item" open="(" separator="or" close=")">
+          "saleOrderTax" like '%${item}%'
+        </foreach>
+      </if>
+      <if test="saleRemark != null">
+        and
+        <foreach collection="saleRemark" item="item" open="(" separator="or" close=")">
+          "saleRemark" like '%${item}%'
+        </foreach>
+      </if>
+    </where>
+  </select>
+
+  <!-- 关闭未进厂的运单 -->
+  <update id="closeOrderNotIn" parameterType="DECIMAL" >
+    UPDATE OMSTRUCK_ORDER OO
+    SET OO.ORDER_STATUS = 7
+    WHERE OO.ORDER_ID IN (
+      SELECT OO.ORDER_ID "orderId"
+      FROM AMS_SALE_ORDER_MATERIAL ASOM
+             LEFT JOIN OMSTRUCK_ORDER OO
+                       ON OO.ORDER_PLAN_ID = ASOM.SALE_ORDER_MATERIAL_ID
+             LEFT JOIN TMSTRUCK_TOTAL_RESULT TTR
+                       ON TTR.ORDER_ID = OO.ORDER_ID
+             LEFT JOIN TMSTRUCK_ENFACTORY_RESULT TER
+                       ON TER.RESULT_TOTAL_ID = TTR.RESULT_TOTAL_ID
+      WHERE ASOM.SALE_ORDER_ID = #{saleOrderId}
+        AND TER.RESULT_ENTRY_GATE_TIME IS NULL
+        AND OO.ORDER_ID IS NOT NULL
+        AND OO.ORDER_STATUS IN (4,5)
+    )
+  </update>
+
+  <select id="getCarMessageToEas" parameterType="DECIMAL" resultType="java.util.LinkedHashMap">
+    SELECT
+        RCA.CAPACITY_NUMBER AS "r1c1",
+           OO.ORDER_NUMBER AS "r1c2",
+            RM.EAS_MATERIAL_ID AS "r1c3",
+           RM.MATERIAL_NAME AS "r1c4",
+           RM.MATERIAL_SPECIFICATION || RM.MATERIAL_MODEL AS "r1c5"
+FROM OMSTRUCK_ORDER OO
+    LEFT JOIN OMSTRUCK_ORDER_MATERIAL OOM
+    ON OOM.ORDER_ID = OO.ORDER_ID
+    LEFT JOIN RMS_MATERIAL RM
+    ON RM.MATERIAL_ID = OOM.MATERIAL_ID
+LEFT JOIN RMS_CAPACITY RCA
+    ON OO.CAPACITY_ID = RCA.CAPACITY_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 RMS_CONSIGNEE RC
+ON ASO.RECEIVE_ID = RC.CONSIGNEE_ID
+  </select>
 </mapper>
 </mapper>

+ 9 - 2
src/main/resources/com/steerinfo/dil/mapper/OmstruckOrderMaterialMapper.xml

@@ -111,7 +111,7 @@
       </if>
       </if>
     </where>
     </where>
   </sql>
   </sql>
-  <delete id="deleteByPrimaryKey" parameterType="java.lang.Short">
+  <delete id="deleteByPrimaryKey" parameterType="DECIMAL">
     delete from OMSTRUCK_ORDER_MATERIAL
     delete from OMSTRUCK_ORDER_MATERIAL
     where ORDER_MATERIAL_ID = #{orderMaterialId,jdbcType=DECIMAL}
     where ORDER_MATERIAL_ID = #{orderMaterialId,jdbcType=DECIMAL}
   </delete>
   </delete>
@@ -297,7 +297,7 @@
     </set>
     </set>
     where ORDER_MATERIAL_ID = #{orderMaterialId,jdbcType=DECIMAL}
     where ORDER_MATERIAL_ID = #{orderMaterialId,jdbcType=DECIMAL}
   </update>
   </update>
-  <select id="selectByPrimaryKey" parameterType="java.lang.Short" resultMap="BaseResultMap">
+  <select id="selectByPrimaryKey" parameterType="DECIMAL" resultMap="BaseResultMap">
     <include refid="select" />
     <include refid="select" />
     where ORDER_MATERIAL_ID = #{orderMaterialId,jdbcType=DECIMAL}
     where ORDER_MATERIAL_ID = #{orderMaterialId,jdbcType=DECIMAL}
   </select>
   </select>
@@ -395,4 +395,11 @@
   <!-- 友情提示!!!-->
   <!-- 友情提示!!!-->
   <!-- 请将自己写的代码放在此标签之下,方便以后粘贴复制。-->
   <!-- 请将自己写的代码放在此标签之下,方便以后粘贴复制。-->
 
 
+  <select id="getMaterialList" parameterType="DECIMAL" resultType="java.util.Map">
+    SELECT OOM.MATERIAL_ID           "materialId",
+           OOM.ORDER_MATERIAL_NUMBER "materialNumber",
+           OOM.ORDER_MATERIAL_ID     "orderMaterialId"
+    FROM OMSTRUCK_ORDER_MATERIAL OOM
+    WHERE OOM.ORDER_ID = #{orderId}
+  </select>
 </mapper>
 </mapper>