liyg 2 роки тому
батько
коміт
ffecf49b45

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

@@ -247,6 +247,24 @@ public class AmsSaleOrderMaterialController extends BaseRESTfulController {
         }
     }
 
+    @ApiOperation(value="内转钢材派发订单")
+    @PostMapping("dispatchInwardTruckOrderBySale")
+    public RESTfulResult dispatchInwardTruckOrderBySale(@RequestBody Map<String,Object> mapValue){
+        int result = amsSaleOrderMaterialService.dispatchInwardTruckOrderBySale(mapValue);
+        if (result == -1) {
+            return failed("该销售订单的净重已达到97%");
+        }
+        else {
+            return success(result);
+        }
+    }
+
+    @ApiOperation(value = "更新内转钢材收货客户")
+    @PostMapping("/updateInwardConsignee")
+    public RESTfulResult updateInwardConsignee(@RequestBody(required = false)Map<String,Object>map){
+        return success(amsSaleOrderMaterialService.updateInwardConsignee(map));
+    }
+
     @ApiOperation(value="承运商直接选择车牌号派发运输订单")
     @PostMapping("dispatchTruckOrderByCarrier")
     public RESTfulResult dispatchTruckOrderByCarrier(@RequestBody Map<String,Object> mapValue){

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

@@ -58,4 +58,9 @@ public interface AmsSaleOrderMaterialMapper extends IBaseMapper<AmsSaleOrderMate
     List<Map<String, Object>> getPriceList(BigDecimal carrierId);
     // 查询车序号中的物资
     List<Map<String, Object>> getMaterial(BigDecimal saleOrderMaterialId);
+    //更新发站
+    int updateSendStation(Map<String, Object> mapValue);
+
+    //更新收货客户
+    int updateInwardConsignee(Map<String, Object> mapValue);
 }

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

@@ -58,6 +58,10 @@ public interface IAmsSaleOrderMaterialService{
     // 销售直接派发销售订单
     int dispatchTruckOrderBySale(Map<String, Object> mapValue);
 
+    //内转钢材派发订单
+    int dispatchInwardTruckOrderBySale(Map<String, Object> mapValue);
+
+    int updateInwardConsignee(Map<String, Object> mapValue);
     // 承运商直接派发销售订单
     int dispatchTruckOrderByCarrier(Map<String, Object> mapValue);
 

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

@@ -518,6 +518,168 @@ public class AmsSaleOrderMaterialServiceImpl implements IAmsSaleOrderMaterialSer
         return result;
     }
 
