luobang 2 éve
szülő
commit
54c952afc6

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

@@ -19,6 +19,7 @@ import com.steerinfo.framework.service.pagehelper.PageHelper;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
+import oracle.jdbc.proxy.annotation.Post;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.transaction.annotation.Isolation;
 import org.springframework.transaction.annotation.Transactional;
@@ -577,5 +578,31 @@ public class WmspOutboundResultController extends BaseRESTfulController {
         PageListAdd pageList = columnDataUtil.tableColumnData(apiId,inboundResultList,columnList);
         return success(pageList);
     }
+
+
+    //乱尺
+    @PostMapping("/disorderlyOutbound")
+    @ApiOperation(value = "乱尺出库")
+    public RESTfulResult disorderlyOutbound(@RequestBody(required = false)Map<String,Object> mapVal){
+        int i = 0;
+        try {
+            i = wmspOutboundResultService.disorderlyOutbound(mapVal);
+            if(i == -1){
+                return failed("非乱尺不走此处出库");
+            }
+            if(i == -2) {
+                return failed("没有生成出库单ID,请扫描司机二维码!");
+            }
+            if(i == -3) {
+                return failed("该订单已出库!");
+            }
+            if(i == -4) {
+                return failed("该物资已出库!");
+            }
+        } catch (Exception e) {
+            return failed(e.getMessage());
+        }
+        return success(i);
+    }
 }
 

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

@@ -89,4 +89,13 @@ public interface WmspOutboundResultMapper extends IBaseMapper<WmspOutboundResult
 
     //通过出库物资中间表ID和物资ID查询炉号和物资件数
     List<Map<String, Object>> getLuHaoAndNumber(@Param("resultMaterialId") BigDecimal resultMaterialId, @Param("materialId") BigDecimal materialId);
+
+    Map<String, Object> getIsOutBound(Map<String,Object>mapVal);
+
+    int getOutBoundingNum(BigDecimal orderId);
+
+    int updateMaterialStatus(BigDecimal resultMaterialId);
+
+    BigDecimal getLoadId(Map<String, Object> mapVal);
+
 }

+ 2 - 0
src/main/java/com/steerinfo/dil/service/IWmspOutboundResultService.java

@@ -90,4 +90,6 @@ public interface IWmspOutboundResultService {
     List<Map<String, Object>> getWmsOutboundResultStatistics(Map<String, Object> mapValue);
 
     public int replaceSave(String materialOnlyCode);
+
+    int disorderlyOutbound(Map<String, Object> mapVal) throws Exception;
 }

+ 64 - 1
src/main/java/com/steerinfo/dil/service/impl/WmspOutboundResultServiceImpl.java

@@ -471,7 +471,6 @@ public class WmspOutboundResultServiceImpl  implements IWmspOutboundResultServic
                 OutBoundTypeDetailedInfo typeDetailedInfo=outBoundTypeDetailedInfos.get(i);
                 //这一个类型的物资
                 List<OutBoundMaterialDetailedInfo> thisMaterialDetailedInfos=new  ArrayList<>();
