1.添加mybatis SQL日志打印,2.新增获取未排单的板材生产单板材分页列表接口

This commit is contained in:
yangshb
2024-03-05 17:08:22 +08:00
parent ffced53733
commit a4dee1002e
12 changed files with 96 additions and 50 deletions
@@ -80,7 +80,7 @@ public class PlanController {
}
@GetMapping("getOrderPageByPlanId")
@Operation(summary = "获取生产单分页")
@Operation(summary = "获取未排单的板材生产单板材分页列表")
@PreAuthorize("@ss.hasPermission('executor:plan:query')")
public CommonResult<PageResult<OrderRespVO>> getOrderPage(@Valid OrderPageReqVO pageReqVO) {
return success(planService.getOrderPage(pageReqVO));
@@ -34,7 +34,13 @@ public class OrderRespVO {
@JsonFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND, timezone = TIME_ZONE_DEFAULT)
private Date deliveryDate;
@Schema(description = "片数")
private Integer num;
private int num;
@Schema(description = "平方")
private BigDecimal area;
private BigDecimal area = new BigDecimal("0");
@Schema(description = "商品名称")
private String goodsName;
@Schema(description = "颜色")
private String color;
@Schema(description = "材质:颗粒板、欧松板、多层板、生态板、禾香板、密度板、实木、铝蜂窝板、铝塑板")
private String material;
}
@@ -15,7 +15,6 @@ public class PlanSaveReqVO {
private Long id;
@Schema(description = "排单号", requiredMode = Schema.RequiredMode.REQUIRED)
@NotEmpty(message = "排单号不能为空")
private String planNo;
@Schema(description = "排序优先级", requiredMode = Schema.RequiredMode.REQUIRED)
@@ -2,7 +2,9 @@ package com.cf.imes.module.executor.dal.mysql.order;
import java.util.*;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.cf.imes.framework.common.pojo.PageResult;
import com.cf.imes.framework.mybatis.core.mapper.BaseMapperX;
import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
@@ -10,6 +12,7 @@ import com.cf.imes.module.executor.controller.admin.plan.vo.OrderPageReqVO;
import com.cf.imes.module.executor.controller.admin.plan.vo.OrderRespVO;
import com.cf.imes.module.executor.dal.dataobject.order.OrderDO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
* 生产单表 order_{N} Mapper
@@ -40,5 +43,5 @@ public interface OrderMapper extends BaseMapperX<OrderDO> {
.orderByDesc(OrderDO::getId));
}
IPage<OrderRespVO> selectOrderPage(IPage page, OrderPageReqVO pageReqVO);
IPage<OrderRespVO> selectOrderPage(@Param("page") IPage page, @Param(Constants.WRAPPER) Wrapper<OrderDO> wrapper);
}
@@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO;
import com.cf.imes.framework.common.util.date.LocalDateTimeUtils;
import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.cf.imes.framework.mybatis.core.query.QueryWrapperX;
import com.cf.imes.module.executor.dal.dataobject.goods.GoodsDO;
import com.cf.imes.module.executor.dal.dataobject.order.OrderDO;
import com.cf.imes.module.executor.dal.dataobject.orderItem.OrderItemDO;
@@ -21,7 +22,9 @@ import com.cf.imes.module.executor.dal.mysql.planitem.PlanItemMapper;
import com.cf.imes.module.executor.dal.mysql.planorder.PlanOrderMapper;
import com.cf.imes.module.executor.dal.mysql.plate.PlateMapper;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import org.springframework.transaction.annotation.Transactional;
@@ -64,7 +67,7 @@ public class PlanServiceImpl implements PlanService {
@Resource
private OrderItemMapper orderItemMapper;
@Resource
private OrderMapper orderMapper;
@@ -79,10 +82,10 @@ public class PlanServiceImpl implements PlanService {
planMapper.insert(plan);
Long planId = plan.getId();
List<Long> orderIds = createReqVO.getOrderIds();
if(CollectionUtil.isNotEmpty(orderIds)) {
if (CollectionUtil.isNotEmpty(orderIds)) {
ArrayList<PlanOrderDO> planOrderDOS = new ArrayList<>();
for (Long orderId : orderIds) {
planOrderDOS.add( PlanOrderDO.builder()
planOrderDOS.add(PlanOrderDO.builder()
.planId(planId)
.orderId(orderId)
.build());
@@ -90,10 +93,10 @@ public class PlanServiceImpl implements PlanService {
planOrderMapper.insertBatch(planOrderDOS);
}
List<Long> plateIds = createReqVO.getPlateIds();
if(CollectionUtil.isNotEmpty(plateIds)) {
if (CollectionUtil.isNotEmpty(plateIds)) {
ArrayList<PlanItemDO> planItemDOS = new ArrayList<>();
for (Long plateId : plateIds) {
planItemDOS.add( PlanItemDO.builder()
planItemDOS.add(PlanItemDO.builder()
.planId(planId)
.itemId(plateId)
.build());
@@ -118,10 +121,10 @@ public class PlanServiceImpl implements PlanService {
planItemMapper.delete(new LambdaQueryWrapperX<PlanItemDO>().eq(PlanItemDO::getPlanId, planId));
List<Long> orderIds = updateReqVO.getOrderIds();
if(CollectionUtil.isNotEmpty(orderIds)) {
if (CollectionUtil.isNotEmpty(orderIds)) {
ArrayList<PlanOrderDO> planOrderDOS = new ArrayList<>();
for (Long orderId : orderIds) {
planOrderDOS.add( PlanOrderDO.builder()
planOrderDOS.add(PlanOrderDO.builder()
.planId(planId)
.orderId(orderId)
.build());
@@ -129,10 +132,10 @@ public class PlanServiceImpl implements PlanService {
planOrderMapper.insertBatch(planOrderDOS);
}
List<Long> plateIds = updateReqVO.getPlateIds();
if(CollectionUtil.isNotEmpty(plateIds)) {
if (CollectionUtil.isNotEmpty(plateIds)) {
ArrayList<PlanItemDO> planItemDOS = new ArrayList<>();
for (Long plateId : plateIds) {
planItemDOS.add( PlanItemDO.builder()
planItemDOS.add(PlanItemDO.builder()
.planId(planId)
.itemId(plateId)
.build());
@@ -180,9 +183,9 @@ public class PlanServiceImpl implements PlanService {
Set<Long> ids = planDOPageResult.getList().stream().map(e -> e.getId()).collect(Collectors.toSet());
List<GoodsDO> goodsDOS = goodsMapper.selectList(new LambdaQueryWrapperX<GoodsDO>().in(GoodsDO::getOrderNo, ids));
PageResult<PlanRespVO> planRespVOPageResult = BeanUtils.toBean(planDOPageResult, PlanRespVO.class);
planRespVOPageResult.getList().stream().forEach(e->{
planRespVOPageResult.getList().stream().forEach(e -> {
e.setPlateInfoList(goodsDOS.stream()
.filter(f->Objects.equals(f.getOrderNo(), e.getId()))
.filter(f -> Objects.equals(f.getOrderNo(), e.getId()))
.map(p -> PlateInfoVO.builder()
.width(p.getWidth())
.height(p.getHeight())
@@ -197,42 +200,52 @@ public class PlanServiceImpl implements PlanService {
@Override
public PageResult<OrderRespVO> getOrderPage(OrderPageReqVO pageReqVO) {
PageDTO<OrderRespVO> page = new PageDTO<>(pageReqVO.getPageNo(), pageReqVO.getPageSize());
orderMapper.selectOrderPage(page, pageReqVO);
PageResult<OrderDO> orderDOPageResult = orderMapper.selectPage(pageReqVO, new LambdaQueryWrapperX<OrderDO>()
QueryWrapperX<OrderDO> queryWrapperX = new QueryWrapperX<>();
queryWrapperX
.eqIfPresent("customer", pageReqVO.getConsignee())
.eqIfPresent("address", pageReqVO.getConsigneeAddress())
.eqIfPresent("custom_order_no", pageReqVO.getDefaultId())
.betweenIfPresent("delivery_date" ,new Date[]{pageReqVO.getBeginDate(), pageReqVO.getEndDate()})
.isNull("d.order_id")
;
LambdaQueryWrapperX<OrderDO> wrapper = new LambdaQueryWrapperX<OrderDO>()
.eqIfPresent(OrderDO::getId, pageReqVO.getOrderId())
.eqIfPresent(OrderDO::getCustomer, pageReqVO.getConsignee())
.eqIfPresent(OrderDO::getAddress, pageReqVO.getConsigneeAddress())
.eqIfPresent(OrderDO::getCustomOrderNo, pageReqVO.getDefaultId())
.betweenIfPresent(OrderDO::getDeliveryDate, new Date[]{pageReqVO.getBeginDate(), pageReqVO.getEndDate()})
);
Set<Long> orderIds = orderDOPageResult.getList().stream().map(e -> e.getId()).collect(Collectors.toSet());
;
Set<Long> dataIds = orderItemMapper.selectList(new LambdaQueryWrapperX<OrderItemDO>().in(OrderItemDO::getOrderId, orderIds))
IPage<OrderRespVO> orderDOPageResult = orderMapper.selectOrderPage(page, queryWrapperX);
if (CollectionUtil.isEmpty(orderDOPageResult.getRecords())) {
return new PageResult<>();
}
//TODO 获取面积
/*
Set<Long> orderIds = orderDOPageResult.getRecords().stream().map(e -> e.getOrderId()).collect(Collectors.toSet());
Set<Long> dataIds = orderItemMapper.selectList(new LambdaQueryWrapperX<OrderItemDO>().notIn(OrderItemDO::getOrderId, orderIds))
.stream().map(e -> e.getDataId()).collect(Collectors.toSet());
List<PlateDO> plateDOS = plateMapper.selectList(new LambdaQueryWrapperX<PlateDO>().in(PlateDO::getId, dataIds));
List<OrderRespVO> list = orderDOPageResult.getList().stream().map(e -> {
List<PlateDO> plateDOList = plateDOS.stream().filter(f -> Objects.equals(e.getOrganId(), e.getId())).collect(Collectors.toList());
BigDecimal area = new BigDecimal("0");
if(CollectionUtil.isNotEmpty(plateDOList)) {
for (PlateDO plateDO : plateDOList) {
area.add( plateDO.getWidth().multiply(plateDO.getHeight()));
}
}
area.setScale(2, RoundingMode.HALF_UP);
return OrderRespVO.builder()
.orderId(e.getId())
.address(e.getAddress())
.customer(e.getCustomer())
.defineId(e.getCustomOrderNo())
.deliveryDate(DateUtil.date(e.getDeliveryDate()))
.num(plateDOList.size())
.area(area)
.build();
}
).collect(Collectors.toList());
return new PageResult<>(list, orderDOPageResult.getTotal());
if (CollectionUtil.isNotEmpty(dataIds)) {
List<PlateDO> plateDOS = plateMapper.selectList(new LambdaQueryWrapperX<PlateDO>().in(PlateDO::getId, dataIds));
orderDOPageResult.getRecords().stream().forEach(e -> {
List<PlateDO> plateDOList = plateDOS.stream().filter(f -> Objects.equals(e.getOrderId(), f.getId())).collect(Collectors.toList());
BigDecimal area = new BigDecimal("0");
if (CollectionUtil.isNotEmpty(plateDOList)) {
for (PlateDO plateDO : plateDOList) {
area.add(plateDO.getWidth().multiply(plateDO.getHeight()));
}
}
area.setScale(2, RoundingMode.HALF_UP);
e.setArea(area);
}
);
}*/
// return new PageResult<>(list, orderDOPageResult.getTotal());
return new PageResult<>(orderDOPageResult.getRecords(), orderDOPageResult.getTotal());
}
}
@@ -166,3 +166,7 @@ justauth:
type: REDIS
prefix: 'social_auth_state:' # 缓存前缀,目前只对 Redis 缓存生效,默认 JUSTAUTH::STATE::
timeout: 24h # 超时时长,目前只对 Redis 缓存生效,默认 3 分钟
mybatis-plus:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #开启sql日志
@@ -135,3 +135,7 @@ chenfeng:
error-code: # 错误码相关配置项
enable: false
demo: false # 关闭演示模式
mybatis-plus:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #开启sql日志
@@ -2,13 +2,14 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.cf.imes.module.executor.dal.mysql.order.OrderMapper">
<select id="selectOrderPage" resultType="com.cf.imes.module.executor.controller.admin.plan.vo.OrderRespVO">
select a.id as orderId, a.delivery_date, a.customer, a.address, a.custom_order_no
select a.id as orderId, a.delivery_date, a.customer, a.address, a.custom_order_no as defineId,
count(c.id) as num, sum(c.area) as area, p.goods_name, p.color, p.material
from `order` a
left join prod_plan_order b on a.id = b.order_id
left join order_plate c on a.id = c.order_id
left join order_item d on a.id = d.order_id
where d.order_id is null
left join order_plate c ON a.id = c.order_id
left join plate p on c.goods_id = p.goods_id
left join order_item d ON c.order_id = d.order_id
${ew.customSqlSegment}
group by orderId, p.id
</select>
</mapper>