+    @Override
+    public int updateInwardConsignee(Map<String, Object> mapValue) {
+        return amsSaleOrderMaterialMapper.updateInwardConsignee(mapValue);
+    }
+
+    /**
+     * 内转钢材派发订单
+     * @param mapValue
+     * @return
+     */
+    @Override
+    public int dispatchInwardTruckOrderBySale(Map<String, Object> mapValue) {
+        int result = 0;
+        // 得到列内容
+        List<Map<String,Object>> mapList = (List<Map<String, Object>>) mapValue.get("mapList");
+        // 销售订单主键
+        BigDecimal saleOrderId = DataChange.dataToBigDecimal(mapValue.get("saleOrderId"));
+        // 车序号计数
+        int count = 1;
+        /*
+        车序号表,只生成一次,对应多个子表(物资)
+        */
+        AmsSaleOrderMaterial amsSaleOrderMaterial = new AmsSaleOrderMaterial();
+        // 主键
+        BigDecimal saleOrderMaterialId = amsSaleOrderMaterialMapper.selectMaxId();
+        amsSaleOrderMaterial.setSaleOrderMaterialId(saleOrderMaterialId);
+        // 销售订单主键
+        amsSaleOrderMaterial.setSaleOrderId(saleOrderId);
+        // 车序号
+        amsSaleOrderMaterial.setSaleOrderMaterialTruckNo(new BigDecimal(count));
+        // 下发状态
+        amsSaleOrderMaterial.setIssueStatus(new BigDecimal(2));
+        // 遍历每一个列
+        for (Map<String, Object> map : mapList) {
+            //更新发站
+            amsSaleOrderMaterialMapper.updateSendStation(map);
+            // 销售订单-物资中间表id
+            BigDecimal saleMaterialId = DataChange.dataToBigDecimal(map.get("saleMaterialId"));
+            // 物资id
+            BigDecimal materialId = DataChange.dataToBigDecimal(map.get("materialId"));
+            // 承运商id
+            BigDecimal carrierId = DataChange.dataToBigDecimal(map.get("carrierId"));
+            // 运输线路id
+            BigDecimal lineId = DataChange.dataToBigDecimal(map.get("lineId"));
+            // 通过线路id判断是否是钢材
+            BigDecimal isSteel = amsSaleOrderMaterialMapper.getIsSteel(lineId);
+            // 物资重量
+            BigDecimal materialNumber = DataChange.dataToBigDecimal(map.get("materialWeight"));
+            // 车牌号
+            String capacityNumber = (String) map.get("capacityNumber");
+            // 得到运力id
+            BigDecimal capacityId = amsSaleOrderMaterialMapper.getCapacityId(capacityNumber);
+            // 收货方姓名
+            String consigneeName = String.valueOf(map.get("consigneeName"));
+            // 收货方电话
+            //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));
+            }
+
+            /*
+             车序号与物资子表
+             */
+            AmsSaleTrucknoMaterial amsSaleTrucknoMaterial = new AmsSaleTrucknoMaterial();
+            // 主键
+            BigDecimal truckNoMaterialId = amsSaleTrucknoMaterialMapper.selectMaxId();
+            amsSaleTrucknoMaterial.setTrucknoMaterialId(truckNoMaterialId);
+            // 销售订单-物资中间表id
+            amsSaleTrucknoMaterial.setMaterialId(saleMaterialId);
+            // 车序号主键
+            amsSaleTrucknoMaterial.setSaleOrderMaterialId(saleOrderMaterialId);
+            // 物资重量
+            amsSaleTrucknoMaterial.setSaleOrderMaterialNumber(materialNumber);
+            /*
+             定向派单表
+             */
+            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(0));
+            // 车序号状态
+            amsDispatchSaleOrder.setDispatchStatus(new BigDecimal(2));
+            /*
+             运输订单
+             */
+            OmstruckOrder omstruckOrder = new OmstruckOrder();
+            // 运输订单主键
+            BigDecimal orderId = omstruckOrderMapper.selectMaxId();
+            omstruckOrder.setOrderId(orderId);
+            // 车序号主键
+            omstruckOrder.setOrderPlanId(saleOrderMaterialId);
+            //添加承运商ID 和 运价ID
+//            Object priceId = map.get("priceId");
+            Object priceId = map.get("priceId");
+            if (priceId != null) {
+                omstruckOrder.setPriceId(DataChange.dataToBigDecimal(priceId));
+            }
+            omstruckOrder.setCarrierId(carrierId);
+            // 运输订单号
+            omstruckOrder.setOrderNumber(DataChange.generateEightDigitsNumber("WYSDD",orderId.intValue()));
+            // 运力id
+            omstruckOrder.setCapacityId(capacityId);
+            // 承运商
+            omstruckOrder.setCarrierId(carrierId);
+            // 下发时间
+            omstruckOrder.setOrderIssueTime(new Date());
+            // 运单状态
+            omstruckOrder.setOrderStatus(new BigDecimal(4));
+            // 订单类型
+            omstruckOrder.setOrderType(new BigDecimal(4));
+            // 运输线路id
+            omstruckOrder.setLineId(lineId);
+            omstruckOrder.setInsertTime(new Date());
+            /*
+             运输订单子表
+             */
+            OmstruckOrderMaterial omstruckOrderMaterial = new OmstruckOrderMaterial();
+            // 主键
+            BigDecimal orderMaterialId = omstruckOrderMaterialMapper.selectMaxId();
+            omstruckOrderMaterial.setOrderMaterialId(orderMaterialId);
+            // 运输订单id
+            omstruckOrderMaterial.setOrderId(orderId);
+            // 物资id
+            omstruckOrderMaterial.setMaterialId(materialId);
+            // 物资重量
+            omstruckOrderMaterial.setOrderMaterialWeight(materialNumber);
+            omstruckOrderMaterial.setInsertTime(new Date());
+            // 新增车序号表
+            result += amsSaleOrderMaterialMapper.insertSelective(amsSaleOrderMaterial);
+            // 新增车序号-物资中间表
+            result += amsSaleTrucknoMaterialMapper.insertSelective(amsSaleTrucknoMaterial);
+            // 新增定向派单表
+            result += amsDispatchSaleOrderMapper.insertSelective(amsDispatchSaleOrder);
+            // 新增运输订单
+            result += omstruckOrderMapper.insertSelective(omstruckOrder);
+            // 新增运输订单子表
+            result += omstruckOrderMaterialMapper.insertSelective(omstruckOrderMaterial);
+            // 调用websocket
+            Map<String,Object> orderIdMap = new HashMap<>();
+            orderIdMap.put("orderId",orderId);
+            pushMesToWebsocket(orderIdMap);
+            // 生成运输执行总实绩
+            result += tmsTruckFeign.addTotalResult(orderIdMap);
+            // 车序号累加
+            count++;
+        }
+
+        return result;
+    }
+
     /**
      * 承运商直接派发销售订单
      * @param mapValue

+ 2 - 2
src/main/resources/application-dev.yml

@@ -15,7 +15,7 @@ openfeign:
   ColumnDataFeign:
     url: ${COLUMNDATAFEIGN_URL:172.16.33.166:8083}
   TmsTruckFeign:
-    url: ${TMSTRUCKFEIGN_URL:172.16.33.162:8008}
+    url: ${TMSTRUCKFEIGN_URL:localhost:8088}
   ImFeign:
     url: ${IMFEIGN_URL:172.16.33.166:8055}
   JoinFeign:
@@ -24,4 +24,4 @@ openfeign:
 
   #测试环境端口
 server:
-    port: 8015
+    port: 8079

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

@@ -541,6 +541,7 @@
       #{item.saleOrderMaterialId,jdbcType=DECIMAL}
     </foreach>
   </update>
+
   <delete id="batchDelete" parameterType="java.util.List">
     delete from AMS_SALE_ORDER_MATERIAL
     where SALE_ORDER_MATERIAL_ID in
@@ -827,4 +828,17 @@
                      ON ASM.SALE_MATERIAL_ID = ASTM.MATERIAL_ID
     WHERE ASTM.SALE_ORDER_MATERIAL_ID = #{saleOrderMaterialId}
   </select>
+
+  <update id="updateSendStation">
+    update
+      TMSTRAIN_PLEASE_APPROVE_RESULT
+    set SEND_STATION_ID=#{sendStationId}
+    WHERE RAIL_PLAN_ID=#{saleOrderId}
+  </update>
+  <update id="updateInwardConsignee">
+    update
+      AMS_SALE_ORDER
+    set RECEIVE_ID=#{consigneeId}
+    WHERE SALE_ORDER_ID=#{saleOrderId}
+  </update>
 </mapper>