ソースを参照

Merge branch 'master' of https://git.steerinfo.com/luobang/DIL-DAZHOU-WMS2

luobang 2 年 前
コミット
76ce88daf8

+ 3 - 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");
     /**

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

@@ -2,6 +2,7 @@ package com.steerinfo.dil.controller;
 
 import com.github.pagehelper.PageHelper;
 import com.steerinfo.dil.feign.ColumnDataFeign;
+import com.steerinfo.dil.feign.OmsFeign;
 import com.steerinfo.dil.mapper.WmspInboundResultMapper;
 import com.steerinfo.dil.model.*;
 import com.steerinfo.dil.service.impl.RmsMaterialServiceImpl;
@@ -10,12 +11,14 @@ import com.steerinfo.dil.service.impl.WmsInboundResultServiceImpl;
 import com.steerinfo.dil.service.impl.WmsInboundScanResultServiceImpl;
 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.framework.controller.RESTfulResult;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.core.annotation.Order;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
@@ -55,6 +58,9 @@ public class WmsInboundScanResultController extends BaseRESTfulController {
     @Autowired
     ColumnDataFeign columnDataFeign;
 
+    @Autowired
+    OmsFeign omsFeign;
+
 
     /**
      * 1.新增扫描吊牌实绩!!!此时入库实绩未生成
@@ -64,11 +70,34 @@ 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"));
+        //订单类型为倒库,直接扫码所有并返回数据
+        Map<String,Object> order=wmsInboundScanResultService.getOrderTypeByNum((String)map.get("resultMaterial"));
+        Integer orderType=DataChange.dataToBigDecimal(order.get("orderType")).intValue();
+        BigDecimal orderId=DataChange.dataToBigDecimal(order.get("orderId"));
+        if(orderType!=null && orderType == 25){
+            //根据运输订单号查询出库扫码实绩
+            List<Map<String,Object>> inboundOld= wmsInboundScanResultService.findInboundScanResult((String)map.get("resultMaterial"));
+            //批量新增扫码实绩
+            if(inboundOld!=null || inboundOld.size()>0 || inboundOld.get(0)!=null){
+                wmsInboundScanResultService.createInboundScanResultByFind(inboundOld,map);
+            }
+            else{
+                System.out.println("物资暂未出库,请先出库再入库!");
+                return null;
+            }
+            //返回新建的扫码实绩数据
+            List<Map<String,Object>> mapList= wmsInboundScanResultService.noIssueScanResultList(map.get("userName").toString());
+            //关闭运输订单
+            omsFeign.closeSteelOrderType4(DataChange.dataToBigDecimal(orderId));
+            //生成计费详单
+
+            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());

+ 2 - 2
src/main/java/com/steerinfo/dil/controller/WmspOutboundResultController.java

@@ -125,12 +125,13 @@ public class WmspOutboundResultController extends BaseRESTfulController {
         String orderNumber = mapval.get("orderNumber").toString();
         /**根据运输订单号,查询运输订单信息,*/
         Map<String, Object> order = wmspOutboundResultService.getOrder(orderNumber);
