1. 间接物料

2. 工单增加字段
3. 一些见面晚上
This commit is contained in:
梁州 2025-12-25 13:59:51 +08:00
parent 2e37264300
commit b097198695
14 changed files with 258 additions and 90 deletions

View File

@ -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);

View File

@ -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());

View File

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

View File

@ -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,30 +2100,37 @@ public class TaskController {
outVehicleIds.add(emptyVehicle.getVehicleId());
needNum--;
}
// 保存任务
taskService.saveBatch(vehicleOutTasks);
// 更新料箱表
vehicleService.update(new LambdaUpdateWrapper<Vehicle>()
.set(Vehicle::getVehicleStatus, VehicleStatus.OUT.getCode())
.in(Vehicle::getVehicleId, outVehicleIds)
.ne(Vehicle::getVehicleStatus, VehicleStatus.OUT.getCode()));
if (!outVehicleIds.isEmpty()) {
// 保存任务
taskService.saveBatch(vehicleOutTasks);
// 更新料箱表
vehicleService.update(new LambdaUpdateWrapper<Vehicle>()
.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);
}
}

View File

@ -33,7 +33,7 @@ public class VehicleDto {
/**
* 额外信息
*/
private VehicleDetailInfo details;
private VehicleDetailInfo goodsInfo;
/**
* 上次入库时间
*/

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;

View File

@ -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;
/**
* 上次入库时间
*/

View File

@ -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();
}
}
}

View File

@ -120,35 +120,52 @@ public class UploadKateOrdersListener implements ReadListener<KateOrdersExcelVo>
newKateOrdersMap.replace(key, currentOrder);
continue;
}
// 查询数据库是否存在重复数据
if (!oldKateOrdersMap.containsKey(key)) {
// 之前没存在过
KateOrders newKateOrders = new KateOrders();
newKateOrders.setOrderId(generateId("ORDER_"));
newKateOrders.setWorkOrder(kateOrdersExcelVo.getWorkOrder());
newKateOrders.setGoodsId(kateOrdersExcelVo.getGoodsId());
newKateOrders.setItem(kateOrdersExcelVo.getItem());
newKateOrders.setDescription(kateOrdersExcelVo.getDescription());
newKateOrders.setSLoc(kateOrdersExcelVo.getSLoc());
newKateOrders.setType(kateOrdersExcelVo.getType());
newKateOrders.setOriginStatus(kateOrdersExcelVo.getOriginStatus());
newKateOrders.setSupplyArea(kateOrdersExcelVo.getSupplyArea());
newKateOrders.setSortString(kateOrdersExcelVo.getSortString());
newKateOrders.setRequirementQuantity(kateOrdersExcelVo.getRequirementQuantity());
newKateOrders.setGoodsUnit(kateOrdersExcelVo.getGoodsUnit());
newKateOrders.setOrderStatus(0);
newKateOrders.setLackQuantity(kateOrdersExcelVo.getRequirementQuantity());
newKateOrders.setPickedQuantity(BigDecimal.ZERO);
newKateOrders.setUserName(uploadUser);
newKateOrders.setCreateTime(LocalDateTime.now());
newKateOrders.setLastUpdateTime(LocalDateTime.now());
newKateOrders.setLastUpdateReason("导入工单");
//计划开工时间这个替换后面的dbs的计划开始时间
if(isAddReqmtDate) {
newKateOrders.setPlanStartDate(kateOrdersExcelVo.getPlanStartDate());
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);
}
newKateOrdersMap.put(key, newKateOrders);
continue;
}
// 之前没存在过
KateOrders newKateOrders = new KateOrders();
newKateOrders.setOrderId(generateId("ORDER_"));
newKateOrders.setWorkOrder(kateOrdersExcelVo.getWorkOrder());
newKateOrders.setGoodsId(kateOrdersExcelVo.getGoodsId());
newKateOrders.setItem(kateOrdersExcelVo.getItem());
newKateOrders.setDescription(kateOrdersExcelVo.getDescription());
newKateOrders.setSLoc(kateOrdersExcelVo.getSLoc());
newKateOrders.setType(kateOrdersExcelVo.getType());
newKateOrders.setOriginStatus(kateOrdersExcelVo.getOriginStatus());
newKateOrders.setSupplyArea(kateOrdersExcelVo.getSupplyArea());
newKateOrders.setSortString(kateOrdersExcelVo.getSortString());
newKateOrders.setRequirementQuantity(kateOrdersExcelVo.getRequirementQuantity());
newKateOrders.setGoodsUnit(kateOrdersExcelVo.getGoodsUnit());
newKateOrders.setOrderStatus(0);
newKateOrders.setLackQuantity(kateOrdersExcelVo.getRequirementQuantity());
newKateOrders.setPickedQuantity(BigDecimal.ZERO);
newKateOrders.setUserName(uploadUser);
newKateOrders.setCreateTime(LocalDateTime.now());
newKateOrders.setLastUpdateTime(LocalDateTime.now());
newKateOrders.setLastUpdateReason("导入工单");
//计划开工时间这个替换后面的dbs的计划开始时间
newKateOrders.setPlanStartDate(kateOrdersExcelVo.getPlanStartDate());
newKateOrdersMap.put(key, newKateOrders);
}
}

View File

@ -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;
}
}