From ae9a607da15b840ca11df28de920fac392fbf11b Mon Sep 17 00:00:00 2001 From: zc Date: Fri, 6 Mar 2026 15:55:06 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../weighManage/model/entity/WorkOrderDO.java | 6 ++ .../model/req/WorkOrderInfoReq.java | 8 ++- .../weighManage/model/req/WorkOrderReq.java | 18 +++--- .../weighManage/model/resp/WorkOrderResp.java | 6 ++ .../service/impl/WorkOrderServiceImpl.java | 55 +++++++++++++++++-- .../weighManage/WorkOrderController.java | 3 +- .../weighManage/ah/AHDZCConnect.java | 10 ++-- .../main/resources/config/application-dev.yml | 6 +- 8 files changed, 88 insertions(+), 24 deletions(-) diff --git a/wms-module-system/src/main/java/top/wms/admin/weighManage/model/entity/WorkOrderDO.java b/wms-module-system/src/main/java/top/wms/admin/weighManage/model/entity/WorkOrderDO.java index d0c18f3..a13fb26 100644 --- a/wms-module-system/src/main/java/top/wms/admin/weighManage/model/entity/WorkOrderDO.java +++ b/wms-module-system/src/main/java/top/wms/admin/weighManage/model/entity/WorkOrderDO.java @@ -41,4 +41,10 @@ public class WorkOrderDO extends BaseDO { * 总重量 */ private BigDecimal totalWeight; + + /** + * 总数量 + */ + private Integer totalCount; + } \ No newline at end of file diff --git a/wms-module-system/src/main/java/top/wms/admin/weighManage/model/req/WorkOrderInfoReq.java b/wms-module-system/src/main/java/top/wms/admin/weighManage/model/req/WorkOrderInfoReq.java index 2afe457..bdb3717 100644 --- a/wms-module-system/src/main/java/top/wms/admin/weighManage/model/req/WorkOrderInfoReq.java +++ b/wms-module-system/src/main/java/top/wms/admin/weighManage/model/req/WorkOrderInfoReq.java @@ -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; /** * 称重重量 diff --git a/wms-module-system/src/main/java/top/wms/admin/weighManage/model/req/WorkOrderReq.java b/wms-module-system/src/main/java/top/wms/admin/weighManage/model/req/WorkOrderReq.java index cf8aa2f..fccc967 100644 --- a/wms-module-system/src/main/java/top/wms/admin/weighManage/model/req/WorkOrderReq.java +++ b/wms-module-system/src/main/java/top/wms/admin/weighManage/model/req/WorkOrderReq.java @@ -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 workOrderInfos; + @Schema(description = "物料名称") + @NotBlank(message = "物料名称不能为空") + private String materialName; /** - * 创建时间 + * 称重列表 */ - @Schema(description = "创建时间") - private LocalDateTime createTime; + @Schema(description = "称重列表") + @NotEmpty(message = "称重列表不能为空") + private List workOrderInfos; + } \ No newline at end of file diff --git a/wms-module-system/src/main/java/top/wms/admin/weighManage/model/resp/WorkOrderResp.java b/wms-module-system/src/main/java/top/wms/admin/weighManage/model/resp/WorkOrderResp.java index aadf415..e62b7ce 100644 --- a/wms-module-system/src/main/java/top/wms/admin/weighManage/model/resp/WorkOrderResp.java +++ b/wms-module-system/src/main/java/top/wms/admin/weighManage/model/resp/WorkOrderResp.java @@ -30,6 +30,12 @@ public class WorkOrderResp extends BaseDetailResp { @Schema(description = "卡号") private String cardNo; + /** + * 工单编号 + */ + @Schema(description = "工单编号") + private String orderNo; + /** * 标题 */ diff --git a/wms-module-system/src/main/java/top/wms/admin/weighManage/service/impl/WorkOrderServiceImpl.java b/wms-module-system/src/main/java/top/wms/admin/weighManage/service/impl/WorkOrderServiceImpl.java index 291fe72..6f07f1c 100644 --- a/wms-module-system/src/main/java/top/wms/admin/weighManage/service/impl/WorkOrderServiceImpl.java +++ b/wms-module-system/src/main/java/top/wms/admin/weighManage/service/impl/WorkOrderServiceImpl.java @@ -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 implements WorkOrderService { +private final WorkOrderInfoMapper workOrderInfoMapper; + + @Override public PageResp page(WorkOrderQuery query, PageQuery pageQuery) { QueryWrapper queryWrapper = new QueryWrapper<>(); @@ -50,13 +64,44 @@ public class WorkOrderServiceImpl extends BaseServiceImpl ids) { + workOrderInfoMapper.delete(new QueryWrapper().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 workOrderInfoDOList = BeanUtil.copyToList(req.getWorkOrderInfos(), WorkOrderInfoDO.class); + workOrderInfoDOList.forEach(workOrderInfoDO -> workOrderInfoDO.setWorkOrderId(workOrder.getId())); + workOrderInfoMapper.insertBatch(workOrderInfoDOList); + + + return BeanUtil.copyProperties(workOrder, WorkOrderResp.class); + } + } \ No newline at end of file diff --git a/wms-webapi/src/main/java/top/wms/admin/controller/weighManage/WorkOrderController.java b/wms-webapi/src/main/java/top/wms/admin/controller/weighManage/WorkOrderController.java index e2f6d92..85daedd 100644 --- a/wms-webapi/src/main/java/top/wms/admin/controller/weighManage/WorkOrderController.java +++ b/wms-webapi/src/main/java/top/wms/admin/controller/weighManage/WorkOrderController.java @@ -1,6 +1,7 @@ package top.wms.admin.controller.weighManage; import cn.dev33.satoken.annotation.SaCheckPermission; +import org.springframework.validation.annotation.Validated; import top.continew.starter.extension.crud.enums.Api; import io.swagger.v3.oas.annotations.tags.Tag; @@ -41,7 +42,7 @@ public class WorkOrderController extends BaseController