新页面整箱领取
This commit is contained in:
@@ -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<FullWorkOrderDO> {
|
||||
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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<Date> createTime;
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
}
|
||||
@@ -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<FullWorkOrderResp, FullWorkOrderResp, FullWorkOrderQuery, FullWorkOrderReq> {
|
||||
|
||||
}
|
||||
@@ -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<FullWorkOrderMapper, FullWorkOrderDO, FullWorkOrderResp, FullWorkOrderResp, FullWorkOrderQuery, FullWorkOrderReq> 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<FullWorkOrderResp> list = super.list(query, sortQuery, this.getDetailClass());
|
||||
list.forEach(super::fill);
|
||||
ExcelUtils.export(list, "整箱领取导出记录", FullWorkOrderResp.class, response);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
|
||||
<mapper namespace="top.wms.admin.fullWorkOrder.mapper.FullWorkOrderMapper">
|
||||
</mapper>
|
||||
@@ -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;
|
||||
|
||||
@@ -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<FullWorkOrderService, FullWorkOrderResp, FullWorkOrderResp, FullWorkOrderQuery, FullWorkOrderReq> {
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -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", "摄像头连接异常!");
|
||||
}
|
||||
|
||||
// 执行抓图
|
||||
|
||||
Reference in New Issue
Block a user