From c4f29d3ee536979d8cd3fa987510079aeebd4545 Mon Sep 17 00:00:00 2001 From: zc Date: Tue, 24 Mar 2026 14:55:12 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E9=A1=B5=E9=9D=A2=E6=95=B4=E7=AE=B1?= =?UTF-8?q?=E9=A2=86=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapper/FullWorkOrderMapper.java | 16 +++++ .../model/entity/FullWorkOrderDO.java | 43 ++++++++++++++ .../model/query/FullWorkOrderQuery.java | 58 +++++++++++++++++++ .../model/req/FullWorkOrderReq.java | 56 ++++++++++++++++++ .../model/resp/FullWorkOrderDetailResp.java | 56 ++++++++++++++++++ .../model/resp/FullWorkOrderResp.java | 54 +++++++++++++++++ .../service/FullWorkOrderService.java | 17 ++++++ .../impl/FullWorkOrderServiceImpl.java | 54 +++++++++++++++++ .../resources/mapper/FullWorkOrderMapper.xml | 4 ++ .../controller/common/CommonController.java | 1 - .../FullWorkOrderController.java | 31 ++++++++++ .../admin/controller/ys/ysNetController.java | 23 ++++++-- 12 files changed, 407 insertions(+), 6 deletions(-) create mode 100644 wms-module-system/src/main/java/top/wms/admin/fullWorkOrder/mapper/FullWorkOrderMapper.java create mode 100644 wms-module-system/src/main/java/top/wms/admin/fullWorkOrder/model/entity/FullWorkOrderDO.java create mode 100644 wms-module-system/src/main/java/top/wms/admin/fullWorkOrder/model/query/FullWorkOrderQuery.java create mode 100644 wms-module-system/src/main/java/top/wms/admin/fullWorkOrder/model/req/FullWorkOrderReq.java create mode 100644 wms-module-system/src/main/java/top/wms/admin/fullWorkOrder/model/resp/FullWorkOrderDetailResp.java create mode 100644 wms-module-system/src/main/java/top/wms/admin/fullWorkOrder/model/resp/FullWorkOrderResp.java create mode 100644 wms-module-system/src/main/java/top/wms/admin/fullWorkOrder/service/FullWorkOrderService.java create mode 100644 wms-module-system/src/main/java/top/wms/admin/fullWorkOrder/service/impl/FullWorkOrderServiceImpl.java create mode 100644 wms-module-system/src/main/resources/mapper/FullWorkOrderMapper.xml create mode 100644 wms-webapi/src/main/java/top/wms/admin/controller/fullWorkOrder/FullWorkOrderController.java diff --git a/wms-module-system/src/main/java/top/wms/admin/fullWorkOrder/mapper/FullWorkOrderMapper.java b/wms-module-system/src/main/java/top/wms/admin/fullWorkOrder/mapper/FullWorkOrderMapper.java new file mode 100644 index 0000000..36e1fcb --- /dev/null +++ b/wms-module-system/src/main/java/top/wms/admin/fullWorkOrder/mapper/FullWorkOrderMapper.java @@ -0,0 +1,16 @@ +package top.wms.admin.fullWorkOrder.mapper; + +import top.continew.starter.data.mp.base.BaseMapper; +import top.wms.admin.fullWorkOrder.model.entity.FullWorkOrderDO; +import org.springframework.stereotype.Repository; + +/** +* 整箱领取记录 Mapper +* +* @author zc +* @since 2026/03/24 09:36 +*/ +@Repository +public interface FullWorkOrderMapper extends BaseMapper { + +} \ No newline at end of file diff --git a/wms-module-system/src/main/java/top/wms/admin/fullWorkOrder/model/entity/FullWorkOrderDO.java b/wms-module-system/src/main/java/top/wms/admin/fullWorkOrder/model/entity/FullWorkOrderDO.java new file mode 100644 index 0000000..90aa28f --- /dev/null +++ b/wms-module-system/src/main/java/top/wms/admin/fullWorkOrder/model/entity/FullWorkOrderDO.java @@ -0,0 +1,43 @@ +package top.wms.admin.fullWorkOrder.model.entity; + +import lombok.Data; + +import com.baomidou.mybatisplus.annotation.TableName; + +import top.wms.admin.common.model.entity.BaseDO; + +import java.io.Serial; + +/** + * 整箱领取记录实体 + * + * @author zc + * @since 2026/03/24 09:36 + */ +@Data +@TableName("sys_full_work_order") +public class FullWorkOrderDO extends BaseDO { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 标题 + */ + private String title; + + /** + * 任务工单号 + */ + private String orderNo; + + /** + * 物料编码 + */ + private String materialCode; + + /** + * 图片地址 + */ + private String imgUrl; +} \ No newline at end of file diff --git a/wms-module-system/src/main/java/top/wms/admin/fullWorkOrder/model/query/FullWorkOrderQuery.java b/wms-module-system/src/main/java/top/wms/admin/fullWorkOrder/model/query/FullWorkOrderQuery.java new file mode 100644 index 0000000..87264fc --- /dev/null +++ b/wms-module-system/src/main/java/top/wms/admin/fullWorkOrder/model/query/FullWorkOrderQuery.java @@ -0,0 +1,58 @@ +package top.wms.admin.fullWorkOrder.model.query; + +import cn.hutool.core.date.DatePattern; +import lombok.Data; + +import io.swagger.v3.oas.annotations.media.Schema; + +import org.springframework.format.annotation.DateTimeFormat; +import top.continew.starter.data.core.annotation.Query; +import top.continew.starter.data.core.enums.QueryType; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; +import java.util.List; + +/** + * 整箱领取记录查询条件 + * + * @author zc + * @since 2026/03/24 09:36 + */ +@Data +@Schema(description = "整箱领取记录查询条件") +public class FullWorkOrderQuery implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 任务工单号 + */ + @Schema(description = "任务工单号") + @Query(type = QueryType.EQ) + private String orderNo; + + /** + * 物料编码 + */ + @Schema(description = "物料编码") + @Query(type = QueryType.LIKE) + private String materialCode; + + /** + * 创建人 + */ + @Schema(description = "创建人") + @Query(type = QueryType.EQ) + private Long createUser; + + /** + * 创建时间 + */ + @Schema(description = "创建时间") + @DateTimeFormat(pattern = DatePattern.NORM_DATETIME_PATTERN) + @Query(type = QueryType.BETWEEN) + private List createTime; +} \ No newline at end of file diff --git a/wms-module-system/src/main/java/top/wms/admin/fullWorkOrder/model/req/FullWorkOrderReq.java b/wms-module-system/src/main/java/top/wms/admin/fullWorkOrder/model/req/FullWorkOrderReq.java new file mode 100644 index 0000000..54e9082 --- /dev/null +++ b/wms-module-system/src/main/java/top/wms/admin/fullWorkOrder/model/req/FullWorkOrderReq.java @@ -0,0 +1,56 @@ +package top.wms.admin.fullWorkOrder.model.req; + +import jakarta.validation.constraints.*; + +import lombok.Data; + +import io.swagger.v3.oas.annotations.media.Schema; + +import org.hibernate.validator.constraints.Length; + +import java.io.Serial; +import java.io.Serializable; +import java.time.*; + +/** + * 创建或修改整箱领取记录参数 + * + * @author zc + * @since 2026/03/24 09:36 + */ +@Data +@Schema(description = "创建或修改整箱领取记录参数") +public class FullWorkOrderReq implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 标题 + */ + @Schema(description = "标题") + private String title; + + /** + * 任务工单号 + */ + @Schema(description = "任务工单号") + private String orderNo; + + /** + * 物料编码 + */ + @Schema(description = "物料编码") + @NotBlank(message = "物料编码不能为空") + @Length(max = 255, message = "物料编码长度不能超过 {max} 个字符") + private String materialCode; + + /** + * 图片地址 + */ + @Schema(description = "图片地址") + @NotBlank(message = "图片未采集到") + @Length(max = 255, message = "图片地址长度不能超过 {max} 个字符") + private String imgUrl; + +} \ No newline at end of file diff --git a/wms-module-system/src/main/java/top/wms/admin/fullWorkOrder/model/resp/FullWorkOrderDetailResp.java b/wms-module-system/src/main/java/top/wms/admin/fullWorkOrder/model/resp/FullWorkOrderDetailResp.java new file mode 100644 index 0000000..f120560 --- /dev/null +++ b/wms-module-system/src/main/java/top/wms/admin/fullWorkOrder/model/resp/FullWorkOrderDetailResp.java @@ -0,0 +1,56 @@ +package top.wms.admin.fullWorkOrder.model.resp; + +import lombok.Data; + +import io.swagger.v3.oas.annotations.media.Schema; + +import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; +import com.alibaba.excel.annotation.ExcelProperty; + +import top.wms.admin.common.model.resp.BaseDetailResp; + +import java.io.Serial; +import java.time.*; + +/** + * 整箱领取记录详情信息 + * + * @author zc + * @since 2026/03/24 09:36 + */ +@Data +@ExcelIgnoreUnannotated +@Schema(description = "整箱领取记录详情信息") +public class FullWorkOrderDetailResp extends BaseDetailResp { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 标题 + */ + @Schema(description = "标题") + @ExcelProperty(value = "标题") + private String title; + + /** + * 任务工单号 + */ + @Schema(description = "任务工单号") + @ExcelProperty(value = "任务工单号") + private String orderNo; + + /** + * 物料编码 + */ + @Schema(description = "物料编码") + @ExcelProperty(value = "物料编码") + private String materialCode; + + /** + * 图片地址 + */ + @Schema(description = "图片地址") + @ExcelProperty(value = "图片地址") + private String imgUrl; +} \ No newline at end of file diff --git a/wms-module-system/src/main/java/top/wms/admin/fullWorkOrder/model/resp/FullWorkOrderResp.java b/wms-module-system/src/main/java/top/wms/admin/fullWorkOrder/model/resp/FullWorkOrderResp.java new file mode 100644 index 0000000..db78955 --- /dev/null +++ b/wms-module-system/src/main/java/top/wms/admin/fullWorkOrder/model/resp/FullWorkOrderResp.java @@ -0,0 +1,54 @@ +package top.wms.admin.fullWorkOrder.model.resp; + +import com.alibaba.excel.annotation.ExcelProperty; +import lombok.Data; + +import io.swagger.v3.oas.annotations.media.Schema; + +import top.wms.admin.common.model.resp.BaseDetailResp; + +import java.io.Serial; +import java.time.*; + +/** + * 整箱领取记录信息 + * + * @author zc + * @since 2026/03/24 09:36 + */ +@Data +@Schema(description = "整箱领取记录信息") +public class FullWorkOrderResp extends BaseDetailResp { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 标题 + */ + @Schema(description = "标题") + @ExcelProperty(value = "标题", order = 1) + private String title; + + /** + * 任务工单号 + */ + @Schema(description = "任务工单号") + @ExcelProperty(value = "任务工单号", order = 2) + private String orderNo; + + /** + * 物料编码 + */ + @Schema(description = "物料编码") + @ExcelProperty(value = "物料编码", order = 3) + private String materialCode; + + /** + * 图片地址 + */ + @Schema(description = "图片地址") + @ExcelProperty(value = "图片地址", order = 4) + private String imgUrl; + +} \ No newline at end of file diff --git a/wms-module-system/src/main/java/top/wms/admin/fullWorkOrder/service/FullWorkOrderService.java b/wms-module-system/src/main/java/top/wms/admin/fullWorkOrder/service/FullWorkOrderService.java new file mode 100644 index 0000000..4fc996e --- /dev/null +++ b/wms-module-system/src/main/java/top/wms/admin/fullWorkOrder/service/FullWorkOrderService.java @@ -0,0 +1,17 @@ +package top.wms.admin.fullWorkOrder.service; + +import top.continew.starter.extension.crud.service.BaseService; +import top.wms.admin.fullWorkOrder.model.query.FullWorkOrderQuery; +import top.wms.admin.fullWorkOrder.model.req.FullWorkOrderReq; +import top.wms.admin.fullWorkOrder.model.resp.FullWorkOrderDetailResp; +import top.wms.admin.fullWorkOrder.model.resp.FullWorkOrderResp; + +/** + * 整箱领取记录业务接口 + * + * @author zc + * @since 2026/03/24 09:36 + */ +public interface FullWorkOrderService extends BaseService { + +} \ No newline at end of file diff --git a/wms-module-system/src/main/java/top/wms/admin/fullWorkOrder/service/impl/FullWorkOrderServiceImpl.java b/wms-module-system/src/main/java/top/wms/admin/fullWorkOrder/service/impl/FullWorkOrderServiceImpl.java new file mode 100644 index 0000000..e09c944 --- /dev/null +++ b/wms-module-system/src/main/java/top/wms/admin/fullWorkOrder/service/impl/FullWorkOrderServiceImpl.java @@ -0,0 +1,54 @@ +package top.wms.admin.fullWorkOrder.service.impl; + +import cn.hutool.core.date.DatePattern; +import cn.hutool.core.date.DateUtil; +import jakarta.servlet.http.HttpServletResponse; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import top.continew.starter.extension.crud.model.query.SortQuery; +import top.continew.starter.extension.crud.service.BaseServiceImpl; +import top.continew.starter.file.excel.util.ExcelUtils; +import top.wms.admin.common.context.UserContextHolder; +import top.wms.admin.fullWorkOrder.mapper.FullWorkOrderMapper; +import top.wms.admin.fullWorkOrder.model.entity.FullWorkOrderDO; +import top.wms.admin.fullWorkOrder.model.query.FullWorkOrderQuery; +import top.wms.admin.fullWorkOrder.model.req.FullWorkOrderReq; +import top.wms.admin.fullWorkOrder.model.resp.FullWorkOrderResp; +import top.wms.admin.fullWorkOrder.service.FullWorkOrderService; +import top.wms.admin.materialProcess.model.query.MaterialProcessQuery; +import top.wms.admin.materialProcess.model.resp.MaterialProcessResp; + +import java.util.Date; +import java.util.List; + +/** + * 整箱领取记录业务实现 + * + * @author zc + * @since 2026/03/24 09:36 + */ +@Service +@RequiredArgsConstructor +public class FullWorkOrderServiceImpl extends BaseServiceImpl implements FullWorkOrderService { + + @Override + public void beforeAdd(FullWorkOrderReq req) { + String timestamp = DateUtil.format(new Date(), "yyyyMMddHHmmss"); + String randomNum = String.format("%06d", (int)(Math.random() * 1000000)); + req.setOrderNo(timestamp + randomNum); + String title = DateUtil.format(new Date(), DatePattern.CHINESE_DATE_PATTERN) + "-" + UserContextHolder + .getUsername(); + req.setTitle(title); + } + + + + @Override + public void export(FullWorkOrderQuery query, SortQuery sortQuery, HttpServletResponse response) { + List list = super.list(query, sortQuery, this.getDetailClass()); + list.forEach(super::fill); + ExcelUtils.export(list, "整箱领取导出记录", FullWorkOrderResp.class, response); + } + + +} \ No newline at end of file diff --git a/wms-module-system/src/main/resources/mapper/FullWorkOrderMapper.xml b/wms-module-system/src/main/resources/mapper/FullWorkOrderMapper.xml new file mode 100644 index 0000000..0274351 --- /dev/null +++ b/wms-module-system/src/main/resources/mapper/FullWorkOrderMapper.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/wms-webapi/src/main/java/top/wms/admin/controller/common/CommonController.java b/wms-webapi/src/main/java/top/wms/admin/controller/common/CommonController.java index a3847f9..6fe39b3 100644 --- a/wms-webapi/src/main/java/top/wms/admin/controller/common/CommonController.java +++ b/wms-webapi/src/main/java/top/wms/admin/controller/common/CommonController.java @@ -45,7 +45,6 @@ import java.util.List; @RequestMapping("/common") public class CommonController { - private static final Logger log = LoggerFactory.getLogger(CommonController.class); private final FileService fileService; private final DeptService deptService; private final MenuService menuService; diff --git a/wms-webapi/src/main/java/top/wms/admin/controller/fullWorkOrder/FullWorkOrderController.java b/wms-webapi/src/main/java/top/wms/admin/controller/fullWorkOrder/FullWorkOrderController.java new file mode 100644 index 0000000..7fa1e3c --- /dev/null +++ b/wms-webapi/src/main/java/top/wms/admin/controller/fullWorkOrder/FullWorkOrderController.java @@ -0,0 +1,31 @@ +package top.wms.admin.controller.fullWorkOrder; + +import top.continew.starter.extension.crud.enums.Api; + +import io.swagger.v3.oas.annotations.tags.Tag; + +import org.springframework.web.bind.annotation.*; + +import lombok.RequiredArgsConstructor; +import top.continew.starter.extension.crud.annotation.CrudRequestMapping; +import top.wms.admin.common.controller.BaseController; +import top.wms.admin.fullWorkOrder.model.query.FullWorkOrderQuery; +import top.wms.admin.fullWorkOrder.model.req.FullWorkOrderReq; +import top.wms.admin.fullWorkOrder.model.resp.FullWorkOrderResp; +import top.wms.admin.fullWorkOrder.service.FullWorkOrderService; + +/** + * 整箱领取记录管理 API + * + * @author zc + * @since 2026/03/24 09:36 + */ +@Tag(name = "整箱领取记录管理 API") +@RestController +@RequiredArgsConstructor +@CrudRequestMapping(value = "/fullWorkOrder/fullWorkOrder", api = {Api.PAGE, Api.ADD, Api.DELETE, Api.EXPORT}) +public class FullWorkOrderController extends BaseController { + + + +} \ No newline at end of file diff --git a/wms-webapi/src/main/java/top/wms/admin/controller/ys/ysNetController.java b/wms-webapi/src/main/java/top/wms/admin/controller/ys/ysNetController.java index bfd23c9..5c3f975 100644 --- a/wms-webapi/src/main/java/top/wms/admin/controller/ys/ysNetController.java +++ b/wms-webapi/src/main/java/top/wms/admin/controller/ys/ysNetController.java @@ -51,14 +51,27 @@ public class ysNetController { @GetMapping("/leave-weigh-page") public R leaveWeighPage() { try { - // 登出设备 - NetCommon.logoutDevice(); + // 检查设备是否已登录 + if (NetCommon.isDeviceLoggedIn()) { + // 登出设备 + NetCommon.logoutDevice(); + log.info("设备已登出"); + } else { + log.info("设备未登录,无需登出"); + } - // 释放SDK - NetCommon.cleanupSDK(); + // 检查SDK是否已初始化 + if (NetCommon.isSDKInitialized()) { + // 释放SDK + NetCommon.cleanupSDK(); + log.info("SDK已释放"); + } else { + log.info("SDK未初始化,无需释放"); + } return R.ok("离开称重页面成功,已释放资源"); } catch (Exception e) { + log.error("离开称重页面失败", e); return R.fail("500", "离开称重页面失败:" + e.getMessage()); } } @@ -71,7 +84,7 @@ public class ysNetController { try { // 检查设备是否已登录 if (!NetCommon.isDeviceLoggedIn()) { - return R.fail("500", "设备未登录,请先进入称重页面"); + return R.fail("500", "摄像头连接异常!"); } // 执行抓图