Merge branch 'main' of ssh://192.168.1.205:9922/cf_devdept2/cf_imes_server

This commit is contained in:
lym
2024-03-05 17:25:25 +08:00
12 changed files with 96 additions and 50 deletions
@@ -80,7 +80,7 @@ public class PlanController {
} }
@GetMapping("getOrderPageByPlanId") @GetMapping("getOrderPageByPlanId")
@Operation(summary = "获取生产单分页") @Operation(summary = "获取未排单的板材生产单板材分页列表")
@PreAuthorize("@ss.hasPermission('executor:plan:query')") @PreAuthorize("@ss.hasPermission('executor:plan:query')")
public CommonResult<PageResult<OrderRespVO>> getOrderPage(@Valid OrderPageReqVO pageReqVO) { public CommonResult<PageResult<OrderRespVO>> getOrderPage(@Valid OrderPageReqVO pageReqVO) {
return success(planService.getOrderPage(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) @JsonFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND, timezone = TIME_ZONE_DEFAULT)
private Date deliveryDate; private Date deliveryDate;
@Schema(description = "片数") @Schema(description = "片数")
private Integer num; private int num;
@Schema(description = "平方") @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; private Long id;
@Schema(description = "排单号", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "排单号", requiredMode = Schema.RequiredMode.REQUIRED)
@NotEmpty(message = "排单号不能为空")
private String planNo; private String planNo;
@Schema(description = "排序优先级", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "排序优先级", requiredMode = Schema.RequiredMode.REQUIRED)
@@ -2,7 +2,9 @@ package com.cf.imes.module.executor.dal.mysql.order;
import java.util.*; import java.util.*;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; 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.common.pojo.PageResult;
import com.cf.imes.framework.mybatis.core.mapper.BaseMapperX; import com.cf.imes.framework.mybatis.core.mapper.BaseMapperX;
import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX; 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.controller.admin.plan.vo.OrderRespVO;
import com.cf.imes.module.executor.dal.dataobject.order.OrderDO; import com.cf.imes.module.executor.dal.dataobject.order.OrderDO;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/** /**
* 生产单表 order_{N} Mapper * 生产单表 order_{N} Mapper
@@ -40,5 +43,5 @@ public interface OrderMapper extends BaseMapperX<OrderDO> {
.orderByDesc(OrderDO::getId)); .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.baomidou.mybatisplus.extension.plugins.pagination.PageDTO;
import com.cf.imes.framework.common.util.date.LocalDateTimeUtils; 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.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.goods.GoodsDO;
import com.cf.imes.module.executor.dal.dataobject.order.OrderDO; import com.cf.imes.module.executor.dal.dataobject.order.OrderDO;
import com.cf.imes.module.executor.dal.dataobject.orderItem.OrderItemDO; 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.planorder.PlanOrderMapper;
import com.cf.imes.module.executor.dal.mysql.plate.PlateMapper; import com.cf.imes.module.executor.dal.mysql.plate.PlateMapper;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@@ -64,7 +67,7 @@ public class PlanServiceImpl implements PlanService {
@Resource @Resource
private OrderItemMapper orderItemMapper; private OrderItemMapper orderItemMapper;
@Resource @Resource
private OrderMapper orderMapper; private OrderMapper orderMapper;
@@ -79,10 +82,10 @@ public class PlanServiceImpl implements PlanService {
planMapper.insert(plan); planMapper.insert(plan);
Long planId = plan.getId(); Long planId = plan.getId();
List<Long> orderIds = createReqVO.getOrderIds(); List<Long> orderIds = createReqVO.getOrderIds();
if(CollectionUtil.isNotEmpty(orderIds)) { if (CollectionUtil.isNotEmpty(orderIds)) {
ArrayList<PlanOrderDO> planOrderDOS = new ArrayList<>(); ArrayList<PlanOrderDO> planOrderDOS = new ArrayList<>();
for (Long orderId : orderIds) { for (Long orderId : orderIds) {
planOrderDOS.add( PlanOrderDO.builder() planOrderDOS.add(PlanOrderDO.builder()
.planId(planId) .planId(planId)
.orderId(orderId) .orderId(orderId)
.build()); .build());
@@ -90,10 +93,10 @@ public class PlanServiceImpl implements PlanService {
planOrderMapper.insertBatch(planOrderDOS); planOrderMapper.insertBatch(planOrderDOS);
} }
List<Long> plateIds = createReqVO.getPlateIds(); List<Long> plateIds = createReqVO.getPlateIds();
if(CollectionUtil.isNotEmpty(plateIds)) { if (CollectionUtil.isNotEmpty(plateIds)) {
ArrayList<PlanItemDO> planItemDOS = new ArrayList<>(); ArrayList<PlanItemDO> planItemDOS = new ArrayList<>();
for (Long plateId : plateIds) { for (Long plateId : plateIds) {
planItemDOS.add( PlanItemDO.builder() planItemDOS.add(PlanItemDO.builder()
.planId(planId) .planId(planId)
.itemId(plateId) .itemId(plateId)
.build()); .build());
@@ -118,10 +121,10 @@ public class PlanServiceImpl implements PlanService {
planItemMapper.delete(new LambdaQueryWrapperX<PlanItemDO>().eq(PlanItemDO::getPlanId, planId)); planItemMapper.delete(new LambdaQueryWrapperX<PlanItemDO>().eq(PlanItemDO::getPlanId, planId));
List<Long> orderIds = updateReqVO.getOrderIds(); List<Long> orderIds = updateReqVO.getOrderIds();
if(CollectionUtil.isNotEmpty(orderIds)) { if (CollectionUtil.isNotEmpty(orderIds)) {
ArrayList<PlanOrderDO> planOrderDOS = new ArrayList<>(); ArrayList<PlanOrderDO> planOrderDOS = new ArrayList<>();
for (Long orderId : orderIds) { for (Long orderId : orderIds) {
planOrderDOS.add( PlanOrderDO.builder() planOrderDOS.add(PlanOrderDO.builder()
.planId(planId) .planId(planId)
.orderId(orderId) .orderId(orderId)
.build()); .build());
@@ -129,10 +132,10 @@ public class PlanServiceImpl implements PlanService {
planOrderMapper.insertBatch(planOrderDOS); planOrderMapper.insertBatch(planOrderDOS);
} }
List<Long> plateIds = updateReqVO.getPlateIds(); List<Long> plateIds = updateReqVO.getPlateIds();
if(CollectionUtil.isNotEmpty(plateIds)) { if (CollectionUtil.isNotEmpty(plateIds)) {
ArrayList<PlanItemDO> planItemDOS = new ArrayList<>(); ArrayList<PlanItemDO> planItemDOS = new ArrayList<>();
for (Long plateId : plateIds) { for (Long plateId : plateIds) {
planItemDOS.add( PlanItemDO.builder() planItemDOS.add(PlanItemDO.builder()
.planId(planId) .planId(planId)
.itemId(plateId) .itemId(plateId)
.build()); .build());
@@ -180,9 +183,9 @@ public class PlanServiceImpl implements PlanService {
Set<Long> ids = planDOPageResult.getList().stream().map(e -> e.getId()).collect(Collectors.toSet()); 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)); List<GoodsDO> goodsDOS = goodsMapper.selectList(new LambdaQueryWrapperX<GoodsDO>().in(GoodsDO::getOrderNo, ids));
PageResult<PlanRespVO> planRespVOPageResult = BeanUtils.toBean(planDOPageResult, PlanRespVO.class); PageResult<PlanRespVO> planRespVOPageResult = BeanUtils.toBean(planDOPageResult, PlanRespVO.class);
planRespVOPageResult.getList().stream().forEach(e->{ planRespVOPageResult.getList().stream().forEach(e -> {
e.setPlateInfoList(goodsDOS.stream() e.setPlateInfoList(goodsDOS.stream()
.filter(f->Objects.equals(f.getOrderNo(), e.getId())) .filter(f -> Objects.equals(f.getOrderNo(), e.getId()))
.map(p -> PlateInfoVO.builder() .map(p -> PlateInfoVO.builder()
.width(p.getWidth()) .width(p.getWidth())
.height(p.getHeight()) .height(p.getHeight())
@@ -197,42 +200,52 @@ public class PlanServiceImpl implements PlanService {
@Override @Override
public PageResult<OrderRespVO> getOrderPage(OrderPageReqVO pageReqVO) { public PageResult<OrderRespVO> getOrderPage(OrderPageReqVO pageReqVO) {
PageDTO<OrderRespVO> page = new PageDTO<>(pageReqVO.getPageNo(), pageReqVO.getPageSize()); 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::getId, pageReqVO.getOrderId())
.eqIfPresent(OrderDO::getCustomer, pageReqVO.getConsignee()) .eqIfPresent(OrderDO::getCustomer, pageReqVO.getConsignee())
.eqIfPresent(OrderDO::getAddress, pageReqVO.getConsigneeAddress()) .eqIfPresent(OrderDO::getAddress, pageReqVO.getConsigneeAddress())
.eqIfPresent(OrderDO::getCustomOrderNo, pageReqVO.getDefaultId()) .eqIfPresent(OrderDO::getCustomOrderNo, pageReqVO.getDefaultId())
.betweenIfPresent(OrderDO::getDeliveryDate, new Date[]{pageReqVO.getBeginDate(), pageReqVO.getEndDate()}) .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()); .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 type: REDIS
prefix: 'social_auth_state:' # 缓存前缀,目前只对 Redis 缓存生效,默认 JUSTAUTH::STATE:: prefix: 'social_auth_state:' # 缓存前缀,目前只对 Redis 缓存生效,默认 JUSTAUTH::STATE::
timeout: 24h # 超时时长,目前只对 Redis 缓存生效,默认 3 分钟 timeout: 24h # 超时时长,目前只对 Redis 缓存生效,默认 3 分钟
mybatis-plus:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #开启sql日志
@@ -135,3 +135,7 @@ chenfeng:
error-code: # 错误码相关配置项 error-code: # 错误码相关配置项
enable: false enable: false
demo: 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" > <!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"> <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 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 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_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 a.id = d.order_id left join order_item d ON c.order_id = d.order_id
where d.order_id is null ${ew.customSqlSegment}
group by orderId, p.id
</select> </select>
</mapper> </mapper>
@@ -166,3 +166,7 @@ justauth:
type: REDIS type: REDIS
prefix: 'social_auth_state:' # 缓存前缀,目前只对 Redis 缓存生效,默认 JUSTAUTH::STATE:: prefix: 'social_auth_state:' # 缓存前缀,目前只对 Redis 缓存生效,默认 JUSTAUTH::STATE::
timeout: 24h # 超时时长,目前只对 Redis 缓存生效,默认 3 分钟 timeout: 24h # 超时时长,目前只对 Redis 缓存生效,默认 3 分钟
mybatis-plus:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #开启sql日志
@@ -133,3 +133,7 @@ chenfeng:
error-code: # 错误码相关配置项 error-code: # 错误码相关配置项
enable: false enable: false
demo: false # 关闭演示模式 demo: false # 关闭演示模式
mybatis-plus:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #开启sql日志
@@ -166,3 +166,7 @@ justauth:
type: REDIS type: REDIS
prefix: 'social_auth_state:' # 缓存前缀,目前只对 Redis 缓存生效,默认 JUSTAUTH::STATE:: prefix: 'social_auth_state:' # 缓存前缀,目前只对 Redis 缓存生效,默认 JUSTAUTH::STATE::
timeout: 24h # 超时时长,目前只对 Redis 缓存生效,默认 3 分钟 timeout: 24h # 超时时长,目前只对 Redis 缓存生效,默认 3 分钟
mybatis-plus:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #开启sql日志
@@ -135,3 +135,7 @@ chenfeng:
error-code: # 错误码相关配置项 error-code: # 错误码相关配置项
enable: false enable: false
demo: false # 关闭演示模式 demo: false # 关闭演示模式
mybatis-plus:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #开启sql日志