This commit is contained in:
zc
2026-04-12 23:22:03 +08:00
parent a323ddb10b
commit 5e2972e8c5
8 changed files with 184 additions and 2 deletions

View File

@@ -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<FullWorkOrderInfoDO> {
}

View File

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

View File

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

View File

@@ -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<FullWorkOrderResp, FullWorkOrderResp, FullWorkOrderQuery, FullWorkOrderReq> {
void saveFullWorkOrderDetail(List<FullWorkOrderInfoReq> infos);
List<FullWorkOrderInfoDO> getFullWorkOrderInfos(Long fullWorkOrderId);
}

View File

@@ -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<FullWorkOrderMapper, FullWorkOrderDO, FullWorkOrderResp, FullWorkOrderResp, FullWorkOrderQuery, FullWorkOrderReq> 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<FullWorkOrderMappe
ExcelUtils.export(list, "整箱领取导出记录", FullWorkOrderResp.class, response);
}
@Override
public void saveFullWorkOrderDetail(List<FullWorkOrderInfoReq> infos) {
List<FullWorkOrderInfoDO> fullWorkOrderInfoDOS = BeanUtil.copyToList(infos, FullWorkOrderInfoDO.class);
fullWorkOrderInfoMapper.insertBatch(fullWorkOrderInfoDOS);
}
@Override
public List<FullWorkOrderInfoDO> getFullWorkOrderInfos(Long fullWorkOrderId) {
List<FullWorkOrderInfoDO> fullWorkOrderInfoDOS = fullWorkOrderInfoMapper.selectList(new QueryWrapper<FullWorkOrderInfoDO>().eq("full_work_order_id", fullWorkOrderId));
return fullWorkOrderInfoDOS;
}
}

View File

@@ -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<FullWorkOrderService, FullWorkOrderResp, FullWorkOrderResp, FullWorkOrderQuery, FullWorkOrderReq> {
@PostMapping("/saveInfo")
public R saveFullWorkOrderDetail(@RequestBody List<FullWorkOrderInfoReq> 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));
}
}

View File

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

View File

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