فهرست منبع

'销售钢材修改'

HUJIANGUO 3 سال پیش
والد
کامیت
db6ff59d00

+ 1 - 2
pom.xml

@@ -112,13 +112,12 @@
                     <targetPackage>com.steerinfo.dil</targetPackage>
                     <tables>
 <!--                        <param>AMS_SALE_ORDER</param>&lt;!&ndash;销售计划&ndash;&gt;-->
-                        <param>AMS_SALE_ORDER</param><!--销售计划物资中间表-->
+                        <param>AMS_SALE_ORDER_MATERIAL</param><!--销售计划物资中间表-->
 <!--                        <param>AMSTRUCK_RAIL_DAYPLAN</param>&lt;!&ndash;销售计划物资中间表&ndash;&gt;-->
 <!--                        <param>AMS_CONTRACT_TRANSPORT_PRICE</param>&lt;!&ndash;销售订单&ndash;&gt;-->
 <!--                        <param>RMS_RECEIVE_PLACE</param>&lt;!&ndash;销售订单车序号表&ndash;&gt;-->
 <!--                        <param>AMS_SALE_TRUCKNO_MATERIAL</param>&lt;!&ndash;车序号物资中间表&ndash;&gt;-->
 <!--                            <param>AMS_CONTRACT_TRANSPORT_PRICE</param>-->
-                        <param>AMSTRUCK_INWARD_REQUIREMENT</param>
                     </tables>
                 </configuration>
                 <executions>

+ 44 - 5
src/main/java/com/steerinfo/dil/controller/AmsSaleOrderController.java

