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> goodsPage = goodsService.page(page, new LambdaQueryWrapper<Goods>()
|
||||
.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));
|
||||
response.setCode(ResponseCode.OK.getCode());
|
||||
|
|
@ -353,11 +354,13 @@ public class GoodsController {
|
|||
vehicle.setVehicleType("间接物料");
|
||||
// 找到这个料箱包含的库存物料列表
|
||||
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) {
|
||||
details.add(new VehicleDetailInfo(stock.getGoodsRelated().getGoodsId()));
|
||||
detailGoodsIds.add(stock.getGoodsRelated().getGoodsId());
|
||||
}
|
||||
vehicle.setDetails(details);
|
||||
goodsInfo.setGoodsIds(detailGoodsIds);
|
||||
vehicle.setGoodsInfo(goodsInfo);
|
||||
}
|
||||
// 更新料箱
|
||||
vehicleService.updateBatchById(allIndirectVehicles);
|
||||
|
|
|
|||
|
|
@ -114,7 +114,6 @@ public class KateWorkQueryController {
|
|||
} catch (Exception e) {
|
||||
// 回滚事务
|
||||
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
||||
e.printStackTrace();
|
||||
logger.error("查询DBS发生异常:{}", e.getMessage());
|
||||
response.setCode(ResponseCode.ERROR.getCode());
|
||||
response.setMessage("查询DBS发生异常");
|
||||
|
|
@ -232,7 +231,8 @@ public class KateWorkQueryController {
|
|||
Page<KateOrders> ordersPage = kateOrderService.page(page, new LambdaQueryWrapper<KateOrders>()
|
||||
.like(StringUtils.isNotEmpty(kateOrdersQuery.getWorkOrder()), KateOrders::getWorkOrder, kateOrdersQuery.getWorkOrder())
|
||||
.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));
|
||||
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.constants.enums.ResponseCode;
|
||||
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.LocationQuery;
|
||||
import com.wms.entity.app.request.VehicleQuery;
|
||||
|
|
@ -39,6 +41,7 @@ import org.springframework.web.bind.annotation.*;
|
|||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import static com.wms.constants.WmsConstants.MYSQL_JSON_CI;
|
||||
import static com.wms.utils.StringUtils.convertJsonString;
|
||||
|
||||
/**
|
||||
|
|
@ -315,6 +318,7 @@ public class LocationController {
|
|||
.like(StringUtils.isNotEmpty(vehicleQuery.getCurrentLocation()), Vehicle::getCurrentLocation, vehicleQuery.getCurrentLocation())
|
||||
.eq(vehicleQuery.getVehicleStatus() != null, Vehicle::getVehicleStatus, vehicleQuery.getVehicleStatus())
|
||||
.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);
|
||||
if (StringUtils.isNotEmpty(vehicleQuery.getVehicleType())) {
|
||||
if (vehicleQuery.getVehicleType().equals("间接物料")) {
|
||||
|
|
@ -593,4 +597,48 @@ public class LocationController {
|
|||
// 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());
|
||||
if (Objects.equals(newVehicle.getVehicleType(), "间接物料")) {
|
||||
// 如果是间接物料,则设置配对物料
|
||||
List<VehicleDetailInfo> vehicleDetailInfos = new ArrayList<>();
|
||||
vehicleDetailInfos.add(new VehicleDetailInfo(inTask.getGoodsRelated().getGoodsId()));
|
||||
newVehicle.setDetails(vehicleDetailInfos);
|
||||
VehicleDetailInfo vehicleDetailInfos = new VehicleDetailInfo();
|
||||
vehicleDetailInfos.setGoodsIds(new ArrayList<>(List.of(inTask.getGoodsRelated().getGoodsId())));
|
||||
newVehicle.setGoodsInfo(vehicleDetailInfos);
|
||||
}
|
||||
}
|
||||
newVehicle.setLastInTime(LocalDateTime.now());
|
||||
|
|
@ -463,10 +463,22 @@ public class TaskController {
|
|||
currentVehicle.setVehicleType(inTask.getGoodsRelated().getGoodsType());
|
||||
if (Objects.equals(currentVehicle.getVehicleType(), "间接物料")) {
|
||||
// 如果是间接物料,则设置配对物料
|
||||
List<VehicleDetailInfo> vehicleDetailInfos = currentVehicle.getDetails() == null ? new ArrayList<>() : currentVehicle.getDetails();
|
||||
if (!vehicleDetailInfos.stream().map(VehicleDetailInfo::getGoodsId).toList().contains(inTask.getGoodsRelated().getGoodsId())) {
|
||||
vehicleDetailInfos.add(new VehicleDetailInfo(inTask.getGoodsRelated().getGoodsId()));
|
||||
currentVehicle.setDetails(vehicleDetailInfos);
|
||||
VehicleDetailInfo goodsInfo = currentVehicle.getGoodsInfo();
|
||||
if (goodsInfo == null) {
|
||||
goodsInfo = new VehicleDetailInfo();
|
||||
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的整数");
|
||||
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();
|
||||
|
|
@ -2056,14 +2049,31 @@ public class TaskController {
|
|||
List<String> outVehicleIds = new ArrayList<>();// 料箱列表
|
||||
// 查询出需求数量的空箱
|
||||
LambdaQueryWrapper<Vehicle> emptyVehicleQueryWrapper = new LambdaQueryWrapper<Vehicle>()
|
||||
.eq(Vehicle::getIsEmpty, 1)
|
||||
.eq(Vehicle::getVehicleStatus, VehicleStatus.ON.getCode())
|
||||
.orderByAsc(Vehicle::getLastInTime)
|
||||
.last("limit " + needNum);
|
||||
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 {
|
||||
emptyVehicleQueryWrapper.ne(Vehicle::getVehicleType, "间接物料");
|
||||
emptyVehicleQueryWrapper
|
||||
.ne(Vehicle::getVehicleType, "间接物料")
|
||||
.eq(Vehicle::getIsEmpty, 1);
|
||||
}
|
||||
List<Vehicle> emptyVehicles = vehicleService.list(emptyVehicleQueryWrapper);
|
||||
for (Vehicle emptyVehicle : emptyVehicles) {
|
||||
|
|
@ -2090,6 +2100,7 @@ public class TaskController {
|
|||
outVehicleIds.add(emptyVehicle.getVehicleId());
|
||||
needNum--;
|
||||
}
|
||||
if (!outVehicleIds.isEmpty()) {
|
||||
// 保存任务
|
||||
taskService.saveBatch(vehicleOutTasks);
|
||||
// 更新料箱表
|
||||
|
|
@ -2097,23 +2108,29 @@ public class TaskController {
|
|||
.set(Vehicle::getVehicleStatus, VehicleStatus.OUT.getCode())
|
||||
.in(Vehicle::getVehicleId, outVehicleIds)
|
||||
.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) {
|
||||
response.setCode(ResponseCode.OK.getCode());
|
||||
response.setMessage("呼叫空箱成功,请等待箱子出库。");
|
||||
response.setMessage("呼叫料箱成功,请等待箱子出库。");
|
||||
} else if (needNum < callEmptyVehicleRequest.getNeedNum()) {
|
||||
response.setCode(ResponseCode.OK.getCode());
|
||||
response.setMessage("已呼叫空箱,但库中空箱数量不足。需求" + callEmptyVehicleRequest.getNeedNum() + "个,实际呼叫" + vehicleOutTasks.size() + "个。");
|
||||
response.setMessage("已呼叫料箱,但库中符合要求料箱数量不足。需求" + callEmptyVehicleRequest.getNeedNum() + "个,实际呼叫" + vehicleOutTasks.size() + "个。");
|
||||
} else {
|
||||
response.setCode(ResponseCode.ERROR.getCode());
|
||||
response.setMessage("库中没有空箱了。");
|
||||
response.setMessage("库中没有需求的料箱了。");
|
||||
}
|
||||
return convertJsonString(response);
|
||||
} catch (Exception e) {
|
||||
// 回滚事务
|
||||
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
||||
logger.error("呼叫空箱发生异常,{}", convertJsonString(e));
|
||||
logger.error("呼叫料箱发生异常,{}", convertJsonString(e));
|
||||
response.setCode(ResponseCode.ERROR.getCode());
|
||||
response.setMessage("呼叫空箱发生异常");
|
||||
response.setMessage("呼叫料箱发生异常");
|
||||
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;
|
||||
|
||||
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 {
|
||||
/// 料号
|
||||
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.EqualsAndHashCode;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
|
|
@ -44,8 +43,13 @@ public class VehicleQuery extends PageQuery {
|
|||
/**
|
||||
* 额外信息
|
||||
*/
|
||||
@JsonProperty("details")
|
||||
private String details;
|
||||
@JsonProperty("goodsInfo")
|
||||
private String goodsInfo;
|
||||
/**
|
||||
* 查询料号
|
||||
*/
|
||||
@JsonProperty("goodsId")
|
||||
private String goodsId;
|
||||
|
||||
/**
|
||||
* 将VehicleQuery转化为VehiclePO
|
||||
|
|
@ -62,7 +66,7 @@ public class VehicleQuery extends PageQuery {
|
|||
} else {
|
||||
vehiclePO.setVehicleType("");
|
||||
}
|
||||
vehiclePO.setDetails(JSON.parseArray(details, VehicleDetailInfo.class));
|
||||
vehiclePO.setGoodsInfo(JSON.parseObject(goodsInfo, VehicleDetailInfo.class));
|
||||
|
||||
return vehiclePO;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -113,4 +113,23 @@ public class KateOrdersVo {
|
|||
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd")
|
||||
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;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import com.wms.entity.app.dto.extend.VehicleDetailInfo;
|
||||
import lombok.Data;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 载具VO
|
||||
|
|
@ -16,30 +16,37 @@ public class VehicleVO {
|
|||
/**
|
||||
* 载具编号
|
||||
*/
|
||||
@JsonProperty("vehicleId")
|
||||
private String vehicleId;
|
||||
/**
|
||||
* 当前所在位置
|
||||
*/
|
||||
@JsonProperty("currentLocation")
|
||||
private String currentLocation;
|
||||
/**
|
||||
* 载具状态
|
||||
*/
|
||||
@JsonProperty("vehicleStatus")
|
||||
private Integer vehicleStatus;
|
||||
/**
|
||||
* 是否是空箱
|
||||
*/
|
||||
@JsonProperty("isEmpty")
|
||||
private Integer isEmpty;
|
||||
/**
|
||||
* 载具类型
|
||||
*/
|
||||
@JsonProperty("vehicleType")
|
||||
private String vehicleType;
|
||||
/**
|
||||
* 额外信息
|
||||
* 绑定物料信息
|
||||
*/
|
||||
private List<VehicleDetailInfo> details;
|
||||
@JsonProperty("goodsInfo")
|
||||
private VehicleDetailInfo goodsInfo;
|
||||
/**
|
||||
* 上次入库时间
|
||||
*/
|
||||
@JsonProperty("lastInTime")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private LocalDateTime lastInTime;
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableId;
|
|||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.baomidou.mybatisplus.extension.handlers.Fastjson2TypeHandler;
|
||||
import com.wms.entity.app.dto.extend.VehicleDetailInfo;
|
||||
import com.wms.entity.app.dto.extend.VehicleDetailInfo_2;
|
||||
import lombok.Data;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
|
@ -45,7 +46,12 @@ public class Vehicle {
|
|||
* 额外信息
|
||||
*/
|
||||
@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.wms.constants.enums.*;
|
||||
import com.wms.entity.app.dto.extend.VehicleDetailInfo;
|
||||
import com.wms.entity.app.request.GoodsInRequest;
|
||||
import com.wms.entity.app.request.TaskInRequest;
|
||||
import com.wms.entity.app.request.TaskOutRequest;
|
||||
|
|
@ -82,8 +81,8 @@ public class ValidateServiceImplements implements IValidateService {
|
|||
goodsType = 1;
|
||||
} else {
|
||||
goodsType = 2;
|
||||
if (existVehicle.getDetails() != null) {
|
||||
canInGoodsIdList = existVehicle.getDetails().stream().map(VehicleDetailInfo::getGoodsId).toList();
|
||||
if (existVehicle.getGoodsInfo() != null && !existVehicle.getGoodsInfo().getGoodsIds().isEmpty()) {
|
||||
canInGoodsIdList = existVehicle.getGoodsInfo().getGoodsIds();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -120,8 +120,28 @@ public class UploadKateOrdersListener implements ReadListener<KateOrdersExcelVo>
|
|||
newKateOrdersMap.replace(key, currentOrder);
|
||||
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();
|
||||
newKateOrders.setOrderId(generateId("ORDER_"));
|
||||
|
|
@ -144,13 +164,10 @@ public class UploadKateOrdersListener implements ReadListener<KateOrdersExcelVo>
|
|||
newKateOrders.setLastUpdateTime(LocalDateTime.now());
|
||||
newKateOrders.setLastUpdateReason("导入工单");
|
||||
//计划开工时间,这个替换后面的dbs的计划开始时间
|
||||
if(isAddReqmtDate) {
|
||||
newKateOrders.setPlanStartDate(kateOrdersExcelVo.getPlanStartDate());
|
||||
}
|
||||
newKateOrdersMap.put(key, newKateOrders);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存数据库
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
package com.wms.utils.excel.vo;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import com.alibaba.excel.annotation.format.DateTimeFormat;
|
||||
import com.alibaba.fastjson2.JSON;
|
||||
import com.wms.entity.table.Vehicle;
|
||||
import lombok.Data;
|
||||
|
||||
|
|
@ -36,6 +36,16 @@ public class VehicleExcelVo {
|
|||
@ExcelProperty("上次入库时间")
|
||||
@DateTimeFormat("yyyy-MM-dd HH:mm:ss")
|
||||
private LocalDateTime lastInTime;
|
||||
/**
|
||||
* 载具类型
|
||||
*/
|
||||
@ExcelProperty("载具类型")
|
||||
private String vehicleType;
|
||||
/**
|
||||
* 间接物料列表
|
||||
*/
|
||||
@ExcelProperty("料号列表")
|
||||
private String goodsInfo;
|
||||
|
||||
/**
|
||||
* 从数据库实体转换为excel对象
|
||||
|
|
@ -43,6 +53,14 @@ public class VehicleExcelVo {
|
|||
* @return excel对象
|
||||
*/
|
||||
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