1. 间接物料
2. 工单增加字段 3. 一些见面晚上
This commit is contained in:
parent
2e37264300
commit
b097198695
|
|
@ -80,7 +80,8 @@ public class GoodsController {
|
||||||
Page<Goods> page = goodsQuery.toMpPage();
|
Page<Goods> page = goodsQuery.toMpPage();
|
||||||
Page<Goods> goodsPage = goodsService.page(page, new LambdaQueryWrapper<Goods>()
|
Page<Goods> goodsPage = goodsService.page(page, new LambdaQueryWrapper<Goods>()
|
||||||
.like(StringUtils.isNotEmpty(goodsQuery.getGoodsId()), Goods::getGoodsId, goodsQuery.getGoodsId())
|
.like(StringUtils.isNotEmpty(goodsQuery.getGoodsId()), Goods::getGoodsId, goodsQuery.getGoodsId())
|
||||||
.like(StringUtils.isNotEmpty(goodsQuery.getGoodsName()), Goods::getGoodsName, goodsQuery.getGoodsName()));
|
.like(StringUtils.isNotEmpty(goodsQuery.getGoodsName()), Goods::getGoodsName, goodsQuery.getGoodsName())
|
||||||
|
.like(StringUtils.isNotEmpty(goodsQuery.getGoodsType()), Goods::getGoodsType, goodsQuery.getGoodsType()));
|
||||||
|
|
||||||
PageDto<GoodsVo> pageDto = PageDto.of(goodsPage, goods -> BeanUtil.copyProperties(goods, GoodsVo.class));
|
PageDto<GoodsVo> pageDto = PageDto.of(goodsPage, goods -> BeanUtil.copyProperties(goods, GoodsVo.class));
|
||||||
response.setCode(ResponseCode.OK.getCode());
|
response.setCode(ResponseCode.OK.getCode());
|
||||||
|
|
@ -353,11 +354,13 @@ public class GoodsController {
|
||||||
vehicle.setVehicleType("间接物料");
|
vehicle.setVehicleType("间接物料");
|
||||||
// 找到这个料箱包含的库存物料列表
|
// 找到这个料箱包含的库存物料列表
|
||||||
List<Stock> indirectStocksOfVehicle = allIndirectStock.stream().filter(stock -> stock.getVehicleId().equals(vehicle.getVehicleId())).toList();
|
List<Stock> indirectStocksOfVehicle = allIndirectStock.stream().filter(stock -> stock.getVehicleId().equals(vehicle.getVehicleId())).toList();
|
||||||
List<VehicleDetailInfo> details = new ArrayList<>();
|
VehicleDetailInfo goodsInfo = new VehicleDetailInfo();
|
||||||
|
List<String> detailGoodsIds = new ArrayList<>();
|
||||||
for (Stock stock : indirectStocksOfVehicle) {
|
for (Stock stock : indirectStocksOfVehicle) {
|
||||||
details.add(new VehicleDetailInfo(stock.getGoodsRelated().getGoodsId()));
|
detailGoodsIds.add(stock.getGoodsRelated().getGoodsId());
|
||||||
}
|
}
|
||||||
vehicle.setDetails(details);
|
goodsInfo.setGoodsIds(detailGoodsIds);
|
||||||
|
vehicle.setGoodsInfo(goodsInfo);
|
||||||
}
|
}
|
||||||
// 更新料箱
|
// 更新料箱
|
||||||
vehicleService.updateBatchById(allIndirectVehicles);
|
vehicleService.updateBatchById(allIndirectVehicles);
|
||||||
|
|
|
||||||
|
|
@ -114,7 +114,6 @@ public class KateWorkQueryController {
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
// 回滚事务
|
// 回滚事务
|
||||||
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
||||||
e.printStackTrace();
|
|
||||||
logger.error("查询DBS发生异常:{}", e.getMessage());
|
logger.error("查询DBS发生异常:{}", e.getMessage());
|
||||||
response.setCode(ResponseCode.ERROR.getCode());
|
response.setCode(ResponseCode.ERROR.getCode());
|
||||||
response.setMessage("查询DBS发生异常");
|
response.setMessage("查询DBS发生异常");
|
||||||
|
|
@ -232,7 +231,8 @@ public class KateWorkQueryController {
|
||||||
Page<KateOrders> ordersPage = kateOrderService.page(page, new LambdaQueryWrapper<KateOrders>()
|
Page<KateOrders> ordersPage = kateOrderService.page(page, new LambdaQueryWrapper<KateOrders>()
|
||||||
.like(StringUtils.isNotEmpty(kateOrdersQuery.getWorkOrder()), KateOrders::getWorkOrder, kateOrdersQuery.getWorkOrder())
|
.like(StringUtils.isNotEmpty(kateOrdersQuery.getWorkOrder()), KateOrders::getWorkOrder, kateOrdersQuery.getWorkOrder())
|
||||||
.like(StringUtils.isNotEmpty(kateOrdersQuery.getGoodsId()), KateOrders::getGoodsId, kateOrdersQuery.getGoodsId())
|
.like(StringUtils.isNotEmpty(kateOrdersQuery.getGoodsId()), KateOrders::getGoodsId, kateOrdersQuery.getGoodsId())
|
||||||
.like(StringUtils.isNotEmpty(kateOrdersQuery.getSupplyArea()), KateOrders::getSupplyArea, kateOrdersQuery.getSupplyArea()));
|
.like(StringUtils.isNotEmpty(kateOrdersQuery.getSupplyArea()), KateOrders::getSupplyArea, kateOrdersQuery.getSupplyArea())
|
||||||
|
.eq(kateOrdersQuery.getPlanStartDate() != null, KateOrders::getPlanStartDate, kateOrdersQuery.getPlanStartDate()));
|
||||||
|
|
||||||
PageDto<KateOrdersVo> pageDto = PageDto.of(ordersPage, orders -> BeanUtil.copyProperties(orders, KateOrdersVo.class));
|
PageDto<KateOrdersVo> pageDto = PageDto.of(ordersPage, orders -> BeanUtil.copyProperties(orders, KateOrdersVo.class));
|
||||||
response.setCode(ResponseCode.OK.getCode());
|
response.setCode(ResponseCode.OK.getCode());
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,8 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.wms.annotation.MyLog;
|
import com.wms.annotation.MyLog;
|
||||||
import com.wms.constants.enums.ResponseCode;
|
import com.wms.constants.enums.ResponseCode;
|
||||||
import com.wms.entity.app.dto.PageDto;
|
import com.wms.entity.app.dto.PageDto;
|
||||||
|
import com.wms.entity.app.dto.extend.VehicleDetailInfo;
|
||||||
|
import com.wms.entity.app.dto.extend.VehicleDetailInfo_2;
|
||||||
import com.wms.entity.app.request.ELocationQuery;
|
import com.wms.entity.app.request.ELocationQuery;
|
||||||
import com.wms.entity.app.request.LocationQuery;
|
import com.wms.entity.app.request.LocationQuery;
|
||||||
import com.wms.entity.app.request.VehicleQuery;
|
import com.wms.entity.app.request.VehicleQuery;
|
||||||
|
|
@ -39,6 +41,7 @@ import org.springframework.web.bind.annotation.*;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import static com.wms.constants.WmsConstants.MYSQL_JSON_CI;
|
||||||
import static com.wms.utils.StringUtils.convertJsonString;
|
import static com.wms.utils.StringUtils.convertJsonString;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -315,6 +318,7 @@ public class LocationController {
|
||||||
.like(StringUtils.isNotEmpty(vehicleQuery.getCurrentLocation()), Vehicle::getCurrentLocation, vehicleQuery.getCurrentLocation())
|
.like(StringUtils.isNotEmpty(vehicleQuery.getCurrentLocation()), Vehicle::getCurrentLocation, vehicleQuery.getCurrentLocation())
|
||||||
.eq(vehicleQuery.getVehicleStatus() != null, Vehicle::getVehicleStatus, vehicleQuery.getVehicleStatus())
|
.eq(vehicleQuery.getVehicleStatus() != null, Vehicle::getVehicleStatus, vehicleQuery.getVehicleStatus())
|
||||||
.eq(vehicleQuery.getIsEmpty() != null, Vehicle::getIsEmpty, vehicleQuery.getIsEmpty())
|
.eq(vehicleQuery.getIsEmpty() != null, Vehicle::getIsEmpty, vehicleQuery.getIsEmpty())
|
||||||
|
.apply(StringUtils.isNotEmpty(vehicleQuery.getGoodsId()), "JSON_CONTAINS(goods_info ->> '$.goodsIds', {0})" + MYSQL_JSON_CI, "\"" + vehicleQuery.getGoodsId() + "\"")
|
||||||
.orderByDesc(Vehicle::getLastInTime);
|
.orderByDesc(Vehicle::getLastInTime);
|
||||||
if (StringUtils.isNotEmpty(vehicleQuery.getVehicleType())) {
|
if (StringUtils.isNotEmpty(vehicleQuery.getVehicleType())) {
|
||||||
if (vehicleQuery.getVehicleType().equals("间接物料")) {
|
if (vehicleQuery.getVehicleType().equals("间接物料")) {
|
||||||
|
|
@ -593,4 +597,48 @@ public class LocationController {
|
||||||
// return JSON.toJSONString(rsp);
|
// return JSON.toJSONString(rsp);
|
||||||
// }
|
// }
|
||||||
// }
|
// }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 一键更新料箱的物料数据格式
|
||||||
|
*
|
||||||
|
* @param vehicleQuery 料箱
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
@PostMapping("/updateVehicleGoodsInfoFormat")
|
||||||
|
@ResponseBody
|
||||||
|
@Transactional(isolation = Isolation.REPEATABLE_READ, propagation = Propagation.REQUIRED)
|
||||||
|
@MyLog(logTitle = "一键更新料箱的物料数据格式", logMethod = "updateVehicleGoodsInfoFormat")
|
||||||
|
public String updateVehicleGoodsInfoFormat(@RequestBody VehicleQuery vehicleQuery) {
|
||||||
|
logger.info("接收到一键更新料箱的物料数据格式请求:{},请求ip:{}", convertJsonString(vehicleQuery), HttpUtils.getIpAddr(servletRequest));
|
||||||
|
// 创建响应信息
|
||||||
|
ResponseEntity rsp = new ResponseEntity();
|
||||||
|
try {
|
||||||
|
// 查询到所有的料箱
|
||||||
|
List<Vehicle> allVehicles = vehicleService.list();
|
||||||
|
List<Vehicle> needUpdateVehicles = new ArrayList<>();
|
||||||
|
for (Vehicle vehicle : allVehicles) {
|
||||||
|
if (vehicle.getDetails() == null || vehicle.getDetails().isEmpty()) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
List<String> goodsIds = vehicle.getDetails().stream().map(VehicleDetailInfo_2::getGoodsId).distinct().toList();
|
||||||
|
VehicleDetailInfo goodsInfo = new VehicleDetailInfo();
|
||||||
|
goodsInfo.setGoodsIds(goodsIds);
|
||||||
|
vehicle.setGoodsInfo(goodsInfo);
|
||||||
|
needUpdateVehicles.add(vehicle);
|
||||||
|
}
|
||||||
|
// 更新数据
|
||||||
|
vehicleService.updateBatchById(needUpdateVehicles);
|
||||||
|
rsp.setCode(ResponseCode.OK.getCode());
|
||||||
|
rsp.setMessage("更新成功");
|
||||||
|
return convertJsonString(rsp);
|
||||||
|
} catch (Exception e) {
|
||||||
|
// 回滚事务
|
||||||
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
||||||
|
logger.info("一键更新料箱的物料数据格式异常:{}", convertJsonString(e));
|
||||||
|
// 返回其他异常
|
||||||
|
rsp.setCode(ResponseCode.ERROR.getCode());
|
||||||
|
rsp.setMessage("一键更新料箱的物料数据格式发生异常");
|
||||||
|
return JSON.toJSONString(rsp);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -438,9 +438,9 @@ public class TaskController {
|
||||||
newVehicle.setVehicleType(inTask.getGoodsRelated().getGoodsType());
|
newVehicle.setVehicleType(inTask.getGoodsRelated().getGoodsType());
|
||||||
if (Objects.equals(newVehicle.getVehicleType(), "间接物料")) {
|
if (Objects.equals(newVehicle.getVehicleType(), "间接物料")) {
|
||||||
// 如果是间接物料,则设置配对物料
|
// 如果是间接物料,则设置配对物料
|
||||||
List<VehicleDetailInfo> vehicleDetailInfos = new ArrayList<>();
|
VehicleDetailInfo vehicleDetailInfos = new VehicleDetailInfo();
|
||||||
vehicleDetailInfos.add(new VehicleDetailInfo(inTask.getGoodsRelated().getGoodsId()));
|
vehicleDetailInfos.setGoodsIds(new ArrayList<>(List.of(inTask.getGoodsRelated().getGoodsId())));
|
||||||
newVehicle.setDetails(vehicleDetailInfos);
|
newVehicle.setGoodsInfo(vehicleDetailInfos);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
newVehicle.setLastInTime(LocalDateTime.now());
|
newVehicle.setLastInTime(LocalDateTime.now());
|
||||||
|
|
@ -463,10 +463,22 @@ public class TaskController {
|
||||||
currentVehicle.setVehicleType(inTask.getGoodsRelated().getGoodsType());
|
currentVehicle.setVehicleType(inTask.getGoodsRelated().getGoodsType());
|
||||||
if (Objects.equals(currentVehicle.getVehicleType(), "间接物料")) {
|
if (Objects.equals(currentVehicle.getVehicleType(), "间接物料")) {
|
||||||
// 如果是间接物料,则设置配对物料
|
// 如果是间接物料,则设置配对物料
|
||||||
List<VehicleDetailInfo> vehicleDetailInfos = currentVehicle.getDetails() == null ? new ArrayList<>() : currentVehicle.getDetails();
|
VehicleDetailInfo goodsInfo = currentVehicle.getGoodsInfo();
|
||||||
if (!vehicleDetailInfos.stream().map(VehicleDetailInfo::getGoodsId).toList().contains(inTask.getGoodsRelated().getGoodsId())) {
|
if (goodsInfo == null) {
|
||||||
vehicleDetailInfos.add(new VehicleDetailInfo(inTask.getGoodsRelated().getGoodsId()));
|
goodsInfo = new VehicleDetailInfo();
|
||||||
currentVehicle.setDetails(vehicleDetailInfos);
|
goodsInfo.setGoodsIds(new ArrayList<>(List.of(inTask.getGoodsRelated().getGoodsId())));
|
||||||
|
currentVehicle.setGoodsInfo(goodsInfo);
|
||||||
|
} else {
|
||||||
|
if (goodsInfo.getGoodsIds() == null) {
|
||||||
|
goodsInfo = new VehicleDetailInfo();
|
||||||
|
goodsInfo.setGoodsIds(new ArrayList<>(List.of(inTask.getGoodsRelated().getGoodsId())));
|
||||||
|
currentVehicle.setGoodsInfo(goodsInfo);
|
||||||
|
} else if (!goodsInfo.getGoodsIds().contains(inTask.getGoodsRelated().getGoodsId())) {
|
||||||
|
List<String> goodsIds = goodsInfo.getGoodsIds();
|
||||||
|
goodsIds.add(inTask.getGoodsRelated().getGoodsId());
|
||||||
|
goodsInfo.setGoodsIds(goodsIds);
|
||||||
|
currentVehicle.setGoodsInfo(goodsInfo);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -2030,25 +2042,6 @@ public class TaskController {
|
||||||
response.setMessage("料箱数量必须为大于0的整数");
|
response.setMessage("料箱数量必须为大于0的整数");
|
||||||
return convertJsonString(response);
|
return convertJsonString(response);
|
||||||
}
|
}
|
||||||
// 验证请求信息
|
|
||||||
// if (Objects.equals(callEmptyVehicleRequest.getVehicleType2(), "间接物料")) {
|
|
||||||
// // TODO 间接物料需要确认
|
|
||||||
// if (StringUtils.isEmpty(callEmptyVehicleRequest.getGoodsId())) {
|
|
||||||
// logger.error("间接物料必须输入物料号");
|
|
||||||
// response.setCode(ResponseCode.ERROR.getCode());
|
|
||||||
// response.setMessage("间接物料必须输入物料号");
|
|
||||||
// return convertJsonString(response);
|
|
||||||
// }
|
|
||||||
// // 查询物料是否是间接物料
|
|
||||||
// Goods goods = goodsService.getOne(new LambdaQueryWrapper<Goods>().eq(Goods::getGoodsId, callEmptyVehicleRequest.getGoodsId()).eq(Goods::getGoodsInVehicleType, "间接物料").last("limit 1"));
|
|
||||||
// if (goods == null) {
|
|
||||||
// logger.error("当前物料不是间接物料");
|
|
||||||
// response.setCode(ResponseCode.ERROR.getCode());
|
|
||||||
// response.setMessage("当前物料不是间接物料");
|
|
||||||
// return convertJsonString(response);
|
|
||||||
// }
|
|
||||||
// callEmptyVehicleRequest.setVehicleType1(goods.getVehicleType());
|
|
||||||
// }
|
|
||||||
|
|
||||||
// 生成料箱出库任务
|
// 生成料箱出库任务
|
||||||
int needNum = callEmptyVehicleRequest.getNeedNum();
|
int needNum = callEmptyVehicleRequest.getNeedNum();
|
||||||
|
|
@ -2056,14 +2049,31 @@ public class TaskController {
|
||||||
List<String> outVehicleIds = new ArrayList<>();// 料箱列表
|
List<String> outVehicleIds = new ArrayList<>();// 料箱列表
|
||||||
// 查询出需求数量的空箱
|
// 查询出需求数量的空箱
|
||||||
LambdaQueryWrapper<Vehicle> emptyVehicleQueryWrapper = new LambdaQueryWrapper<Vehicle>()
|
LambdaQueryWrapper<Vehicle> emptyVehicleQueryWrapper = new LambdaQueryWrapper<Vehicle>()
|
||||||
.eq(Vehicle::getIsEmpty, 1)
|
|
||||||
.eq(Vehicle::getVehicleStatus, VehicleStatus.ON.getCode())
|
.eq(Vehicle::getVehicleStatus, VehicleStatus.ON.getCode())
|
||||||
.orderByAsc(Vehicle::getLastInTime)
|
.orderByAsc(Vehicle::getLastInTime)
|
||||||
.last("limit " + needNum);
|
.last("limit " + needNum);
|
||||||
if (Objects.equals(callEmptyVehicleRequest.getVehicleType2(), "间接物料")) {
|
if (Objects.equals(callEmptyVehicleRequest.getVehicleType2(), "间接物料")) {
|
||||||
emptyVehicleQueryWrapper.eq(Vehicle::getVehicleType, "间接物料");
|
if (StringUtils.isEmpty(callEmptyVehicleRequest.getGoodsId())) {
|
||||||
|
logger.error("间接物料必须输入物料号");
|
||||||
|
response.setCode(ResponseCode.ERROR.getCode());
|
||||||
|
response.setMessage("间接物料必须输入物料号");
|
||||||
|
return convertJsonString(response);
|
||||||
|
}
|
||||||
|
// 查询物料是否是间接物料
|
||||||
|
Goods goods = goodsService.getById(callEmptyVehicleRequest.getGoodsId());
|
||||||
|
if (goods == null || !Objects.equals(goods.getGoodsType(), "间接物料")) {
|
||||||
|
logger.error("当前物料不是间接物料");
|
||||||
|
response.setCode(ResponseCode.ERROR.getCode());
|
||||||
|
response.setMessage("当前物料不是间接物料");
|
||||||
|
return convertJsonString(response);
|
||||||
|
}
|
||||||
|
emptyVehicleQueryWrapper
|
||||||
|
.eq(Vehicle::getVehicleType, "间接物料")
|
||||||
|
.apply("JSON_CONTAINS(goods_info ->> '$.goodsIds', {0})" + MYSQL_JSON_CI, "\"" + callEmptyVehicleRequest.getGoodsId() + "\"");
|
||||||
} else {
|
} else {
|
||||||
emptyVehicleQueryWrapper.ne(Vehicle::getVehicleType, "间接物料");
|
emptyVehicleQueryWrapper
|
||||||
|
.ne(Vehicle::getVehicleType, "间接物料")
|
||||||
|
.eq(Vehicle::getIsEmpty, 1);
|
||||||
}
|
}
|
||||||
List<Vehicle> emptyVehicles = vehicleService.list(emptyVehicleQueryWrapper);
|
List<Vehicle> emptyVehicles = vehicleService.list(emptyVehicleQueryWrapper);
|
||||||
for (Vehicle emptyVehicle : emptyVehicles) {
|
for (Vehicle emptyVehicle : emptyVehicles) {
|
||||||
|
|
@ -2090,6 +2100,7 @@ public class TaskController {
|
||||||
outVehicleIds.add(emptyVehicle.getVehicleId());
|
outVehicleIds.add(emptyVehicle.getVehicleId());
|
||||||
needNum--;
|
needNum--;
|
||||||
}
|
}
|
||||||
|
if (!outVehicleIds.isEmpty()) {
|
||||||
// 保存任务
|
// 保存任务
|
||||||
taskService.saveBatch(vehicleOutTasks);
|
taskService.saveBatch(vehicleOutTasks);
|
||||||
// 更新料箱表
|
// 更新料箱表
|
||||||
|
|
@ -2097,23 +2108,29 @@ public class TaskController {
|
||||||
.set(Vehicle::getVehicleStatus, VehicleStatus.OUT.getCode())
|
.set(Vehicle::getVehicleStatus, VehicleStatus.OUT.getCode())
|
||||||
.in(Vehicle::getVehicleId, outVehicleIds)
|
.in(Vehicle::getVehicleId, outVehicleIds)
|
||||||
.ne(Vehicle::getVehicleStatus, VehicleStatus.OUT.getCode()));
|
.ne(Vehicle::getVehicleStatus, VehicleStatus.OUT.getCode()));
|
||||||
|
// 更新库存表
|
||||||
|
stockService.update(new LambdaUpdateWrapper<Stock>()
|
||||||
|
.set(Stock::getStockStatus, StockStatus.OUT.getCode())
|
||||||
|
.in(Stock::getVehicleId, outVehicleIds)
|
||||||
|
.ne(Stock::getStockStatus, StockStatus.OUT.getCode()));
|
||||||
|
}
|
||||||
if (needNum <= 0) {
|
if (needNum <= 0) {
|
||||||
response.setCode(ResponseCode.OK.getCode());
|
response.setCode(ResponseCode.OK.getCode());
|
||||||
response.setMessage("呼叫空箱成功,请等待箱子出库。");
|
response.setMessage("呼叫料箱成功,请等待箱子出库。");
|
||||||
} else if (needNum < callEmptyVehicleRequest.getNeedNum()) {
|
} else if (needNum < callEmptyVehicleRequest.getNeedNum()) {
|
||||||
response.setCode(ResponseCode.OK.getCode());
|
response.setCode(ResponseCode.OK.getCode());
|
||||||
response.setMessage("已呼叫空箱,但库中空箱数量不足。需求" + callEmptyVehicleRequest.getNeedNum() + "个,实际呼叫" + vehicleOutTasks.size() + "个。");
|
response.setMessage("已呼叫料箱,但库中符合要求料箱数量不足。需求" + callEmptyVehicleRequest.getNeedNum() + "个,实际呼叫" + vehicleOutTasks.size() + "个。");
|
||||||
} else {
|
} else {
|
||||||
response.setCode(ResponseCode.ERROR.getCode());
|
response.setCode(ResponseCode.ERROR.getCode());
|
||||||
response.setMessage("库中没有空箱了。");
|
response.setMessage("库中没有需求的料箱了。");
|
||||||
}
|
}
|
||||||
return convertJsonString(response);
|
return convertJsonString(response);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
// 回滚事务
|
// 回滚事务
|
||||||
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
||||||
logger.error("呼叫空箱发生异常,{}", convertJsonString(e));
|
logger.error("呼叫料箱发生异常,{}", convertJsonString(e));
|
||||||
response.setCode(ResponseCode.ERROR.getCode());
|
response.setCode(ResponseCode.ERROR.getCode());
|
||||||
response.setMessage("呼叫空箱发生异常");
|
response.setMessage("呼叫料箱发生异常");
|
||||||
return convertJsonString(response);
|
return convertJsonString(response);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -33,7 +33,7 @@ public class VehicleDto {
|
||||||
/**
|
/**
|
||||||
* 额外信息
|
* 额外信息
|
||||||
*/
|
*/
|
||||||
private VehicleDetailInfo details;
|
private VehicleDetailInfo goodsInfo;
|
||||||
/**
|
/**
|
||||||
* 上次入库时间
|
* 上次入库时间
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -1,14 +1,22 @@
|
||||||
package com.wms.entity.app.dto.extend;
|
package com.wms.entity.app.dto.extend;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 料箱详细信息
|
* 料箱详细信息
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
|
@NoArgsConstructor
|
||||||
public class VehicleDetailInfo {
|
public class VehicleDetailInfo {
|
||||||
/// 料号
|
/**
|
||||||
private String goodsId;
|
* 料号列表
|
||||||
|
*/
|
||||||
|
@JsonProperty("goodsIds")
|
||||||
|
private List<String> goodsIds;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,22 @@
|
||||||
|
package com.wms.entity.app.dto.extend;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 料箱详细信息
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@AllArgsConstructor
|
||||||
|
@NoArgsConstructor
|
||||||
|
public class VehicleDetailInfo_2 {
|
||||||
|
/**
|
||||||
|
* 料号列表
|
||||||
|
*/
|
||||||
|
@JsonProperty("goodsId")
|
||||||
|
private String goodsId;
|
||||||
|
}
|
||||||
|
|
@ -7,7 +7,6 @@ import com.wms.entity.table.Vehicle;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -44,8 +43,13 @@ public class VehicleQuery extends PageQuery {
|
||||||
/**
|
/**
|
||||||
* 额外信息
|
* 额外信息
|
||||||
*/
|
*/
|
||||||
@JsonProperty("details")
|
@JsonProperty("goodsInfo")
|
||||||
private String details;
|
private String goodsInfo;
|
||||||
|
/**
|
||||||
|
* 查询料号
|
||||||
|
*/
|
||||||
|
@JsonProperty("goodsId")
|
||||||
|
private String goodsId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 将VehicleQuery转化为VehiclePO
|
* 将VehicleQuery转化为VehiclePO
|
||||||
|
|
@ -62,7 +66,7 @@ public class VehicleQuery extends PageQuery {
|
||||||
} else {
|
} else {
|
||||||
vehiclePO.setVehicleType("");
|
vehiclePO.setVehicleType("");
|
||||||
}
|
}
|
||||||
vehiclePO.setDetails(JSON.parseArray(details, VehicleDetailInfo.class));
|
vehiclePO.setGoodsInfo(JSON.parseObject(goodsInfo, VehicleDetailInfo.class));
|
||||||
|
|
||||||
return vehiclePO;
|
return vehiclePO;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -113,4 +113,23 @@ public class KateOrdersVo {
|
||||||
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||||
private LocalDateTime planStartDate;
|
private LocalDateTime planStartDate;
|
||||||
|
/**
|
||||||
|
* 创建时间
|
||||||
|
*/
|
||||||
|
@JsonProperty("createTime")
|
||||||
|
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
|
private LocalDateTime createTime;
|
||||||
|
/**
|
||||||
|
* 最后更新时间
|
||||||
|
*/
|
||||||
|
@JsonProperty("lastUpdateTime")
|
||||||
|
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
|
private LocalDateTime lastUpdateTime;
|
||||||
|
/**
|
||||||
|
* 最后更新原因
|
||||||
|
*/
|
||||||
|
@JsonProperty("lastUpdateReason")
|
||||||
|
private String lastUpdateReason;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,12 @@
|
||||||
package com.wms.entity.app.vo;
|
package com.wms.entity.app.vo;
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
import com.wms.entity.app.dto.extend.VehicleDetailInfo;
|
import com.wms.entity.app.dto.extend.VehicleDetailInfo;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import org.springframework.format.annotation.DateTimeFormat;
|
import org.springframework.format.annotation.DateTimeFormat;
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 载具VO
|
* 载具VO
|
||||||
|
|
@ -16,30 +16,37 @@ public class VehicleVO {
|
||||||
/**
|
/**
|
||||||
* 载具编号
|
* 载具编号
|
||||||
*/
|
*/
|
||||||
|
@JsonProperty("vehicleId")
|
||||||
private String vehicleId;
|
private String vehicleId;
|
||||||
/**
|
/**
|
||||||
* 当前所在位置
|
* 当前所在位置
|
||||||
*/
|
*/
|
||||||
|
@JsonProperty("currentLocation")
|
||||||
private String currentLocation;
|
private String currentLocation;
|
||||||
/**
|
/**
|
||||||
* 载具状态
|
* 载具状态
|
||||||
*/
|
*/
|
||||||
|
@JsonProperty("vehicleStatus")
|
||||||
private Integer vehicleStatus;
|
private Integer vehicleStatus;
|
||||||
/**
|
/**
|
||||||
* 是否是空箱
|
* 是否是空箱
|
||||||
*/
|
*/
|
||||||
|
@JsonProperty("isEmpty")
|
||||||
private Integer isEmpty;
|
private Integer isEmpty;
|
||||||
/**
|
/**
|
||||||
* 载具类型
|
* 载具类型
|
||||||
*/
|
*/
|
||||||
|
@JsonProperty("vehicleType")
|
||||||
private String vehicleType;
|
private String vehicleType;
|
||||||
/**
|
/**
|
||||||
* 额外信息
|
* 绑定物料信息
|
||||||
*/
|
*/
|
||||||
private List<VehicleDetailInfo> details;
|
@JsonProperty("goodsInfo")
|
||||||
|
private VehicleDetailInfo goodsInfo;
|
||||||
/**
|
/**
|
||||||
* 上次入库时间
|
* 上次入库时间
|
||||||
*/
|
*/
|
||||||
|
@JsonProperty("lastInTime")
|
||||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
private LocalDateTime lastInTime;
|
private LocalDateTime lastInTime;
|
||||||
|
|
|
||||||
|
|
@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
import com.baomidou.mybatisplus.extension.handlers.Fastjson2TypeHandler;
|
import com.baomidou.mybatisplus.extension.handlers.Fastjson2TypeHandler;
|
||||||
import com.wms.entity.app.dto.extend.VehicleDetailInfo;
|
import com.wms.entity.app.dto.extend.VehicleDetailInfo;
|
||||||
|
import com.wms.entity.app.dto.extend.VehicleDetailInfo_2;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
|
@ -45,7 +46,12 @@ public class Vehicle {
|
||||||
* 额外信息
|
* 额外信息
|
||||||
*/
|
*/
|
||||||
@TableField(value = "details", typeHandler = Fastjson2TypeHandler.class)
|
@TableField(value = "details", typeHandler = Fastjson2TypeHandler.class)
|
||||||
private List<VehicleDetailInfo> details;
|
private List<VehicleDetailInfo_2> details;
|
||||||
|
/**
|
||||||
|
* 间接物料列表
|
||||||
|
*/
|
||||||
|
@TableField(value = "goods_info", typeHandler = Fastjson2TypeHandler.class)
|
||||||
|
private VehicleDetailInfo goodsInfo;
|
||||||
/**
|
/**
|
||||||
* 上次入库时间
|
* 上次入库时间
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,6 @@ package com.wms.service.business.serviceImplements;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.wms.constants.enums.*;
|
import com.wms.constants.enums.*;
|
||||||
import com.wms.entity.app.dto.extend.VehicleDetailInfo;
|
|
||||||
import com.wms.entity.app.request.GoodsInRequest;
|
import com.wms.entity.app.request.GoodsInRequest;
|
||||||
import com.wms.entity.app.request.TaskInRequest;
|
import com.wms.entity.app.request.TaskInRequest;
|
||||||
import com.wms.entity.app.request.TaskOutRequest;
|
import com.wms.entity.app.request.TaskOutRequest;
|
||||||
|
|
@ -82,8 +81,8 @@ public class ValidateServiceImplements implements IValidateService {
|
||||||
goodsType = 1;
|
goodsType = 1;
|
||||||
} else {
|
} else {
|
||||||
goodsType = 2;
|
goodsType = 2;
|
||||||
if (existVehicle.getDetails() != null) {
|
if (existVehicle.getGoodsInfo() != null && !existVehicle.getGoodsInfo().getGoodsIds().isEmpty()) {
|
||||||
canInGoodsIdList = existVehicle.getDetails().stream().map(VehicleDetailInfo::getGoodsId).toList();
|
canInGoodsIdList = existVehicle.getGoodsInfo().getGoodsIds();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -120,8 +120,28 @@ public class UploadKateOrdersListener implements ReadListener<KateOrdersExcelVo>
|
||||||
newKateOrdersMap.replace(key, currentOrder);
|
newKateOrdersMap.replace(key, currentOrder);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
// 查询数据库是否存在重复数据
|
if (oldKateOrdersMap.containsKey(key)) {
|
||||||
if (!oldKateOrdersMap.containsKey(key)) {
|
KateOrders oldOrder = oldKateOrdersMap.get(key);
|
||||||
|
if (oldOrder.getOrderStatus() == 0) {
|
||||||
|
oldOrder.setItem(kateOrdersExcelVo.getItem());
|
||||||
|
oldOrder.setDescription(kateOrdersExcelVo.getDescription());
|
||||||
|
oldOrder.setSLoc(kateOrdersExcelVo.getSLoc());
|
||||||
|
oldOrder.setType(kateOrdersExcelVo.getType());
|
||||||
|
oldOrder.setOriginStatus(kateOrdersExcelVo.getOriginStatus());
|
||||||
|
oldOrder.setSortString(kateOrdersExcelVo.getSortString());
|
||||||
|
oldOrder.setRequirementQuantity(kateOrdersExcelVo.getRequirementQuantity());
|
||||||
|
oldOrder.setGoodsUnit(kateOrdersExcelVo.getGoodsUnit());
|
||||||
|
oldOrder.setLackQuantity(kateOrdersExcelVo.getRequirementQuantity());
|
||||||
|
oldOrder.setPickedQuantity(BigDecimal.ZERO);
|
||||||
|
oldOrder.setUserName(uploadUser);
|
||||||
|
oldOrder.setLastUpdateTime(LocalDateTime.now());
|
||||||
|
oldOrder.setLastUpdateReason("导入工单");
|
||||||
|
//计划开工时间,这个替换后面的dbs的计划开始时间
|
||||||
|
oldOrder.setPlanStartDate(kateOrdersExcelVo.getPlanStartDate());
|
||||||
|
newKateOrdersMap.put(key, oldOrder);
|
||||||
|
}
|
||||||
|
continue;
|
||||||
|
}
|
||||||
// 之前没存在过
|
// 之前没存在过
|
||||||
KateOrders newKateOrders = new KateOrders();
|
KateOrders newKateOrders = new KateOrders();
|
||||||
newKateOrders.setOrderId(generateId("ORDER_"));
|
newKateOrders.setOrderId(generateId("ORDER_"));
|
||||||
|
|
@ -144,13 +164,10 @@ public class UploadKateOrdersListener implements ReadListener<KateOrdersExcelVo>
|
||||||
newKateOrders.setLastUpdateTime(LocalDateTime.now());
|
newKateOrders.setLastUpdateTime(LocalDateTime.now());
|
||||||
newKateOrders.setLastUpdateReason("导入工单");
|
newKateOrders.setLastUpdateReason("导入工单");
|
||||||
//计划开工时间,这个替换后面的dbs的计划开始时间
|
//计划开工时间,这个替换后面的dbs的计划开始时间
|
||||||
if(isAddReqmtDate) {
|
|
||||||
newKateOrders.setPlanStartDate(kateOrdersExcelVo.getPlanStartDate());
|
newKateOrders.setPlanStartDate(kateOrdersExcelVo.getPlanStartDate());
|
||||||
}
|
|
||||||
newKateOrdersMap.put(key, newKateOrders);
|
newKateOrdersMap.put(key, newKateOrders);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 保存数据库
|
* 保存数据库
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
package com.wms.utils.excel.vo;
|
package com.wms.utils.excel.vo;
|
||||||
|
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
|
||||||
import com.alibaba.excel.annotation.ExcelProperty;
|
import com.alibaba.excel.annotation.ExcelProperty;
|
||||||
import com.alibaba.excel.annotation.format.DateTimeFormat;
|
import com.alibaba.excel.annotation.format.DateTimeFormat;
|
||||||
|
import com.alibaba.fastjson2.JSON;
|
||||||
import com.wms.entity.table.Vehicle;
|
import com.wms.entity.table.Vehicle;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
|
|
@ -36,6 +36,16 @@ public class VehicleExcelVo {
|
||||||
@ExcelProperty("上次入库时间")
|
@ExcelProperty("上次入库时间")
|
||||||
@DateTimeFormat("yyyy-MM-dd HH:mm:ss")
|
@DateTimeFormat("yyyy-MM-dd HH:mm:ss")
|
||||||
private LocalDateTime lastInTime;
|
private LocalDateTime lastInTime;
|
||||||
|
/**
|
||||||
|
* 载具类型
|
||||||
|
*/
|
||||||
|
@ExcelProperty("载具类型")
|
||||||
|
private String vehicleType;
|
||||||
|
/**
|
||||||
|
* 间接物料列表
|
||||||
|
*/
|
||||||
|
@ExcelProperty("料号列表")
|
||||||
|
private String goodsInfo;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 从数据库实体转换为excel对象
|
* 从数据库实体转换为excel对象
|
||||||
|
|
@ -43,6 +53,14 @@ public class VehicleExcelVo {
|
||||||
* @return excel对象
|
* @return excel对象
|
||||||
*/
|
*/
|
||||||
public static VehicleExcelVo of(Vehicle vehiclePo) {
|
public static VehicleExcelVo of(Vehicle vehiclePo) {
|
||||||
return BeanUtil.copyProperties(vehiclePo, VehicleExcelVo.class);
|
VehicleExcelVo tempVo = new VehicleExcelVo();
|
||||||
|
tempVo.setVehicleId(vehiclePo.getVehicleId());
|
||||||
|
tempVo.setCurrentLocation(vehiclePo.getCurrentLocation());
|
||||||
|
tempVo.setVehicleStatus(vehiclePo.getVehicleStatus());
|
||||||
|
tempVo.setIsEmpty(vehiclePo.getIsEmpty());
|
||||||
|
tempVo.setLastInTime(vehiclePo.getLastInTime());
|
||||||
|
tempVo.setVehicleType(vehiclePo.getVehicleType());
|
||||||
|
tempVo.setGoodsInfo(JSON.toJSONString(vehiclePo.getGoodsInfo()));
|
||||||
|
return tempVo;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user