+        /*//拿到订单类型
+        BigDecimal s= (BigDecimal)order.get("orderType");*/
         /**拿运输订单信息中的运输订单Id*/
         if(order!=null){
             BigDecimal orderId = (BigDecimal) order.get("orderId");
             //根据该运输订单Id判断当前订单是否已经完成出厂,若完成直接返回null
             if (wmspOutboundResultService.getOutboundStatus(orderId)==0){
-
                 Map<String,Object> map = new HashMap<>();
                 map.put("orderId",orderId);
                 /**根据运输订单ID和物资id查询出库单(没有逻辑删除)
@@ -149,7 +150,6 @@ public class WmspOutboundResultController extends BaseRESTfulController {
                     }
                 }
                 //查询运单相关信息
-
                 return wmspOutboundResultService.getOutBoundDetailedInfo(orderId);
             }
         }

+ 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);
+}

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

@@ -23,4 +23,8 @@ public interface TmstruckFeign {
 
     @PostMapping("/api/v1/truckTms/tmstruckunloadresult/updateUnloadResult")
     Map<String,Object> updateUnloadResult(Map<String, Object> map);
+
+    @PostMapping("/api/v1/truckTms/tmstruckloadresults/addLoad")
+    Map<String, Object> addLoad(@RequestBody 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);
+
+    //根据运输订单号取得订单类型和订单id
+    Map<String, Object> getOrderTypeByNum(String orderNumber);
+
+    //根据入库实绩id查询运输订单id和类型
+    Map<String, Object> getOrderTypeByInboundId(String resultId);
+
+    //根据运输订单号查询出库扫码实绩
+    List<Map<String, Object>> findInboundScanResult(String orderNumber);
 }

+ 15 - 0
src/main/java/com/steerinfo/dil/mapper/WmspOutboundResultMapper.java

@@ -100,4 +100,19 @@ public interface WmspOutboundResultMapper extends IBaseMapper<WmspOutboundResult
 
     BigDecimal getSteelOrderType(BigDecimal orderId);
 
+    /**
+     * @author:zyf
+     * @version:1.0
+     * @Date:
+     * @Description:计算出理重总和
+    */
+    BigDecimal calculateTW(BigDecimal resultMaterialId,BigDecimal materialId);
+
+    /**
+     * @author:zyf
+     * @version:1.0
+     * @Date:
+     * @Description:查出总实绩ID
+    */
+    BigDecimal queryID(BigDecimal orderId);
 }

+ 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);
 
+    //根据运输订单号取得订单类型
+    Map<String, Object> 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;
+
 }

+ 71 - 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,60 @@ 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();
+        int i=0;
+        for(Map<String,Object> temp:list){
+            if(temp==null || temp.get("resultMaterial")==null){
+                throw new Exception("查询结果存在空值,终止新增扫码实绩,并回滚");
+            }
+            //创建入库扫描实绩、并且给对象赋值
+            WmspInboundScanResult wmspInboundScanResult=new WmspInboundScanResult();
+            //设置自增主键
+            wmspInboundScanResult.setId(wmspInboundScanResultMapper.getCount());
+            System.out.println("resultId"+wmspInboundScanResult.getResultId());
+            //获取班次次序的吊牌信息
+            String resultMaterial=temp.get("resultMaterial").toString();
+            String[] result = resultMaterial.split("-");
+            if(result.length == 10){
+                String shiftOrder = result[9];
+                wmspInboundScanResult.setShiftOrder(shiftOrder);
+            }
+            //分组
+            //根据用户名和分组状态查询到分组信息
+            BigDecimal groupId= wmspInboundGroupService.getGroupIdByUserName(userName);
+            wmspInboundScanResult.setInboundGroupId(groupId);
+            //吊钢工扫描吊牌结果
+            wmspInboundScanResult.setResultMaterial(resultMaterial);
+            //扫描吊牌信息
+            wmspInboundScanResult.setResultLoadTime(new Date());
+            //新增钢材物资ID
+            Map<String,Object> materialSteel = rmsMaterialSteelService.insertRmsMaterialSteel2(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());
+            //插入
+            i+=wmspInboundScanResultMapper.insertSelective(wmspInboundScanResult);
+        }
+        return i;
+    }
+
     @Override
     public List<Map<String, Object>> noIssueScanResultList(String userName) {
         return wmspInboundScanResultMapper.noIssueScanResultList(userName);
@@ -399,4 +451,19 @@ public class WmsInboundScanResultServiceImpl implements IWmsInboundScanResultSer
     public List<Map<String, Object>> noIssueScanResultList2(String userName) {
         return wmspInboundScanResultMapper.noIssueScanResultList2(userName);
     }
+
+    @Override
+    public Map<String, Object> 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);
+    }
 }

+ 23 - 5
src/main/java/com/steerinfo/dil/service/impl/WmspOutboundResultServiceImpl.java

@@ -283,6 +283,10 @@ public class WmspOutboundResultServiceImpl  implements IWmspOutboundResultServic
         if(orderType.intValue() == 4){
             resultOutboundType = "调拨出库";
         }
