瀏覽代碼

修改装车作业

liyg 2 年之前
父節點
當前提交
85fe775c88

+ 20 - 1
src/main/java/com/steerinfo/dil/controller/TmstrainLoadingResultController.java

@@ -255,7 +255,7 @@ public class TmstrainLoadingResultController extends BaseRESTfulController {
 
     @ApiOperation(value = "国产矿物流新增装车")
     @PostMapping(value = "/addDomesticLoadResult")
-    public RESTfulResult addDomesticLoadResult(@RequestBody(required = false) List<Map<String, Object>> list) {
+    public RESTfulResult addDomesticLoadResult(@RequestBody(required = false) List<Map<String, Object>> list) throws Exception {
         return success(tmstrainLoadingResultService.addDomesticLoadResult(list));
     }
 
@@ -265,4 +265,23 @@ public class TmstrainLoadingResultController extends BaseRESTfulController {
         return success(tmstrainLoadingResultService.updateDomesticLoadResult(map));
     }
 
+    @ApiOperation(value = "根据物资名和外轮船名查询采购订单号")
+    @PostMapping(value = "/getPurchaseOrderList")
+    public RESTfulResult getPurchaseOrderList(@RequestBody(required = false) Map<String, Object> map,
+                                              Integer apiId,
+                                              Integer pageNum,
+                                              Integer pageSize,
+                                              String materialName,
+                                              String resultForeignShipName) {
+        if(materialName!=null)
+            map.put("materialName",materialName);
+        if(resultForeignShipName!=null)
+            map.put("resultForeignShipName",resultForeignShipName);
+        //不分页筛选数据
+        PageHelper.startPage(pageNum, pageSize);
+        //分页数据
+        List<Map<String, Object>> mes = tmstrainLoadingResultService.getPurchaseOrderList(map);
+        PageListAdd pageList = columnDataUtil.tableColumnData(apiId, null, mes);
+        return success(pageList);
+    }
 }

+ 12 - 0
src/main/java/com/steerinfo/dil/mapper/TmstrainLoadingResultMapper.java

@@ -62,4 +62,16 @@ public interface TmstrainLoadingResultMapper extends IBaseMapper<TmstrainLoading
 
     //查询没有采购订单号的装车实绩
     List<Map<String, Object>> getNoPurOrderIdLoadResult(Map<String, Object> map);
+
+    //根据发站名查发站id
+    BigDecimal getSendStationId(String sendStationName);
+
+    //获取最大发站id
+    BigDecimal getMaxSendStationId();
+
+    //添加发站
+    Integer addSendStation(Map<String,Object> map);
+
+    //根据物资名和外轮船名查询采购订单号
+    List<Map<String,Object>> getPurchaseOrderList(Map<String,Object> map);
 }

+ 3 - 3
src/main/java/com/steerinfo/dil/model/TmstrainLoadingResult.java

