Merge branch 'refs/heads/master' into master_lz

# Conflicts:
#	wms-module-system/src/main/java/top/wms/admin/material/service/MaterialInfoService.java
#	wms-module-system/src/main/java/top/wms/admin/material/service/impl/MaterialInfoServiceImpl.java
This commit is contained in:
2026-03-05 14:27:48 +08:00
13 changed files with 267 additions and 37 deletions

View File

@@ -17,6 +17,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.core.toolkit.support.SFunction; import com.baomidou.mybatisplus.core.toolkit.support.SFunction;
import jakarta.servlet.http.HttpServletResponse; import jakarta.servlet.http.HttpServletResponse;
import cn.hutool.core.util.StrUtil;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import me.ahoo.cosid.IdGenerator; import me.ahoo.cosid.IdGenerator;

View File

@@ -0,0 +1,16 @@
package top.wms.admin.weighManage.mapper;
import top.continew.starter.data.mp.base.BaseMapper;
import org.springframework.stereotype.Repository;
import top.wms.admin.weighManage.model.entity.WorkOrderInfoDO;
/**
* 任务工单详情 Mapper
*
* @author zc
* @since 2026/03/04 14:16
*/
@Repository
public interface WorkOrderInfoMapper extends BaseMapper<WorkOrderInfoDO> {
}

View File

@@ -8,8 +8,11 @@ import org.apache.ibatis.annotations.Param;
import top.continew.starter.data.mp.base.BaseMapper; import top.continew.starter.data.mp.base.BaseMapper;
import top.wms.admin.weighManage.model.entity.WorkOrderDO; import top.wms.admin.weighManage.model.entity.WorkOrderDO;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
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 java.util.List;
/** /**
* 任务工单信息 Mapper * 任务工单信息 Mapper
* *
@@ -19,6 +22,22 @@ import top.wms.admin.weighManage.model.resp.WorkOrderResp;
@Repository @Repository
public interface WorkOrderMapper extends BaseMapper<WorkOrderDO> { public interface WorkOrderMapper extends BaseMapper<WorkOrderDO> {
IPage<WorkOrderResp> selectWorkOrderPage(@Param("page") Page<Object> objectPage, @Param(Constants.WRAPPER) QueryWrapper<WorkOrderDO> queryWrapper); /**
* 获取任务工单分页列表
*
* @param objectPage 分页参数
* @param queryWrapper 查询参数
* @return 任务工单分页列表
*/
IPage<WorkOrderResp> selectWorkOrderPage(@Param("page") Page<Object> objectPage,
@Param(Constants.WRAPPER) QueryWrapper<WorkOrderDO> queryWrapper);
/**
* 获取任务工单详情信息
*
* @param id 任务工单主键id
* @return 任务工单详情信息
*/
List<WorkOrderInfoResp> getDetail(Long id);
} }

View File

@@ -0,0 +1,59 @@
package top.wms.admin.weighManage.model.entity;
import lombok.Data;
import com.baomidou.mybatisplus.annotation.TableName;
import top.wms.admin.common.model.entity.BaseDO;
import java.io.Serial;
import java.math.BigDecimal;
/**
* 任务工单详情实体
*
* @author zc
* @since 2026/03/04 14:16
*/
@Data
@TableName("sys_work_order_info")
public class WorkOrderInfoDO extends BaseDO {
@Serial
private static final long serialVersionUID = 1L;
/**
* 工单主键id
*/
private Long workOrderId;
/**
* 物料主键id
*/
private Long materialId;
/**
* 称重次数
*/
private int weightTime;
/**
* 抓拍的图片
*/
private String imgUrl;
/**
* 物料数量
*/
private BigDecimal quantity;
/**
* 称重重量
*/
private BigDecimal weight;
/**
* 计算重量
*/
private BigDecimal calculatedWeight;
}

View File

@@ -4,13 +4,10 @@ import lombok.Data;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import top.continew.starter.data.core.annotation.Query;
import top.continew.starter.data.core.enums.QueryType;
import java.io.Serial; import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
import java.time.*; import java.time.*;
import java.math.BigDecimal; import java.util.Date;
/** /**
* 任务工单信息查询条件 * 任务工单信息查询条件
@@ -25,12 +22,6 @@ public class WorkOrderQuery implements Serializable {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/**
* 总重量
*/
@Schema(description = "总重量")
private BigDecimal totalWeight;
/** /**
* 任务工单号 * 任务工单号
*/ */
@@ -43,15 +34,33 @@ public class WorkOrderQuery implements Serializable {
@Schema(description = "物料名称") @Schema(description = "物料名称")
private String materialName; private String materialName;
/**
* 物料编码
*/
@Schema(description = "物料编码")
private String encoding;
/** /**
* 创建人 * 创建人
*/ */
@Schema(description = "创建人") @Schema(description = "创建人")
private Long createUser; private String userName;
/** /**
* 创建时间 * 卡号
*/ */
@Schema(description = "创建时间") @Schema(description = "卡号")
private LocalDateTime createTime; private String carNo;
/**
* 创建开始时间
*/
@Schema(description = "创建开始时间")
private Date startTime;
/**
* 创建结束时间
*/
@Schema(description = "创建结束时间")
private Date endTime;
} }

