未排单,排单,打包数量接口数据问题修改

This commit is contained in:
liuzhaotian
2024-08-27 14:37:57 +08:00
parent 8b762745ec
commit 2248f89e70
11 changed files with 101 additions and 67 deletions
@@ -1,17 +1,14 @@
package com.cf.imes.module.executor.dal.mysql.planitem;
import java.util.*;
import com.cf.imes.framework.common.pojo.PageResult;
import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.cf.imes.framework.mybatis.core.mapper.BaseMapperX;
import com.cf.imes.module.executor.controller.admin.order.vo.order.OrderRespVO;
import com.cf.imes.module.executor.controller.admin.plan.vo.PlanOrderRespVO;
import com.cf.imes.module.executor.controller.admin.plan.vo.PlateInfoVO;
import com.cf.imes.module.executor.dal.dataobject.planitem.PlanItemDO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 生产单开料排单明细 Mapper
*
@@ -481,7 +481,7 @@ public class PlanServiceImpl implements PlanService {
.map(PlateInfoVO::getArea)
.reduce(BigDecimal.ZERO,BigDecimal::add));
plateInfoVO.setOptimizeGoodsCount(plateInfoVOList.stream().filter(s->s.getGoodsId().equals(plateInfoVO.getGoodsId())).mapToLong(PlateInfoVO::getOptimizeGoodsCount).sum());
// plateInfoVO.setOptimizeGoodsCount(plateInfoVOList.stream().filter(s->s.getGoodsId().equals(plateInfoVO.getGoodsId())).mapToLong(PlateInfoVO::getOptimizeGoodsCount).sum());
}
@@ -563,7 +563,7 @@ public class PlanServiceImpl implements PlanService {
// .eq("a.status",OrderStatusEnum.SORTED.getStatus())
.eq("a.deleted",false)
.in("a.status",statusList)
.isNotNull("opi.item_id")
.isNull("opi.item_id")
// todo 修改排单数据筛选,目前只解决了非混单的情况,混单情况待解决
.inIfPresent("op.goods_id",goodsDOS.isEmpty() ? null :goodsDOS.stream().map(GoodsDO::getId).toList())
@@ -575,7 +575,8 @@ public class PlanServiceImpl implements PlanService {
.eqIfPresent("a.address", pageReqVO.getConsigneeAddress())
.betweenIfPresent("a.create_time", pageReqVO.getCreateTime())
.groupBy("a.id", " a.order_date", "a.delivery_date", "a.customer", "a.address", "a.custom_order_no","a.create_time","a.update_time","a.status")
.orderByDesc("a.update_time");
.having("count(op.id) != 0")
.orderByDesc("a.create_time");
IPage<OrderRespVOCopy> orderRespVOCopies = orderMapper.selectOrderPage(page, queryWrapperX);
@@ -597,7 +598,7 @@ public class PlanServiceImpl implements PlanService {
queryWrapperX
.eq("c.organ_id",getUserOrganId())
.inIfPresent("c.order_id", pageReqVO.getOrderIds())
.isNotNull("opi.item_id")
.isNull("opi.item_id")
.inIfPresent("oi.room_id",pageReqVO.getRoomId())
.inIfPresent("oi.body_id",pageReqVO.getBodyId())
.eqIfPresent("a.is_special_shaped", pageReqVO.getRectangle() != null ? false: null)
@@ -723,16 +724,10 @@ public class PlanServiceImpl implements PlanService {
QueryWrapperX<OrderDO> queryWrapperX = new QueryWrapperX<>();
queryWrapperX
.eq("oi.organ_id",getUserOrganId())
// .in("a.status",statusList)
.eq("og.deleted",false)
// .likeIfPresent("oi.order_id", pageReqVO.getOrderId() != null ? pageReqVO.getOrderId().toString() : null)
.inIfPresent("oi.order_id", orderIds)
.isNotNull("opi.item_id")
.isNull("opi.item_id")
.isNotNull("og.id")
// .eqIfPresent("a.customer", pageReqVO.getConsignee())
// .eqIfPresent("a.custom_order_no", pageReqVO.getDefaultId())
// .eqIfPresent("a.address", pageReqVO.getConsigneeAddress())
// .betweenIfPresent("a.create_time", pageReqVO.getCreateTime())
// todo 修改排单数据筛选,目前只解决了非混单的情况,混单情况待解决
.eqIfPresent("og.goods_id",pageReqVO.getGoodsId())
@@ -4,7 +4,7 @@
<select id="selectOrderPage" resultType="com.cf.imes.module.executor.controller.admin.plan.vo.OrderRespVOCopy">
select distinct a.id as orderId, a.order_date, a.delivery_date, a.customer, a.address, a.custom_order_no as defineId,a.status,
count(op.id) as num, sum(op.area) as area,a.update_time
count(op.id) as num, sum(op.area) as area,a.update_time,a.create_time
from `orders` a
left join order_item oi on a.id = oi.order_id and a.organ_id = oi.organ_id
left join order_plate op on oi.plate_id = op.id and oi.organ_id = op.organ_id
@@ -41,7 +41,6 @@
og.order_id as orderId,
og.id as id,
count(distinct op.id) as plateNum
-- sum(op.area) as area
from order_plan_item opi
left join order_item oi on opi.item_id = oi.id and opi.organ_id = oi.organ_id
@@ -55,6 +54,8 @@
#{ids}
</foreach>
and og.goods_id !=0
group by planId,material,width,height,thickness,color,goodsId,orderId,id;
</select>
@@ -779,7 +779,7 @@
select
og.goods_id as goodsId,
count(distinct og.id) as optimizeGoodsCount,
-- count(distinct og.id) as optimizeGoodsCount,
sum(op.area) as area
from order_plate op
@@ -1,14 +1,15 @@
package com.cf.imes.module.manage.dal.mysql.pack;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.cf.imes.framework.common.enums.OrderPackageStatusEnum;
import com.cf.imes.framework.common.enums.OrderPackageTypeEnum;
import com.cf.imes.framework.mybatis.core.mapper.BaseMapperX;
import com.cf.imes.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.cf.imes.module.manage.controller.admin.pack.vo.PackRespVO;
import com.cf.imes.module.manage.controller.admin.pack.vo.PackageDetailsReqVO;
import com.cf.imes.module.manage.controller.admin.pack.vo.PlateAndPartIdList;
import com.cf.imes.module.manage.controller.admin.pack.vo.PlateDetailsRespVO;
import com.cf.imes.module.manage.controller.admin.query.vo.pack.OrderPackageVO;
@@ -30,8 +31,9 @@ public interface OrderPackageMapper extends BaseMapperX<OrderPackageDO> {
// }
IPage<OrderPackageVO> selectByOrderNo(@Param("page") IPage page, @Param("reqVO") PackageDetailsReqVO reqVO, @Param("organId") Long organId);
// IPage<OrderPackageVO> selectByOrderNo(@Param("page") IPage page, @Param("reqVO") PackageDetailsReqVO reqVO,@Param("packId") List<Long> packId, @Param("organId") Long organId);
IPage<OrderPackageVO> selectByOrderNo(@Param("page") IPage page, @Param(Constants.WRAPPER) Wrapper<OrderPackageDO> wrapper);
default OrderPackageDO selectByPackNo(String packNo,Long organId) {
return selectOne(new LambdaQueryWrapperX<OrderPackageDO>()
@@ -38,11 +38,11 @@ public interface OrderPlateMapper extends BaseMapperX<OrderPlateDO> {
}
default OrderPlateDO selectplateByPlateNo(Long plateNo, Long orderId, Long organId) {
return selectOne(new LambdaQueryWrapperX<OrderPlateDO>()
default List<OrderPlateDO> selectplateByPlateNo(Long plateNo, Long orderId, Long organId) {
return selectList(new LambdaQueryWrapperX<OrderPlateDO>()
.eq(OrderPlateDO::getOrganId, organId)
.eq(OrderPlateDO::getOrderId, orderId)
.eqIfPresent(OrderPlateDO::getPlateNo, plateNo)
.likeIfPresent(OrderPlateDO::getPlateNo, plateNo.toString())
.select(OrderPlateDO::getId));
}
}
@@ -106,4 +106,12 @@ public interface OrderItemMapper extends BaseMapperX<OrderItemDO> {
.eq(OrderItemDO::getPackageId,0)
.select(OrderItemDO::getPartsId));
}
default List<OrderItemDO> selectPackByPlateId(List<Long> plateId, Long organId) {
return selectList(new LambdaQueryWrapperX<OrderItemDO>()
.eq(OrderItemDO::getOrganId, organId)
.inIfPresent(OrderItemDO::getPlateId, plateId)
.select(OrderItemDO::getPackageId));
}
}
@@ -10,6 +10,7 @@ import com.cf.imes.framework.common.enums.UserSettingTypeEnum;
import com.cf.imes.framework.common.pojo.PageResult;
import com.cf.imes.framework.common.util.json.JsonUtils;
import com.cf.imes.framework.common.util.object.BeanUtils;
import com.cf.imes.framework.mybatis.core.query.QueryWrapperX;
import com.cf.imes.module.manage.controller.admin.pack.prePack.PackPlateList;
import com.cf.imes.module.manage.controller.admin.pack.prePack.PrePackOptimizeInfo;
import com.cf.imes.module.manage.controller.admin.pack.prePack.PrePackReqVO;
@@ -279,14 +280,36 @@ public class PackServiceImpl implements PackService {
PageDTO<OrderPackageVO> page = new PageDTO<>(reqVO.getPageNo(), reqVO.getPageSize());
List<Long> packId = null;
// if(reqVO.getPlateNo()!= null){
//
// orderPlateMapper.selectplateByPlateNo(reqVO.getPlateNo(),reqVO.getOrderId(),getUserOrganId());
//
// }
if(reqVO.getPlateNo()!= null){
IPage<OrderPackageVO> orderPackageDOIPage = orderPackageMapper.selectByOrderNo(page,reqVO, getUserOrganId());
List<Long> plateId = orderPlateMapper.selectplateByPlateNo(reqVO.getPlateNo(), reqVO.getOrderId(), getUserOrganId())
.stream().map(OrderPlateDO::getId).toList();
if(plateId.isEmpty()){
return null;
}
packId = orderItemMapper.selectPackByPlateId(plateId, getUserOrganId()).stream().map(OrderItemDO::getPackageId).distinct().toList();
}
QueryWrapperX<OrderPackageDO> queryWrapperX = new QueryWrapperX<>();
queryWrapperX
.eq("o.organ_id",getUserOrganId())
.eq("o.deleted",false)
.eq("op.deleted",false)
.eq("o.id",reqVO.getOrderId())
.likeIfPresent("op.package_no",reqVO.getPackageNo())
.inIfPresent("op.id",packId)
.eqIfPresent("op.status", reqVO.getPackStatus())
.orderByDesc("op.create_time");
IPage<OrderPackageVO> orderPackageDOIPage = orderPackageMapper.selectByOrderNo(page,queryWrapperX);
if (CollectionUtil.isEmpty(orderPackageDOIPage.getRecords())) {
@@ -27,6 +27,8 @@
and status !=0
and deleted = false
and order_id in
<foreach item="id" collection="orderIds" open="(" separator="," close=")">
#{id}
@@ -158,55 +160,60 @@
<select id="selectByOrderNo"
resultType="com.cf.imes.module.manage.controller.admin.query.vo.pack.OrderPackageVO"
parameterType="map">
resultType="com.cf.imes.module.manage.controller.admin.query.vo.pack.OrderPackageVO">
select distinct
opn.id,
opn.order_id,
opn.package_no,
opn.type,
opn.status,
opn.organ_id,
opn.creator,
opn.remark as packRemark,
opn.updater,
opn.update_time,
opn.create_time,
op.id,
op.order_id,
op.package_no,
op.type,
op.status,
op.organ_id,
op.creator,
op.remark as packRemark,
op.updater,
op.update_time,
op.create_time,
o.custom_order_no,
o.dealer,
o.customer,
o.address,
o.remark as orderRemark
from order_package opn
join orders o on opn.order_id = o.id and opn.organ_id = o.organ_id
join order_item oi on opn.id = oi.package_id and opn.organ_id = oi.organ_id
left join order_plate op on oi.plate_id = op.id and oi.organ_id = op.organ_id
<where>
<if test="reqVO.orderId !=null">
and opn.order_id = #{reqVO.orderId}
</if>
<if test="reqVO.plateNo !=null ">
and op.plate_no like concat('%', #{reqVO.plateNo},'%')
</if>
<if test="reqVO.packStatus !=null ">
and opn.status= #{reqVO.packStatus}
</if>
<if test="reqVO.packageNo !=null and reqVO.packageNo != '' ">
and opn.package_no like concat('%', #{reqVO.packageNo},'%')
</if>
and opn.organ_id = #{organId}
</where>
from orders o
left join order_package op on o.id = op.order_id and o.organ_id = op.organ_id
${ew.customSqlSegment}
</select>
<!-- <where>
o.organ_id = #{organId}
<if test="reqVO.orderId !=null">
and o.id = #{reqVO.orderId}
</if>
<if test="packId !=null">
and op.id in
<foreach item="packId" collection="packId" open="(" separator="," close=")">
#{packId}
</foreach>
</if>
<if test="reqVO.packStatus !=null ">
and op.status= #{reqVO.packStatus}
</if>
<if test="reqVO.packageNo !=null and reqVO.packageNo != '' ">
and op.package_no like concat('%', #{reqVO.packageNo},'%')
</if>
</where>-->
<select id="selectOrderPack"
resultType="com.cf.imes.module.manage.controller.admin.pack.vo.PlateAndPartIdList">
@@ -259,6 +259,7 @@ public interface ErrorCodeConstants {
//=========== 板材信息 1-002-035-000 ============
ErrorCode RAW_GOODS_NOT_EXISTS = new ErrorCode(1_002_033_001, "设计板材不存再");
ErrorCode RAW_GOODS_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_002_033_002, "生产板材导入数据不可以为空");
ErrorCode PLATENO_ERROR = new ErrorCode(1_002_033_003, "当前板编号无对应包裹信息");
//=========== 配件信息 1-002-035-000 ============
ErrorCode ORDER_PARTS_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_002_034_001, "生产配件导入数据不可以为空");