代码优化

This commit is contained in:
zc
2026-03-06 15:55:06 +08:00
parent 32f88b1443
commit ae9a607da1
8 changed files with 88 additions and 24 deletions

View File

@@ -41,4 +41,10 @@ public class WorkOrderDO extends BaseDO {
* 总重量
*/
private BigDecimal totalWeight;
/**
* 总数量
*/
private Integer totalCount;
}

View File

@@ -6,7 +6,8 @@ import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import jakarta.validation.constraints.*;
/**
* 创建或修改任务工单信息参数
@@ -31,19 +32,20 @@ public class WorkOrderInfoReq implements Serializable {
* 物料主键id
*/
@Schema(description = "物料主键id")
@NotNull(message = "物料主键id不能为空")
private Long materialId;
/**
* 称重次数
*/
@Schema(description = "称重次数")
private int weightTime;
private Integer weightTime;
/**
* 物料数量
*/
@Schema(description = "物料数量")
private BigDecimal quantity;
private Integer quantity;
/**
* 称重重量

View File

@@ -8,8 +8,6 @@ import io.swagger.v3.oas.annotations.media.Schema;
import java.io.Serial;
import java.io.Serializable;
import java.time.*;
import java.math.BigDecimal;
import java.util.List;
/**
@@ -29,17 +27,21 @@ public class WorkOrderReq implements Serializable {
* 物料主键id
*/
@Schema(description = "物料主键id")
@NotNull(message = "物料主键id不能为空")
private Long materialId;
/**
* 创建人
* 物料名称
*/
@Schema(description = "创建人")
private List<WorkOrderInfoReq> workOrderInfos;
@Schema(description = "物料名称")
@NotBlank(message = "物料名称不能为空")
private String materialName;
/**
* 创建时间
* 称重列表
*/
@Schema(description = "创建时间")
private LocalDateTime createTime;
@Schema(description = "称重列表")
@NotEmpty(message = "称重列表不能为空")
private List<WorkOrderInfoReq> workOrderInfos;
}

View File

@@ -30,6 +30,12 @@ public class WorkOrderResp extends BaseDetailResp {
@Schema(description = "卡号")
private String cardNo;
/**
* 工单编号
*/
@Schema(description = "工单编号")
private String orderNo;
/**
* 标题
*/

View File

@@ -1,5 +1,10 @@
package top.wms.admin.weighManage.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -11,14 +16,20 @@ import org.springframework.stereotype.Service;
import top.continew.starter.extension.crud.model.query.PageQuery;
import top.continew.starter.extension.crud.model.resp.PageResp;
import top.continew.starter.extension.crud.service.BaseServiceImpl;
import top.wms.admin.common.context.UserContextHolder;
import top.wms.admin.weighManage.mapper.WorkOrderInfoMapper;
import top.wms.admin.weighManage.mapper.WorkOrderMapper;
import top.wms.admin.weighManage.model.entity.WorkOrderDO;
import top.wms.admin.weighManage.model.entity.WorkOrderInfoDO;
import top.wms.admin.weighManage.model.query.WorkOrderQuery;
import top.wms.admin.weighManage.model.req.WorkOrderInfoReq;
import top.wms.admin.weighManage.model.req.WorkOrderReq;
import top.wms.admin.weighManage.model.resp.WorkOrderInfoResp;
import top.wms.admin.weighManage.model.resp.WorkOrderResp;
import top.wms.admin.weighManage.service.WorkOrderService;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
/**
@@ -31,6 +42,9 @@ import java.util.List;
@RequiredArgsConstructor
public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkOrderDO, WorkOrderResp, WorkOrderResp, WorkOrderQuery, WorkOrderReq> implements WorkOrderService {
private final WorkOrderInfoMapper workOrderInfoMapper;
@Override
public PageResp<WorkOrderResp> page(WorkOrderQuery query, PageQuery pageQuery) {
QueryWrapper<WorkOrderDO> queryWrapper = new QueryWrapper<>();
@@ -50,13 +64,44 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
return baseMapper.getDetail(id);
}
@Override
public WorkOrderResp addWorKerOrder(WorkOrderReq req) {
return null;
public void afterDelete(List<Long> ids) {
workOrderInfoMapper.delete(new QueryWrapper<WorkOrderInfoDO>().in("work_order_id", ids));
}
@Override
public WorkOrderResp addWorKerOrder(WorkOrderReq req) {
if (CollUtil.isEmpty(req.getWorkOrderInfos())) {
throw new IllegalArgumentException("称重列表不能为空");
}
BigDecimal totalWeight = new BigDecimal("0");
int totalCount = 0;
for (WorkOrderInfoReq workOrderInfoReq : req.getWorkOrderInfos()) {
totalWeight = workOrderInfoReq.getWeight().add(totalWeight);
totalCount += workOrderInfoReq.getQuantity();
}
WorkOrderDO workOrder = new WorkOrderDO();
workOrder.setOrderNo(DateUtil.format(new Date(), DatePattern.PURE_DATE_PATTERN) + System.currentTimeMillis());
String title = DateUtil.format(new Date(), DatePattern.CHINESE_DATE_PATTERN) + "-"
+ UserContextHolder.getUsername() + "-" + req.getMaterialName();
workOrder.setTitle(title);
workOrder.setMaterialId(req.getMaterialId());
workOrder.setTotalWeight(totalWeight);
workOrder.setTotalCount(totalCount);
baseMapper.insert(workOrder);
//新增工单详情列表信息
List<WorkOrderInfoDO> workOrderInfoDOList = BeanUtil.copyToList(req.getWorkOrderInfos(), WorkOrderInfoDO.class);
workOrderInfoDOList.forEach(workOrderInfoDO -> workOrderInfoDO.setWorkOrderId(workOrder.getId()));
workOrderInfoMapper.insertBatch(workOrderInfoDOList);
return BeanUtil.copyProperties(workOrder, WorkOrderResp.class);
}
}