luobang пре 3 година
родитељ
комит
02ff525947

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

@@ -1,7 +1,9 @@
 package com.steerinfo.dil.controller;
 
+import com.alibaba.druid.support.json.JSONUtils;
 import com.steerinfo.dil.feign.ColumnDataFeign;
 import com.steerinfo.dil.feign.ESFeign;
+import com.steerinfo.dil.feign.JoinFeign;
 import com.steerinfo.dil.mapper.AmsDispatchSaleOrderMapper;
 import com.steerinfo.dil.mapper.AmsSaleOrderMapper;
 import com.steerinfo.dil.model.AmsDispatchSaleOrder;
@@ -12,10 +14,7 @@ import com.steerinfo.dil.service.IAmsSaleOrderService;
 import com.steerinfo.dil.service.impl.AmsDispatchSaleOrderServiceImpl;
 import com.steerinfo.dil.service.impl.AmsSaleOrderCarrierServiceImpl;
 import com.steerinfo.dil.service.impl.AmsSaleOrderMaterialServiceImpl;
-import com.steerinfo.dil.util.BaseRESTfulController;
-import com.steerinfo.dil.util.ColumnDataUtil;
-import com.steerinfo.dil.util.DataChange;
-import com.steerinfo.dil.util.PageListAdd;
+import com.steerinfo.dil.util.*;
 import com.steerinfo.framework.controller.RESTfulResult;
 import com.steerinfo.framework.service.pagehelper.PageHelper;
 //import com.sun.org.apache.bcel.internal.generic.IF_ACMPEQ;