View File

@@ -6,8 +6,6 @@ import lombok.Data;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import org.hibernate.validator.constraints.Length;
import java.io.Serial; import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
import java.time.*; import java.time.*;

View File

@@ -0,0 +1,72 @@
package top.wms.admin.weighManage.model.resp;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.math.BigDecimal;
/**
* 任务工单详情信息
*
* @author zc
* @since 2026/03/04 14:21
*/
@Data
@Schema(description = "任务工单详情信息")
public class WorkOrderInfoResp {
/**
* 主键id
*/
@Schema(description = "主键id")
private Long id;
/**
* 工单主键id
*/
@Schema(description = "工单主键id")
private Long workOrderId;
/**
* 物料主键id
*/
@Schema(description = "物料主键id")
private Long materialId;
/**
* 物料主键id
*/
@Schema(description = "物料主键id")
private String materialName;
/**
* 称重次数
*/
@Schema(description = "称重次数")
private int weightTime;
/**
* 物料数量
*/
@Schema(description = "物料数量")
private BigDecimal quantity;
/**
* 称重重量
*/
@Schema(description = "称重重量")
private BigDecimal weight;
/**
* 计算重量
*/
@Schema(description = "计算重量")
private BigDecimal calculatedWeight;
/**
* 抓拍的图片
*/
@Schema(description = "抓拍的图片")
private String imgUrl;
}

View File

@@ -9,6 +9,7 @@ import top.wms.admin.common.model.resp.BaseDetailResp;
import java.io.Serial; import java.io.Serial;
import java.time.*; import java.time.*;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.List;
/** /**
* 任务工单信息信息 * 任务工单信息信息
@@ -23,6 +24,12 @@ public class WorkOrderResp extends BaseDetailResp {
@Serial @Serial
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/**
* 卡号
*/
@Schema(description = "卡号")
private String cardNo;
/** /**
* 标题 * 标题
*/ */
@@ -72,14 +79,15 @@ public class WorkOrderResp extends BaseDetailResp {
private BigDecimal totalWeight; private BigDecimal totalWeight;
/** /**
* 修改人 * 总数量
*/ */
@Schema(description = "修改人") @Schema(description = "总数量")
private Long updateUser; private int totalCount;
/** /**
* 修改时间 * 任务工单详情信息列表
*/ */
@Schema(description = "修改时间") @Schema(description = "任务工单详情信息列表")
private LocalDateTime updateTime; private List<WorkOrderInfoResp> workOrderInfos;
} }

View File

@@ -3,8 +3,11 @@ package top.wms.admin.weighManage.service;
import top.continew.starter.extension.crud.service.BaseService; import top.continew.starter.extension.crud.service.BaseService;
import top.wms.admin.weighManage.model.query.WorkOrderQuery; import top.wms.admin.weighManage.model.query.WorkOrderQuery;
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.WorkOrderResp; import top.wms.admin.weighManage.model.resp.WorkOrderResp;
import java.util.List;
/** /**
* 任务工单信息业务接口 * 任务工单信息业务接口
* *
@@ -13,4 +16,11 @@ import top.wms.admin.weighManage.model.resp.WorkOrderResp;
*/ */
public interface WorkOrderService extends BaseService<WorkOrderResp, WorkOrderResp, WorkOrderQuery, WorkOrderReq> { public interface WorkOrderService extends BaseService<WorkOrderResp, WorkOrderResp, WorkOrderQuery, WorkOrderReq> {
/**
* 获取任务工单详情信息
*
* @param id 任务工单主键id
* @return 任务工单详情信息
*/
List<WorkOrderInfoResp> getDetail(Long id);
} }

View File

