luobang 2 年 前
コミット
845f54fbd8

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

@@ -787,6 +787,31 @@ public class AmsSaleOrderController extends BaseRESTfulController {
         }
     }
 
+    @ApiModelProperty(value = "钢材继续装派单")
+    @PostMapping("/continueSteelOrder")
+    public RESTfulResult continueSteelOrder(@RequestBody List<Map<String,Object>> mapList) throws Exception {
+        int result;
+        try {
+            result = amsSaleOrderService.continueSteelOrder(mapList);
+        } catch (Exception e) {
+            e.printStackTrace();
+            return failed(e.getMessage());
+        }
+        // 调用EAS接口将车牌号传给金蝶
+        Map<String,Object> input = joinFeign.findCarNumberByOrderList(mapList);
+        Map<String, Object> totalMap = easCapacityTestUtil.getTotalMap();
+        totalMap.put("input",input);
+        System.out.println(totalMap);
+        String json = JSONUtils.toJSONString(totalMap);
+        System.out.println(json);
+        Map<String,Object> s = joinFeign.pushCarNumberToEas(totalMap);
+        if (s == null || s.size() == 0) {
+            throw new Exception("登录金蝶失败");
+        }
+        System.out.println(s);
+        return success(result);
+    }
+
     @ApiModelProperty(value = "根据详细地址匹配承运商")
     @GetMapping("/getCarrierByPlace")
     public RESTfulResult getCarrierByPlace(@RequestParam Integer placeId) {

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

@@ -19,6 +19,10 @@ public interface TmsTruckFeign {
     @PostMapping("api/v1/truckTms/tmstrucktotalresults/addTotalResult")
     Integer addTotalResult(@RequestBody(required = false) Map<String, Object> map);
 
+    //补录实绩
+    @PostMapping("api/v1/truckTms/tmstrucktotalresults/copyAllResult")
+    Integer copyAllResult(@RequestBody(required = false) Map<String, Object> map);
+
     //生成进厂作业实绩: 总实绩Id
     @PostMapping("api/v1/truckTms/tmstruckenfactoryresults/addEnFactoryResult")
     RESTfulResult addEnFactoryResult(@RequestBody(required = false) Map<String, Object> mapValue);

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

@@ -104,6 +104,9 @@ public interface IAmsSaleOrderService {
     // 钢材派发运输订单
     int dispatchSteelOrder(List<Map<String, Object>> mapList) throws Exception;
 
+    // 钢材继续装派单
+    int continueSteelOrder(List<Map<String, Object>> mapList) throws Exception;
+
     // 根据详细地址id匹配承运商
     List<Map<String,Object>> getCarrierByPlace(BigDecimal placeId);
 

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

@@ -1014,6 +1014,114 @@ public class AmsSaleOrderServiceImpl implements IAmsSaleOrderService {
         return  result;
     }
 
+    @Override
+    public int continueSteelOrder(List<Map<String, Object>> mapList) throws Exception {
+        int result = 0;
+        // 遍历每一行
+        for (Map<String,Object> map : mapList) {
+            List<OmstruckOrder> orders=omstruckOrderMapper.selectByParameters(map);
+            if(orders==null || orders.size()<=0){
+                throw new Exception("没有对应的运输订单");
+            }
+            OmstruckOrder omstruckOrder=orders.get(0);
+            // 得到车序号表主键
+            BigDecimal saleOrderMaterialId = DataChange.dataToBigDecimal(map.get("saleOrderMaterialId"));
+            // 得到承运商
+            BigDecimal carrierId = omstruckOrder.getCarrierId();
+            //查询车序号表物资
+            List<Map<String, Object>> materialList = amsSaleOrderMaterialMapper.getMaterial(saleOrderMaterialId);
+            if(materialList==null||materialList.size()<=0){
+                throw new Exception("车序号没有剩余物资");
+            }
+            // 程序根据剩余多少拼生成运输线路id 110001 到 110010(单拼到十拼)
+            BigDecimal lineId = DataChange.dataToBigDecimal(110000+materialList.size());
+            /*
+             定向派单表
+             */
+            // 通过车序号主键确认定向派单是否已存在
+            BigDecimal dispatchId0 = amsDispatchSaleOrderMapper.isDispatchExist(saleOrderMaterialId);
+            if (dispatchId0 == null || dispatchId0.toString().length() == 0) {
+                AmsDispatchSaleOrder amsDispatchSaleOrder = new AmsDispatchSaleOrder();
+                // 主键
+                BigDecimal dispatchId = amsDispatchSaleOrderMapper.selectOtherId();
+                amsDispatchSaleOrder.setDispatchId(dispatchId);
+                // 车序号表id
+                amsDispatchSaleOrder.setSaleOrderMaterialId(saleOrderMaterialId);
+                // 承运商id
+                amsDispatchSaleOrder.setCarrierId(carrierId);
+                // 派单时间和成交时间
+                amsDispatchSaleOrder.setDispatchTime(new Date());
+                amsDispatchSaleOrder.setDispatchDealTime(new Date());
+                // 成交类型
+                amsDispatchSaleOrder.setDispatchType(new BigDecimal(2));
+                // 车序号状态
+                amsDispatchSaleOrder.setDispatchStatus(new BigDecimal(2));
+                result += amsDispatchSaleOrderMapper.insertSelective(amsDispatchSaleOrder);
+            }
+            // 如果已经匹配过承运商或者给某个承运商授权过,则派车时做修改承运商操作
+            else {
+                AmsDispatchSaleOrder amsDispatchSaleOrder = amsDispatchSaleOrderMapper.selectByPrimaryKey(dispatchId0);
+                amsDispatchSaleOrder.setCarrierId(carrierId);
+                result += amsDispatchSaleOrderMapper.updateByPrimaryKeySelective(amsDispatchSaleOrder);
+            }
+            /*
+             运输订单
+             */
+            // 运输订单主键
+            BigDecimal orderId = omstruckOrderMapper.selectMaxId();
+            omstruckOrder.setOrderId(orderId);
+            // 车序号主键
+            omstruckOrder.setOrderPlanId(saleOrderMaterialId);
+            // 是否可作业
+            omstruckOrder.setCanWork(new BigDecimal(0));
+            // 下发时间
+            omstruckOrder.setOrderIssueTime(new Date());
+            // 运单状态
+            if(omstruckOrder.getOrderReceiveRefuseTime()!=null){
+                omstruckOrder.setOrderStatus(new BigDecimal(7));
+            }else{
+                omstruckOrder.setOrderStatus(new BigDecimal(4));
+            }
+            //路段顺序号
+            //omstruckOrder.setOrderLineSequence(new BigDecimal(2));
+            // 运输线路id
+            omstruckOrder.setLineId(lineId);
+            omstruckOrder.setInsertTime(new Date());
+            omstruckOrder.setInsertUsername("continue");
+            result += omstruckOrderMapper.insertSelective(omstruckOrder);
+            for (Map<String, Object> materialMap : materialList) {
+                BigDecimal materialId = (BigDecimal) materialMap.get("materialId");
+                BigDecimal materialWeight = (BigDecimal) materialMap.get("materialWeight");
+                BigDecimal materialNumber = (BigDecimal) materialMap.get("materialNumber");
+                /*
+                运输订单物资子表
+                */
+                OmstruckOrderMaterial omstruckOrderMaterial = new OmstruckOrderMaterial();
+                // 主键
+                BigDecimal orderMaterialId = omstruckOrderMaterialMapper.selectMaxId();
+                omstruckOrderMaterial.setOrderMaterialId(orderMaterialId);
+                // 运输订单id
+                omstruckOrderMaterial.setOrderId(omstruckOrder.getOrderId());
+                // 物资id
+                omstruckOrderMaterial.setMaterialId(materialId);
+                // 物资重量
+                omstruckOrderMaterial.setOrderMaterialWeight(materialWeight);
+                // 物资件数
+                omstruckOrderMaterial.setOrderMaterialNumber(materialNumber);
+                // 新增运输订单子表
+                result += omstruckOrderMaterialMapper.insertSelective(omstruckOrderMaterial);
+            }
+            // 调用websocket
+            Map<String, Object> orderIdMap = new HashMap<>();
+            orderIdMap.put("orderId", omstruckOrder.getOrderId());
+            amsSaleOrderMaterialService.pushMesToWebsocket(orderIdMap);
+            orderIdMap.put("orderIdOld", map.get("orderId"));
+            orderIdMap.put("resultTotalIdOld",map.get("resultTotalId"));
+            // 生成所有实绩
+            result += tmsTruckFeign.copyAllResult(orderIdMap);
+        }
+        return  result;
+    }
     /**
      * 根据详细地址匹配承运商
      * @param placeId

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

@@ -25,17 +25,17 @@
     <result column="PREVIOUS_ORDER_NUMBER" jdbcType="VARCHAR" property="previousOrderNumber" />
   </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, TRUCK_REMARK, WARRANTY_NUMBER, SHIPPING_ADDRESS_IDS, 
+    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, WARRANTY_NUMBER, SHIPPING_ADDRESS_IDS,
     PREVIOUS_ORDER_NUMBER
   </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.TRUCK_REMARK, t.WARRANTY_NUMBER, 
+    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, t.WARRANTY_NUMBER,
     t.SHIPPING_ADDRESS_IDS, t.PREVIOUS_ORDER_NUMBER
   </sql>
   <sql id="select">