代码优化

This commit is contained in:
zc
2026-03-06 15:55:06 +08:00
parent 32f88b1443
commit ae9a607da1
8 changed files with 88 additions and 24 deletions

View File

@@ -41,4 +41,10 @@ public class WorkOrderDO extends BaseDO {
* 总重量 * 总重量
*/ */
private BigDecimal totalWeight; private BigDecimal totalWeight;
/**
* 总数量
*/
private Integer totalCount;
} }

View File

@@ -6,7 +6,8 @@ import lombok.Data;
import java.io.Serial; import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDateTime;
import jakarta.validation.constraints.*;
/** /**
* 创建或修改任务工单信息参数 * 创建或修改任务工单信息参数
@@ -31,19 +32,20 @@ public class WorkOrderInfoReq implements Serializable {
* 物料主键id * 物料主键id
*/ */
@Schema(description = "物料主键id") @Schema(description = "物料主键id")
@NotNull(message = "物料主键id不能为空")
private Long materialId; private Long materialId;
/** /**
* 称重次数 * 称重次数
*/ */
@Schema(description = "称重次数") @Schema(description = "称重次数")
private int weightTime; private Integer weightTime;
/** /**
* 物料数量 * 物料数量
*/ */
@Schema(description = "物料数量") @Schema(description = "物料数量")
private BigDecimal quantity; private Integer quantity;
/** /**
* 称重重量 * 称重重量

View File

@@ -8,8 +8,6 @@ import io.swagger.v3.oas.annotations.media.Schema;
import java.io.Serial; import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
import java.time.*;
import java.math.BigDecimal;
import java.util.List; import java.util.List;
/** /**
@@ -29,17 +27,21 @@ public class WorkOrderReq implements Serializable {
* 物料主键id * 物料主键id
*/ */
@Schema(description = "物料主键id") @Schema(description = "物料主键id")
@NotNull(message = "物料主键id不能为空")
private Long materialId; private Long materialId;
/** /**
* 创建人 * 物料名称
*/ */
@Schema(description = "创建人") @Schema(description = "物料名称")
private List<WorkOrderInfoReq> workOrderInfos; @NotBlank(message = "物料名称不能为空")
private String materialName;
/** /**
* 创建时间 * 称重列表
*/ */
@Schema(description = "创建时间") @Schema(description = "称重列表")
private LocalDateTime createTime; @NotEmpty(message = "称重列表不能为空")
private List<WorkOrderInfoReq> workOrderInfos;
} }

View File