@@ -15,9 +15,12 @@ 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.query.WorkOrderQuery; import top.wms.admin.weighManage.model.query.WorkOrderQuery;
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.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.util.List;
/** /**
* 任务工单信息业务实现 * 任务工单信息业务实现
* *
@@ -33,6 +36,7 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
QueryWrapper<WorkOrderDO> queryWrapper = new QueryWrapper<>(); QueryWrapper<WorkOrderDO> queryWrapper = new QueryWrapper<>();
queryWrapper.like(StrUtil.isNotBlank(query.getMaterialName()), "m.material_name", query.getMaterialName()); queryWrapper.like(StrUtil.isNotBlank(query.getMaterialName()), "m.material_name", query.getMaterialName());
queryWrapper.eq(null != query.getOrderNo(), "w.order_no", query.getOrderNo()); queryWrapper.eq(null != query.getOrderNo(), "w.order_no", query.getOrderNo());
queryWrapper.groupBy("w.id");
this.sort(queryWrapper, pageQuery); this.sort(queryWrapper, pageQuery);
IPage<WorkOrderResp> page = baseMapper.selectWorkOrderPage(new Page<>(pageQuery.getPage(), pageQuery IPage<WorkOrderResp> page = baseMapper.selectWorkOrderPage(new Page<>(pageQuery.getPage(), pageQuery
@@ -40,4 +44,10 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
return PageResp.build(page); return PageResp.build(page);
} }
@Override
public List<WorkOrderInfoResp> getDetail(Long id) {
return baseMapper.getDetail(id);
}
} }

View File

@@ -5,10 +5,27 @@
<select id="selectWorkOrderPage" resultType="top.wms.admin.weighManage.model.resp.WorkOrderResp"> <select id="selectWorkOrderPage" resultType="top.wms.admin.weighManage.model.resp.WorkOrderResp">
select select
w.*, w.*,
m.material_name m.material_name,
m.encoding,
m.photo_url,
m.unit_weight,
u.card_no,
u.username createUserString,
count(*) as totalCount
from sys_work_order w from sys_work_order w
left join sys_material_info m on w.material_id = m.id left join sys_material_info m on w.material_id = m.id
left join sys_user u on w.create_user = u.id
left join sys_work_order_info wi on w.id = wi.work_order_id
${ew.customSqlSegment} ${ew.customSqlSegment}
</select> </select>
<select id="getDetail" resultType="top.wms.admin.weighManage.model.resp.WorkOrderInfoResp">
select
wi.*,
m.material_name
from sys_work_order_info wi
left join sys_material_info m on wi.material_id = m.id
where wi.work_order_id = #{id}
</select>
</mapper> </mapper>

View File

@@ -44,7 +44,6 @@ import java.io.IOException;
Api.EXPORT}) Api.EXPORT})
public class MaterialInfoController extends BaseController<MaterialInfoService, MaterialInfoResp, MaterialInfoResp, MaterialInfoQuery, MaterialInfoReq> { public class MaterialInfoController extends BaseController<MaterialInfoService, MaterialInfoResp, MaterialInfoResp, MaterialInfoQuery, MaterialInfoReq> {
@GetMapping("/code/{code}") @GetMapping("/code/{code}")
public MaterialInfoDO getMaterialInfoByCode(@PathVariable String code) { public MaterialInfoDO getMaterialInfoByCode(@PathVariable String code) {
return baseService.getMaterialInfoByCode(code); return baseService.getMaterialInfoByCode(code);

View File

@@ -1,5 +1,6 @@
package top.wms.admin.controller.weighManage; package top.wms.admin.controller.weighManage;
import cn.dev33.satoken.annotation.SaCheckPermission;
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;
@@ -8,12 +9,16 @@ import org.springframework.web.bind.annotation.*;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import top.continew.starter.extension.crud.annotation.CrudRequestMapping; import top.continew.starter.extension.crud.annotation.CrudRequestMapping;
import top.continew.starter.log.annotation.Log;
import top.wms.admin.common.controller.BaseController; import top.wms.admin.common.controller.BaseController;
import top.wms.admin.weighManage.model.query.WorkOrderQuery; import top.wms.admin.weighManage.model.query.WorkOrderQuery;
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.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.util.List;
/** /**
* 任务工单信息管理 API * 任务工单信息管理 API
* *
@@ -23,7 +28,14 @@ import top.wms.admin.weighManage.service.WorkOrderService;
@Tag(name = "任务工单信息管理 API") @Tag(name = "任务工单信息管理 API")
@RestController @RestController
@RequiredArgsConstructor @RequiredArgsConstructor
@CrudRequestMapping(value = "/weighManage/workOrder", api = {Api.PAGE, Api.DETAIL, Api.ADD, Api.DELETE, Api.EXPORT}) @CrudRequestMapping(value = "/weighManage/workOrder", api = {Api.PAGE, Api.ADD, Api.DELETE, Api.EXPORT})
public class WorkOrderController extends BaseController<WorkOrderService, WorkOrderResp, WorkOrderResp, WorkOrderQuery, WorkOrderReq> { public class WorkOrderController extends BaseController<WorkOrderService, WorkOrderResp, WorkOrderResp, WorkOrderQuery, WorkOrderReq> {
@Log(ignore = true)
@SaCheckPermission("workOrder:record:detail")
@GetMapping(value = "/{id}")
public List<WorkOrderInfoResp> getDetail(@PathVariable("id") Long id) {
return baseService.getDetail(id);
}
} }