-
                 //获得当前类型的已扫描数量
                 int count=0;
                 for (OutBoundMaterialDetailedInfo outBoundMaterialDetailedInfo: outBoundMaterialDetailedInfos){
@@ -547,4 +546,68 @@ public class WmspOutboundResultServiceImpl  implements IWmspOutboundResultServic
     }
 
 
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public int disorderlyOutbound(Map<String, Object> mapVal) throws Exception {
+        //需要获取几个因子,1.物资名称
+        String masterialName = (String) mapVal.get("materialName");
+        if(!masterialName.contains("乱尺")){
+            return -1;
+        }
+        //获取运输订单ID
+        BigDecimal orderId = DataChange.dataToBigDecimal(mapVal.get("orderId"));
+        //根据运输订单ID即提货单ID查询是否生成出库单ID
+        /**根据运输订单ID和物资id查询出库单(没有逻辑删除)
+         *若orderNum大于0,则不是第一次扫描,已经新增出库单,返回详情信息
+         *若orderNum等于0,则是第一次扫描,需要增加出库单,再返回详情信息
+         * */
+        int orderNum = ExistWmspOutboundResult(mapVal);
+        if(orderNum == 0){
+            //创建出货单
+            WmspOutboundResult wmspOutboundResult=createOutboundResult(orderId,new BigDecimal(1));
+            if (wmspOutboundResult!=null){
+                /**根据运输订单号,查询出该订单还没有装货的物资*/
+                List<Map<String,Object>> orderList = getMaterial(orderId.intValue());
+                wmspOutboundResultMaterialService.insertOutboundMaterial(wmspOutboundResult.getResultId(),orderList);
+            }
+        }
+        //根据运输地点ID和物资ID查询是否出库
+        Map<String,Object> outMap = wmspOutboundResultMapper.getIsOutBound(mapVal);
+        if(outMap == null){
+            return -2;
+        }
+        if(DataChange.dataToBigDecimal(outMap.get("billStatus")).intValue() == 1){
+            return -3;
+        }
+        if(DataChange.dataToBigDecimal(outMap.get("billMaterialStatus")).intValue() == 2){
+            return -4;
+        }
+        //判断该车是否已全部出库 -- 查询该车待出库物资数量
+        int outBoundingNum = wmspOutboundResultMapper.getOutBoundingNum(orderId);
+        if(outBoundingNum -1 == 0){
+            //代表全部出库,修改出库表和出库物资表的状态
+            wmspOutboundResultMapper.updateStatus(DataChange.dataToBigDecimal(outMap.get("resultId")));
+            wmspOutboundResultMapper.updateMaterialStatus(DataChange.dataToBigDecimal(outMap.get("resultMaterialId")));
+        }else{
+            wmspOutboundResultMapper.updateMaterialStatus(DataChange.dataToBigDecimal(outMap.get("resultMaterialId")));
+        }
+        //通过ssoid去人员管理里面找loadId
+        BigDecimal loadId = wmspOutboundResultMapper.getLoadId(mapVal);
+        mapVal.put("loadStartTime",new Date());
+        mapVal.put("insertUpdateRemark","无");
+        mapVal.put("loadId",loadId);
+        mapVal.putAll(outMap);
+        Map<String, Object> returnMap = tmstruckFeign.addSaleLoadResult(mapVal);
+        String code = (String) returnMap.get("code");
+        if("200".equals(code)){
+            System.out.println("新增装车成功:" + mapVal.get("orderId"));
+        }else {
+            throw new Exception("新增装车失败");
+        }
+        //获取装车所需字段
+        return 1;
+    }
+
+
+
 }

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

@@ -10,11 +10,11 @@ spring:
 #feign设置
 openfeign:
   ColumnDataFeign:
-    url: ${COLUMNDATAFEIGN_URL:172.16.33.166:8083}
+    url: ${COLUMNDATAFEIGN_URL:172.16.33.161:8083}
   Im:
     url: ${IMFEIGN_URL:172.16.33.166:8055}
   TmsTruckFeign:
-    url: ${TMSTRUCKFEIGN_URL:172.16.33.166:8088}
+    url: ${TMSTRUCKFEIGN_URL:192.168.1.104:8088}
 #图片上传配置
 piction:
   # path: /usr/share/nginx/html/image

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

@@ -1084,6 +1084,11 @@
     SET RESULT_STATUS = 1
     WHERE RESULT_ID = #{resultId}
   </update>
+  <update id="updateMaterialStatus">
+    UPDATE WMSP_OUTBOUND_RESULT_MATERIAL
+    SET STATUS = 2
+    WHERE RESULT_MATERIAL_ID = #{resultMaterialId}
+  </update>
 
   <select id="getWmsOutboundResultStatistics" resultType="java.util.Map">
     select * from(
@@ -1184,5 +1189,23 @@
     WHERE WORM.RESULT_MATERIAL_ID = #{resultMaterialId} AND WORM.MATERIAL_ID = #{materialId}
     GROUP BY RMS.MATERIAL_FURNACE_NUMBER
   </select>
+  <select id="getIsOutBound" resultType="java.util.Map" parameterType="java.util.Map">
+      SELECT WOP.RESULT_STATUS  "billStatus",WORM.STATUS "billMaterialStatus",WORM.RESULT_MATERIAL_ID "resultMaterialId",WOP.RESULT_ID "resultId" FROM WMSP_OUTBOUND_RESULT WOP
+      LEFT JOIN WMSP_OUTBOUND_RESULT_MATERIAL WORM
+      ON WOP.RESULT_ID = WORM.OUTBOUND_RESULT_ID
+      WHERE WORM.MATERIAL_ID = #{materialId}
+        AND WOP.BILL_LADING_ID = #{orderId}
+  </select>
+  <select id="getOutBoundingNum" resultType="java.lang.Integer" parameterType="decimal">
+      SELECT COUNT(*) FROM WMSP_OUTBOUND_RESULT WOR
+      LEFT JOIN WMSP_OUTBOUND_RESULT_MATERIAL WORM
+      ON WORM.OUTBOUND_RESULT_ID = WOR.RESULT_ID
+      WHERE WOR.BILL_LADING_ID = #{orderId}
+      AND WORM.STATUS = 1
+  </select>
+  <select id="getLoadId" resultType="java.math.BigDecimal" parameterType="java.util.Map">
+      SELECT RP.PERSONNEL_ID FROM RMS_PERSONNEL RP
+      WHERE RP.PERSONNEL_SSO_ID = #{userId}
+  </select>
 
 </mapper>