liyg 2 年之前
父節點
當前提交
d50e1cf0ed

+ 11 - 0
src/main/java/com/steerinfo/dil/controller/WmsInboundResultController.java

@@ -1,6 +1,7 @@
 package com.steerinfo.dil.controller;
 
 import com.steerinfo.dil.feign.ESFeign;
+import com.steerinfo.dil.feign.OmsFeign;
 import com.steerinfo.dil.mapper.WmspGridMaterialMapper;
 import com.steerinfo.dil.model.*;
 import com.steerinfo.dil.service.ICommonService;
@@ -72,6 +73,8 @@ public class WmsInboundResultController extends BaseRESTfulController {
     WmsInboundScanResultServiceImpl wmsInboundScanResultService;
     @Autowired
     WmspSendReceiveServiceImpl wmspSendReceiveService;
+    @Autowired
+    OmsFeign omsFeign;
 
     private final SimpleDateFormat sdfDateTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
     /**
@@ -408,6 +411,14 @@ public class WmsInboundResultController extends BaseRESTfulController {
                 int status3= wmspInboundDistributeService.updateDistributeStatus(wmspInboundDistribute.getDistributeId().toString());
                 // wmspSendReceiveService.addInBoundSendReceive();
             }
+            //如果是倒库
+            Map<String,Object> inboundScanDetail=wmsInboundScanResultService.getOrderTypeByInboundId(mapList.get(0).get("resultId").toString());
+            if(DataChange.dataToBigDecimal(inboundScanDetail.get("orderType")).intValue()==25){
+                //关闭运输订单
+                omsFeign.closeSteelOrderType4(DataChange.dataToBigDecimal(inboundScanDetail.get("orderId")));
+                //生成计费详单
+
+            }
             return success("下发成功");
     }
 //    /**

+ 15 - 1
src/main/java/com/steerinfo/dil/controller/WmsInboundScanResultController.java

@@ -64,11 +64,25 @@ public class WmsInboundScanResultController extends BaseRESTfulController {
     @ApiOperation(value = "新增扫描吊牌实绩")
     @PostMapping("/insertResult")
     @Transactional
-    public  synchronized RESTfulResult insertResult(@RequestBody(required = false)Map<String,Object>map) throws ParseException {
+    public  synchronized RESTfulResult insertResult(@RequestBody(required = false)Map<String,Object>map) throws Exception {
         //这里需要的参数包括 扫码人账号 userId、二维码信息 resultMaterial
         //首先判断二维码是否已经被扫过了
         //判断条件是查询扫描实绩判断是否已经存在改唯一标识码并且扫码人是否是自己
         System.out.println(map.get("resultMaterial"));
+        //订单类型为倒库,直接扫码所有并返回数据
+        int orderType=wmsInboundScanResultService.getOrderTypeByNum((String)map.get("resultMaterial"));
+        if(orderType == 25){
+            //根据出库数据查询入库扫码实绩
+            List<Map<String,Object>> inboundOld= wmsInboundScanResultService.findInboundScanResult((String)map.get("resultMaterial"));
+            //批量新增扫码实绩
+            if(inboundOld!=null || inboundOld.size()>0)
+                wmsInboundScanResultService.createInboundScanResultByFind(inboundOld,map);
+            else
+                System.out.println("物资暂未出库,请先出库再入库!");
+            //返回新建的扫码实绩数据
+            List<Map<String,Object>> mapList= wmsInboundScanResultService.noIssueScanResultList(map.get("userName").toString());
+            return  success(mapList);
+        }
         int isExist= wmsInboundScanResultService.isExist(map.get("userName").toString(),map.get("resultMaterial").toString().substring(0,map.get("resultMaterial").toString().length()-1));
         //通过用户ID查询、当前扫描没有下发的物质、最终展示的集合
         List<Map<String,Object>>mapList= wmsInboundScanResultService.noIssueScanResultList(map.get("userName").toString());

+ 18 - 0
src/main/java/com/steerinfo/dil/feign/BmsTruckFeign.java

@@ -0,0 +1,18 @@
+package com.steerinfo.dil.feign;
+
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+
+import java.util.Map;
+
+/**
+ * @ author    :luobang
+ * @ time      :2022/03/24 15:02
+ */
+
+@FeignClient(value = "dil-bmstruck-api-dev", url = "${openfeign.BmsTruckFeign.url}")
+public interface BmsTruckFeign {
+
+    @PostMapping("api/v1/bmstruck/bmstruckdetailsorder/addInwardDetailsOrder")
+    int addDetailsOrder(Map<String,Object> map);
+}

+ 9 - 0
src/main/java/com/steerinfo/dil/mapper/WmspInboundScanResultMapper.java

@@ -134,4 +134,13 @@ public interface WmspInboundScanResultMapper extends IBaseMapper<WmspInboundScan
 
     int isExistInboundScanResult(String resultMaterial);
     int isExistInboundTwo(String resultMaterial);
+
+    //根据运输订单号取得订单类型
+    int getOrderTypeByNum(String orderNumber);
+
+    //根据入库实绩id查询运输订单id和类型
+    Map<String, Object> getOrderTypeByInboundId(String resultId);
+
+    //根据运输订单号查询入库扫描实绩
+    List<Map<String, Object>> findInboundScanResult(String orderNumber);
 }