@@ -68,6 +67,12 @@ public class AmsSaleOrderController extends BaseRESTfulController {
     ESFeign esFeign;
     @Autowired
     AmsSaleOrderCarrierServiceImpl  amsSaleOrderCarrierService;
+    @Autowired
+    EASTestUtil easTestUtil;
+    @Autowired
+    EASUtil easUtil;
+    @Autowired
+    JoinFeign joinFeign;
 
     @ApiOperation(value="查询未上报销售订单信息")
     @ApiImplicitParams({
@@ -940,10 +945,26 @@ public class AmsSaleOrderController extends BaseRESTfulController {
     @ApiImplicitParams({
             @ApiImplicitParam(name = "map", value = "修改收货地址", required = false, dataType = "java.util.Map")
     })
-    @PostMapping(value = "/修改销售订单中的物资")
+    @PostMapping(value = "/updateAllMaterialInSale")
     public RESTfulResult updateAllMaterialInSale(@RequestBody Map<String, Object> mapValue) {
         //分页数据
         int result = amsSaleOrderService.updateAllMaterialInSale(mapValue);
+        BigDecimal saleOrderId = DataChange.dataToBigDecimal(mapValue.get("saleOrderId"));
+        // 调用金蝶接口,将销售订单推送到金蝶系统
+        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();
+        // 获得金蝶接口配置:测试
+        Map<String, Object> totalMap = easUtil.getTotalMap();
+        // 组装报文
+        totalMap.put("input", input);
+        System.out.println(totalMap);
+        String json = JSONUtils.toJSONString(totalMap);
+        System.out.println(json);
+        Map<String,Object> resultMap = joinFeign.pushSaleOrderToEas(totalMap);
+        System.out.println(resultMap);
         return success(result);
     }
 
@@ -970,4 +991,11 @@ public class AmsSaleOrderController extends BaseRESTfulController {
         PageListAdd pageList = columnDataUtil.tableColumnData(apiId, null, saleOrderList);
         return success(pageList);
     }
+
+    @ApiModelProperty(value = "同步关闭金蝶订单")
+    @PostMapping("/deleteSaleOrderSame")
+    public RESTfulResult deleteSaleOrderSame(@RequestBody Map<String,Object> mapValue) {
+        int result = amsSaleOrderService.deleteSaleOrderSame(mapValue);
+        return success(result);
+    }
 }

+ 3 - 0
src/main/java/com/steerinfo/dil/controller/AmsSaleOrderMaterialController.java

@@ -251,6 +251,9 @@ public class AmsSaleOrderMaterialController extends BaseRESTfulController {
     @PostMapping("dispatchTruckOrderByCarrier")
     public RESTfulResult dispatchTruckOrderByCarrier(@RequestBody Map<String,Object> mapValue){
         int result = amsSaleOrderMaterialService.dispatchTruckOrderByCarrier(mapValue);
+        if (result==-1){
+            return failed("您的账号还没有绑定组织,请联系自动化部");
+        }
         return success(result);
     }
 

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

@@ -18,8 +18,8 @@ public interface JoinFeign {
     Map<String,Object> getSaleOrder(@RequestParam BigDecimal saleOrderId);
 
     @PostMapping("/api/v1/join/wsface/pushSaleOrderToEas")
-    String pushSaleOrderToEas(@RequestBody Map<String,Object> map);
+    Map<String,Object> pushSaleOrderToEas(@RequestBody Map<String,Object> map);
 
     @PostMapping("/api/v1/join/wsface/deleteSaleOrderToEas")
-    String deleteSaleOrderToEas(@RequestBody Map<String,Object> map);
+    Map<String,Object> deleteSaleOrderToEas(@RequestBody Map<String,Object> map);
 }

+ 4 - 0
src/main/java/com/steerinfo/dil/feign/TmsTruckFeign.java

@@ -42,4 +42,8 @@ public interface TmsTruckFeign {
     //生成装车实绩: 运输订单Id、物资Id
     @PostMapping("api/v1/truckTms/tmstruckloadresults/addLoadResult")
     RESTfulResult addLoadResult(@RequestBody(required = false) Map<String, Object> map);
+
+    //同步修改计量装货:
+    @PostMapping("api/v1/truckTms/tmstruckweightresults/update")
+    Map<String,Object> update(@RequestBody Map<String, Object> map);
 }

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

@@ -119,7 +119,7 @@ public interface AmsSaleOrderMapper extends IBaseMapper<AmsSaleOrder, BigDecimal
     // 得到定向派单表id
     BigDecimal getDispatchId(BigDecimal saleOrderMaterialId);
     // 得到销售订单物资表主键
-    List<Map<String, Object>> getSaleMaterialId();
+    List<Map<String, Object>> getSaleMaterialId(BigDecimal saleOrderMaterialId);
     // 得到销售订单物资的集合
     List<Map<String, Object>> getSaleList(Map<String,Object> truckNoMap);
     // 副产品订单

+ 17 - 2
src/main/java/com/steerinfo/dil/model/OmstruckOrder.java

@@ -16,9 +16,9 @@ public class OmstruckOrder implements IBasePO<BigDecimal> {
     private BigDecimal orderId;
 
     /**
-     * 销售订单和物资的中间表ID/发运计划ID/采购订单ID/内转物流计划ID/零星订单ID(ORDER_PLAN_ID,DECIMAL,0)
+     * 车序号表ID/发运计划ID/采购订单ID/内转物流计划ID/零星订单ID(ORDER_PLAN_ID,DECIMAL,0)
      */
-    @ApiModelProperty(value="销售订单和物资的中间表ID/发运计划ID/采购订单ID/内转物流计划ID/零星订单ID",required=false)
+    @ApiModelProperty(value="车序号表ID/发运计划ID/采购订单ID/内转物流计划ID/零星订单ID",required=false)
     private BigDecimal orderPlanId;
 
     /**
@@ -165,6 +165,12 @@ public class OmstruckOrder implements IBasePO<BigDecimal> {
     @ApiModelProperty(value="司机电话号码",required=false)
     private String driverTel;
 
+    /**
+     * 操作人员组织(OPTIONER_CODE,VARCHAR,255)
+     */
+    @ApiModelProperty(value="操作人员组织",required=false)
+    private String optionerCode;
+
     private static final long serialVersionUID = 1L;
 
     @Override
@@ -385,6 +391,14 @@ public class OmstruckOrder implements IBasePO<BigDecimal> {
         this.driverTel = driverTel == null ? null : driverTel.trim();
     }
 
+    public String getOptionerCode() {
+        return optionerCode;
+    }
+
+    public void setOptionerCode(String optionerCode) {
+        this.optionerCode = optionerCode == null ? null : optionerCode.trim();
+    }
+
     @Override
     public String toString() {
         StringBuilder sb = new StringBuilder();
@@ -417,6 +431,7 @@ public class OmstruckOrder implements IBasePO<BigDecimal> {
         sb.append(", tripId=").append(tripId);
         sb.append(", orderPrintStatus=").append(orderPrintStatus);
         sb.append(", driverTel=").append(driverTel);
+        sb.append(", optionerCode=").append(optionerCode);
         sb.append(", serialVersionUID=").append(serialVersionUID);
         sb.append("]");
         return sb.toString();

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

@@ -149,4 +149,6 @@ public interface IAmsSaleOrderService {
     int updateAllMaterialInSale(Map<String, Object> mapValue);
     //获取销售公司已审核的订单
     List<Map<String,Object>> getFuSaleOrderList(Map<String,Object> map);
+    // 同步关闭金蝶销售订单
+    int deleteSaleOrderSame(Map<String, Object> mapValue);
 }

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

@@ -626,6 +626,12 @@ public class AmsSaleOrderMaterialServiceImpl implements IAmsSaleOrderMaterialSer
              运输订单
              */
             OmstruckOrder omstruckOrder = new OmstruckOrder();
+            String orgCode =(String) mapValue.get("orgCode");
+            if (orgCode==null||orgCode.equals("")){
+
+            }else {
+                omstruckOrder.setOptionerCode(orgCode);
+            }
             // 运输订单主键
             BigDecimal orderId = omstruckOrderMapper.selectMaxId();
             omstruckOrder.setOrderId(orderId);

+ 108 - 143
src/main/java/com/steerinfo/dil/service/impl/AmsSaleOrderServiceImpl.java

@@ -6,10 +6,7 @@ import com.steerinfo.dil.feign.TmsTruckFeign;
 import com.steerinfo.dil.mapper.*;
 import com.steerinfo.dil.model.*;
 import com.steerinfo.dil.service.IAmsSaleOrderService;
-import com.steerinfo.dil.util.DataChange;
-import com.steerinfo.dil.util.EASDeleteUtil;
-import com.steerinfo.dil.util.EASUtil;
-import com.steerinfo.dil.util.NumberToWeightUtil;
+import com.steerinfo.dil.util.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -64,6 +61,10 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
     EASUtil easUtil;
     @Autowired
     EASDeleteUtil easDeleteUtil;
+    @Autowired
+    EASTestUtil easTestUtil;
+    @Autowired
+    EASDeleteTestUtil easDeleteTestUtil;
 
     @Override
     public List<Map<String, Object>> getSaleOrderInfo(Map<String, Object> map) {
@@ -206,14 +207,16 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
         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();
         // 组装报文
         totalMap.put("input",input);
         System.out.println(totalMap);
         String json = JSONUtils.toJSONString(totalMap);
         System.out.println(json);
-        String s = joinFeign.pushSaleOrderToEas(totalMap);
+        Map<String,Object> s = joinFeign.pushSaleOrderToEas(totalMap);
         System.out.println(s);
         amsSaleOrder.setSaleOrderStatus(new BigDecimal(1));
         return amsSaleOrderMapper.updateByPrimaryKey(amsSaleOrder);
@@ -932,7 +935,7 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
             System.out.println(totalMap);
             String json = JSONUtils.toJSONString(totalMap);
             System.out.println(json);
-            String s = joinFeign.pushSaleOrderToEas(totalMap);
+            Map<String,Object> s = joinFeign.pushSaleOrderToEas(totalMap);
             System.out.println(s);
         }
         // 如果是副产品订单则关闭时同步关闭未进厂的运单
@@ -988,14 +991,18 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
             BigDecimal saleOrderId = DataChange.dataToBigDecimal(map.get("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();
             // 组装报文
             totalMap.put("input",input);
             System.out.println(totalMap);
             String json = JSONUtils.toJSONString(totalMap);
             System.out.println(json);
-            String s = joinFeign.pushSaleOrderToEas(totalMap);
+            Map<String,Object> s = joinFeign.pushSaleOrderToEas(totalMap);
             System.out.println(s);
             amsSaleOrder.setSaleOrderId(saleOrderId);
             amsSaleOrder.setSaleOrderStatus(new BigDecimal(1));
@@ -1254,7 +1261,7 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
             omstruckOrder.setOrderStatus(new BigDecimal(7));
             omstruckOrderMapper.updateByPrimaryKeySelective(omstruckOrder);
             // 得到销售订单物资表主键
-            List<Map<String,Object>> saleMaterialIdList = amsSaleOrderMapper.getSaleMaterialId();
+            List<Map<String,Object>> saleMaterialIdList = amsSaleOrderMapper.getSaleMaterialId(saleOrderMaterialId);
             for (Map<String, Object> map : saleMaterialIdList) {
                 // 删除销售订单物资子表
                 BigDecimal saleMaterialId = (BigDecimal) map.get("saleMaterialId");
@@ -1271,7 +1278,7 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
             System.out.println(totalMap);
             String json = JSONUtils.toJSONString(totalMap);
             System.out.println(json);
-            String s = joinFeign.pushSaleOrderToEas(totalMap);
+            Map<String,Object> s = joinFeign.pushSaleOrderToEas(totalMap);
             System.out.println(s);
             return 0;
         }
@@ -1375,6 +1382,7 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
      * @param mapValue
      * @return
      */
+    @Transactional
     @Override
     public int updateAllMaterialInSale(Map<String, Object> mapValue) {
         int result = 0;
@@ -1388,7 +1396,7 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
         Map<String, Object> truckNoMap = new HashMap<>();
         truckNoMap.put("saleOrderMaterialId",saleOrderMaterialId);
         toTmsMap.put("orderId", orderId);
-        toTmsMap.put("oldList", oldList);
+        toTmsMap.put("oldMaterialMapList", oldList);
         // 得到所有的物资
         List<Map<String, Object>> mapList = (List<Map<String, Object>>) mapValue.get("mapList");
         /*
@@ -1402,14 +1410,20 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
             amsSaleTrucknoMaterialMapper.deleteByPrimaryKey(amsSaleTrucknoMaterial.getTrucknoMaterialId());
         }
         // 运输订单物资子表
-
-        // 新增拼数/修改拼数
+        List<OmstruckOrderMaterial> omstruckOrderMaterials = omstruckOrderMaterialMapper.selectByParameters(toTmsMap);
+        for (OmstruckOrderMaterial omstruckOrderMaterial : omstruckOrderMaterials) {
+            omstruckOrderMaterialMapper.deleteByPrimaryKey(omstruckOrderMaterial.getOrderMaterialId());
+        }
+        /*
+        重新新增三个表
+         */
         for (Map<String, Object> map : mapList) {
-            BigDecimal saleMaterialId = DataChange.dataToBigDecimal(map.get("saleMaterialId"));
+            Object saleMaterialId = map.get("saleMaterialId");
             BigDecimal materialId = DataChange.dataToBigDecimal(map.get("materialId"));
             BigDecimal materialNumber = DataChange.dataToBigDecimal(map.get("orderPlanWeight"));
-            BigDecimal trucknoMaterialId = DataChange.dataToBigDecimal(map.get("trucknoMaterialId"));
+            Object trucknoMaterialId = map.get("trucknoMaterialId");
             BigDecimal isPoundSale = DataChange.dataToBigDecimal(map.get("isPound"));
+            Object materialWeight = map.get("materialWeight");
             Object steelMeter = map.get("meterNumber");
             Object easId = map.get("easId");
             Object warehouse = map.get("warehouse");
@@ -1419,139 +1433,54 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
             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);
+//            if (saleMaterialId != null) {
+//                amsSaleMaterial.setSaleMaterialId(DataChange.dataToBigDecimal(saleMaterialId));
+//                amsSaleTrucknoMaterial.setTrucknoMaterialId(DataChange.dataToBigDecimal(trucknoMaterialId));
 //            }
-//            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){
+                amsSaleMaterial.setSaleMaterialId(amsSaleMaterialMapper.selectMaxId());
+                amsSaleTrucknoMaterial.setTrucknoMaterialId(amsSaleTrucknoMaterialMapper.selectMaxId());
 //            }
-//            // 判断是否是新增的拼数
-//            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);
-                }
+            if (easId != null) {
+                amsSaleMaterial.setEasPrimaryId(easId.toString());
             }
-        }
-        //再次遍历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 (warehouse != null) {
+                amsSaleMaterial.setSaleWarehouse(warehouse.toString());
             }
-        }
-        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;
+            if (steelMeter != null) {
+                amsSaleMaterial.setSteelMeter(DataChange.dataToBigDecimal(steelMeter));
+            }
+            if (materialWeight != null) {
+                amsSaleMaterial.setMaterialWeight(DataChange.dataToBigDecimal(materialWeight));
+                omstruckOrderMaterial.setOrderMaterialWeight(DataChange.dataToBigDecimal(materialWeight));
             }
+            amsSaleMaterial.setSaleOrderId(saleOrderId);
+            amsSaleMaterial.setIsPoundSale(isPoundSale);
+            amsSaleMaterial.setMaterialId(materialId);
+            amsSaleMaterial.setDeleted(new BigDecimal(0));
+            amsSaleMaterial.setMaterialNumber(materialNumber);
+            amsSaleMaterial.setUpdateTime(new Date());
+            result += amsSaleMaterialMapper.insertSelective(amsSaleMaterial);
+            // 车序号子表
+            amsSaleTrucknoMaterial.setSaleOrderMaterialId(saleOrderMaterialId);
+            amsSaleTrucknoMaterial.setMaterialId(amsSaleMaterial.getSaleMaterialId());
+            amsSaleTrucknoMaterial.setSaleOrderMaterialNumber(materialNumber);
+            amsSaleTrucknoMaterial.setUpdateTime(new Date());
+            result += amsSaleTrucknoMaterialMapper.insertSelective(amsSaleTrucknoMaterial);
+            // 运输订单子表
+            omstruckOrderMaterial.setOrderMaterialId(omstruckOrderMaterialMapper.selectMaxId());
+            omstruckOrderMaterial.setOrderId(orderId);
+            omstruckOrderMaterial.setMaterialId(materialId);
+            omstruckOrderMaterial.setOrderMaterialNumber(materialNumber);
+            result += omstruckOrderMaterialMapper.insertSelective(omstruckOrderMaterial);
         }
-        return null;
+        // 得到运单中的物资
+        List<Map<String, Object>> newList = omstruckOrderMaterialMapper.getMaterialList(orderId);
+        toTmsMap.put("newMaterialMapList", newList);
+        // 修改实绩结果
+        Map<String, Object> updateResult = tmsTruckFeign.update(toTmsMap);
+        System.out.println(updateResult);
+        return result;
     }
 
     /**
@@ -1564,4 +1493,40 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
         List<Map<String, Object>> resultList = amsSaleOrderMapper.getFuSaleOrderList(map);
         return resultList;
     }
+
+    /**
+     * 同步关闭金蝶销售订单
+     * @param mapValue
+     * @return
+     */
+    @Override
+    public int deleteSaleOrderSame(Map<String, Object> mapValue) {
+        int result = 0;
+        String reason = (String) mapValue.get("reason");
+        String number = (String) mapValue.get("number");
+        String wholeOrder = "1";
+        String status = "close";
+        Map<String,Object> head = new HashMap<>();
+        head.put("number",number);
+        head.put("reason",reason);
+        head.put("wholeOrder",wholeOrder);
+        head.put("status",status);
+        Map<String,Object> input = new HashMap<>();
+        Map<String, Object> totalMap = easDeleteUtil.getTotalMap();
+        input.put("head",head);
+        totalMap.put("input",input);
+        // 调用金蝶关闭接口
+        String json = JSONUtils.toJSONString(totalMap);
+        System.out.println(json);
+        Map<String,Object> resultMap = joinFeign.deleteSaleOrderToEas(totalMap);
+        System.out.println(resultMap);
+        BigDecimal saleOrderId = DataChange.dataToBigDecimal(mapValue.get("saleOrderId"));
+        AmsSaleOrder amsSaleOrder = new AmsSaleOrder();
+        amsSaleOrder.setSaleOrderId(saleOrderId);
+        amsSaleOrder.setDeleted(new BigDecimal(2));
+        amsSaleOrder.setInsertUpdateRemark(reason);
+        result += amsSaleOrderMapper.closeOrderNotIn(saleOrderId);
+        result += amsSaleOrderMapper.updateByPrimaryKeySelective(amsSaleOrder);
+        return result;
+    }
 }

+ 14 - 4
src/main/java/com/steerinfo/dil/util/ColumnDataUtil.java

@@ -27,10 +27,20 @@ public class ColumnDataUtil {
 
     public PageListAdd tableColumnData(Integer apiId, List<Map<String, Object>> list, List<Map<String,Object>> data) {
         List<Map<String, Object>> columnDataList = columnDataFeign.getColumnData(apiId);
-        //for (Map<String, Object> columnData : columnDataList) {
-        //    //每个表头字段的过滤条件
-        //    columnData.put("filters", setListMap(data, columnData.get("prop").toString()));
-        //}
+        for (Map<String, Object> columnData : columnDataList) {
+            //每个表头字段的过滤条件
+            columnData.put("filters", setListMap(data, columnData.get("prop").toString()));
+        }
+        PageListAdd pageList = new PageListAdd(data);
+        pageList.setColumnData(columnDataList);
+        return pageList;
+    }
+    public PageListAdd tableColumnData4(Integer apiId, List<Map<String, Object>> list, List<Map<String,Object>> data) {
+        List<Map<String, Object>> columnDataList = columnDataFeign.getColumnData(apiId);
+        for (Map<String, Object> columnData : columnDataList) {
+            //每个表头字段的过滤条件
+            columnData.put("filters", setListMap(data, columnData.get("prop").toString()));
+        }
         PageListAdd pageList = new PageListAdd(data);
         pageList.setColumnData(columnDataList);
         return pageList;

+ 72 - 0
src/main/java/com/steerinfo/dil/util/EASDeleteTestUtil.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 EASDeleteTestUtil {
+    // 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 = "A004";
+    public final String dbType = "0";
+    public final String userName = "user";
+    // context
+    public final String command = "saveSaleOrderBillHandler";
+
+    /**
+     * 得到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;
+    }
+}

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

@@ -27,7 +27,7 @@ public class EASDeleteUtil {
     public final String dbType = "0";
     public final String userName = "user";
     // context
-    public final String command = "deleteSaleOrderHandler";
+    public final String command = "saveSaleOrderBillHandler";
 
     /**
      * 得到context的map

+ 72 - 0
src/main/java/com/steerinfo/dil/util/EASTestUtil.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 EASTestUtil {
+    // 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 = "A004";
+    public final String dbType = "1";
+    public final String userName = "user";
+    // context
+    public final String command = "saveSaleOrderBillHandler";
+
+    /**
+     * 得到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;
+    }
+}

+ 35 - 11
src/main/resources/com/steerinfo/dil/mapper/OmstruckOrderMapper.xml

@@ -28,13 +28,14 @@
         <result column="TRIP_ID" jdbcType="VARCHAR" property="tripId" />
         <result column="ORDER_PRINT_STATUS" jdbcType="DECIMAL" property="orderPrintStatus" />
         <result column="DRIVER_TEL" jdbcType="VARCHAR" property="driverTel" />
+        <result column="OPTIONER_CODE" jdbcType="VARCHAR" property="optionerCode" />
     </resultMap>
     <sql id="columns">
         ORDER_ID, ORDER_PLAN_ID, ORDER_NUMBER, CAPACITY_ID, ORDER_ISSUE_TIME, ORDER_RECEIVE_STATUS,
     ORDER_RECEIVE_REFUSE_TIME, ORDER_COMMUNICATION_DURATION, ORDER_STATUS, INSERT_USERNAME,
     INSERT_TIME, UPDATE_USERNAME, UPDATE_TIME, INSERT_UPDATE_REMARK, DELETED, ORDER_TYPE,
     ORDER_LINE_SEQUENCE, LINE_ID, ORDER_ENTRY_TIME, UNLOAD_POINT_ID, DRIVER_CONFIRMATION,
-    PRICE_ID, CARRIER_ID, TRIP_ID, ORDER_PRINT_STATUS, DRIVER_TEL
+    PRICE_ID, CARRIER_ID, TRIP_ID, ORDER_PRINT_STATUS, DRIVER_TEL, OPTIONER_CODE
     </sql>
     <sql id="columns_alias">
         t.ORDER_ID, t.ORDER_PLAN_ID, t.ORDER_NUMBER, t.CAPACITY_ID, t.ORDER_ISSUE_TIME, t.ORDER_RECEIVE_STATUS,
@@ -42,7 +43,7 @@
     t.INSERT_TIME, t.UPDATE_USERNAME, t.UPDATE_TIME, t.INSERT_UPDATE_REMARK, t.DELETED,
     t.ORDER_TYPE, t.ORDER_LINE_SEQUENCE, t.LINE_ID, t.ORDER_ENTRY_TIME, t.UNLOAD_POINT_ID,
     t.DRIVER_CONFIRMATION, t.PRICE_ID, t.CARRIER_ID, t.TRIP_ID, t.ORDER_PRINT_STATUS,
-    t.DRIVER_TEL
+    t.DRIVER_TEL, t.OPTIONER_CODE
     </sql>
     <sql id="select">
         SELECT <include refid="columns" /> FROM OMSTRUCK_ORDER
@@ -130,6 +131,9 @@
             <if test="driverTel != null and driverTel != ''">
                 and DRIVER_TEL = #{driverTel}
             </if>
+            <if test="optionerCode != null and optionerCode != ''">
+                and OPTIONER_CODE = #{optionerCode}
+            </if>
         </where>
     </sql>
     <sql id="whereLike">
@@ -212,9 +216,12 @@
             <if test="driverTel != null and driverTel != ''">
                 and DRIVER_TEL LIKE '%${driverTel}%'
             </if>
+            <if test="optionerCode != null and optionerCode != ''">
+                and OPTIONER_CODE LIKE '%${optionerCode}%'
+            </if>
         </where>
     </sql>
-    <delete id="deleteByPrimaryKey" parameterType="DECIMAL">
+    <delete id="deleteByPrimaryKey" parameterType="java.lang.Short">
         delete from OMSTRUCK_ORDER
         where ORDER_ID = #{orderId,jdbcType=DECIMAL}
     </delete>
@@ -296,6 +303,9 @@
         <if test="driverTel != null and driverTel != ''">
             or DRIVER_TEL = #{driverTel}
         </if>
+        <if test="optionerCode != null and optionerCode != ''">
+            or OPTIONER_CODE = #{optionerCode}
+        </if>
     </delete>
     <insert id="insert" parameterType="com.steerinfo.dil.model.OmstruckOrder">
         insert into OMSTRUCK_ORDER (ORDER_ID, ORDER_PLAN_ID, ORDER_NUMBER,
@@ -306,8 +316,8 @@
                                     DELETED, ORDER_TYPE, ORDER_LINE_SEQUENCE,
                                     LINE_ID, ORDER_ENTRY_TIME, UNLOAD_POINT_ID,
                                     DRIVER_CONFIRMATION, PRICE_ID, CARRIER_ID,
-                                    TRIP_ID, ORDER_PRINT_STATUS, DRIVER_TEL
-        )
+                                    TRIP_ID, ORDER_PRINT_STATUS, DRIVER_TEL,
+                                    OPTIONER_CODE)
         values (#{orderId,jdbcType=DECIMAL}, #{orderPlanId,jdbcType=DECIMAL}, #{orderNumber,jdbcType=VARCHAR},
                 #{capacityId,jdbcType=DECIMAL}, #{orderIssueTime,jdbcType=TIMESTAMP}, #{orderReceiveStatus,jdbcType=DECIMAL},
                 #{orderReceiveRefuseTime,jdbcType=TIMESTAMP}, #{orderCommunicationDuration,jdbcType=DECIMAL},
@@ -316,8 +326,8 @@
                 #{deleted,jdbcType=DECIMAL}, #{orderType,jdbcType=DECIMAL}, #{orderLineSequence,jdbcType=DECIMAL},
                 #{lineId,jdbcType=DECIMAL}, #{orderEntryTime,jdbcType=TIMESTAMP}, #{unloadPointId,jdbcType=DECIMAL},
                 #{driverConfirmation,jdbcType=DECIMAL}, #{priceId,jdbcType=DECIMAL}, #{carrierId,jdbcType=DECIMAL},
-                #{tripId,jdbcType=VARCHAR}, #{orderPrintStatus,jdbcType=DECIMAL}, #{driverTel,jdbcType=VARCHAR}
-               )
+                #{tripId,jdbcType=VARCHAR}, #{orderPrintStatus,jdbcType=DECIMAL}, #{driverTel,jdbcType=VARCHAR},
+                #{optionerCode,jdbcType=VARCHAR})
     </insert>
     <insert id="insertSelective" parameterType="com.steerinfo.dil.model.OmstruckOrder">
         insert into OMSTRUCK_ORDER
@@ -400,6 +410,9 @@
             <if test="driverTel != null">
                 DRIVER_TEL,
             </if>
+            <if test="optionerCode != null">
+                OPTIONER_CODE,
+            </if>
         </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="orderId != null">
@@ -480,6 +493,9 @@
             <if test="driverTel != null">
                 #{driverTel,jdbcType=VARCHAR},
             </if>
+            <if test="optionerCode != null">
+                #{optionerCode,jdbcType=VARCHAR},
+            </if>
         </trim>
     </insert>
     <update id="updateByPrimaryKey" parameterType="com.steerinfo.dil.model.OmstruckOrder">
@@ -508,7 +524,8 @@
             CARRIER_ID = #{carrierId,jdbcType=DECIMAL},
             TRIP_ID = #{tripId,jdbcType=VARCHAR},
             ORDER_PRINT_STATUS = #{orderPrintStatus,jdbcType=DECIMAL},
-            DRIVER_TEL = #{driverTel,jdbcType=VARCHAR}
+            DRIVER_TEL = #{driverTel,jdbcType=VARCHAR},
+            OPTIONER_CODE = #{optionerCode,jdbcType=VARCHAR}
         where ORDER_ID = #{orderId,jdbcType=DECIMAL}
     </update>
     <update id="updateByPrimaryKeySelective" parameterType="com.steerinfo.dil.model.OmstruckOrder">
@@ -589,10 +606,13 @@
             <if test="driverTel != null">
                 DRIVER_TEL = #{driverTel,jdbcType=VARCHAR},
             </if>
+            <if test="optionerCode != null">
+                OPTIONER_CODE = #{optionerCode,jdbcType=VARCHAR},
+            </if>
         </set>
         where ORDER_ID = #{orderId,jdbcType=DECIMAL}
     </update>
-    <select id="selectByPrimaryKey" parameterType="DECIMAL" resultMap="BaseResultMap">
+    <select id="selectByPrimaryKey" parameterType="java.lang.Short" resultMap="BaseResultMap">
         <include refid="select" />
         where ORDER_ID = #{orderId,jdbcType=DECIMAL}
     </select>
@@ -617,7 +637,7 @@
         LINE_ID, ORDER_ENTRY_TIME, UNLOAD_POINT_ID,
         DRIVER_CONFIRMATION, PRICE_ID,
         CARRIER_ID, TRIP_ID, ORDER_PRINT_STATUS,
-        DRIVER_TEL)
+        DRIVER_TEL, OPTIONER_CODE)
         ( <foreach collection="list" item="item" separator="union all">
         select
         #{item.orderId,jdbcType=DECIMAL},
@@ -631,7 +651,7 @@
         #{item.lineId,jdbcType=DECIMAL}, #{item.orderEntryTime,jdbcType=TIMESTAMP}, #{item.unloadPointId,jdbcType=DECIMAL},
         #{item.driverConfirmation,jdbcType=DECIMAL}, #{item.priceId,jdbcType=DECIMAL},
         #{item.carrierId,jdbcType=DECIMAL}, #{item.tripId,jdbcType=VARCHAR}, #{item.orderPrintStatus,jdbcType=DECIMAL},
-        #{item.driverTel,jdbcType=VARCHAR} from dual
+        #{item.driverTel,jdbcType=VARCHAR}, #{item.optionerCode,jdbcType=VARCHAR} from dual
     </foreach> )
     </insert>
     <update id="batchUpdate" parameterType="java.util.List">
@@ -741,6 +761,10 @@
         <foreach close="end" collection="list" index="index" item="item" open="case ORDER_ID" separator=" ">
             when #{item.orderId,jdbcType=DECIMAL} then #{item.driverTel,jdbcType=VARCHAR}
         </foreach>
+        ,OPTIONER_CODE=
+        <foreach close="end" collection="list" index="index" item="item" open="case ORDER_ID" separator=" ">
+            when #{item.orderId,jdbcType=DECIMAL} then #{item.optionerCode,jdbcType=VARCHAR}
+        </foreach>
         where ORDER_ID in
         <foreach close=")" collection="list" index="index" item="item" open="(" separator=",">
             #{item.orderId,jdbcType=DECIMAL}