diff --git a/wms-module-system/src/main/java/top/wms/admin/fullWorkOrder/mapper/FullWorkOrderInfoMapper.java b/wms-module-system/src/main/java/top/wms/admin/fullWorkOrder/mapper/FullWorkOrderInfoMapper.java new file mode 100644 index 0000000..34c114b --- /dev/null +++ b/wms-module-system/src/main/java/top/wms/admin/fullWorkOrder/mapper/FullWorkOrderInfoMapper.java @@ -0,0 +1,16 @@ +package top.wms.admin.fullWorkOrder.mapper; + +import org.springframework.stereotype.Repository; +import top.continew.starter.data.mp.base.BaseMapper; +import top.wms.admin.fullWorkOrder.model.entity.FullWorkOrderInfoDO; + +/** + * 整箱领取记录 Mapper + * + * @author zc + * @since 2026/03/24 09:36 + */ +@Repository +public interface FullWorkOrderInfoMapper extends BaseMapper { + +} \ No newline at end of file diff --git a/wms-module-system/src/main/java/top/wms/admin/fullWorkOrder/model/entity/FullWorkOrderInfoDO.java b/wms-module-system/src/main/java/top/wms/admin/fullWorkOrder/model/entity/FullWorkOrderInfoDO.java new file mode 100644 index 0000000..884df5f --- /dev/null +++ b/wms-module-system/src/main/java/top/wms/admin/fullWorkOrder/model/entity/FullWorkOrderInfoDO.java @@ -0,0 +1,31 @@ +package top.wms.admin.fullWorkOrder.model.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import top.wms.admin.common.model.entity.BaseDO; + +import java.io.Serial; +import java.math.BigDecimal; + +/** + * 整箱领取记录实体 + * + * @author zc + * @since 2026/03/24 09:36 + */ +@Data +@TableName("sys_full_work_order_info") +public class FullWorkOrderInfoDO { + + @Serial + private static final long serialVersionUID = 1L; + + private Long fullWorkOrderId; + + private BigDecimal weight; + + /** + * 图片地址 + */ + private String imgUrl; +} \ No newline at end of file diff --git a/wms-module-system/src/main/java/top/wms/admin/fullWorkOrder/model/req/FullWorkOrderInfoReq.java b/wms-module-system/src/main/java/top/wms/admin/fullWorkOrder/model/req/FullWorkOrderInfoReq.java new file mode 100644 index 0000000..4dc6503 --- /dev/null +++ b/wms-module-system/src/main/java/top/wms/admin/fullWorkOrder/model/req/FullWorkOrderInfoReq.java @@ -0,0 +1,48 @@ +package top.wms.admin.fullWorkOrder.model.req; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; +import lombok.Data; +import org.hibernate.validator.constraints.Length; + +import java.io.Serial; +import java.io.Serializable; +import java.math.BigDecimal; + +/** + * 创建或修改整箱领取记录参数 + * + * @author zc + * @since 2026/03/24 09:36 + */ +@Data +@Schema(description = "创建或修改整箱领取记录参数") +public class FullWorkOrderInfoReq implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 重量 + */ + @Schema(description = "重量") + @NotNull(message = "重量不能为空") + private BigDecimal weight; + + /** + * 整箱领取记录ID + */ + @Schema(description = "整箱领取记录ID") + @NotNull(message = "整箱领取记录ID不能为空") + private Long fullWorkOrderId; + + /** + * 图片地址 + */ + @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/service/FullWorkOrderService.java b/wms-module-system/src/main/java/top/wms/admin/fullWorkOrder/service/FullWorkOrderService.java index 943177b..85488e2 100644 --- 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 @@ -1,10 +1,14 @@ package top.wms.admin.fullWorkOrder.service; import top.continew.starter.extension.crud.service.BaseService; +import top.wms.admin.fullWorkOrder.model.entity.FullWorkOrderInfoDO; import top.wms.admin.fullWorkOrder.model.query.FullWorkOrderQuery; +import top.wms.admin.fullWorkOrder.model.req.FullWorkOrderInfoReq; import top.wms.admin.fullWorkOrder.model.req.FullWorkOrderReq; import top.wms.admin.fullWorkOrder.model.resp.FullWorkOrderResp; +import java.util.List; + /** * 整箱领取记录业务接口 * @@ -13,4 +17,7 @@ import top.wms.admin.fullWorkOrder.model.resp.FullWorkOrderResp; */ public interface FullWorkOrderService extends BaseService { + void saveFullWorkOrderDetail(List infos); + + List getFullWorkOrderInfos(Long fullWorkOrderId); } \ 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 index 01c9ede..bdf7b50 100644 --- 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 @@ -1,7 +1,9 @@ package top.wms.admin.fullWorkOrder.service.impl; +import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.date.DatePattern; import cn.hutool.core.date.DateUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import jakarta.servlet.http.HttpServletResponse; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; @@ -9,9 +11,12 @@ 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.FullWorkOrderInfoMapper; import top.wms.admin.fullWorkOrder.mapper.FullWorkOrderMapper; import top.wms.admin.fullWorkOrder.model.entity.FullWorkOrderDO; +import top.wms.admin.fullWorkOrder.model.entity.FullWorkOrderInfoDO; import top.wms.admin.fullWorkOrder.model.query.FullWorkOrderQuery; +import top.wms.admin.fullWorkOrder.model.req.FullWorkOrderInfoReq; import top.wms.admin.fullWorkOrder.model.req.FullWorkOrderReq; import top.wms.admin.fullWorkOrder.model.resp.FullWorkOrderResp; import top.wms.admin.fullWorkOrder.service.FullWorkOrderService; @@ -29,6 +34,8 @@ import java.util.List; @RequiredArgsConstructor public class FullWorkOrderServiceImpl extends BaseServiceImpl implements FullWorkOrderService { + private final FullWorkOrderInfoMapper fullWorkOrderInfoMapper; + @Override public void beforeAdd(FullWorkOrderReq req) { String timestamp = DateUtil.format(new Date(), "yyyyMMddHHmmss"); @@ -46,4 +53,15 @@ public class FullWorkOrderServiceImpl extends BaseServiceImpl infos) { + List fullWorkOrderInfoDOS = BeanUtil.copyToList(infos, FullWorkOrderInfoDO.class); + fullWorkOrderInfoMapper.insertBatch(fullWorkOrderInfoDOS); + } + + @Override + public List getFullWorkOrderInfos(Long fullWorkOrderId) { + List fullWorkOrderInfoDOS = fullWorkOrderInfoMapper.selectList(new QueryWrapper().eq("full_work_order_id", fullWorkOrderId)); + return fullWorkOrderInfoDOS; + } } \ No newline at end of file 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 index 1fb9482..f1585a5 100644 --- 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 @@ -8,12 +8,17 @@ import org.springframework.web.bind.annotation.*; import lombok.RequiredArgsConstructor; import top.continew.starter.extension.crud.annotation.CrudRequestMapping; +import top.continew.starter.log.annotation.Log; +import top.continew.starter.web.model.R; import top.wms.admin.common.controller.BaseController; import top.wms.admin.fullWorkOrder.model.query.FullWorkOrderQuery; +import top.wms.admin.fullWorkOrder.model.req.FullWorkOrderInfoReq; import top.wms.admin.fullWorkOrder.model.req.FullWorkOrderReq; import top.wms.admin.fullWorkOrder.model.resp.FullWorkOrderResp; import top.wms.admin.fullWorkOrder.service.FullWorkOrderService; +import java.util.List; + /** * 整箱领取记录管理 API * @@ -26,4 +31,16 @@ import top.wms.admin.fullWorkOrder.service.FullWorkOrderService; @CrudRequestMapping(value = "/fullWorkOrder/fullWorkOrder", api = {Api.PAGE, Api.ADD, Api.DELETE, Api.EXPORT}) public class FullWorkOrderController extends BaseController { + + @PostMapping("/saveInfo") + public R saveFullWorkOrderDetail(@RequestBody List infos) { + baseService.saveFullWorkOrderDetail(infos); + return R.ok(); + } + + @Log(ignore = true) + @GetMapping("/infos/{fullWorkOrderId}") + public R getFullWorkOrderInfos(@PathVariable Long fullWorkOrderId) { + return R.ok(baseService.getFullWorkOrderInfos(fullWorkOrderId)); + } } \ No newline at end of file diff --git a/wms-webapi/src/main/java/top/wms/admin/controller/weighManage/ah/AHDZCConnect.java b/wms-webapi/src/main/java/top/wms/admin/controller/weighManage/ah/AHDZCConnect.java index 314b6c2..135ceb1 100644 --- a/wms-webapi/src/main/java/top/wms/admin/controller/weighManage/ah/AHDZCConnect.java +++ b/wms-webapi/src/main/java/top/wms/admin/controller/weighManage/ah/AHDZCConnect.java @@ -10,8 +10,10 @@ import org.springframework.web.bind.annotation.RestController; import top.continew.starter.web.model.R; import java.nio.charset.Charset; +import java.util.Random; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.ScheduledFuture; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicInteger; @@ -51,6 +53,11 @@ public class AHDZCConnect { private ScheduledExecutorService executorService; + // todo 模拟数据生成 +// private ScheduledFuture mockDataTask; +// private final AtomicBoolean isMockDataRunning = new AtomicBoolean(false); +// private final Random random = new Random(); + /** * 初始化并启动电子秤服务 */ @@ -66,6 +73,11 @@ public class AHDZCConnect { // 重新初始化并启动服务 ScaleService(); start(); + +// todo 模拟数据生成 +// isMockDataRunning.set(true); +// startMockData(); + return R.ok(); } @@ -325,6 +337,9 @@ public class AHDZCConnect { log.info("停止电子秤线程..."); log.info("========================================"); +// todo 模拟数据生成 +// stopMockData(); + try { if (executorService != null && !executorService.isShutdown()) { executorService.shutdown(); @@ -344,4 +359,33 @@ public class AHDZCConnect { log.info("线程已完全停止"); } + // todo 模拟数据生成 +// private void startMockData() { +// if (executorService == null || executorService.isShutdown()) { +// log.warn("[模拟数据] 线程池未初始化或已关闭"); +// return; +// } +// +// mockDataTask = executorService.scheduleAtFixedRate(() -> { +// if (!isMockDataRunning.get()) { +// return; +// } +// +// try { +// ScaleWebSocketHandler.sendMessage(String.valueOf(random.nextInt(100) + 1)); +// log.debug("[模拟数据] 发送重量数据: 37.8"); +// } catch (Exception e) { +// log.error("[模拟数据] 发送异常: {}", e.getMessage()); +// } +// }, 0, 1, TimeUnit.SECONDS); +// } +// +// private void stopMockData() { +// if (mockDataTask != null && !mockDataTask.isCancelled()) { +// mockDataTask.cancel(false); +// mockDataTask = null; +// } +// isMockDataRunning.set(false); +// } + } \ 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 eaba2d6..4c717d9 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 @@ -1,8 +1,9 @@ package top.wms.admin.controller.ys; -import com.alibaba.fastjson2.JSONObject; import lombok.extern.slf4j.Slf4j; -import org.springframework.web.bind.annotation.*; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; import top.continew.starter.log.annotation.Log; import top.continew.starter.web.model.R; import top.wms.admin.controller.ys.req.CaptureReq;