Explorar o código

Merge branch 'master' of https://git.steerinfo.com/DAL-DAZHOU/DAL-DAZHOU-AMS-API

liyg %!s(int64=2) %!d(string=hai) anos
pai
achega
cbc5fc2d09

+ 1 - 1
pom.xml

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

+ 219 - 1
src/main/java/com/steerinfo/dil/controller/AmsContractTruckPriceController.java

@@ -3,7 +3,9 @@ package com.steerinfo.dil.controller;
 import com.steerinfo.dil.feign.ColumnDataFeign;
 import com.steerinfo.dil.feign.ESFeign;
 import com.steerinfo.dil.mapper.AmsContractTruckPriceMapper;
+import com.steerinfo.dil.mapper.RmsReceivePlaceMapper;
 import com.steerinfo.dil.model.AmsContractTransportPrice;
+import com.steerinfo.dil.model.RmsReceivePlace;
 import com.steerinfo.dil.service.IAmsContractTruckPriceService;
 import com.steerinfo.dil.util.BaseRESTfulController;
 import com.steerinfo.dil.util.ColumnDataUtil;
@@ -44,7 +46,6 @@ public class AmsContractTruckPriceController extends BaseRESTfulController {
     @Autowired
     IAmsContractTruckPriceService amsContractTruckPriceService;
 
-
     @Autowired
     ColumnDataFeign columnDataFeign;
 
@@ -57,6 +58,150 @@ public class AmsContractTruckPriceController extends BaseRESTfulController {
     @Autowired
     AmsContractTruckPriceMapper amsContractTruckPriceMapper;
 
+    @Autowired
+    RmsReceivePlaceMapper rmsReceivePlaceMapper;
+
+    @ApiOperation(value="导入单价的数据写入数据库")
+    @PostMapping("/importDataForAmsContractTransportPrice")
+    public RESTfulResult importDataForAmsContractTransportPrice(@RequestBody(required = false) List<Map<String,Object>> mapList,
+                                                                BigDecimal importPriceValue,String importPriceDate) throws ParseException {
+        //mapList为导入的数据,遍历导入进来的数据,如果数据存在在单价当中则将旧单价改为1,新增单价为0
+        //如果数据查找不到就在收货地址表新增地址,在新增单价
+        //1.查询所有单价数据
+        //所有时间定为统一的值
+        Date date=new Date();
+        SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        for (Map<String, Object> stringObjectMap : mapList) {
+            String address="";
+            String addressProvince="";
+            String addressDistrict="";
+            String addressDdp="";
+            //省份
+            String  s = (String) stringObjectMap.get("addressProvince");
+            if(s!=null){
+                addressProvince= s.replaceAll("省", "").replace("市","");
+            }
+            //市
+            String s1 = (String) stringObjectMap.get("addressDistrict");
+            if(s1!=null){
+                addressDistrict = s1.replaceAll("市", "");
+            }
+            //县
+            String addressTown = (String) stringObjectMap.get("addressTown");
+            if (addressTown==null){
+                addressTown=addressDistrict;
+                addressDistrict=addressProvince;
+            }
+            //具体地址
+            String addressDeliveryAddress = (String) stringObjectMap.get("addressDeliveryAddress");
+            if (addressDeliveryAddress==null){
+                addressDeliveryAddress=addressTown;
+            }
+            //单价价格
+            BigDecimal priceValue = DataChange.dataToBigDecimal(stringObjectMap.get("priceValue"));
+            if (priceValue==null){
+                continue;
+            }
+            //参考运距
+            BigDecimal haulDistance = DataChange.dataToBigDecimal(stringObjectMap.get("haulDistance"));
+            //吨/公里
+            BigDecimal priceTonKilometer = DataChange.dataToBigDecimal(stringObjectMap.get("priceTonKilometer"));
+            //1.把省市县地址合起来
+            addressDdp="%"+addressProvince+addressDistrict+addressTown+"%";
+            //2.把所有地址合起来
+            address="%"+addressProvince+addressDistrict+addressTown+addressDeliveryAddress+"%";
+            //把地址去数据库查询数据
+            Map<String, Object> amsPriceForImport = amsContractTruckPriceMapper.getAmsContractTransportPriceForImport(address);
+            //旧单价
+            BigDecimal priceId=BigDecimal.ZERO;
+            BigDecimal placeId=BigDecimal.ZERO;
+            if (amsPriceForImport!=null){
+                if (amsPriceForImport.get("priceId")!=null){
+                    priceId= DataChange.dataToBigDecimal(amsPriceForImport.get("priceId"));
+                }
+                placeId= DataChange.dataToBigDecimal(amsPriceForImport.get("placeId"));
+            }
+            BigDecimal addressId = amsContractTruckPriceMapper.getAddressIdForImport(addressDdp);
+            //如果区都没有的话就要把区给加上
+            if (addressId==null){
+                amsContractTruckPriceMapper.insertIntoRRAForImport(addressProvince,addressDistrict,addressTown);
+            }
+            //新增单价的数据
+            //新增的运输类型
+            AmsContractTransportPrice amsContractTransportPrice = new AmsContractTransportPrice();
+            //生成主键id
+            amsContractTransportPrice.setType(new BigDecimal(1));
+            amsContractTransportPrice.setInsertUsername("admin");
+            amsContractTransportPrice.setInsertTime(date);
+            amsContractTransportPrice.setUpdateUsername("admin");
+            amsContractTransportPrice.setUpdateTime(date);
+            amsContractTransportPrice.setInsertUpdateRemark("无");
+            amsContractTransportPrice.setDeleted(new BigDecimal(0));
+            amsContractTransportPrice.setShipperId(new BigDecimal(1));
+            amsContractTransportPrice.setOilpriceChangeThreshold(new BigDecimal(0.05));
+            amsContractTransportPrice.setOilTypeId(new BigDecimal(10));
+            amsContractTransportPrice.setCargonameId(new BigDecimal(14));
+            amsContractTransportPrice.setPriceValue(priceValue);
+            amsContractTransportPrice.setPriceDate(simpleDateFormat.parse(importPriceDate));
+            amsContractTransportPrice.setOilpriceBase(importPriceValue);
+            if (haulDistance!=null){
+                amsContractTransportPrice.setHaulDistance(haulDistance);
+            }
+            if (priceTonKilometer!=null){
+                amsContractTransportPrice.setPriceTonKilometer(priceTonKilometer);
+            }
+            if (amsPriceForImport==null||amsPriceForImport.get("placeId")==null){
+                //2.如果收货地址为空则先新增收货地址再新增单价
+                RmsReceivePlace rmsReceivePlace = new RmsReceivePlace();
+                rmsReceivePlace.setAddressId(addressId);
+                rmsReceivePlace.setAddressDeliveryAddress(addressDeliveryAddress);
+                rmsReceivePlace.setPlaceId(rmsReceivePlaceMapper.selectMaxId());
+                amsContractTransportPrice.setPlaceId(rmsReceivePlace.getPlaceId());
+                rmsReceivePlaceMapper.insertSelective(rmsReceivePlace);
+            }else {
+                amsContractTransportPrice.setPlaceId(placeId);
+            }
+            //承运商数据
+            String carrierName = (String) stringObjectMap.get("carrierName");
+            if (amsPriceForImport!=null&&amsPriceForImport.get("priceId")!=null){
+                //1.如果数据不为空(收货地址存在或者单价存在),旧单价置为1,新单价新增
+                //旧单价有值才会进行单价
+                /*List<BigDecimal> carrierIdForImport = amsContractTruckPriceMapper.getCarrierIdForImport(address);
+                for (BigDecimal bigDecimal : carrierIdForImport) {
+                    amsContractTransportPrice.setCarrierId(bigDecimal);
+                }*/
+                //旧单价置为1
+                amsContractTruckPriceMapper.updateForImport(priceId,simpleDateFormat.format(date));
+                if (carrierName!=null){
+                    String[] split = carrierName.split("/");
+                    for (String s2 : split) {
+                        BigDecimal carrierIdForCarrierName = amsContractTruckPriceMapper.getCarrierIdForCarrierName(s2);
+                        amsContractTransportPrice.setCarrierId(carrierIdForCarrierName);
+                        amsContractTransportPrice.setPriceId(amsContractTruckPriceMapper.selectMaxId());
+                        amsContractTruckPriceMapper.insertSelective(amsContractTransportPrice);
+                    }
+                }else {
+                    amsContractTransportPrice.setPriceId(amsContractTruckPriceMapper.selectMaxId());
+                    amsContractTruckPriceMapper.insertSelective(amsContractTransportPrice);
+                }
+            }else {
+                if (carrierName!=null){
+                    String[] split = carrierName.split("/");
+                    for (String s2 : split) {
+                        BigDecimal carrierIdForCarrierName = amsContractTruckPriceMapper.getCarrierIdForCarrierName(s2);
+                        amsContractTransportPrice.setCarrierId(carrierIdForCarrierName);
+                        amsContractTransportPrice.setPriceId(amsContractTruckPriceMapper.selectMaxId());
+                        amsContractTruckPriceMapper.insertSelective(amsContractTransportPrice);
+                    }
+                }else {
+                    amsContractTransportPrice.setPriceId(amsContractTruckPriceMapper.selectMaxId());
+                    amsContractTruckPriceMapper.insertSelective(amsContractTransportPrice);
+                }
+            }
+        }
+        return success("导入成功");
+    }
+
     @ApiOperation(value="查询汽运单价信息")
     @ApiImplicitParams({
             @ApiImplicitParam(name = "apiId(109)", value = "表头", required = false, dataType = "Interger")
@@ -257,6 +402,79 @@ public class AmsContractTruckPriceController extends BaseRESTfulController {
         return success(salePriceList);
     }
 
+    @ApiOperation(value="查询汽运单价信息")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "apiId(519)", value = "表头", required = false, dataType = "Interger")
+    })
+    @PostMapping("/updatenewdata")
+    public RESTfulResult updatenewdata(@RequestBody(required=false) Map<String,Object> mapValue,
+                                                               Integer apiId,
+                                                               Integer pageNum,
+                                                               Integer pageSize,
+                                                               String con,String userId) throws ParseException {
+        if (con != null && !con.equals("undefined")) {
+            mapValue.put("con","%" + con + "%");
+        }else {
+            mapValue.put("con","%" +"%");
+        }
+//        if (userId != null && !userId.equals("undefined")) {
+//            //查询承运商ID
+//           String carrierName1 = amsContractTruckPriceService.getCarrierNameForDetail(userId);
+//           mapValue.put("carrierName1","%" + carrierName1 + "%");
+//        }
+        //1.先查询出收货地址的所有收货ID
+        List<Map<String, Object>> receiveAddress = amsContractTruckPriceService.getReceiveAddressId(mapValue);
+        //2.查询出该收货所有的单价信息
+        List<Map<String, Object>> saleOrderList = amsContractTruckPriceService.getAmsContractTransportPriceForDetail(mapValue);
+        //3.遍历查询出最近的单价信息
+        List<Map<String,Object>> salePriceList=new LinkedList<>();
+        //格式化
+        SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd");
+        //获取数据的订单时间
+        Date orderTime = simpleDateFormat.parse((String) mapValue.get("orderTime"));
+        //最近的留下
+        for (Map<String, Object> address : receiveAddress) {
+            String address1 = (String) address.get("address");
+            //BigDecimal placeId = bigDecimal;
+            Map<String,Object> map1=new HashMap<>();
+            int flag=0;
+            for (Map<String, Object> stringObjectMap : saleOrderList) {
+                String address2 = (String) stringObjectMap.get("address");
+                //单价的执行日期
+                Date priceDate = (Date) stringObjectMap.get("priceDate");
+                if (address2 ==null||priceDate==null){
+                    continue;
+                }
+                String format = simpleDateFormat.format(priceDate);
+                Date parse = simpleDateFormat.parse(format);
+                //Date parse1 = simpleDateFormat.parse("2022-12-10")
+                if (parse.before(orderTime)||parse.equals(orderTime)){
+                    if (address2.equals(address1)){
+                        flag=1;
+                        if (map1.size()==0){
+                            map1.putAll(stringObjectMap);
+                        }else{
+                            //比较日期(如果日期在存入的日期之后,则存入该日期)
+                            Date priceDate1 = (Date) map1.get("priceDate");
+                            String format1 = simpleDateFormat.format(priceDate1);
+                            Date parse1 = simpleDateFormat.parse(format1);
+                            if (parse.after(parse1)){
+                                map1.clear();
+                                map1.putAll(stringObjectMap);
+                            }
+                        }
+                    }
+                }
+            }
+            if (flag==1){
+                BigDecimal priceid = (BigDecimal) map1.get("priceid");
+                amsContractTruckPriceMapper.updateDeletedTemplate(priceid);
+                salePriceList.add(map1);
+            }
+        }
+        return success(salePriceList);
+    }
+
     @ApiOperation(value="查询内转汽运单价信息")
     @ApiImplicitParams({
             @ApiImplicitParam(name = "apiId(109)", value = "表头", required = false, dataType = "Interger")

+ 20 - 2
src/main/java/com/steerinfo/dil/mapper/AmsContractTruckPriceMapper.java

@@ -6,6 +6,7 @@ import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Select;
 
 import java.math.BigDecimal;
+import java.util.Date;
 import java.util.List;
 import java.util.Map;
 
@@ -20,6 +21,18 @@ public interface AmsContractTruckPriceMapper extends IBaseMapper<AmsContractTran
     BigDecimal selectPriceMaterialMaxId();
     //获取汽运单价信息
     List<Map<String, Object>> getAmsContractTransportPrice(Map<String,Object> map);
+    //获取运价信息
+    Map<String,Object> getAmsContractTransportPriceForImport(String address);
+    //根据省市县查询出addressId
+    BigDecimal getAddressIdForImport(String address);
+    //新增地址
+    int insertIntoRRAForImport(String addressProvince,String addressDistrict,String addressTown);
+    //获取承运商
+    BigDecimal getCarrierIdForCarrierName(String carrierName);
+    //根据单价去查询数据
+    List<BigDecimal> getCarrierIdForImport(String address);
+    //更新旧单价为1
+    int updateForImport(BigDecimal priceId, String date);
     //删除单价
     int deleteSalePrice(Map<String,Object> map);
     //获取全部承运商信息
@@ -46,6 +59,8 @@ public interface AmsContractTruckPriceMapper extends IBaseMapper<AmsContractTran
     String getCarrierNameForDetail(String userId);
     //获取收货地址的信息
     List<Map<String,Object>> getReceiveAddressId(Map<String,Object> map);
+    //改deleted为1
+    int updateDeletedTemplate(BigDecimal priceId);
     //获取已经计算出的单价值
     AmsContractTransportPrice getOnePriceMap(Map<String,Object> map);
     //获取汽运单价信息
@@ -123,6 +138,9 @@ public interface AmsContractTruckPriceMapper extends IBaseMapper<AmsContractTran
 
     List<Map<String, Object>> getPriceValueListInward(BigDecimal oilTypeId);
 
-//    //子表信息复制新增、
-//    insertIntoAmsContractForMaterial(BigDecimal priceId);
+    //子表信息复制新增、
+    int insertIntoAmsContractForMaterial(Map<String,Object> map);
+
+    //getAmsContractMaterialData
+    List<Map<String, Object>> getAmsContractMaterialData(BigDecimal priceId);
 }

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

@@ -92,6 +92,12 @@ public class OmstruckOrderMaterial implements IBasePO<BigDecimal> {
     @ApiModelProperty(value="炉号",required=false)
     private String materialLuno;
 
+    /**
+     * 销售订单子表ID(SALE_MATERIAL_ID,DECIMAL,0)
+     */
+    @ApiModelProperty(value="销售订单子表ID",required=false)
+    private BigDecimal saleMaterialId;
+
     private static final long serialVersionUID = 1L;
 
     @Override
@@ -216,6 +222,14 @@ public class OmstruckOrderMaterial implements IBasePO<BigDecimal> {
         this.materialLuno = materialLuno == null ? null : materialLuno.trim();
     }
 
+    public BigDecimal getSaleMaterialId() {
+        return saleMaterialId;
+    }
+
+    public void setSaleMaterialId(BigDecimal saleMaterialId) {
+        this.saleMaterialId = saleMaterialId;
+    }
+
     @Override
     public String toString() {
         StringBuilder sb = new StringBuilder();
@@ -236,6 +250,7 @@ public class OmstruckOrderMaterial implements IBasePO<BigDecimal> {
         sb.append(", materialPriority=").append(materialPriority);
         sb.append(", materialMeassion=").append(materialMeassion);
         sb.append(", materialLuno=").append(materialLuno);
+        sb.append(", saleMaterialId=").append(saleMaterialId);
         sb.append(", serialVersionUID=").append(serialVersionUID);
         sb.append("]");
         return sb.toString();

+ 28 - 25
src/main/java/com/steerinfo/dil/service/impl/AmsContractTruckPriceServiceImpl.java

@@ -358,18 +358,12 @@ public class AmsContractTruckPriceServiceImpl implements IAmsContractTruckPriceS
         BigDecimal type = DataChange.dataToBigDecimal(map.get("type"));
         //根据油品名称ID和非历史油价筛选出符合条件的运价合集
         List<Map<String, Object>> PriceValueList = new ArrayList<>();
-        PriceValueList = amsContractTruckPriceMapper.getPriceValueList(oilTypeId);
-//        if (type.compareTo(new BigDecimal(1)) == 0) {
-//
-//        }else if(type.compareTo(new BigDecimal(2)) == 0) {
-//            PriceValueList = amsContractTruckPriceMapper.getPriceValueListInward(oilTypeId);
-//        }
+        if (type.compareTo(new BigDecimal(1)) == 0) {
+            PriceValueList = amsContractTruckPriceMapper.getPriceValueList(oilTypeId);
+        }else if(type.compareTo(new BigDecimal(2)) == 0) {
+            PriceValueList = amsContractTruckPriceMapper.getPriceValueListInward(oilTypeId);
+        }
         for (Map<String, Object> stringObjectMap : PriceValueList) {
-            //内转的话复制子表信息并新增
-//            if(type.compareTo(new BigDecimal(2)) == 0){
-//                stringObjectMap.get("priceId");
-//                amsContractTruckPriceMapper.
-//            }
             //有距离则是销售钢材
             if (stringObjectMap.get("haulDistance")!=null) {
                 //中标价格或者收货地址(库存)则重新计算价格
@@ -386,17 +380,17 @@ public class AmsContractTruckPriceServiceImpl implements IAmsContractTruckPriceS
                     BigDecimal distance = DataChange.dataToBigDecimal(stringObjectMap.get("haulDistance"));
                     if (zbDistance != null && distance != null && zbDistance.intValue()!=0 && distance.intValue()!=0){
                         BigDecimal subtract = zbDistance.subtract(distance);
-                        if (subtract.intValue()>10 || subtract.intValue()<-10){
-                            //大于正负10km重新计算价格
-                            //跳过
-                            continue;
-                        }else{
-                            //小于10km取中标价格
-                            /*Map<String,Object> updatePrice=new HashMap<>();
-                            updatePrice.put("priceId",DataChange.dataToBigDecimal(stringObjectMap.get("priceId")));
-                            updatePrice.put("priceValue",DataChange.dataToBigDecimal(zb.get("priceValue")));
-                            return amsContractTruckPriceMapper.updateByPriceId(updatePrice);*/
-                        }
+//                        if (subtract.intValue()>10 || subtract.intValue()<-10){
+//                            //大于正负10km重新计算价格
+//                            //跳过
+//                            continue;
+//                        }else{
+//                            //小于10km取中标价格
+//                            /*Map<String,Object> updatePrice=new HashMap<>();
+//                            updatePrice.put("priceId",DataChange.dataToBigDecimal(stringObjectMap.get("priceId")));
+//                            updatePrice.put("priceValue",DataChange.dataToBigDecimal(zb.get("priceValue")));
+//                            return amsContractTruckPriceMapper.updateByPriceId(updatePrice);*/
+//                        }
                     }
                 }
             }
@@ -415,10 +409,10 @@ public class AmsContractTruckPriceServiceImpl implements IAmsContractTruckPriceS
                 try{
                     if(newOilPrice.compareTo(oilpriceBase)==-1){
                         //直接降低油价
-                        i+=addANewAmsContractTransportPrice(stringObjectMap,n,newOilPrice);
+                        i+=addANewAmsContractTransportPrice(stringObjectMap,n,newOilPrice,type);
                     }else if (newOilPrice.compareTo(oilpriceBase)==1 && "1".equals(flag)){
                         //加上两个判断之后
-                        i+=addANewAmsContractTransportPrice(stringObjectMap,n,newOilPrice);
+                        i+=addANewAmsContractTransportPrice(stringObjectMap,n,newOilPrice,type);
                     }
                 }catch (Exception e){
                     e.printStackTrace();
@@ -461,7 +455,7 @@ public class AmsContractTruckPriceServiceImpl implements IAmsContractTruckPriceS
      * @throws Exception
      */
     @Transactional
-    public int addANewAmsContractTransportPrice(Map<String, Object> stringObjectMap,BigDecimal n,BigDecimal newOilPrice) throws ParseException {
+    public int addANewAmsContractTransportPrice(Map<String, Object> stringObjectMap,BigDecimal n,BigDecimal newOilPrice,BigDecimal type) throws ParseException {
         //定义将要改变的执行价
         BigDecimal nowPriceValue;
         //存储原运输单价实绩对象
@@ -478,6 +472,15 @@ public class AmsContractTruckPriceServiceImpl implements IAmsContractTruckPriceS
         AmsContractTransportPrice amsContractTransportPrice = amsContractTruckPriceMapper.selectByPrimaryKey(priceId);
         //生成主键
         BigDecimal i = amsContractTruckPriceMapper.selectMaxId();
+        //内转的话复制子表信息并新增
+        if(type.compareTo(new BigDecimal(2)) == 0){
+            List<Map<String, Object>> amsContractMaterialData = amsContractTruckPriceMapper.getAmsContractMaterialData(priceId);
+            for (Map<String, Object> amsContractMaterialDatum : amsContractMaterialData) {
+                amsContractMaterialDatum.put("i",i);
+                amsContractMaterialDatum.put("priceMaterialId",amsContractTruckPriceMapper.selectPriceMaterialMaxId());
+                amsContractTruckPriceMapper.insertIntoAmsContractForMaterial(amsContractMaterialDatum);
+            }
+        }
         //如果是钢材的单价那么就需要改变吨公里
         amsContractTransportPrice.setPriceId(i);
         //生成执行日期

+ 4 - 0
src/main/java/com/steerinfo/dil/service/impl/AmsSaleOrderServiceImpl.java

@@ -1040,6 +1040,7 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
                 BigDecimal materialId = (BigDecimal) materialMap.get("materialId");
                 BigDecimal materialWeight = (BigDecimal) materialMap.get("materialWeight");
                 BigDecimal materialNumber = (BigDecimal) materialMap.get("materialNumber");
+                BigDecimal saleMaterialId = (BigDecimal) materialMap.get("saleMaterialId");
                 /*
                 运输订单物资子表
                 */
@@ -1055,6 +1056,7 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
                 omstruckOrderMaterial.setOrderMaterialWeight(materialWeight);
                 // 物资件数
                 omstruckOrderMaterial.setOrderMaterialNumber(materialNumber);
+                omstruckOrderMaterial.setSaleMaterialId(saleMaterialId);
                 // 新增运输订单子表
                 result += omstruckOrderMaterialMapper.insertSelective(omstruckOrderMaterial);
             }
@@ -1151,6 +1153,7 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
                 BigDecimal materialId = (BigDecimal) materialMap.get("materialId");
                 BigDecimal materialWeight = (BigDecimal) materialMap.get("materialWeight");
                 BigDecimal materialNumber = (BigDecimal) materialMap.get("materialNumber");
+                BigDecimal saleMaterialId = (BigDecimal) materialMap.get("saleMaterialId");
                 /*
                 运输订单物资子表
                 */
@@ -1166,6 +1169,7 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
                 omstruckOrderMaterial.setOrderMaterialWeight(materialWeight);
                 // 物资件数
                 omstruckOrderMaterial.setOrderMaterialNumber(materialNumber);
+                omstruckOrderMaterial.setSaleMaterialId(saleMaterialId);
                 // 新增运输订单子表
                 result += omstruckOrderMaterialMapper.insertSelective(omstruckOrderMaterial);
             }

+ 1 - 1
src/main/resources/application-prod.yml

@@ -13,7 +13,7 @@ openfeign:
    ESFeign:
      url: ${ESFEIGN_URL:172.16.33.166:8089}
    ColumnDataFeign:
-     url: ${COLUMNDATAFEIGN_URL:172.16.33.161:8083}
+     url: ${COLUMNDATAFEIGN_URL:172.16.33.166:8083}
    TmsTruckFeign:
       url: ${TMSTRUCKFEIGN_URL:172.16.33.166:8088}
    ImFeign:

+ 77 - 1
src/main/resources/com/steerinfo/dil/mapper/AmsContractTruckPriceMapper.xml

@@ -919,6 +919,68 @@
     </if>
   </select>
 
+  <select id="getAmsContractTransportPriceForImport" resultType="java.util.Map">
+    select ACTP.PRICE_ID "priceId",RRA.ADDRESS_PROVINCE||RRA.ADDRESS_DISTRICT
+      ||RRA.ADDRESS_TOWN||RRP.ADDRESS_DELIVERY_ADDRESS "address",
+           RRP.PLACE_ID "placeId"
+    from AMS_CONTRACT_TRANSPORT_PRICE ACTP
+           LEFT JOIN RMS_RECEIVE_PLACE RRP
+                     ON RRP.PLACE_ID=ACTP.PLACE_ID
+           LEFT JOIN RMS_RECEIVE_ADDRESS RRA
+                     ON RRA.ADDRESS_ID=RRP.ADDRESS_ID
+    WHERE ACTP.DELETED=0 AND ACTP.TYPE=1
+      AND RRA.ADDRESS_PROVINCE||RRA.ADDRESS_DISTRICT
+            ||RRA.ADDRESS_TOWN||RRP.ADDRESS_DELIVERY_ADDRESS
+      LIKE #{address}
+    FETCH NEXT 1 ROW ONLY
+  </select>
+
+  <select id="getAddressIdForImport" resultType="java.math.BigDecimal">
+    select RRA.ADDRESS_ID "addressId"
+    from  RMS_RECEIVE_ADDRESS RRA
+    WHERE RRA.ADDRESS_PROVINCE||RRA.ADDRESS_DISTRICT
+            ||RRA.ADDRESS_TOWN LIKE #{address}
+  </select>
+
+  <insert id="insertIntoRRAForImport">
+    insert into RMS_RECEIVE_ADDRESS(ADDRESS_ID,ADDRESS_PROVINCE,ADDRESS_DISTRICT,ADDRESS_TOWN)
+    VALUES((SELECT max(ADDRESS_ID)+1 from RMS_RECEIVE_ADDRESS),#{addressProvince},#{addressDistrict},#{addressTown})
+  </insert>
+
+  <select id="getCarrierIdForCarrierName" resultType="java.math.BigDecimal">
+    select RC.CARRIER_ID from RMS_CARRIER RC
+    WHERE RC.CARRIER_ABBREVIATION = #{carrierName}
+      FETCH NEXT 1 ROW ONLY
+  </select>
+  
+  <select id="getCarrierIdForImport" resultType="java.util.List">
+    select RC.CARRIER_ID "carrierId"
+    from AMS_CONTRACT_TRANSPORT_PRICE ACTP
+           LEFT JOIN RMS_RECEIVE_PLACE RRP
+                     ON RRP.PLACE_ID=ACTP.PLACE_ID
+           LEFT JOIN RMS_RECEIVE_ADDRESS RRA
+                     ON RRA.ADDRESS_ID=RRP.ADDRESS_ID
+           LEFT JOIN RMS_CARRIER RC
+                     ON RC.CARRIER_ID=ACTP.CARRIER_ID
+    WHERE ACTP.DELETED=0 AND ACTP.TYPE=1
+      AND RRA.ADDRESS_PROVINCE||RRA.ADDRESS_DISTRICT
+            ||RRA.ADDRESS_TOWN||RRP.ADDRESS_DELIVERY_ADDRESS
+      LIKE #{address}
+  </select>
+
+  <update id="updateForImport">
+    update AMS_CONTRACT_TRANSPORT_PRICE ACTP
+    set ACTP.DELETED=1
+    WHERE ACTP.PLACE_ID in
+          (select AC_TP.PLACE_ID from AMS_CONTRACT_TRANSPORT_PRICE AC_TP
+           WHERE AC_TP.PRICE_ID=#{priceId} FETCH NEXT 1 ROW ONLY)
+  </update>
+  <!--update AMS_CONTRACT_TRANSPORT_PRICE ACTP
+  set ACTP.DELETED=1
+  WHERE ACTP.PLACE_ID=#{placeId}
+  and to_date(to_char(ACTP.INSERT_TIME,'yyyy-MM-dd hh24:mi:ss'),'yyyy-MM-dd hh24:mi:ss')
+  <![CDATA[<]]>= to_date(#{date},'yyyy-MM-dd hh24:mi:ss')-->
+
   <!--删除单价-->
   <delete id="deleteSalePrice">
     DELETE AMS_CONTRACT_TRANSPORT_PRICE ACTP
@@ -992,6 +1054,12 @@
                            WHERE  ACTP.DELETED=0)
   </select>
 
+  <update id="updateDeletedTemplate">
+    update AMS_CONTRACT_TRANSPORT_PRICE ACTP
+    set ACTP.DELETED=0
+    WHERE ACTP.PRICE_ID=#{priceId}
+</update>
+
   <!--获取全部承运商的信息-->
   <select id="getCarrierListByPrice" resultType="java.util.LinkedHashMap">
     select p0.*,(SELECT COUNT(*) "total" FROM RMS_CARRIER RC) "total" from (select RC.CARRIER_NAME "carrierName",RC.CARRIER_ID "carrierId",ROWNUM r
@@ -1615,9 +1683,17 @@
     order by a_t_price.PRICE_ID desc
   </select>
 
+  <select id="getAmsContractMaterialData" resultType="java.util.LinkedHashMap">
+    select ACPM.MATERIAL_ID "materialId" FROM AMS_CONTAACT_PRICE_MATERIAL ACPM
+    WHERE ACPM.PRICE_ID=#{priceId} AND ACPM.DELETED=0
+  </select>
+
   <insert id="insertIntoAmsContractForMaterial">
-    insert into 
+    insert into AMS_CONTAACT_PRICE_MATERIAL
+      (PRICE_MATERIAL_ID,MATERIAL_ID,PRICE_ID,DELETED)
+    VALUES(#{priceMaterialId},#{materialId},#{i},0)
   </insert>
+
   <insert id="insertshdz" parameterType="map">
     insert into RMS_RECEIVE_ADDRESS (ADDRESS_ID, ADDRESS_PROVINCE, ADDRESS_DISTRICT
     <if test="addressTown!=null">

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

@@ -921,7 +921,8 @@
   <select id="getMaterial" parameterType="DECIMAL" resultType="java.util.Map">
     SELECT ASM.MATERIAL_ID     AS "materialId",
            ASM.MATERIAL_WEIGHT AS "materialWeight",
-           ASM.MATERIAL_NUMBER AS "materialNumber"
+           ASM.MATERIAL_NUMBER AS "materialNumber",
+           ASM.SALE_MATERIAL_ID AS "saleMaterialId"
     FROM AMS_SALE_TRUCKNO_MATERIAL ASTM
            LEFT JOIN AMS_SALE_MATERIAL ASM
                      ON ASM.SALE_MATERIAL_ID = ASTM.MATERIAL_ID

+ 3 - 2
src/main/resources/com/steerinfo/dil/mapper/DilNoticeMapper.xml

@@ -462,8 +462,9 @@
       </if>
       <if test="insertTime!= null">
         and
-        <foreach collection="insertTime" item="item" open="(" separator="," close=")">
-          "insertTime" in #{item}
+        <foreach collection="insertTime" item="item" open="(" separator="or" close=")">
+          to_date(to_char("insertTime",'yyyy-mm-dd hh24:mi:ss'),'yyyy-mm-dd hh24:mi:ss')
+          in to_date(#{item},'yyyy-mm-dd hh24:mi:ss')
         </foreach>
       </if>
 

+ 45 - 19
src/main/resources/com/steerinfo/dil/mapper/OmstruckOrderMaterialMapper.xml

@@ -16,16 +16,18 @@
     <result column="MATERIAL_PRIORITY" jdbcType="DECIMAL" property="materialPriority" />
     <result column="MATERIAL_MEASSION" jdbcType="DECIMAL" property="materialMeassion" />
     <result column="MATERIAL_LUNO" jdbcType="VARCHAR" property="materialLuno" />
+    <result column="SALE_MATERIAL_ID" jdbcType="DECIMAL" property="saleMaterialId" />
   </resultMap>
   <sql id="columns">
-    ORDER_MATERIAL_ID, ORDER_ID, MATERIAL_ID, ORDER_MATERIAL_NUMBER, ORDER_MATERIAL_WEIGHT, 
-    INSERT_USERNAME, INSERT_TIME, UPDATE_USERNAME, UPDATE_TIME, INSERT_UPDATE_REMARK, 
-    MATERIAL_DIRECTION, MATERIAL_PRIORITY, MATERIAL_MEASSION, MATERIAL_LUNO
+    ORDER_MATERIAL_ID, ORDER_ID, MATERIAL_ID, ORDER_MATERIAL_NUMBER, ORDER_MATERIAL_WEIGHT,
+    INSERT_USERNAME, INSERT_TIME, UPDATE_USERNAME, UPDATE_TIME, INSERT_UPDATE_REMARK,
+    MATERIAL_DIRECTION, MATERIAL_PRIORITY, MATERIAL_MEASSION, MATERIAL_LUNO, SALE_MATERIAL_ID
   </sql>
   <sql id="columns_alias">
-    t.ORDER_MATERIAL_ID, t.ORDER_ID, t.MATERIAL_ID, t.ORDER_MATERIAL_NUMBER, t.ORDER_MATERIAL_WEIGHT, 
-    t.INSERT_USERNAME, t.INSERT_TIME, t.UPDATE_USERNAME, t.UPDATE_TIME, t.INSERT_UPDATE_REMARK, 
-    t.MATERIAL_DIRECTION, t.MATERIAL_PRIORITY, t.MATERIAL_MEASSION, t.MATERIAL_LUNO
+    t.ORDER_MATERIAL_ID, t.ORDER_ID, t.MATERIAL_ID, t.ORDER_MATERIAL_NUMBER, t.ORDER_MATERIAL_WEIGHT,
+    t.INSERT_USERNAME, t.INSERT_TIME, t.UPDATE_USERNAME, t.UPDATE_TIME, t.INSERT_UPDATE_REMARK,
+    t.MATERIAL_DIRECTION, t.MATERIAL_PRIORITY, t.MATERIAL_MEASSION, t.MATERIAL_LUNO,
+    t.SALE_MATERIAL_ID
   </sql>
   <sql id="select">
     SELECT <include refid="columns" /> FROM OMSTRUCK_ORDER_MATERIAL
@@ -77,6 +79,9 @@
       <if test="materialLuno != null and materialLuno != ''">
         and MATERIAL_LUNO = #{materialLuno}
       </if>
+      <if test="saleMaterialId != null">
+        and SALE_MATERIAL_ID = #{saleMaterialId}
+      </if>
     </where>
   </sql>
   <sql id="whereLike">
@@ -123,9 +128,12 @@
       <if test="materialLuno != null and materialLuno != ''">
         and MATERIAL_LUNO LIKE '%${materialLuno}%'
       </if>
+      <if test="saleMaterialId != null">
+        and SALE_MATERIAL_ID = #{saleMaterialId}
+      </if>
     </where>
   </sql>
-  <delete id="deleteByPrimaryKey" parameterType="DECIMAL">
+  <delete id="deleteByPrimaryKey" parameterType="java.math.BigDecimal">
     delete from OMSTRUCK_ORDER_MATERIAL
     where ORDER_MATERIAL_ID = #{orderMaterialId,jdbcType=DECIMAL}
   </delete>
@@ -171,20 +179,23 @@
     <if test="materialLuno != null and materialLuno != ''">
       or MATERIAL_LUNO = #{materialLuno}
     </if>
+    <if test="saleMaterialId != null">
+      or SALE_MATERIAL_ID = #{saleMaterialId}
+    </if>
   </delete>
   <insert id="insert" parameterType="com.steerinfo.dil.model.OmstruckOrderMaterial">
     insert into OMSTRUCK_ORDER_MATERIAL (ORDER_MATERIAL_ID, ORDER_ID, MATERIAL_ID,
                                          ORDER_MATERIAL_NUMBER, ORDER_MATERIAL_WEIGHT,
                                          INSERT_USERNAME, INSERT_TIME, UPDATE_USERNAME,
                                          UPDATE_TIME, INSERT_UPDATE_REMARK, MATERIAL_DIRECTION,
-                                         MATERIAL_PRIORITY, MATERIAL_MEASSION, MATERIAL_LUNO
-    )
+                                         MATERIAL_PRIORITY, MATERIAL_MEASSION, MATERIAL_LUNO,
+                                         SALE_MATERIAL_ID)
     values (#{orderMaterialId,jdbcType=DECIMAL}, #{orderId,jdbcType=DECIMAL}, #{materialId,jdbcType=DECIMAL},
             #{orderMaterialNumber,jdbcType=DECIMAL}, #{orderMaterialWeight,jdbcType=DECIMAL},
             #{insertUsername,jdbcType=VARCHAR}, #{insertTime,jdbcType=TIMESTAMP}, #{updateUsername,jdbcType=VARCHAR},
             #{updateTime,jdbcType=TIMESTAMP}, #{insertUpdateRemark,jdbcType=VARCHAR}, #{materialDirection,jdbcType=DECIMAL},
-            #{materialPriority,jdbcType=DECIMAL}, #{materialMeassion,jdbcType=DECIMAL}, #{materialLuno,jdbcType=VARCHAR}
-           )
+            #{materialPriority,jdbcType=DECIMAL}, #{materialMeassion,jdbcType=DECIMAL}, #{materialLuno,jdbcType=VARCHAR},
+            #{saleMaterialId,jdbcType=DECIMAL})
   </insert>
   <insert id="insertSelective" parameterType="com.steerinfo.dil.model.OmstruckOrderMaterial">
     insert into OMSTRUCK_ORDER_MATERIAL
@@ -231,6 +242,9 @@
       <if test="materialLuno != null">
         MATERIAL_LUNO,
       </if>
+      <if test="saleMaterialId != null">
+        SALE_MATERIAL_ID,
+      </if>
     </trim>
     <trim prefix="values (" suffix=")" suffixOverrides=",">
       <if test="orderMaterialId != null">
@@ -275,6 +289,9 @@
       <if test="materialLuno != null">
         #{materialLuno,jdbcType=VARCHAR},
       </if>
+      <if test="saleMaterialId != null">
+        #{saleMaterialId,jdbcType=DECIMAL},
+      </if>
     </trim>
   </insert>
   <update id="updateByPrimaryKey" parameterType="com.steerinfo.dil.model.OmstruckOrderMaterial">
@@ -291,7 +308,8 @@
         MATERIAL_DIRECTION = #{materialDirection,jdbcType=DECIMAL},
         MATERIAL_PRIORITY = #{materialPriority,jdbcType=DECIMAL},
         MATERIAL_MEASSION = #{materialMeassion,jdbcType=DECIMAL},
-        MATERIAL_LUNO = #{materialLuno,jdbcType=VARCHAR}
+        MATERIAL_LUNO = #{materialLuno,jdbcType=VARCHAR},
+        SALE_MATERIAL_ID = #{saleMaterialId,jdbcType=DECIMAL}
     where ORDER_MATERIAL_ID = #{orderMaterialId,jdbcType=DECIMAL}
   </update>
   <update id="updateByPrimaryKeySelective" parameterType="com.steerinfo.dil.model.OmstruckOrderMaterial">
@@ -336,10 +354,13 @@
       <if test="materialLuno != null">
         MATERIAL_LUNO = #{materialLuno,jdbcType=VARCHAR},
       </if>
+      <if test="saleMaterialId != null">
+        SALE_MATERIAL_ID = #{saleMaterialId,jdbcType=DECIMAL},
+      </if>
     </set>
     where ORDER_MATERIAL_ID = #{orderMaterialId,jdbcType=DECIMAL}
   </update>
-  <select id="selectByPrimaryKey" parameterType="DECIMAL" resultMap="BaseResultMap">
+  <select id="selectByPrimaryKey" parameterType="java.math.BigDecimal" resultMap="BaseResultMap">
     <include refid="select" />
     where ORDER_MATERIAL_ID = #{orderMaterialId,jdbcType=DECIMAL}
   </select>
@@ -359,8 +380,8 @@
     INSERT_TIME, UPDATE_USERNAME,
     UPDATE_TIME, INSERT_UPDATE_REMARK,
     MATERIAL_DIRECTION, MATERIAL_PRIORITY,
-    MATERIAL_MEASSION, MATERIAL_LUNO
-    )
+    MATERIAL_MEASSION, MATERIAL_LUNO,
+    SALE_MATERIAL_ID)
     ( <foreach collection="list" item="item" separator="union all">
     select
     #{item.orderMaterialId,jdbcType=DECIMAL},
@@ -369,8 +390,8 @@
     #{item.insertTime,jdbcType=TIMESTAMP}, #{item.updateUsername,jdbcType=VARCHAR},
     #{item.updateTime,jdbcType=TIMESTAMP}, #{item.insertUpdateRemark,jdbcType=VARCHAR},
     #{item.materialDirection,jdbcType=DECIMAL}, #{item.materialPriority,jdbcType=DECIMAL},
-    #{item.materialMeassion,jdbcType=DECIMAL}, #{item.materialLuno,jdbcType=VARCHAR}
-    from dual
+    #{item.materialMeassion,jdbcType=DECIMAL}, #{item.materialLuno,jdbcType=VARCHAR},
+    #{item.saleMaterialId,jdbcType=DECIMAL} from dual
   </foreach> )
   </insert>
   <update id="batchUpdate" parameterType="java.util.List">
@@ -432,13 +453,16 @@
     <foreach close="end" collection="list" index="index" item="item" open="case ORDER_MATERIAL_ID" separator=" ">
       when #{item.orderMaterialId,jdbcType=DECIMAL} then #{item.materialLuno,jdbcType=VARCHAR}
     </foreach>
+    ,SALE_MATERIAL_ID=
+    <foreach close="end" collection="list" index="index" item="item" open="case ORDER_MATERIAL_ID" separator=" ">
+      when #{item.orderMaterialId,jdbcType=DECIMAL} then #{item.saleMaterialId,jdbcType=DECIMAL}
+    </foreach>
     where ORDER_MATERIAL_ID in
     <foreach close=")" collection="list" index="index" item="item" open="(" separator=",">
       #{item.orderMaterialId,jdbcType=DECIMAL}
     </foreach>
   </update>
-
-    <delete id="batchDelete" parameterType="java.util.List">
+  <delete id="batchDelete" parameterType="java.util.List">
     delete from OMSTRUCK_ORDER_MATERIAL
     where ORDER_MATERIAL_ID in
     <foreach close=")" collection="list" item="id" open="(" separator=",">
@@ -449,6 +473,8 @@
   <!-- 请将自己写的代码放在此标签之下,方便以后粘贴复制。-->
   <!-- 友情提示!!!-->
   <!-- 请将自己写的代码放在此标签之下,方便以后粘贴复制。-->
+  <!-- 友情提示!!!-->
+  <!-- 请将自己写的代码放在此标签之下,方便以后粘贴复制。-->
 
   <select id="getMaterialList" parameterType="DECIMAL" resultType="java.util.Map">
     SELECT OOM.MATERIAL_ID           "materialId",

+ 1 - 1
src/main/resources/log4j.properties

@@ -1,5 +1,5 @@
 ## LOG4J\u914D\u7F6E
-log4j.rootCategory=INFO,file,RUNNING,errorfile,stdout
+log4j.rootCategory=INFO,file,RUNNING,errorfile
 ## \u63A7\u5236\u53F0\u8F93\u51FA
 log4j.appender.stdout=org.apache.log4j.ConsoleAppender
 log4j.appender.stdout.layout=org.apache.log4j.PatternLayout