|
@@ -471,7 +471,6 @@ public class WmspOutboundResultServiceImpl implements IWmspOutboundResultServic
|
|
OutBoundTypeDetailedInfo typeDetailedInfo=outBoundTypeDetailedInfos.get(i);
|
|
OutBoundTypeDetailedInfo typeDetailedInfo=outBoundTypeDetailedInfos.get(i);
|
|
//这一个类型的物资
|
|
//这一个类型的物资
|
|
List<OutBoundMaterialDetailedInfo> thisMaterialDetailedInfos=new ArrayList<>();
|
|
List<OutBoundMaterialDetailedInfo> thisMaterialDetailedInfos=new ArrayList<>();
|
|
-
|
|
|
|
//获得当前类型的已扫描数量
|
|
//获得当前类型的已扫描数量
|
|
int count=0;
|
|
int count=0;
|
|
for (OutBoundMaterialDetailedInfo outBoundMaterialDetailedInfo: outBoundMaterialDetailedInfos){
|
|
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;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
}
|
|
}
|