@@ -473,8 +473,11 @@ public class AmsSaleOrderController extends BaseRESTfulController {
     public RESTfulResult getSaleOrderInfoes(@RequestBody(required=false) Map<String,Object> mapValue,
                                             Integer apiId,
                                             Integer pageNum,
-                                            Integer pageSize){
-
+                                            Integer pageSize,
+                                            String consigneeSsoId){
+        if (consigneeSsoId != null && !"".equals(consigneeSsoId) && !"null".equals(consigneeSsoId)) {
+            mapValue.put("consigneeSsoId",consigneeSsoId);
+        }
         PageHelper.startPage(pageNum,pageSize);
         List<Map<String, Object>> amsSaleOrder1 = amsSaleOrderService.getSaleOrderInfoes(mapValue);
         PageListAdd pageList = columnDataUtil.tableColumnData(apiId, null,amsSaleOrder1);
@@ -489,8 +492,11 @@ public class AmsSaleOrderController extends BaseRESTfulController {
     public RESTfulResult getSaleOrderReportedes(@RequestBody(required=false) Map<String,Object> mapValue,
                                                 Integer apiId,
                                                 Integer pageNum,
-                                                Integer pageSize){
-
+                                                Integer pageSize,
+                                                String consigneeSsoId){
+        if (consigneeSsoId != null && !"".equals(consigneeSsoId) && !"null".equals(consigneeSsoId)) {
+            mapValue.put("consigneeSsoId",consigneeSsoId);
+        }
         PageHelper.startPage(pageNum,pageSize);
         List<Map<String, Object>> amsSaleOrder1 = amsSaleOrderService.getSaleOrderReportedes(mapValue);
         PageListAdd pageList = columnDataUtil.tableColumnData(apiId, null,amsSaleOrder1);
@@ -510,7 +516,8 @@ public class AmsSaleOrderController extends BaseRESTfulController {
                                                          Integer apiId,
                                                          String con,
                                                          Integer shipperId,
-                                                         @RequestParam(required = false) Integer saleType
+                                                         @RequestParam(required = false) Integer saleType,
+                                                         String consigneeSsoId
 //                                                         String startDate,
 //                                                         String endDate
                                                          ) {
@@ -520,6 +527,9 @@ public class AmsSaleOrderController extends BaseRESTfulController {
         if(shipperId != null  && !"".equals(shipperId) && !"null".equals(shipperId)){
             mapValue.put("shipperId", shipperId);
         }
+        if (consigneeSsoId != null  && !"".equals(consigneeSsoId) && !"null".equals(consigneeSsoId)) {
+            mapValue.put("consigneeSsoId",consigneeSsoId);
+        }
         mapValue.put("saleType",saleType);
 //        SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd");
 //        if(startDate != null  && !"".equals(startDate) && !"null".equals(startDate)){
@@ -815,4 +825,33 @@ public class AmsSaleOrderController extends BaseRESTfulController {
         Map<String,Object> saleMap = amsSaleOrderService.getAllSaleMessages(new BigDecimal(saleOrderId));
         return success(saleMap);
     }
+
+    @ApiModelProperty(value = "修改承运商授权")
+    @PostMapping("/updateTruckNoCarrier")
+    public RESTfulResult updateTruckNoCarrier(@RequestBody Map<String,Object> mapValue) {
+        int result = amsSaleOrderService.updateTruckNoCarrier(mapValue);
+        return success(result);
+    }
+
+    /**
+     * 批量上传销售订单
+     * @param saleOrderIdList
+     * @return
+     */
+    @ApiOperation(value="批量上传销售订单")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "saleOrderId", value = "销售订单ID", required = false, dataType = "java.math.BigDecimal")
+    })
+    @PostMapping(value = "/uploadSaleOrderList")
+    public RESTfulResult uploadSaleOrderList(@RequestBody List<Map<String,Object>> saleOrderIdList){
+        int i = amsSaleOrderService.uploadSaleOrderList(saleOrderIdList);
+        return success(i);
+    }
+
+    @ApiModelProperty(value = "新增钒渣销售订单")
+    @PostMapping("/addVanadiumSaleOrder")
+    public RESTfulResult addVanadiumSaleOrder(@RequestBody Map<String,Object> mapValue) {
+        int result = amsSaleOrderService.addSteelSaleOrder(mapValue);
+        return success(result);
+    }
 }

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

@@ -82,7 +82,7 @@ public interface AmsSaleOrderMapper extends IBaseMapper<AmsSaleOrder, BigDecimal
     // 根据详细地址匹配省市县
     BigDecimal getAddressByPlace(BigDecimal placeId);
     // 根据省市县匹配承运商
-    List<Map<String, Object>> getCarrierByPlace(BigDecimal addressId);
+    List<Map<String, Object>> getCarrierByPlace(BigDecimal placeId);
     // 根据详细地址匹配承运商
     Map<String, Object> getPriceByCarrierAndPlace(Map<String, Object> mapValue);
 

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

@@ -51,7 +51,7 @@ public interface AmsSaleOrderMaterialMapper extends IBaseMapper<AmsSaleOrderMate
     // 得到是否是钢材
     BigDecimal getIsSteel(BigDecimal lineId);
 
-    List<Map<String, Object>> getPlaceId(String place);
+    List<Map<String, Object>> getPlaceId(String place,BigDecimal shippingAddressId);
     // 通过销售订单id查询出销售订单信息
     Map<String, Object> getSaleMessage(BigDecimal saleOrderId);
     // 通过承运商id查询单价

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

@@ -111,6 +111,12 @@ public class AmsSaleOrderMaterial implements IBasePO<BigDecimal> {
     @ApiModelProperty(value="运输单价ID",required=false)
     private BigDecimal priceId;
 
+    /**
+     * 车号备注(TRUCK_REMARK,VARCHAR,200)
+     */
+    @ApiModelProperty(value="车号备注",required=false)
+    private String truckRemark;
+
     private static final long serialVersionUID = 1L;
 
     @Override
@@ -259,6 +265,14 @@ public class AmsSaleOrderMaterial implements IBasePO<BigDecimal> {
         this.priceId = priceId;
     }
 
+    public String getTruckRemark() {
+        return truckRemark;
+    }
+
+    public void setTruckRemark(String truckRemark) {
+        this.truckRemark = truckRemark == null ? null : truckRemark.trim();
+    }
+
     @Override
     public String toString() {
         StringBuilder sb = new StringBuilder();
@@ -282,6 +296,7 @@ public class AmsSaleOrderMaterial implements IBasePO<BigDecimal> {
         sb.append(", issueStatus=").append(issueStatus);
         sb.append(", steelReceiptDate=").append(steelReceiptDate);
         sb.append(", priceId=").append(priceId);
+        sb.append(", truckRemark=").append(truckRemark);
         sb.append(", serialVersionUID=").append(serialVersionUID);
         sb.append("]");
         return sb.toString();

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

@@ -131,4 +131,10 @@ public interface IAmsSaleOrderService {
     int deleteSaleOrderById(BigDecimal saleOrderId);
     // 查询出销售订单的所有数据
     Map<String, Object> getAllSaleMessages(BigDecimal saleOrderId);
+    // 修改承运商授权
+    int updateTruckNoCarrier(Map<String, Object> mapValue);
+    // 批量上传销售订单至金蝶
+    int uploadSaleOrderList(List<Map<String, Object>> saleOrderIdList);
+    // 新增钢材销售订单
+    int addVanadiumSaleOrder(Map<String, Object> mapValue);
 }

+ 0 - 1
src/main/java/com/steerinfo/dil/service/impl/AmsSaleOrderCarrierServiceImpl.java

@@ -46,7 +46,6 @@ public class AmsSaleOrderCarrierServiceImpl extends BaseServiceImpl<AmsSaleOrder
             //当前订单已经下发给该承运商
             AmsSaleOrderCarrier saleOrderCarrier= amsSaleOrderCarrierMapper.getAmsSaleOrderCarrier(carrierId,saleOrderId);
             if (saleOrderId!=null&&saleOrderCarrier==null){
-
                 AmsSaleOrderCarrier amsSaleOrderCarrier=new AmsSaleOrderCarrier();
                 amsSaleOrderCarrier.setSaleOrderCarrierId(amsSaleOrderCarrierMapper.selectMaxId());
                 amsSaleOrderCarrier.setCarrierId(carrierId);

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

@@ -211,7 +211,7 @@ public class AmsSaleOrderMaterialServiceImpl implements IAmsSaleOrderMaterialSer
                 BigDecimal shippingAddressId = DataChange.dataToBigDecimal(map.get("shippingAddressId"));
                 String place = (String) (map.get("place"));
                 if (place != null) {
-                    List<Map<String, Object>> placeIdList = amsSaleOrderMaterialMapper.getPlaceId(place);
+                    List<Map<String, Object>> placeIdList = amsSaleOrderMaterialMapper.getPlaceId(place,shippingAddressId);
                     if (placeIdList == null || placeIdList.size() == 0) {
                         RmsReceivePlace rmsReceivePlace = new RmsReceivePlace();
                         rmsReceivePlace.setPlaceId(rmsReceivePlaceMapper.selectMaxId());
@@ -379,7 +379,7 @@ public class AmsSaleOrderMaterialServiceImpl implements IAmsSaleOrderMaterialSer
             BigDecimal shippingAddressId = DataChange.dataToBigDecimal(map.get("saleShipperAddressId"));
             String place = (String) (map.get("place"));
             if (place != null) {
-                List<Map<String, Object>> placeIdList = amsSaleOrderMaterialMapper.getPlaceId(place);
+                List<Map<String, Object>> placeIdList = amsSaleOrderMaterialMapper.getPlaceId(place,shippingAddressId);
                 if (placeIdList == null || placeIdList.size() == 0) {
                     RmsReceivePlace rmsReceivePlace = new RmsReceivePlace();
                     rmsReceivePlace.setPlaceId(rmsReceivePlaceMapper.selectMaxId());

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

@@ -592,9 +592,11 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
                 // 车序号主键
                 BigDecimal saleOrderMaterialId = amsSaleOrderMaterialMapper.selectMaxId();
                 BigDecimal shippingAddressId = DataChange.dataToBigDecimal(map.get("shipperAddressId"));
+                // 车号备注
+                String truckRemark = (String) (map.get("truckRemark"));
                 String place = (String) (map.get("place"));
                 if (place != null && !"null".equals(place)) {
-                    List<Map<String, Object>> placeIdList = amsSaleOrderMaterialMapper.getPlaceId(place);
+                    List<Map<String, Object>> placeIdList = amsSaleOrderMaterialMapper.getPlaceId(place,shippingAddressId);
                     if (placeIdList == null || placeIdList.size() == 0) {
                         RmsReceivePlace rmsReceivePlace = new RmsReceivePlace();
                         rmsReceivePlace.setPlaceId(rmsReceivePlaceMapper.selectMaxId());
@@ -647,6 +649,7 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
                 }
                 amsSaleOrderMaterial.setSaleOrderMaterialId(saleOrderMaterialId);
                 amsSaleOrderMaterial.setSaleOrderId(saleOrderId);
+                amsSaleOrderMaterial.setTruckRemark(truckRemark);
                 amsSaleOrderMaterial.setSaleOrderMaterialTruckNo(truckNo);
                 if (consigneeName != null && !consigneeName.equals("null")) {
                     amsSaleOrderMaterial.setSaleOrderConsignee(consigneeName);
@@ -877,7 +880,7 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
     @Override
     public synchronized List<Map<String,Object>> getCarrierByPlace(BigDecimal placeId) {
         BigDecimal addressId = amsSaleOrderMapper.getAddressByPlace(placeId);
-        List<Map<String,Object>> mapList = amsSaleOrderMapper.getCarrierByPlace(addressId);
+        List<Map<String,Object>> mapList = amsSaleOrderMapper.getCarrierByPlace(placeId);
         return mapList;
     }
 
@@ -1007,6 +1010,235 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
         return saleMap;
     }
 
+    /**
+     * 修改承运商授权
+     * @param mapValue
+     * @return
+     */
+    @Override
+    public int updateTruckNoCarrier(Map<String, Object> mapValue) {
+        BigDecimal carrierId = DataChange.dataToBigDecimal(mapValue.get("carrierId"));
+        mapValue.remove("carrierId");
+        List<AmsDispatchSaleOrder> amsDispatchSaleOrders = amsDispatchSaleOrderMapper.selectByParameters(mapValue);
+        AmsDispatchSaleOrder amsDispatchSaleOrder = amsDispatchSaleOrders.get(0);
+        amsDispatchSaleOrder.setCarrierId(carrierId);
+        int result = amsDispatchSaleOrderMapper.updateByPrimaryKeySelective(amsDispatchSaleOrder);
+        return result;
+    }
+
+    /**
+     * 批量上传销售订单至金蝶
+     * @param saleOrderIdList
+     * @return
+     */
+    @Override
+    public int uploadSaleOrderList(List<Map<String, Object>> saleOrderIdList) {
+        int result = 0;
+        for (Map<String, Object> map : saleOrderIdList) {
+            AmsSaleOrder amsSaleOrder = new AmsSaleOrder();
+            BigDecimal saleOrderId = DataChange.dataToBigDecimal(map.get("saleOrderId"));
+            // 调用金蝶接口,将销售订单推送到金蝶系统
+            Map<String, Object> input = joinFeign.getSaleOrder(saleOrderId);
+            // 获得金蝶接口配置
+            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);
+            amsSaleOrder.setSaleOrderId(saleOrderId);
+            amsSaleOrder.setSaleOrderStatus(new BigDecimal(1));
+            result += amsSaleOrderMapper.updateByPrimaryKeySelective(amsSaleOrder);
+        }
+        return result;
+    }
+
+    /**
+     * 新增钒渣销售订单
+     * @param mapValue
+     * @return
+     */
+    @Override
+    public int addVanadiumSaleOrder(Map<String, Object> mapValue) {
+        List<Map<String,Object>> mapList = (List<Map<String, Object>>) mapValue.get("mapList");
+        // 得到发货单位
+        BigDecimal shipperId = DataChange.dataToBigDecimal(mapValue.get("shipperId"));
+        // 收货单位
+        BigDecimal receiveId = DataChange.dataToBigDecimal(mapValue.get("receiveId"));
+        // 是否自提
+        String isSelfMention = (String) mapValue.get("isSelfMention");
+        // 备注
+        String saleRemark = (String) mapValue.get("saleRemark");
+        // 收款客户
+        String saleOrderReceiveCustomer = (String) mapValue.get("saleOrderReceiveCustomer");
+        // 业务员
+        BigDecimal salerId = DataChange.dataToBigDecimal(mapValue.get("salerId"));
+        BigDecimal saleOrderId = amsSaleOrderMapper.selectMaxId();
+        int result = 0;
+        // 销售订单
+        AmsSaleOrder amsSaleOrder = new AmsSaleOrder();
+        amsSaleOrder.setReceiveId(receiveId);
+        amsSaleOrder.setSaleRemark(saleRemark == null ? "":saleRemark);
+        amsSaleOrder.setShipperId(shipperId);
+        amsSaleOrder.setSaleOrderIsselfMention(isSelfMention);
+        amsSaleOrder.setSaleOrderId(saleOrderId);
+        amsSaleOrder.setSalerId(salerId);
+        // 设置钢材订单
+        amsSaleOrder.setSaleType(new BigDecimal(1));
+        amsSaleOrder.setSaleNumber(DataChange.generateEightDigitsNumber("WXSDD",saleOrderId.intValue(),"-"));
+        amsSaleOrder.setInsertTime(new Date());
+        amsSaleOrder.setInsertUpdateRemark("物流新增销售订单");
+        amsSaleOrder.setInsertUsername("物流");
+        amsSaleOrder.setUpdateTime(new Date());
+        amsSaleOrder.setDeleted(new BigDecimal(0));
+        amsSaleOrder.setSaleOrderStatus(new BigDecimal(0));
+        // 税率默认13%
+        amsSaleOrder.setSaleOrderTax("13%");
+        // 含税单价某人4000
+        amsSaleOrder.setSaleUnitPrice(new BigDecimal(4000));
+        // 收款客户
+        amsSaleOrder.setSaleOrderReceiveCustomer(saleOrderReceiveCustomer);
+        // 销售订单物资表
+        AmsSaleMaterial amsSaleMaterial = new AmsSaleMaterial();
+        // 车序号物资表
+        AmsSaleTrucknoMaterial amsSaleTrucknoMaterial = new AmsSaleTrucknoMaterial();
+        // 遍历每一行
+        for (Map<String, Object> map : mapList) {
+            /*
+             车序号表
+             */
+            // 得到车序号
+            BigDecimal truckNo = DataChange.dataToBigDecimal(map.get("truckNo"));
+            Map<String,Object> saleMap = new HashMap<>();
+            saleMap.put("saleOrderId",saleOrderId);
+            saleMap.put("saleOrderMaterialTruckNo",truckNo);
+            // 检测销售订单下的车序号是否已存在
+            List<AmsSaleOrderMaterial> amsSaleOrderMaterials = amsSaleOrderMaterialMapper.selectByParameters(saleMap);
+            // 车序号表
+            AmsSaleOrderMaterial amsSaleOrderMaterial = new AmsSaleOrderMaterial();
+            if (amsSaleOrderMaterials == null || amsSaleOrderMaterials.size() == 0) {
+                // 车序号主键
+                BigDecimal saleOrderMaterialId = amsSaleOrderMaterialMapper.selectMaxId();
+                BigDecimal shippingAddressId = DataChange.dataToBigDecimal(map.get("shipperAddressId"));
+                // 车号备注
+                String truckRemark = (String) (map.get("truckRemark"));
+                String place = (String) (map.get("place"));
+                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"));
+                    }
+                }
+                if (amsSaleOrderMaterial.getSaleShippingAddressId() != null && isSelfMention.equals("否")) {
+                    // 自动匹配承运商
+                    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);
+                    }
+                }
+                if (isSelfMention.equals("是")) {
+                    // 根据收货单位id查询出收货单位名称
+                    String consigneeName = amsSaleOrderMapper.selectConsigneeName(receiveId);
+                    // 根据收货单位名称查询承运商id
+                    BigDecimal carrierId = amsSaleOrderMapper.selectCarrierId(consigneeName);
+                    List<Map<String, Object>> list = new ArrayList<>();
+                    Map<String,Object> map1 = new HashMap<>();
+                    // 传入车序号主键和承运商id
+                    if (carrierId != null) {
+                        map1.put("saleOrderMaterialId", saleOrderMaterialId);
+                        map1.put("carrierId", carrierId);
+                        list.add(map1);
+                        dispatchToCarrier(list);
+                    }
+                }
+                // 收货方姓名
+                String consigneeName = String.valueOf(map.get("saleOrderConsignee"));
+                // 收货方电话
+                String consigneeTel = String.valueOf(map.get("saleOrderConsigneeTel"));
+                // 截止日期
+                String dateOfReceiptStr = String.valueOf(map.get("saleDateOfReceipt"));
+                Date dateOfReceipt = null;
+                if (!"null".equals(dateOfReceiptStr) && !"undefined".equals(dateOfReceiptStr)) {
+                    dateOfReceipt = new Date(Long.valueOf(dateOfReceiptStr));
+                }
+                amsSaleOrderMaterial.setSaleOrderMaterialId(saleOrderMaterialId);
+                amsSaleOrderMaterial.setSaleOrderId(saleOrderId);
+                amsSaleOrderMaterial.setTruckRemark(truckRemark);
+                amsSaleOrderMaterial.setSaleOrderMaterialTruckNo(truckNo);
+                if (consigneeName != null && !consigneeName.equals("null")) {
+                    amsSaleOrderMaterial.setSaleOrderConsignee(consigneeName);
+                }
+                if (consigneeTel != null && !consigneeTel.equals("null")) {
+                    amsSaleOrderMaterial.setSaleOrderConsigneeTel(consigneeTel);
+                }
+                amsSaleOrderMaterial.setSaleDateOfReceipt(dateOfReceipt);
+                amsSaleOrderMaterial.setInsertTime(new Date());
+                amsSaleOrderMaterial.setUpdateTime(new Date());
+                amsSaleOrderMaterial.setInsertUpdateRemark("物流新增");
+                result += amsSaleOrderMaterialMapper.insertSelective(amsSaleOrderMaterial);
+            }
+            else {
+                amsSaleOrderMaterial = amsSaleOrderMaterials.get(0);
+            }
+            /*
+            销售订单物资表
+             */
+            // 物资
+            BigDecimal materialId = DataChange.dataToBigDecimal(map.get("materialId"));
+            // 物资件数
+            BigDecimal materialNumber = DataChange.dataToBigDecimal(map.get("materialNumber"));
+            // 钢材米数
+            BigDecimal steelMeters = DataChange.dataToBigDecimal(map.get("steelMeters"));
+            // 是否磅重销售(0:磅重;1:理重)
+            BigDecimal isPoundSale = DataChange.dataToBigDecimal(map.get("isPoundSale"));
+            // 销售订单物资表主键
+            BigDecimal saleMaterialId = amsSaleMaterialMapper.selectMaxId();
+            amsSaleMaterial.setSaleMaterialId(saleMaterialId);
+            amsSaleMaterial.setSaleOrderId(saleOrderId);
+            amsSaleMaterial.setMaterialId(materialId);
+            amsSaleMaterial.setMaterialNumber(materialNumber);
+            amsSaleMaterial.setInsertTime(new Date());
+            amsSaleMaterial.setUpdateTime(new Date());
+            if (steelMeters != null && !steelMeters.toString().equals("0")) {
+                amsSaleMaterial.setSteelMeter(steelMeters);
+            }
+            amsSaleMaterial.setIsPoundSale(isPoundSale);
+            amsSaleMaterial.setInsertUpdateRemark("物流新增");
+            result += amsSaleMaterialMapper.insertSelective(amsSaleMaterial);
+            /*
+            车序号物资表
+             */
+            // 车序号物资表主键
+            BigDecimal truckNoMaterialId = amsSaleTrucknoMaterialMapper.selectMaxId();
+            amsSaleTrucknoMaterial.setTrucknoMaterialId(truckNoMaterialId);
+            amsSaleTrucknoMaterial.setSaleOrderMaterialId(amsSaleOrderMaterial.getSaleOrderMaterialId());
+            amsSaleTrucknoMaterial.setMaterialId(amsSaleMaterial.getSaleMaterialId());
+            amsSaleTrucknoMaterial.setSaleOrderMaterialNumber(materialNumber);
+            amsSaleTrucknoMaterial.setInsertTime(new Date());
+            amsSaleTrucknoMaterial.setUpdateTime(new Date());
+            amsSaleTrucknoMaterial.setInsertUpdateRemark("物流新增");
+            result += amsSaleTrucknoMaterialMapper.insertSelective(amsSaleTrucknoMaterial);
+        }
+        result += amsSaleOrderMapper.insertSelective(amsSaleOrder);
+        return result;
+    }
+
     /**
      * 展示未匹配承运商的车序号
      * @param mapValue
@@ -1096,4 +1328,6 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
         }
         return resultList;
     }
+
+
 }

+ 19 - 5
src/main/resources/com/steerinfo/dil/mapper/AmsSaleOrderMapper.xml

@@ -1516,7 +1516,11 @@
     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
-    where a_s_order.SALE_ORDER_STATUS=0 and a_s_order.DELETED=0)
+    where a_s_order.SALE_ORDER_STATUS=0 and a_s_order.DELETED=0
+    <if test="consigneeSsoId != null" >
+      and r_consignee.CONSIGNEE_SSO_ID = #{consigneeSsoId}
+    </if>
+        )
     <where>
       <if test="saleNumber != null">
         and
@@ -1609,7 +1613,11 @@
     left join RMS_CONSIGNEE r_consignee
     on a_s_order.RECEIVE_ID=r_consignee.CONSIGNEE_ID
     where a_s_order.SALE_ORDER_STATUS=1
-    and a_s_order.DELETED = 0)
+    and a_s_order.DELETED = 0
+    <if test="consigneeSsoId != null">
+      and r_consignee.CONSIGNEE_SSO_ID = #{consigneeSsoId}
+    </if>
+        )
     <where>
       <if test="saleNumber != null">
         and
@@ -1854,6 +1862,9 @@
     <if test="saleType == null">
       and a_s_order.SALE_TYPE is null
     </if>
+    <if test="consigneeSsoId != null">
+      and r_consignee.CONSIGNEE_SSO_ID = #{consigneeSsoId}
+    </if>
     ORDER BY a_s_order.UPDATE_TIME DESC
     )
     <where>
@@ -2302,7 +2313,8 @@
                     ASOM.SALE_SHIPPING_ADDRESS_ID                  AS "placeId",
                     RC.CAPACITY_NUMBER                             AS "capacityNumber",
                     ADSO.CARRIER_ID                                AS "carrierId",
-                    RCA.CARRIER_NAME                               AS "carrierName"
+                    RCA.CARRIER_NAME                               AS "carrierName",
+                    ASOM.TRUCK_REMARK                              AS "truckRemark"
     FROM AMS_SALE_TRUCKNO_MATERIAL ASTM
            LEFT JOIN AMS_SALE_ORDER_MATERIAL ASOM
                      ON ASOM.SALE_ORDER_MATERIAL_ID = ASTM.SALE_ORDER_MATERIAL_ID
@@ -2346,9 +2358,10 @@
                      ON ACTP.PLACE_ID = RRP.PLACE_ID
            LEFT JOIN RMS_CARRIER RC
                      ON RC.CARRIER_ID = ACTP.CARRIER_ID
-    WHERE RRP.ADDRESS_ID = #{addressId}
+    WHERE RRP.PLACE_ID = #{placeId}
       AND ACTP.CARRIER_ID IS NOT NULL
       AND ACTP.DELETED = 0
+      ORDER BY ACTP.PRICE_VALUE DESC
   </select>
 
   <select id="getPriceByCarrierAndPlace" parameterType="java.util.Map" resultType="java.util.Map">
@@ -2842,7 +2855,8 @@
                     ASOM.SALE_ORDER_MATERIAL_ID                    AS "saleOrderMaterialId",
                     ASOM.SALE_SHIPPING_ADDRESS_ID                  AS "placeId",
                     RC.CAPACITY_NUMBER                             AS "capacityNumber",
-                    ADSO.CARRIER_ID                                AS "carrierId"
+                    ADSO.CARRIER_ID                                AS "carrierId",
+                    ASOM.TRUCK_REMARK                              AS "truckRemark"
     FROM AMS_SALE_TRUCKNO_MATERIAL ASTM
            LEFT JOIN AMS_SALE_ORDER_MATERIAL ASOM
                      ON ASOM.SALE_ORDER_MATERIAL_ID = ASTM.SALE_ORDER_MATERIAL_ID

+ 43 - 18
src/main/resources/com/steerinfo/dil/mapper/AmsSaleOrderMaterialMapper.xml

@@ -19,18 +19,19 @@
     <result column="ISSUE_STATUS" jdbcType="DECIMAL" property="issueStatus" />
     <result column="STEEL_RECEIPT_DATE" jdbcType="TIMESTAMP" property="steelReceiptDate" />
     <result column="PRICE_ID" jdbcType="DECIMAL" property="priceId" />
+    <result column="TRUCK_REMARK" jdbcType="VARCHAR" property="truckRemark" />
   </resultMap>
   <sql id="columns">
-    SALE_ORDER_MATERIAL_ID, SALE_ORDER_ID, SALE_ORDER_MATERIAL_TRUCK_NO, SALE_SHIPPING_ADDRESS_ID, 
-    SALE_DATE_OF_RECEIPT, SALE_ORDER_CONSIGNEE, SALE_ORDER_CONSIGNEE_TEL, INSERT_USERNAME, 
-    INSERT_TIME, UPDATE_USERNAME, UPDATE_TIME, INSERT_UPDATE_REMARK, DELETED, UPDATED, 
-    ISSUE_STATUS, STEEL_RECEIPT_DATE, PRICE_ID
+    SALE_ORDER_MATERIAL_ID, SALE_ORDER_ID, SALE_ORDER_MATERIAL_TRUCK_NO, SALE_SHIPPING_ADDRESS_ID,
+    SALE_DATE_OF_RECEIPT, SALE_ORDER_CONSIGNEE, SALE_ORDER_CONSIGNEE_TEL, INSERT_USERNAME,
+    INSERT_TIME, UPDATE_USERNAME, UPDATE_TIME, INSERT_UPDATE_REMARK, DELETED, UPDATED,
+    ISSUE_STATUS, STEEL_RECEIPT_DATE, PRICE_ID, TRUCK_REMARK
   </sql>
   <sql id="columns_alias">
-    t.SALE_ORDER_MATERIAL_ID, t.SALE_ORDER_ID, t.SALE_ORDER_MATERIAL_TRUCK_NO, t.SALE_SHIPPING_ADDRESS_ID, 
-    t.SALE_DATE_OF_RECEIPT, t.SALE_ORDER_CONSIGNEE, t.SALE_ORDER_CONSIGNEE_TEL, t.INSERT_USERNAME, 
-    t.INSERT_TIME, t.UPDATE_USERNAME, t.UPDATE_TIME, t.INSERT_UPDATE_REMARK, t.DELETED, 
-    t.UPDATED, t.ISSUE_STATUS, t.STEEL_RECEIPT_DATE, t.PRICE_ID
+    t.SALE_ORDER_MATERIAL_ID, t.SALE_ORDER_ID, t.SALE_ORDER_MATERIAL_TRUCK_NO, t.SALE_SHIPPING_ADDRESS_ID,
+    t.SALE_DATE_OF_RECEIPT, t.SALE_ORDER_CONSIGNEE, t.SALE_ORDER_CONSIGNEE_TEL, t.INSERT_USERNAME,
+    t.INSERT_TIME, t.UPDATE_USERNAME, t.UPDATE_TIME, t.INSERT_UPDATE_REMARK, t.DELETED,
+    t.UPDATED, t.ISSUE_STATUS, t.STEEL_RECEIPT_DATE, t.PRICE_ID, t.TRUCK_REMARK
   </sql>
   <sql id="select">
     SELECT <include refid="columns" /> FROM AMS_SALE_ORDER_MATERIAL
@@ -91,6 +92,9 @@
       <if test="priceId != null">
         and PRICE_ID = #{priceId}
       </if>
+      <if test="truckRemark != null and truckRemark != ''">
+        and TRUCK_REMARK = #{truckRemark}
+      </if>
     </where>
   </sql>
   <sql id="whereLike">
@@ -146,9 +150,12 @@
       <if test="priceId != null">
         and PRICE_ID = #{priceId}
       </if>
+      <if test="truckRemark != null and truckRemark != ''">
+        and TRUCK_REMARK LIKE '%${truckRemark}%'
+      </if>
     </where>
   </sql>
-  <delete id="deleteByPrimaryKey" parameterType="java.math.BigDecimal">
+  <delete id="deleteByPrimaryKey" parameterType="DECIMAL">
     delete from AMS_SALE_ORDER_MATERIAL
     where SALE_ORDER_MATERIAL_ID = #{saleOrderMaterialId,jdbcType=DECIMAL}
   </delete>
@@ -203,6 +210,9 @@
     <if test="priceId != null">
       or PRICE_ID = #{priceId}
     </if>
+    <if test="truckRemark != null and truckRemark != ''">
+      or TRUCK_REMARK = #{truckRemark}
+    </if>
   </delete>
   <insert id="insert" parameterType="com.steerinfo.dil.model.AmsSaleOrderMaterial">
     insert into AMS_SALE_ORDER_MATERIAL (SALE_ORDER_MATERIAL_ID, SALE_ORDER_ID,
@@ -211,16 +221,16 @@
                                          SALE_ORDER_CONSIGNEE_TEL, INSERT_USERNAME,
                                          INSERT_TIME, UPDATE_USERNAME, UPDATE_TIME,
                                          INSERT_UPDATE_REMARK, DELETED, UPDATED,
-                                         ISSUE_STATUS, STEEL_RECEIPT_DATE, PRICE_ID
-    )
+                                         ISSUE_STATUS, STEEL_RECEIPT_DATE, PRICE_ID,
+                                         TRUCK_REMARK)
     values (#{saleOrderMaterialId,jdbcType=DECIMAL}, #{saleOrderId,jdbcType=DECIMAL},
             #{saleOrderMaterialTruckNo,jdbcType=DECIMAL}, #{saleShippingAddressId,jdbcType=DECIMAL},
             #{saleDateOfReceipt,jdbcType=TIMESTAMP}, #{saleOrderConsignee,jdbcType=VARCHAR},
             #{saleOrderConsigneeTel,jdbcType=VARCHAR}, #{insertUsername,jdbcType=VARCHAR},
             #{insertTime,jdbcType=TIMESTAMP}, #{updateUsername,jdbcType=VARCHAR}, #{updateTime,jdbcType=TIMESTAMP},
             #{insertUpdateRemark,jdbcType=VARCHAR}, #{deleted,jdbcType=DECIMAL}, #{updated,jdbcType=DECIMAL},
-            #{issueStatus,jdbcType=DECIMAL}, #{steelReceiptDate,jdbcType=TIMESTAMP}, #{priceId,jdbcType=DECIMAL}
-           )
+            #{issueStatus,jdbcType=DECIMAL}, #{steelReceiptDate,jdbcType=TIMESTAMP}, #{priceId,jdbcType=DECIMAL},
+            #{truckRemark,jdbcType=VARCHAR})
   </insert>
   <insert id="insertSelective" parameterType="com.steerinfo.dil.model.AmsSaleOrderMaterial">
     insert into AMS_SALE_ORDER_MATERIAL
@@ -276,6 +286,9 @@
       <if test="priceId != null">
         PRICE_ID,
       </if>
+      <if test="truckRemark != null">
+        TRUCK_REMARK,
+      </if>
     </trim>
     <trim prefix="values (" suffix=")" suffixOverrides=",">
       <if test="saleOrderMaterialId != null">
@@ -329,6 +342,9 @@
       <if test="priceId != null">
         #{priceId,jdbcType=DECIMAL},
       </if>
+      <if test="truckRemark != null">
+        #{truckRemark,jdbcType=VARCHAR},
+      </if>
     </trim>
   </insert>
   <update id="updateByPrimaryKey" parameterType="com.steerinfo.dil.model.AmsSaleOrderMaterial">
@@ -348,7 +364,8 @@
         UPDATED = #{updated,jdbcType=DECIMAL},
         ISSUE_STATUS = #{issueStatus,jdbcType=DECIMAL},
         STEEL_RECEIPT_DATE = #{steelReceiptDate,jdbcType=TIMESTAMP},
-        PRICE_ID = #{priceId,jdbcType=DECIMAL}
+        PRICE_ID = #{priceId,jdbcType=DECIMAL},
+        TRUCK_REMARK = #{truckRemark,jdbcType=VARCHAR}
     where SALE_ORDER_MATERIAL_ID = #{saleOrderMaterialId,jdbcType=DECIMAL}
   </update>
   <update id="updateByPrimaryKeySelective" parameterType="com.steerinfo.dil.model.AmsSaleOrderMaterial">
@@ -402,10 +419,13 @@
       <if test="priceId != null">
         PRICE_ID = #{priceId,jdbcType=DECIMAL},
       </if>
+      <if test="truckRemark != null">
+        TRUCK_REMARK = #{truckRemark,jdbcType=VARCHAR},
+      </if>
     </set>
     where SALE_ORDER_MATERIAL_ID = #{saleOrderMaterialId,jdbcType=DECIMAL}
   </update>
-  <select id="selectByPrimaryKey" parameterType="java.math.BigDecimal" resultMap="BaseResultMap">
+  <select id="selectByPrimaryKey" parameterType="DECIMAL" resultMap="BaseResultMap">
     <include refid="select" />
     where SALE_ORDER_MATERIAL_ID = #{saleOrderMaterialId,jdbcType=DECIMAL}
   </select>
@@ -427,7 +447,7 @@
     UPDATE_USERNAME, UPDATE_TIME,
     INSERT_UPDATE_REMARK, DELETED,
     UPDATED, ISSUE_STATUS, STEEL_RECEIPT_DATE,
-    PRICE_ID)
+    PRICE_ID, TRUCK_REMARK)
     ( <foreach collection="list" item="item" separator="union all">
     select
     #{item.saleOrderMaterialId,jdbcType=DECIMAL},
@@ -438,7 +458,7 @@
     #{item.updateUsername,jdbcType=VARCHAR}, #{item.updateTime,jdbcType=TIMESTAMP},
     #{item.insertUpdateRemark,jdbcType=VARCHAR}, #{item.deleted,jdbcType=DECIMAL},
     #{item.updated,jdbcType=DECIMAL}, #{item.issueStatus,jdbcType=DECIMAL}, #{item.steelReceiptDate,jdbcType=TIMESTAMP},
-    #{item.priceId,jdbcType=DECIMAL} from dual
+    #{item.priceId,jdbcType=DECIMAL}, #{item.truckRemark,jdbcType=VARCHAR} from dual
   </foreach> )
   </insert>
   <update id="batchUpdate" parameterType="java.util.List">
@@ -512,6 +532,10 @@
     <foreach close="end" collection="list" index="index" item="item" open="case SALE_ORDER_MATERIAL_ID" separator=" ">
       when #{item.saleOrderMaterialId,jdbcType=DECIMAL} then #{item.priceId,jdbcType=DECIMAL}
     </foreach>
+    ,TRUCK_REMARK=
+    <foreach close="end" collection="list" index="index" item="item" open="case SALE_ORDER_MATERIAL_ID" separator=" ">
+      when #{item.saleOrderMaterialId,jdbcType=DECIMAL} then #{item.truckRemark,jdbcType=VARCHAR}
+    </foreach>
     where SALE_ORDER_MATERIAL_ID in
     <foreach close=")" collection="list" index="index" item="item" open="(" separator=",">
       #{item.saleOrderMaterialId,jdbcType=DECIMAL}
@@ -766,10 +790,11 @@
     WHERE RL.LINE_ID = #{lineId}
   </select>
 
-  <select id="getPlaceId" parameterType="java.lang.String" resultType="java.util.Map" >
+  <select id="getPlaceId" resultType="java.util.Map" >
     SELECT RRP.PLACE_ID AS "placeId"
     FROM RMS_RECEIVE_PLACE RRP
     WHERE RRP.ADDRESS_DELIVERY_ADDRESS = #{place}
+    AND RRP.ADDRESS_ID = #{shippingAddressId}
   </select>
 
   <select id="getSaleMessage" parameterType="DECIMAL" resultType="java.util.Map" >