+        //添加订单类型
+        if(orderType.intValue()==25){
+            resultOutboundType= "倒库";
+        }
         /**把出库单主键id添加到出库单实体中*/
         wmspOutboundResult.setResultId(new BigDecimal(seq_wmspoutboundresult));
         /**把出库单编号添加到出库单实体中*/
@@ -531,12 +535,26 @@ public class WmspOutboundResultServiceImpl  implements IWmspOutboundResultServic
         mesMap.put("numberOfFurnaces", sb.toString());
         mesMap.put("materialId", materialId);
         mesMap.put("warehouseId", warehouseId);
-        Map<String, Object> returnMap = tmstruckFeign.addSaleLoadResult(mesMap);
-        String code = (String) returnMap.get("code");
-        if("200".equals(code)){
-            System.out.println("新增装车成功:" + mesMap.get("orderId"));
+        //查询出运输订单类型
+        BigDecimal orderId= (BigDecimal) mesMap.get("orderId");
+        BigDecimal orderType = wmspOutboundResultMapper.getSteelOrderType(orderId);
+        //加一个对运输订单类型的判断如果为25则是倒库的判断
+        if (orderType.compareTo(BigDecimal.valueOf(25))==0){
+            //查出总实绩ID
+            BigDecimal resultid = wmspOutboundResultMapper.queryID(orderId);
+            mesMap.put("resultid",resultid);
+            //计算理重总和
+            BigDecimal calculateTW = wmspOutboundResultMapper.calculateTW(DataChange.dataToBigDecimal(mesMap.get("resultMaterialId")), materialId);
+            mesMap.put("calculateTW",calculateTW.divide(new BigDecimal(1000),3,BigDecimal.ROUND_HALF_UP));
+            tmstruckFeign.addLoad(mesMap);
         }else {
-            throw new Exception("新增装车失败");
+            Map<String, Object> returnMap = tmstruckFeign.addSaleLoadResult(mesMap);
+            String code = (String) returnMap.get("code");
+            if("200".equals(code)){
+                System.out.println("新增装车成功:" + mesMap.get("orderId"));
+            }else {
+                throw new Exception("新增装车失败");
+            }
         }
     }
 

+ 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

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

@@ -1091,6 +1091,37 @@ 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.util.Map">
+        select ORDER_TYPE "orderType",ORDER_ID "orderId" from OMSTRUCK_ORDER
+        where ORDER_NUMBER=SUBSTR(#{orderNumber}, 0, 21)
+    </select>
+    <select id="findInboundScanResult" resultType="java.util.Map">
+        --根据运输订单号查询出库扫码实绩
+        select
+            WOSR.RESULT_MATERIAL "resultMaterial",
+            WOSR.OUTBOUND_MATERIAL_NUMBER "number"
+        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
+        WHERE 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>

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

@@ -1212,4 +1212,18 @@
       WHERE OO.ORDER_ID = #{orderId}
   </select>
 
+  <select id="calculateTW" resultType="java.math.BigDecimal">
+    SELECT sum(RMS.MATERIAL_THEORETICAL_WEIGHT)
+    FROM WMSP_OUTBOUND_RESULT_MATERIAL WORM
+    LEFT JOIN WMSP_OUTBOUND_SCAN_RESULT WOSR ON WORM.RESULT_MATERIAL_ID = WOSR.RESULT_MATERIAL_ID
+    LEFT JOIN WMSP_INBOUND_RESULT WIR ON WOSR.INBOUND_RESULT_ID = WIR.INBOUND_ID
+    LEFT JOIN RMS_MATERIAL_STEEL RMS ON WIR.MATERIAL_ID = RMS.MATERIAL_STEEL_ID
+    WHERE WORM.RESULT_MATERIAL_ID = #{resultMaterialId} AND WORM.MATERIAL_ID = #{materialId}
+  </select>
+
+  <select id="queryID" resultType="java.math.BigDecimal">
+    select t.Result_Total_Id
+    from TMSTRUCK_TOTAL_RESULT t
+    where t.order_id=#{orderId}
+  </select>
 </mapper>