+ 12 - 1
src/main/java/com/steerinfo/dil/service/IWmsInboundScanResultService.java

@@ -117,7 +117,6 @@ public interface IWmsInboundScanResultService {
     List<Map<String, Object>> noIssueScanResult(String userName);
     //通过扫描信息创建扫描实绩
     Map<String, Object> createInboundScanResultByResultMaterial(Integer scanedCount,String userId,String resultMaterial) throws ParseException;
-
     List<Map<String, Object>> noIssueScanResultList(String userName);
 //    根据index找到对应的成品并改变其入库状态
     int changeInboundIscomplete(BigDecimal index);
@@ -134,4 +133,16 @@ public interface IWmsInboundScanResultService {
 
     int isExistInboundScanResult(String substring);
 
+    //根据运输订单号取得订单类型
+    int getOrderTypeByNum(String orderNum);
+
+    //根据入库实绩id查询运输订单id和类型
+    Map<String, Object> getOrderTypeByInboundId(String resultId);
+
+    //根据运输订单号查询入库扫描实绩
+    List<Map<String, Object>> findInboundScanResult(String orderNum);
+
+    //通过查询结果批量地创建创建扫描实绩
+    int createInboundScanResultByFind(List<Map<String,Object>> list,Map<String,Object> map) throws Exception;
+
 }

+ 62 - 4
src/main/java/com/steerinfo/dil/service/impl/WmsInboundScanResultServiceImpl.java

@@ -11,14 +11,12 @@ import com.steerinfo.dil.service.IWmsInboundScanResultService;
 import com.steerinfo.dil.service.IWmspInboundGroupService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 /**
  * @author luobang
@@ -317,6 +315,51 @@ public class WmsInboundScanResultServiceImpl implements IWmsInboundScanResultSer
 
     }
 
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public int createInboundScanResultByFind(List<Map<String, Object>> list, Map<String, Object> map) throws Exception {
+        List<WmspInboundScanResult> results=new ArrayList<>();
+        String userName=map.get("userName").toString();
+        for(Map<String,Object> temp:list){
+            //创建入库扫描实绩、并且给对象赋值
+            WmspInboundScanResult wmspInboundScanResult=new WmspInboundScanResult();
+            //设置自增主键
+            wmspInboundScanResult.setId(count());
+            //获取班次次序的吊牌信息
+            wmspInboundScanResult.setShiftOrder(temp.get("shiftOrder").toString());
+            //分组
+            //根据用户名和分组状态查询到分组信息
+            BigDecimal groupId= wmspInboundGroupService.getGroupIdByUserName(userName);
+            wmspInboundScanResult.setInboundGroupId(groupId);
+            //吊钢工扫描吊牌结果
+            wmspInboundScanResult.setResultMaterial(temp.get("resultMaterial").toString());
+            //扫描吊牌信息
+            wmspInboundScanResult.setResultLoadTime(new Date());
+            //新增钢材物资ID
+            Map<String,Object> materialSteel = rmsMaterialSteelService.insertRmsMaterialSteel2((String)temp.get("resultMaterial"));
+            wmspInboundScanResult.setMaterialId(new BigDecimal(materialSteel.get("materialSteelId").toString()));
+            //创建用户
+            //insertUsername
+            wmspInboundScanResult.setInboundAbnormalis(new BigDecimal(0));
+            //设置入库物资件数,默认一件
+            wmspInboundScanResult.setInboundMaterialNumber(new BigDecimal(1));
+            // 状态:0:未下发;1:已下发
+            wmspInboundScanResult.setResultStatus(new BigDecimal(0));
+            //吊钢工已扫物资次数 ,目前已扫描为没有下发的物资
+            wmspInboundScanResult.setResultNumber(new BigDecimal(list.size()));
+            //逻辑删除:1:删除,0:未删除
+            wmspInboundScanResult.setResultDeleted(new BigDecimal(0));
+            //扫码用户
+            wmspInboundScanResult.setInsertUsername(userName);
+            //创建时间
+            wmspInboundScanResult.setInsertTime(new Date());
+            //插入列表
+            results.add(wmspInboundScanResult);
+        }
+        //批量插入
+        return wmspInboundScanResultMapper.batchInsert(results);
+    }
+
     @Override
     public List<Map<String, Object>> noIssueScanResultList(String userName) {
         return wmspInboundScanResultMapper.noIssueScanResultList(userName);
@@ -399,4 +442,19 @@ public class WmsInboundScanResultServiceImpl implements IWmsInboundScanResultSer
     public List<Map<String, Object>> noIssueScanResultList2(String userName) {
         return wmspInboundScanResultMapper.noIssueScanResultList2(userName);
     }
+
+    @Override
+    public int getOrderTypeByNum(String orderNumber) {
+        return wmspInboundScanResultMapper.getOrderTypeByNum(orderNumber);
+    }
+
+    @Override
+    public Map<String, Object> getOrderTypeByInboundId(String resultId) {
+        return wmspInboundScanResultMapper.getOrderTypeByInboundId(resultId);
+    }
+
+    @Override
+    public List<Map<String, Object>> findInboundScanResult(String orderNumber) {
+        return wmspInboundScanResultMapper.findInboundScanResult(orderNumber);
+    }
 }

+ 2 - 0
src/main/resources/application-prod.yml

@@ -19,6 +19,8 @@ openfeign:
     url: ${OMSFEIGN_URL:172.16.33.166:8095}
   JoinFeign:
     url: ${JOINFEIGN_URL:172.16.33.166:8066}
+  BmsTruckFeign:
+    url: ${BMSTRUCKFEIGN_URL:172.16.33.166:8076}
 #图片上传配置
 piction:
   # path: /usr/share/nginx/html/image

+ 36 - 0
src/main/resources/com/steerinfo/dil/mapper/WmspInboundScanResultMapper.xml

@@ -1091,6 +1091,42 @@ where wisr.result_id = #{stackResultId}
         on rms.MATERIAL_STEEL_ID=wgm.MATERIAL_ID
         where wisr.result_material=#{resultMaterial} and (wgm.DELETED is null or wgm.DELETED='0')
     </select>
+    <select id="getOrderTypeByNum" resultType="java.lang.Integer">
+        select ORDER_TYPE from OMSTRUCK_ORDER
+        where ORDER_NUMBER=SUBSTR(#{orderNumber}, 0, 21)
+    </select>
+    <select id="findInboundScanResult" resultType="java.util.Map">
+        --倒库根据出库实绩查询入库扫码数据
+        select OO.ORDER_NUMBER "orderNumber",
+               WISR.RESULT_MATERIAL "resultMaterial",
+               WISR.SHIFT_ORDER "shiftOrder"
+        from OMSTRUCK_ORDER OO
+                 left join WMSP_OUTBOUND_RESULT WOR
+                           on OO.ORDER_ID=WOR.BILL_LADING_ID
+                 LEFT JOIN WMSP_OUTBOUND_SCAN_RESULT WOSR
+                           ON WOR.RESULT_ID=WOSR.OUTBOUND_RESULT_ID
+                 LEFT JOIN WMSP_INBOUND_RESULT WIR
+                           ON WIR.INBOUND_ID=WOSR.INBOUND_RESULT_ID
+                 LEFT JOIN WMSP_INBOUND_SCAN_RESULT WISR
+                           ON WIR.INBOUND_ID=WISR.INBOUND_RESULT_ID
+        WHERE OO.ORDER_TYPE=1
+          AND OO.ORDER_NUMBER=SUBSTR(#{orderNumber}, 0, 21)
+    </select>
+    <select id="getOrderTypeByInboundId" resultType="java.util.Map">
+        --查询入库实绩的订单类型
+        select OO.ORDER_TYPE "orderType",
+               OO.ORDER_ID "orderId"
+        from OMSTRUCK_ORDER OO
+                 left join WMSP_OUTBOUND_RESULT WOR
+                           on OO.ORDER_ID=WOR.BILL_LADING_ID
+                 LEFT JOIN WMSP_OUTBOUND_SCAN_RESULT WOSR
+                           ON WOR.RESULT_ID=WOSR.OUTBOUND_RESULT_ID
+                 LEFT JOIN WMSP_INBOUND_RESULT WIR
+                           ON WIR.INBOUND_ID=WOSR.INBOUND_RESULT_ID
+                 LEFT JOIN WMSP_INBOUND_SCAN_RESULT WISR
+                           ON WIR.INBOUND_ID=WISR.INBOUND_RESULT_ID
+        WHERE WISR.RESULT_ID=#{resultId}
+    </select>
 
 
 </mapper>