@@ -171,7 +171,7 @@ public class TmstrainLoadingResult implements IBasePO<BigDecimal> {
      * 发货日期(SEND_DATE,TIMESTAMP,7)
      */
     @ApiModelProperty(value="发货日期",required=false)
-    private Date sendDate;
+    private String sendDate;
 
     @TableField(exist = false)
     @ApiModelProperty(value = "车皮号列表")
@@ -397,11 +397,11 @@ public class TmstrainLoadingResult implements IBasePO<BigDecimal> {
         this.sendRequest = sendRequest;
     }
 
-    public Date getSendDate() {
+    public String getSendDate() {
         return sendDate;
     }
 
-    public void setSendDate(Date sendDate) {
+    public void setSendDate(String sendDate) {
         this.sendDate = sendDate;
     }
 

+ 3 - 2
src/main/java/com/steerinfo/dil/service/ITmstrainLoadingResultService.java

@@ -51,7 +51,7 @@ public interface ITmstrainLoadingResultService{
     int addTrainLoadResultForConverted(Map<String, Object> map);
 
     //添加国产矿装车实绩
-    int addDomesticLoadResult(List<Map<String, Object>> list);
+    int addDomesticLoadResult(List<Map<String, Object>> list) throws Exception;
 
     //补录采购订单信息
     int updateDomesticLoadResult(Map<String, Object> map);
@@ -62,5 +62,6 @@ public interface ITmstrainLoadingResultService{
     //通过装车实绩主键查询关联的物资信息与车牌号
     List<Map<String, Object>> getMaterialAndCarByLoadingId(Map<String, Object> map);
 
-
+    //根据物资名和外轮船名查询采购订单号
+    List<Map<String,Object>> getPurchaseOrderList(Map<String,Object> map);
 }

+ 56 - 32
src/main/java/com/steerinfo/dil/service/impl/TmstrainLoadingResultServiceImpl.java

@@ -14,10 +14,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 /**
  * TmstrainLoadingResult服务实现:
@@ -134,37 +131,54 @@ public class TmstrainLoadingResultServiceImpl implements ITmstrainLoadingResultS
      * @param list
      * @return
      */
-    public int addDomesticLoadResult(List<Map<String, Object>> list){
-        TmstrainLoadingResult tmstrainLoadingResult=new TmstrainLoadingResult();
-        List<String> wagonNoList = tmstrainLoadingResult.getWagonNoList();
-        //通过到站ID匹配计量衡 如果是老区轨道衡或者是新区轨道衡 则匹配轨道衡
-        BigDecimal arrivalStationId = tmstrainLoadingResult.getArrivalStationId();
-        //如果到站ID是老区轨道衡
-        if(arrivalStationId.intValue() == 1){
-            tmstrainLoadingResult.setTrainCalculateId(new BigDecimal(13)); //设置计量衡为 铁专线(老区)
-            tmstrainLoadingResult.setSendRequest(new BigDecimal(1));
-        }
-        //添加常规字段
-        addRegularField(tmstrainLoadingResult);
-        //通过采购订单号获得批次ID
-        BigDecimal purchaseOrderId = tmstrainLoadingResult.getPurchaseOrderRailPlanId();
-        if(purchaseOrderId != null){
-            BigDecimal batchId = tmstrainLoadingResultMapper.getBatchIdByPurOrderId(purchaseOrderId);
-            tmstrainLoadingResult.setBatchId(batchId);
-        }
-        int count = 0;
-        for (String wagonNo : wagonNoList) {
-            tmstrainLoadingResult.setResultWagonNo(wagonNo);
+    public int addDomesticLoadResult(List<Map<String, Object>> list) throws Exception {
+        //装车实绩list
+        List<TmstrainLoadingResult> loadingResults=new ArrayList<>();
+        for(Map<String,Object> map:list){
+            TmstrainLoadingResult temp=new TmstrainLoadingResult();
+            //设置序列号主键
             BigDecimal maxId = tmstrainLoadingResultMapper.selectMaxId();
-            //生成主键id
-            tmstrainLoadingResult.setResultId(maxId);
+            temp.setResultId(maxId);
+            //从map中取值创建装车对象
+            temp.setArrivalStationId(new BigDecimal(map.get("arrivalStationId").toString()) );//到站id
+            temp.setMaterialId(new BigDecimal(map.get("materialId").toString()));//物资id
+            temp.setResultLoadingDate(new Date((Long)map.get("resultLoadingDate")));//装车日期
+            temp.setResultType(new BigDecimal(map.get("resultType").toString()));
+            temp.setSendUnitId(new BigDecimal(map.get("sendUnitId").toString()));//发货单位id
+            temp.setSendDate((String)map.get("sendDate").toString());
+            temp.setResultRemarks((String) map.get("resultRemarks"));
+            temp.setResultWagonNo((String) map.get("wagonNo"));//车皮号
+            //取得发站名,查询是否存在该站台,如果存在则绑定,否则新增该站台再绑定
+            String sendStationName=(String) map.get("sendStation");//发站名
+            BigDecimal sendStationId=tmstrainLoadingResultMapper.getSendStationId(sendStationName);
+            if(sendStationId==null){
+               //如果没有该站,新增
+                sendStationId=tmstrainLoadingResultMapper.getMaxSendStationId().add(new BigDecimal(1));
+                Map<String,Object> station=new HashMap<>();
+                station.put("arrivalId",sendStationId);
+                station.put("arrivalName",sendStationName);
+                station.put("insertTime",new Date());
+                station.put("updateTime",new Date());
+                if(tmstrainLoadingResultMapper.addSendStation(station)<=0){
+                    throw new Exception("添加发站失败");
+                }
+            }
+            temp.setSendStationId(sendStationId);
+            //添加常规字段
+            addRegularField(temp);
             //通过车皮号计算车皮标重
-            int wagonWeight = calculateWagonWeight(tmstrainLoadingResult.getResultWagonNo());
-            tmstrainLoadingResult.setResultBillableTonnage(new BigDecimal(wagonWeight));
-            count += tmstrainLoadingResultMapper.insertSelective(tmstrainLoadingResult);
-            //添加火运总实绩
-            count += addTotalResult(maxId);
+            temp.setResultBillableTonnage(new BigDecimal(calculateWagonWeight(temp.getResultWagonNo())));
+            //通过到站ID匹配计量衡 如果是老区轨道衡或者是新区轨道衡 则匹配轨道衡
+            //如果到站ID是老区轨道衡
+            BigDecimal arrivalStationId = temp.getArrivalStationId();
+            if(arrivalStationId.intValue() == 1){
+                temp.setTrainCalculateId(new BigDecimal(13)); //设置计量衡为 铁专线(老区)
+                temp.setSendRequest(new BigDecimal(1));
+            }
+            loadingResults.add(temp);
         }
+        //批量插入
+        int count = tmstrainLoadingResultMapper.batchInsert(loadingResults);
         return count;
     }
 
@@ -398,4 +412,14 @@ public class TmstrainLoadingResultServiceImpl implements ITmstrainLoadingResultS
     public List<Map<String, Object>> getMaterialAndCarByLoadingId(Map<String, Object> map) {
         return tmstrainLoadingResultMapper.getMaterialAndCarByLoadingId(map);
     }
+
+    /**
+     * 根据物资名和外轮船名查询采购订单号
+     * @param map
+     * @return
+     */
+    @Override
+    public List<Map<String, Object>> getPurchaseOrderList(Map<String, Object> map) {
+        return tmstrainLoadingResultMapper.getPurchaseOrderList(map);
+    }
 }

+ 76 - 10
src/main/resources/com/steerinfo/dil/mapper/TmstrainLoadingResultMapper.xml

@@ -28,7 +28,7 @@
     <result column="UNLOADING_POINT_ID" jdbcType="DECIMAL" property="unloadingPointId" />
     <result column="SEND_UNIT_ID" jdbcType="DECIMAL" property="sendUnitId" />
     <result column="SEND_REQUEST" jdbcType="DECIMAL" property="sendRequest" />
-    <result column="SEND_DATE" jdbcType="TIMESTAMP" property="sendDate" />
+    <result column="SEND_DATE" jdbcType="VARCHAR" property="sendDate" />
   </resultMap>
   <sql id="columns">
     RESULT_ID, PURCHASE_ORDER_RAIL_PLAN_ID, RESULT_WAGON_NO, RESULT_BILLABLE_TONNAGE, 
@@ -328,7 +328,7 @@
       #{insertUpdateRemark,jdbcType=VARCHAR}, #{deleted,jdbcType=DECIMAL}, #{sendStationId,jdbcType=DECIMAL}, 
       #{arrivalStationId,jdbcType=DECIMAL}, #{resultType,jdbcType=DECIMAL}, #{trainCalculateId,jdbcType=DECIMAL}, 
       #{unloadingPointId,jdbcType=DECIMAL}, #{sendUnitId,jdbcType=DECIMAL}, #{sendRequest,jdbcType=DECIMAL}, 
-      #{sendDate,jdbcType=TIMESTAMP})
+      #{sendDate,jdbcType=VARCHAR})
   </insert>
   <insert id="insertSelective" parameterType="com.steerinfo.dil.model.TmstrainLoadingResult">
     insert into TMSTRAIN_LOADING_RESULT
@@ -495,7 +495,7 @@
         #{sendRequest,jdbcType=DECIMAL},
       </if>
       <if test="sendDate != null">
-        #{sendDate,jdbcType=TIMESTAMP},
+        #{sendDate,jdbcType=VARCHAR},
       </if>
     </trim>
   </insert>
@@ -526,7 +526,7 @@
       UNLOADING_POINT_ID = #{unloadingPointId,jdbcType=DECIMAL},
       SEND_UNIT_ID = #{sendUnitId,jdbcType=DECIMAL},
       SEND_REQUEST = #{sendRequest,jdbcType=DECIMAL},
-      SEND_DATE = #{sendDate,jdbcType=TIMESTAMP}
+      SEND_DATE = #{sendDate,jdbcType=VARCHAR}
     where RESULT_ID = #{resultId,jdbcType=DECIMAL}
   </update>
   <update id="updateByPrimaryKeySelective" parameterType="com.steerinfo.dil.model.TmstrainLoadingResult">
@@ -608,7 +608,7 @@
         SEND_REQUEST = #{sendRequest,jdbcType=DECIMAL},
       </if>
       <if test="sendDate != null">
-        SEND_DATE = #{sendDate,jdbcType=TIMESTAMP},
+        SEND_DATE = #{sendDate,jdbcType=VARCHAR},
       </if>
     </set>
     where RESULT_ID = #{resultId,jdbcType=DECIMAL}
@@ -627,7 +627,7 @@
   </select>
   <insert id="batchInsert" parameterType="java.util.List">
     insert into TMSTRAIN_LOADING_RESULT 
-      (RESULT_ID, 
+      (RESULT_ID,
       PURCHASE_ORDER_RAIL_PLAN_ID, RESULT_WAGON_NO, 
       RESULT_BILLABLE_TONNAGE, RESULT_ISCLEAR, 
       CAPACITY_ID, MATERIAL_ID, RESULT_MATERIAL_NUMBER, 
@@ -641,8 +641,8 @@
       UNLOADING_POINT_ID, SEND_UNIT_ID, 
       SEND_REQUEST, SEND_DATE)
     ( <foreach collection="list" item="item" separator="union all"> 
-   select  
-      #{item.resultId,jdbcType=DECIMAL}, 
+   select
+      #{item.resultId,jdbcType=DECIMAL},
       #{item.purchaseOrderRailPlanId,jdbcType=DECIMAL}, #{item.resultWagonNo,jdbcType=VARCHAR}, 
       #{item.resultBillableTonnage,jdbcType=DECIMAL}, #{item.resultIsclear,jdbcType=VARCHAR}, 
       #{item.capacityId,jdbcType=DECIMAL}, #{item.materialId,jdbcType=DECIMAL}, #{item.resultMaterialNumber,jdbcType=DECIMAL}, 
@@ -654,7 +654,7 @@
       #{item.deleted,jdbcType=DECIMAL}, #{item.sendStationId,jdbcType=DECIMAL}, #{item.arrivalStationId,jdbcType=DECIMAL}, 
       #{item.resultType,jdbcType=DECIMAL}, #{item.trainCalculateId,jdbcType=DECIMAL}, 
       #{item.unloadingPointId,jdbcType=DECIMAL}, #{item.sendUnitId,jdbcType=DECIMAL}, 
-      #{item.sendRequest,jdbcType=DECIMAL}, #{item.sendDate,jdbcType=TIMESTAMP} from dual  
+      #{item.sendRequest,jdbcType=DECIMAL}, #{item.sendDate,jdbcType=VARCHAR} from dual
    </foreach> )
   </insert>
   <update id="batchUpdate" parameterType="java.util.List">
@@ -766,7 +766,7 @@
        </foreach>
        ,SEND_DATE=
        <foreach close="end" collection="list" index="index" item="item" open="case RESULT_ID" separator=" ">
-          when #{item.resultId,jdbcType=DECIMAL} then #{item.sendDate,jdbcType=TIMESTAMP}
+          when #{item.resultId,jdbcType=DECIMAL} then #{item.sendDate,jdbcType=VARCHAR}
        </foreach>
      where RESULT_ID in 
      <foreach close=")" collection="list" index="index" item="item" open="(" separator=",">
@@ -1374,4 +1374,70 @@
       order by "insertTime" desc
     </if>
   </select>
+
+<!--  根据发站名查发站id-->
+  <select id="getSendStationId" parameterType="java.lang.String" resultType="java.math.BigDecimal">
+    SELECT ARRIVAL_ID
+    FROM RMSTRAIN_ARRIVAL_SEND
+    WHERE ARRIVAL_NAME=#{sendStationName}
+  </select>
+
+<!--  获取最大发站id-->
+  <select id="getMaxSendStationId" resultType="java.math.BigDecimal">
+    SELECT MAX(ARRIVAL_ID) FROM RMSTRAIN_ARRIVAL_SEND
+  </select>
+
+<!--  添加发站-->
+  <insert id="addSendStation" parameterType="java.util.Map">
+    INSERT INTO RMSTRAIN_ARRIVAL_SEND
+        (ARRIVAL_ID,ARRIVAL_NAME,INSERT_TIME,UPDATE_TIME)
+        VALUES(#{arrivalId}, #{arrivalName},#{insertTime},#{updateTime})
+  </insert>
+<!--  根据物资名和外轮船名查询采购订单号-->
+  <select id="getPurchaseOrderList" parameterType="java.util.Map" resultType="java.util.Map">
+    SELECT
+    *
+    FROM(
+    SELECT
+    apo.INSERT_TIME as "insertTime",
+    apo.PURCHASE_ORDER_NO as "purchaseOrderNo",
+    apo.PURCHASE_ORDER_DATE as "purchaseOrderDate",
+    rm.MATERIAL_NAME as "materialName",
+    rm.MATERIAL_ID  as "materialId",
+    db.RESULT_FOREIGN_SHIP_NAME as "resultForeignShipName",
+    rsu.SUPPLIER_NAME as "supplierName",
+    rsu.SUPPLIER_ID as "supplierId",
+    rsb.SHIPPER_NAME as "buyerName",
+    apo.PURCHASE_ORDER_BUYER as "purchaseOrderBuyer",
+    apo.PUCHASE_ORDER_MATERIAL_NUMBER as "purChaseOrderMaterialNumber",
+    rsr.SHIPPER_NAME as "receiverName",
+    rsr.SHIPPER_ID   as   "receiverUnitId",
+    apo.PUCHASE_ORDER_DELIVERY_DATE as "purchaseOrderDeliveryDate",
+    apo.INSERT_UPDATE_REMARK as "insertUpdateRemark",
+    apo.PURCHASE_ORDER_ID as "purchaseOrderId",
+    apo.PURCHASING_ORGANIZATION_ID  "orgId"
+    FROM AMS_PURCHASE_ORDER apo
+    LEFT JOIN DIL_BATCH db
+    ON apo.BATCH_ID = db.BATCH_ID
+    LEFT JOIN RMS_MATERIAL rm
+    ON rm.MATERIAL_ID = db.MATERIAL_ID
+    LEFT JOIN RMS_SUPPLIER rsu
+    ON apo.SUPPLIER_UNIT_ID = rsu.SUPPLIER_ID
+    LEFT JOIN RMS_SHIPPER rsb
+    ON apo.PURCHASING_ORGANIZATION_ID = rsb.SHIPPER_ID
+    LEFT JOIN RMS_SHIPPER rsr
+    ON apo.RECEIVE_UNIT_ID = rsr.SHIPPER_ID
+    where
+    apo.DELETED = 0
+    and rm.MATERIAL_NAME is not null
+    and db.RESULT_FOREIGN_SHIP_NAME is not null
+    and rsu.SUPPLIER_NAME is not null
+    <if test="materialName != null and materialName!=''.toString()" >
+      and rm.MATERIAL_NAME like concat(concat('%',#{materialName}),'%')
+    </if>
+    <if test="resultForeignShipName != null and resultForeignShipName!=''.toString()">
+      and db.RESULT_FOREIGN_SHIP_NAME like concat(concat('%',#{resultForeignShipName}),'%')
+    </if>
+    )
+  </select>
 </mapper>