@@ -30,6 +30,12 @@ public class WorkOrderResp extends BaseDetailResp {
@Schema(description = "卡号") @Schema(description = "卡号")
private String cardNo; private String cardNo;
/**
* 工单编号
*/
@Schema(description = "工单编号")
private String orderNo;
/** /**
* 标题 * 标题
*/ */

View File

@@ -1,5 +1,10 @@
package top.wms.admin.weighManage.service.impl; 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 cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; 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.query.PageQuery;
import top.continew.starter.extension.crud.model.resp.PageResp; import top.continew.starter.extension.crud.model.resp.PageResp;
import top.continew.starter.extension.crud.service.BaseServiceImpl; 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.mapper.WorkOrderMapper;
import top.wms.admin.weighManage.model.entity.WorkOrderDO; 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.query.WorkOrderQuery;
import top.wms.admin.weighManage.model.req.WorkOrderInfoReq;
import top.wms.admin.weighManage.model.req.WorkOrderReq; import top.wms.admin.weighManage.model.req.WorkOrderReq;
import top.wms.admin.weighManage.model.resp.WorkOrderInfoResp; import top.wms.admin.weighManage.model.resp.WorkOrderInfoResp;
import top.wms.admin.weighManage.model.resp.WorkOrderResp; import top.wms.admin.weighManage.model.resp.WorkOrderResp;
import top.wms.admin.weighManage.service.WorkOrderService; import top.wms.admin.weighManage.service.WorkOrderService;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List; import java.util.List;
/** /**
@@ -31,6 +42,9 @@ import java.util.List;
@RequiredArgsConstructor @RequiredArgsConstructor
public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkOrderDO, WorkOrderResp, WorkOrderResp, WorkOrderQuery, WorkOrderReq> implements WorkOrderService { public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkOrderDO, WorkOrderResp, WorkOrderResp, WorkOrderQuery, WorkOrderReq> implements WorkOrderService {
private final WorkOrderInfoMapper workOrderInfoMapper;
@Override @Override
public PageResp<WorkOrderResp> page(WorkOrderQuery query, PageQuery pageQuery) { public PageResp<WorkOrderResp> page(WorkOrderQuery query, PageQuery pageQuery) {
QueryWrapper<WorkOrderDO> queryWrapper = new QueryWrapper<>(); QueryWrapper<WorkOrderDO> queryWrapper = new QueryWrapper<>();
@@ -50,13 +64,44 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
return baseMapper.getDetail(id); return baseMapper.getDetail(id);
} }
@Override @Override
public WorkOrderResp addWorKerOrder(WorkOrderReq req) { public void afterDelete(List<Long> ids) {
workOrderInfoMapper.delete(new QueryWrapper<WorkOrderInfoDO>().in("work_order_id", ids));
return null;
} }
@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<WorkOrderInfoDO> workOrderInfoDOList = BeanUtil.copyToList(req.getWorkOrderInfos(), WorkOrderInfoDO.class);
workOrderInfoDOList.forEach(workOrderInfoDO -> workOrderInfoDO.setWorkOrderId(workOrder.getId()));
workOrderInfoMapper.insertBatch(workOrderInfoDOList);
return BeanUtil.copyProperties(workOrder, WorkOrderResp.class);
}
} }

View File

@@ -1,6 +1,7 @@
package top.wms.admin.controller.weighManage; package top.wms.admin.controller.weighManage;
import cn.dev33.satoken.annotation.SaCheckPermission; import cn.dev33.satoken.annotation.SaCheckPermission;
import org.springframework.validation.annotation.Validated;
import top.continew.starter.extension.crud.enums.Api; import top.continew.starter.extension.crud.enums.Api;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
@@ -41,7 +42,7 @@ public class WorkOrderController extends BaseController<WorkOrderService, WorkOr
@SaCheckPermission("workOrder:record:add") @SaCheckPermission("workOrder:record:add")
@PostMapping @PostMapping
public WorkOrderResp addWorKerOrder(@RequestBody WorkOrderReq req) { public WorkOrderResp addWorKerOrder(@Validated @RequestBody WorkOrderReq req) {
return baseService.addWorKerOrder(req); return baseService.addWorKerOrder(req);
} }

View File

@@ -52,8 +52,10 @@ public class AHDZCConnect {
@PostConstruct @PostConstruct
public void init() { public void init() {
// 项目启动时初始化并启动服务 // 项目启动时初始化并启动服务
ScaleService(); if (false) {
start(); ScaleService();
start();
}
} }
@PreDestroy @PreDestroy
@@ -191,8 +193,8 @@ public class AHDZCConnect {
// 解析数据,提取数字和重量单位 // 解析数据,提取数字和重量单位
String weightStr = data.trim(); String weightStr = data.trim();
// 使用正则表达式提取数字和重量单位 // 使用正则表达式提取数字(包括小数点)
Pattern pattern = java.util.regex.Pattern.compile("[-+]?\\d*\\.?\\d+\\s*[a-zA-Z]*"); Pattern pattern = java.util.regex.Pattern.compile("[-+]?\\d*\\.?\\d+");
Matcher matcher = pattern.matcher(weightStr); Matcher matcher = pattern.matcher(weightStr);
if (matcher.find()) { if (matcher.find()) {

View File

@@ -48,12 +48,12 @@ spring.data:
## Redis 配置(单机模式) ## Redis 配置(单机模式)
redis: redis:
# 地址 # 地址
host: ${REDIS_HOST:192.168.2.30} # host: ${REDIS_HOST:192.168.2.30}
# host: ${REDIS_HOST:127.0.0.1} host: ${REDIS_HOST:127.0.0.1}
# 端口(默认 6379 # 端口(默认 6379
port: ${REDIS_PORT:6379} port: ${REDIS_PORT:6379}
# 密码(未设置密码时请注释掉) # 密码(未设置密码时请注释掉)
password: ${REDIS_PWD:redis2025} # password: ${REDIS_PWD:redis2025}
# 数据库索引 # 数据库索引
database: ${REDIS_DB:1} database: ${REDIS_DB:1}
# 连接超时时间 # 连接超时时间