From 96ac241c56beab3361ff9d72a96a3b4de63f8aa4 Mon Sep 17 00:00:00 2001 From: gaoqr <13665037151@163.com> Date: Thu, 22 Aug 2024 10:47:54 +0800 Subject: [PATCH 01/18] =?UTF-8?q?=E5=88=86=E6=9E=90=E9=A1=B5=E7=BB=9F?= =?UTF-8?q?=E8=AE=A1=EF=BC=9A1=E3=80=81=E5=A4=A7=E6=9D=BF=E7=BB=9F?= =?UTF-8?q?=E8=AE=A1=E6=8E=A5=E5=8F=A3=E5=AE=9E=E7=8E=B0=EF=BC=9B2?= =?UTF-8?q?=E3=80=81=E5=B7=B2=E6=9C=89=E7=BB=9F=E8=AE=A1=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E8=B0=83=E6=95=B4=EF=BC=9A=E5=B0=8F=E6=9D=BF=E6=95=B0=E9=87=8F?= =?UTF-8?q?=E9=9D=A2=E7=A7=AF=E7=9B=B4=E6=8E=A5=E5=9C=A8sql=E6=8E=92?= =?UTF-8?q?=E5=BA=8F=E3=80=81=E6=8E=92=E5=8D=95=E7=9B=B8=E5=85=B3=E7=A7=BB?= =?UTF-8?q?=E9=99=A4=E6=98=BE=E5=BC=8Forganid=E3=80=81=E7=94=9F=E4=BA=A7?= =?UTF-8?q?=E5=8D=95=E6=95=B0=E9=87=8F=E7=BB=9F=E8=AE=A1=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?deleted=E6=9D=A1=E4=BB=B6=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../order/OrderStatisticsController.java | 2 +- .../mysql/order/OrderStatisticsMapper.java | 13 +- .../service/order/OrderStatisticsService.java | 8 + .../order/OrderStatisticsServiceImpl.java | 222 ++++++++++++++++-- .../mapper/order/OrderStatisticsMapper.xml | 4 +- .../main/resources/mapper/plan/PlanMapper.xml | 12 +- .../plate/OrderPlateStatisticsMapper.xml | 12 +- 7 files changed, 231 insertions(+), 42 deletions(-) diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/order/OrderStatisticsController.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/order/OrderStatisticsController.java index 22d0f16c4..2b75e2ff1 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/order/OrderStatisticsController.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/order/OrderStatisticsController.java @@ -90,7 +90,7 @@ public class OrderStatisticsController { @GetMapping("/bigPlateCount/group") @Operation(summary = "大板数量分组统计") public CommonResult> getBigPlateCount(@Valid OrderStatisticsReqVO reqVO) { - return success(null); + return success(orderStatisticsService.getBigPlateCountGroup(reqVO)); } } diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/order/OrderStatisticsMapper.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/order/OrderStatisticsMapper.java index fc2d6a061..31e06864e 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/order/OrderStatisticsMapper.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/order/OrderStatisticsMapper.java @@ -6,13 +6,12 @@ import com.cf.imes.module.executor.controller.admin.order.vo.order.OrderStatisti import com.cf.imes.module.executor.controller.admin.order.vo.order.OrderStatisticsReqVO; import com.cf.imes.module.executor.controller.admin.order.vo.order.OrderStatisticsStatusRespVO; import com.cf.imes.module.executor.dal.dataobject.order.OrderDO; +import com.cf.imes.module.executor.enums.OrderDeletedEnum; import com.cf.imes.module.executor.enums.OrderStatusEnum; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import java.time.LocalDate; -import java.time.LocalDateTime; -import java.time.LocalTime; import java.util.List; /** @@ -27,7 +26,7 @@ public interface OrderStatisticsMapper extends BaseMapperX { */ default Integer selectOrderCount() { return Math.toIntExact(selectCount(new LambdaQueryWrapperX() - .eq(OrderDO::getDeleted, 0))); + .eq(OrderDO::getDeleted, OrderDeletedEnum.NOT_DELETED.getStatus()))); } /** @@ -36,6 +35,7 @@ public interface OrderStatisticsMapper extends BaseMapperX { */ default Integer selectOrderCountToday() { return Math.toIntExact(selectCount(new LambdaQueryWrapperX() + .eq(OrderDO::getDeleted, OrderDeletedEnum.NOT_DELETED.getStatus()) .eq(OrderDO::getOrderDate, LocalDate.now()))); } @@ -46,7 +46,9 @@ public interface OrderStatisticsMapper extends BaseMapperX { */ default Integer selectOrderCountTodayFinish() { return Math.toIntExact(selectCount(new LambdaQueryWrapperX() - .between(OrderDO::getFinishTime, LocalDateTime.of(LocalDate.now(), LocalTime.MIN), LocalDateTime.of(LocalDate.now(), LocalTime.MAX)))); + .eq(OrderDO::getDeleted, OrderDeletedEnum.NOT_DELETED.getStatus()) + .eq(OrderDO::getStatus, OrderStatusEnum.FINISH_PRODUCTION.getStatus()) + .eq(OrderDO::getFinishTime, LocalDate.now()))); } /** @@ -55,13 +57,14 @@ public interface OrderStatisticsMapper extends BaseMapperX { */ default Integer selectOrderCountProduce() { return Math.toIntExact(selectCount(new LambdaQueryWrapperX() + .eq(OrderDO::getDeleted, OrderDeletedEnum.NOT_DELETED.getStatus()) .eq(OrderDO::getStatus, OrderStatusEnum.IN_PRODUCTION.getStatus()))); } /** * 生产中生产平方数 * - * @param organId + * @param * @return */ Integer selectOrderSquareProduce(); diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/order/OrderStatisticsService.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/order/OrderStatisticsService.java index 51d8ad19a..e7645b35c 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/order/OrderStatisticsService.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/order/OrderStatisticsService.java @@ -72,4 +72,12 @@ public interface OrderStatisticsService { * @return */ Map getOrderPlateAreaGroup(OrderStatisticsReqVO reqVO); + + /** + * 大板数量分组统计 + * + * @param reqVO + * @return + */ + Map getBigPlateCountGroup(OrderStatisticsReqVO reqVO); } diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/order/OrderStatisticsServiceImpl.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/order/OrderStatisticsServiceImpl.java index f98679ff6..ccb8c2f99 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/order/OrderStatisticsServiceImpl.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/order/OrderStatisticsServiceImpl.java @@ -1,24 +1,41 @@ package com.cf.imes.module.executor.service.order; import cn.hutool.core.util.ObjectUtil; +import co.elastic.clients.elasticsearch.ElasticsearchClient; +import co.elastic.clients.elasticsearch._types.FieldValue; +import co.elastic.clients.elasticsearch._types.SortOrder; +import co.elastic.clients.elasticsearch._types.aggregations.Aggregate; + +import co.elastic.clients.elasticsearch._types.aggregations.CalendarInterval; +import co.elastic.clients.elasticsearch._types.aggregations.DateHistogramAggregation; +import co.elastic.clients.elasticsearch.core.SearchRequest; +import co.elastic.clients.elasticsearch.core.SearchResponse; +import co.elastic.clients.json.JsonData; +import co.elastic.clients.util.NamedValue; import com.cf.imes.framework.common.enums.OrderStatusEnum; +import com.cf.imes.framework.security.core.util.SecurityFrameworkUtils; import com.cf.imes.module.executor.controller.admin.order.vo.order.OrderGoodsPlateRespVO; import com.cf.imes.module.executor.controller.admin.order.vo.order.OrderStatisticsAreaRespVO; import com.cf.imes.module.executor.controller.admin.order.vo.order.OrderStatisticsReqVO; import com.cf.imes.module.executor.controller.admin.order.vo.order.OrderStatisticsStatusRespVO; import com.cf.imes.module.executor.controller.admin.plan.vo.OrderPlanStatisticsAreaRespVO; import com.cf.imes.module.executor.controller.admin.plan.vo.OrderPlanStatisticsCountRespVO; +import com.cf.imes.module.executor.dal.dataobject.plate.PlateGoodDO; import com.cf.imes.module.executor.dal.mysql.order.OrderStatisticsMapper; import com.cf.imes.module.executor.dal.mysql.plan.PlanMapper; import com.cf.imes.module.executor.dal.mysql.plate.OrderPlateStatisticsMapper; +import com.cf.imes.module.executor.dal.mysql.plate.PlateGoodMapper; import com.cf.imes.module.executor.enums.OrderStatisticsUnit; +import com.cf.imes.module.executor.service.optimizeplan.OptimizePlanService; import com.cf.imes.module.system.api.dict.DictDataApi; import com.cf.imes.module.system.api.dict.dto.DictDataRespDTO; import com.cf.imes.module.system.enums.DictTypeConstants; +import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; import javax.annotation.Resource; +import java.io.IOException; import java.math.BigDecimal; import java.time.LocalDate; import java.time.format.DateTimeFormatter; @@ -40,6 +57,7 @@ import java.util.stream.Collectors; */ @Service @Validated +@Slf4j public class OrderStatisticsServiceImpl implements OrderStatisticsService { @Resource private OrderStatisticsMapper orderStatisticsMapper; @@ -53,9 +71,20 @@ public class OrderStatisticsServiceImpl implements OrderStatisticsService { @Resource private DictDataApi dictDataApi; + @Resource + private PlateGoodMapper plateGoodMapper; + + @Resource + private ElasticsearchClient client; + // 常用的字段key private static final String DATELIST_FIELD_NAME = "dateList"; private static final String SERIES_FIELD_NAME = "series"; + private static final String ORDER_REMAIN_PLATE_MODEL_CREATE_TIME_FIELDNAME = "createTime"; + private static final String ORDER_REMAIN_PLATE_MODEL_GOODS_GROUP_NAME = "goods_group"; + private static final String ORDER_REMAIN_PLATE_MODEL_GOODS_COUNT_NAME = "goods_count"; + private static final String DATE_TIME_FORMATTER_PATTERN_YEAR_MONTH = "yyyy-M"; + private static final String DATE_TIME_FORMATTER_PATTERN_YEAR_MONTH_DAY = "yyyy-M-d"; @Override public Integer orderCount() { @@ -206,13 +235,10 @@ public class OrderStatisticsServiceImpl implements OrderStatisticsService { // 所有的日期集合 List dateList = getDateList(reqVO); - // 查询时间段内数量最多的小板,排序列出数量前10的goods_id + // 查询时间段内数量最多的小板,列出数量前10的goods_id List topTenCountGoodsId = orderPlateStatisticsMapper.selectPlateCountList(reqVO).stream() - .sorted(Comparator.comparingLong(OrderGoodsPlateRespVO::getOrderCount).reversed()) .map(OrderGoodsPlateRespVO::getGoodsId) - .limit(10) - .collect(Collectors.toList()); - + .toList(); // 前十goods_id基于时间分组 Map> orderGoodsPlateRespMap = orderPlateStatisticsMapper.selectTopTenPlateCountListGroupByOrderDate(topTenCountGoodsId, reqVO).stream() @@ -225,7 +251,7 @@ public class OrderStatisticsServiceImpl implements OrderStatisticsService { List list = orderGoodsPlateRespMap.values().stream() .flatMap(List::stream) .filter(vo -> vo.getGoodsId().equals(id)) - .collect(Collectors.toList()); + .toList(); if (!list.isEmpty()) { // goodsId相同,其他属性任取 goodsMap.put(id, list.get(0)); @@ -277,12 +303,10 @@ public class OrderStatisticsServiceImpl implements OrderStatisticsService { // 所有的日期集合 List dateList = getDateList(reqVO); - // 查询时间段内面积最多的小板,排序列出前10面积的goods_id + // 查询时间段内面积最多的小板,列出前10面积的goods_id List topTenCountGoodsId = orderPlateStatisticsMapper.selectPlateAreaList(reqVO).stream() - .sorted(Comparator.comparing(OrderGoodsPlateRespVO::getOrderArea).reversed()) .map(OrderGoodsPlateRespVO::getGoodsId) - .limit(10) - .collect(Collectors.toList()); + .toList(); // 前十goods_id基于时间分组 @@ -296,7 +320,7 @@ public class OrderStatisticsServiceImpl implements OrderStatisticsService { List list = orderGoodsPlateRespMap.values().stream() .flatMap(List::stream) .filter(vo -> vo.getGoodsId().equals(id)) - .collect(Collectors.toList()); + .toList(); if (!list.isEmpty()) { // goodsId相同,其他属性任取 goodsMap.put(id, list.get(0)); @@ -341,6 +365,167 @@ public class OrderStatisticsServiceImpl implements OrderStatisticsService { return resultMap; } + @Override + public Map getBigPlateCountGroup(OrderStatisticsReqVO reqVO) { + Map resultMap = new LinkedHashMap<>(); + Integer unit = reqVO.getUnit(); + + // 所有的日期集合 + List dateList = getDateList(reqVO); + DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + + SearchResponse response; + try { + // 查询创建时间段内,数量最多的goods_id前十 + SearchRequest searchRequest = new SearchRequest.Builder() + .size(0) + .index(OptimizePlanService.ORDER_REMAIN_PLATE_MODEL) + .query(q -> q.range(r -> r.field(ORDER_REMAIN_PLATE_MODEL_CREATE_TIME_FIELDNAME) + .gte(JsonData.of(reqVO.getCreateTime()[0].format(dateTimeFormatter))) + .lte(JsonData.of(reqVO.getCreateTime()[1].format(dateTimeFormatter)))) + ) + .aggregations(ORDER_REMAIN_PLATE_MODEL_GOODS_GROUP_NAME, + agg -> agg.terms(terms -> terms.field("id").size(10).order(new NamedValue<>(ORDER_REMAIN_PLATE_MODEL_GOODS_COUNT_NAME, SortOrder.Desc))) + .aggregations(ORDER_REMAIN_PLATE_MODEL_GOODS_COUNT_NAME, sumAgg -> sumAgg.sum(sum -> sum.field("boardCount"))) + ) + .build(); + + response = client.search(searchRequest, Map.class); + + Map goodsCountAggMap = response.aggregations(); + Aggregate goodsCountAgg = goodsCountAggMap.get(ORDER_REMAIN_PLATE_MODEL_GOODS_GROUP_NAME); + + List goodsIds = new ArrayList<>(); + + /** + * 获取数量最大前十的goodsId列表 + */ + goodsCountAgg.sterms().buckets().array().forEach(e -> goodsIds.add(e.key())); + // 查询创建时间段内,数量最多的goods_id前十下的数据,按goods_id和日期分组 + SearchRequest dateGroupRequest = new SearchRequest.Builder() + .size(0) + .index(OptimizePlanService.ORDER_REMAIN_PLATE_MODEL) + .query(q -> q.range(r -> r.field(ORDER_REMAIN_PLATE_MODEL_CREATE_TIME_FIELDNAME) + .gte(JsonData.of(reqVO.getCreateTime()[0].format(dateTimeFormatter))) + .lte(JsonData.of(reqVO.getCreateTime()[1].format(dateTimeFormatter)))) + ) + .query(q -> q.bool(b -> b.must(m -> m.terms(t -> t.field("goods_id").terms(tv -> tv.value(goodsIds)))))) + .query(q -> q.match(m -> m.field("organId").query(SecurityFrameworkUtils.getUserOrganId()))) + .aggregations(ORDER_REMAIN_PLATE_MODEL_GOODS_GROUP_NAME, + agg -> agg.terms(terms -> terms.field("id").order(new NamedValue<>(ORDER_REMAIN_PLATE_MODEL_GOODS_COUNT_NAME, SortOrder.Desc))) + .aggregations("date_group", dateAgg -> dateAgg.dateHistogram(date -> getDateHistogram(unit, date.field(ORDER_REMAIN_PLATE_MODEL_CREATE_TIME_FIELDNAME)))) + .aggregations(ORDER_REMAIN_PLATE_MODEL_GOODS_COUNT_NAME, sumAgg -> sumAgg.sum(sum -> sum.field("boardCount"))) + ) + .build(); + response = client.search(dateGroupRequest, Map.class); + Map goodsDateCountAggMap = response.aggregations(); + Aggregate goodsDateAgg = goodsDateCountAggMap.get(ORDER_REMAIN_PLATE_MODEL_GOODS_GROUP_NAME); + + // 构建map:{日期:{goodsId、count}} + Map> goodsDateGroupMap = new HashMap<>(); + goodsDateAgg.sterms().buckets().array().forEach(goodsDateAggBucket -> { + String goodsId = goodsDateAggBucket.key().stringValue(); + // todo 目前没有发现好的es统计月周的方式,先把年月日查出来转周,后续优化 + String dateStr = dateToWeekMonth(goodsDateAggBucket.aggregations().get("date_group").dateHistogram().buckets().array().get(0).keyAsString(), unit); + double goodsCount = goodsDateAggBucket.aggregations().get(ORDER_REMAIN_PLATE_MODEL_GOODS_COUNT_NAME).sum().value(); + OrderGoodsPlateRespVO vo = OrderGoodsPlateRespVO.builder().goodsId(Long.parseLong(goodsId)).orderDate(dateStr).orderCount((int) goodsCount).build(); + List orderGoodsPlateRespVOS = goodsDateGroupMap.get(dateStr); + if (ObjectUtil.isNotNull(orderGoodsPlateRespVOS)) { + orderGoodsPlateRespVOS.add(vo); + } else { + ArrayList goodsPlateRespVOS = new ArrayList<>(); + goodsPlateRespVOS.add(vo); + goodsDateGroupMap.put(dateStr, goodsPlateRespVOS); + } + }); + + // 遍历所有goods_id + List> series = new ArrayList<>(); + for (FieldValue goodsIdFieldValue : goodsIds) { + String goodsIdStr = goodsIdFieldValue.stringValue(); + Long goodsId = Long.parseLong(goodsIdStr); + Map seriesItem = new HashMap<>(); + int[] countArr = new int[dateList.size()]; + + // 遍历完整的日期范围 + int index = 0; + for (String dateStr : dateList) { + // 查找匹配的goodsId + List orderGoodsPlateRespVOS = goodsDateGroupMap.get(dateStr); + int count = 0; + if (orderGoodsPlateRespVOS != null) { + count = orderGoodsPlateRespVOS.stream() + .filter(respVO -> Objects.equals(goodsId, respVO.getGoodsId())) + .map(OrderGoodsPlateRespVO::getOrderCount) + .findFirst().orElse(0); + } + countArr[index++] = count; + } + + seriesItem.put("data", countArr); + seriesItem.put("id", goodsId); + // 材质-商品名称-颜色-纹理-宽-高-厚-品牌 + PlateGoodDO plateGoodDO = plateGoodMapper.selectById(goodsId); + if (ObjectUtil.isNull(plateGoodDO)) { + // 没有对应大板不展示 + log.error("[getBigPlateCountGroup][统计大板数量,查询大板{} 不存在]", goodsId); + continue; + } + // 获取纹路描述 + DictDataRespDTO grainDTO = dictDataApi.getDictData(DictTypeConstants.GRAIN_TYPE, String.valueOf(plateGoodDO.getTexture())).getData(); + String texture = ObjectUtil.isNotNull(grainDTO) ? grainDTO.getLabel() : ""; + seriesItem.put("name", plateGoodDO.getMaterial() + "-" + plateGoodDO.getGoodsName() + + "-" + plateGoodDO.getColor() + "-" + texture + "-" + stripTrailingZeros(BigDecimal.valueOf(plateGoodDO.getWidth())) + + "×" + stripTrailingZeros(BigDecimal.valueOf(plateGoodDO.getHeight())) + "×" + stripTrailingZeros(BigDecimal.valueOf(plateGoodDO.getThickness())) + "-" + plateGoodDO.getBrand()); + series.add(seriesItem); + } + resultMap.put(DATELIST_FIELD_NAME, dateList.stream().map(date -> generateDateRangeAxis(date, unit)).toList()); + resultMap.put(SERIES_FIELD_NAME, series); + } catch (IOException e) { + log.error("[getBigPlateCountGroup][统计大板数量异常:{}]", e.getMessage(), e); + } + return resultMap; + } + + /** + * 根据统计维度获取es分组的dateHistogram + * + * @return + */ + private DateHistogramAggregation.Builder getDateHistogram(Integer unit, DateHistogramAggregation.Builder builder) { + switch (OrderStatisticsUnit.fromValue(unit)) { + case QUARTER: + return builder.calendarInterval(CalendarInterval.Quarter).format("yyyy-Q"); + case MONTH: + return builder.calendarInterval(CalendarInterval.Month).format(DATE_TIME_FORMATTER_PATTERN_YEAR_MONTH); + case DAY, WEEK: + default: + return builder.calendarInterval(CalendarInterval.Day).format(DATE_TIME_FORMATTER_PATTERN_YEAR_MONTH_DAY); + } + } + + + /** + * 年月日转年月周 + * + * @param dateStr + * @return + */ + private String dateToWeekMonth(String dateStr, Integer unit) { + if (OrderStatisticsUnit.WEEK.getValue().equals(unit)) { + LocalDate date = LocalDate.parse(dateStr, DateTimeFormatter.ofPattern(DATE_TIME_FORMATTER_PATTERN_YEAR_MONTH_DAY)); + // 年月 + String outDateStr = date.format(DateTimeFormatter.ofPattern(DATE_TIME_FORMATTER_PATTERN_YEAR_MONTH)); + // 计算从月份第一天到当前日期经过了多少周 + LocalDate monthStart = date.with(TemporalAdjusters.firstDayOfMonth()); + long weeksInMonth = ChronoUnit.WEEKS.between(monthStart, date) + 1; + return outDateStr + "-" + weeksInMonth; + } + return dateStr; + } + + + /** * 获取日期区间格式下的所有日期字符串 * 1、reqVO设置机构id @@ -372,8 +557,8 @@ public class OrderStatisticsServiceImpl implements OrderStatisticsService { endTime = now; switch (OrderStatisticsUnit.fromValue(reqVO.getUnit())) { case QUARTER: - // 从now往前的2年 - startTime = now.minusYears(2); + // 从now往前的1年 + startTime = now.minusYears(1); break; case MONTH: // 包含now往前的12个月 @@ -419,22 +604,17 @@ public class OrderStatisticsServiceImpl implements OrderStatisticsService { startDate = startDate.plusMonths(3); break; case MONTH: - dateStr = startDate.format(DateTimeFormatter.ofPattern("yyyy-M")); + dateStr = startDate.format(DateTimeFormatter.ofPattern(DATE_TIME_FORMATTER_PATTERN_YEAR_MONTH)); // 加一月 startDate = startDate.plusMonths(1); break; case WEEK: - // 使用自定义格式表示月份 - dateStr = startDate.format(DateTimeFormatter.ofPattern("yyyy-M")); - // 计算从月份第一天到当前日期经过了多少周 - LocalDate monthStart = startDate.with(TemporalAdjusters.firstDayOfMonth()); - long weeksInMonth = ChronoUnit.WEEKS.between(monthStart, startDate) + 1; - dateStr = dateStr + "-" + weeksInMonth; + dateStr = startDate.format(DateTimeFormatter.ofPattern("yyyy-M-W")); // 加一周 startDate = startDate.plusWeeks(1); break; case DAY: - dateStr = startDate.format(DateTimeFormatter.ofPattern("yyyy-M-d")); + dateStr = startDate.format(DateTimeFormatter.ofPattern(DATE_TIME_FORMATTER_PATTERN_YEAR_MONTH_DAY)); // 加一天 startDate = startDate.plusDays(1); break; diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/order/OrderStatisticsMapper.xml b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/order/OrderStatisticsMapper.xml index 565163bf0..cfa743c1f 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/order/OrderStatisticsMapper.xml +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/order/OrderStatisticsMapper.xml @@ -3,8 +3,8 @@ diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/plan/PlanMapper.xml b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/plan/PlanMapper.xml index dbcc2eae8..ef014720d 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/plan/PlanMapper.xml +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/plan/PlanMapper.xml @@ -140,8 +140,7 @@ ,CONCAT(YEAR(p.create_time), '-', MONTH(p.create_time), '-', DAY(p.create_time)) as date from order_plan p - where p.organ_id = #{req.organId} - and p.create_time between #{req.createTime[0]} and #{req.createTime[1]} + where p.create_time between #{req.createTime[0]} and #{req.createTime[1]} and p.deleted = 0 group by date; @@ -162,11 +161,10 @@ ,CONCAT(YEAR(p.create_time), '-', MONTH(p.create_time), '-', DAY(p.create_time)) as date from order_plan p - join order_plan_item opi on p.id = opi.plan_id and opi.organ_id = #{req.organId} - join order_item oi on oi.id = opi.item_id and oi.organ_id = #{req.organId} - join order_plate op on oi.plate_id = op.id and op.organ_id = #{req.organId} - where p.organ_id = #{req.organId} - and p.create_time between #{req.createTime[0]} and #{req.createTime[1]} + join order_plan_item opi on p.id = opi.plan_id + join order_item oi on oi.id = opi.item_id + join order_plate op on oi.plate_id = op.id + where p.create_time between #{req.createTime[0]} and #{req.createTime[1]} and p.deleted = 0 group by date; diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/plate/OrderPlateStatisticsMapper.xml b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/plate/OrderPlateStatisticsMapper.xml index 30c9e277b..2354fd008 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/plate/OrderPlateStatisticsMapper.xml +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/plate/OrderPlateStatisticsMapper.xml @@ -6,12 +6,12 @@ count(a.id) as orderCount from order_goods g left join order_plate a ON g.id = a.goods_id and a.deleted = 0 - left join orders o ON o.id = a.order_id and o.deleted = 0 + join orders o ON o.id = a.order_id and o.deleted = 0 where g.deleted = 0 and o.order_date between #{req.createTime[0]} and #{req.createTime[1]} group by g.goods_id - having orderCount > 0 - order by null; + order by orderCount desc + limit 10; + + + \ No newline at end of file diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/order/OrderMapper.xml b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/order/OrderMapper.xml index f9a372026..1a794803a 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/order/OrderMapper.xml +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/order/OrderMapper.xml @@ -3,29 +3,77 @@ - + + + + + @@ -65,7 +113,6 @@ and o.organ_id = #{organId} and op.deleted = false - and op.is_cancel = 0 and og.goods_id in @@ -166,4 +213,73 @@ ORDER BY order_date; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/orderItem/OrderItemMapper.xml b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/orderItem/OrderItemMapper.xml index 54c5b4426..5360f906c 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/orderItem/OrderItemMapper.xml +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/orderItem/OrderItemMapper.xml @@ -207,6 +207,55 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/orderParts/OrderPartsMapper.xml b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/orderParts/OrderPartsMapper.xml index 3bc165a7b..6bb203cff 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/orderParts/OrderPartsMapper.xml +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/orderParts/OrderPartsMapper.xml @@ -121,4 +121,22 @@ WHERE order_id = #{orderId} AND organ_id = #{organId} AND deleted = #{deleted} + + + + \ No newline at end of file diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/plan/PlanMapper.xml b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/plan/PlanMapper.xml index dbcc2eae8..397f531d3 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/plan/PlanMapper.xml +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/plan/PlanMapper.xml @@ -170,4 +170,48 @@ and p.deleted = 0 group by date; + + + + + + + + + + \ No newline at end of file diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/planitem/PlanItemMapper.xml b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/planitem/PlanItemMapper.xml index 1b061a05d..d1fa9edd9 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/planitem/PlanItemMapper.xml +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/planitem/PlanItemMapper.xml @@ -13,8 +13,20 @@ + + + + + + + + + + + + diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/plate/PlateMapper.xml b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/plate/PlateMapper.xml index d7faf78f9..f0187bd98 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/plate/PlateMapper.xml +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/plate/PlateMapper.xml @@ -123,9 +123,10 @@ - + - + + @@ -189,6 +190,7 @@ op.plate_no as plateNo, op.type as type, op.goods_id as goodsId, + ogs.goods_id as plateGoodsId, op.width as width, op.height as height, op.thickness as thickness, @@ -221,7 +223,6 @@ op.remark as remark, op.filter_type as filterType, op.is_cancel as isCancel, - ogs.goods_name as goodsName, ob.id as bodyId, ob.room_id as roomId, @@ -252,6 +253,7 @@ op.plate_no as plateNo, op.type as type, op.goods_id as goodsId, + ogs.goods_id as plateGoodsId, op.width as width, op.height as height, op.thickness as thickness, @@ -284,7 +286,6 @@ op.remark as remark, op.filter_type as filterType, op.is_cancel as isCancel, - ogs.goods_name as goodsName, ob.id as bodyId, ob.room_id as roomId, @@ -297,7 +298,7 @@ join order_body ob on oi.body_id = ob.id and oi.organ_id = ob.organ_id left join order_group og on oi.group_id = og.id and oi.organ_id = og.organ_id - where op.organ_id = #{organId} and op.deleted = false and op.order_id in + where op.organ_id = #{organId} and op.deleted = false and op.id in @@ -468,11 +469,11 @@ - + + + select distinct + c.texture, + c.width, + c.height, + c.thickness, + c.goods_name, + c.material, + c.color, + c.brand, + + c.order_id as orderId, + c.id as id, + c.goods_id as goodsId + + from order_plate a + LEFT JOIN order_item oi on a.id = oi.plate_id and a.order_id = oi.order_id and a.organ_id = oi.organ_id + LEFT JOIN order_goods c on a.goods_id = c.id and a.organ_id = c.organ_id + left join order_plan_item opi on oi.id = opi.item_id and oi.organ_id = opi.organ_id + + ${ew.customSqlSegment} + @@ -536,7 +589,7 @@ from order_plate a LEFT JOIN order_item oi on a.id = oi.plate_id and a.order_id = oi.order_id and a.organ_id = oi.organ_id - LEFT JOIN `orders` b on a.order_id = b.id and a.organ_id = b.organ_id +-- LEFT JOIN `orders` b on a.order_id = b.id and a.organ_id = b.organ_id LEFT JOIN order_goods c on a.goods_id = c.id and a.organ_id = c.organ_id left join order_plan_item opi on oi.id = opi.item_id and oi.organ_id = opi.organ_id where @@ -564,13 +617,10 @@ c.goods_id as goodsId from order_plate a LEFT JOIN order_item oi on a.id = oi.plate_id and a.order_id = oi.order_id and a.organ_id = oi.organ_id - LEFT JOIN `orders` b on a.order_id = b.id and a.organ_id = b.organ_id LEFT JOIN order_goods c on a.goods_id = c.id and a.organ_id = c.organ_id left join order_plan_item opi on oi.id = opi.item_id and oi.organ_id = opi.organ_id where - c.organ_id = #{organId} - and a.is_cancel = 0 - and b.status = 2 + c.organ_id = #{organId} and a.deleted = false and opi.item_id is null and c.order_id in @@ -581,6 +631,28 @@ + + + + + + + + + + \ No newline at end of file diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/remainplaten/RemainPlateMapper.xml b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/remainplaten/RemainPlateMapper.xml new file mode 100644 index 000000000..16f5967c0 --- /dev/null +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/remainplaten/RemainPlateMapper.xml @@ -0,0 +1,13 @@ + + + + + + + \ No newline at end of file diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/pack/PackController.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/pack/PackController.java index 22473a6a9..f54ce90d9 100644 --- a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/pack/PackController.java +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/controller/admin/pack/PackController.java @@ -2,10 +2,7 @@ package com.cf.imes.module.manage.controller.admin.pack; import com.cf.imes.framework.common.pojo.CommonResult; -import com.cf.imes.framework.common.pojo.PageParam; import com.cf.imes.framework.common.pojo.PageResult; -import com.cf.imes.framework.excel.core.util.ExcelUtils; -import com.cf.imes.framework.operatelog.core.annotations.OperateLog; import com.cf.imes.module.manage.controller.admin.pack.prePack.PrePackReqVO; import com.cf.imes.module.manage.controller.admin.pack.vo.*; import com.cf.imes.module.manage.controller.admin.query.vo.pack.OrderPackageVO; @@ -20,14 +17,10 @@ import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; -import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; - -import java.io.IOException; import java.util.List; import static com.cf.imes.framework.common.pojo.CommonResult.success; -import static com.cf.imes.framework.operatelog.core.enums.OperateTypeEnum.EXPORT; @Tag(name = "管理后台 - 生产打包 ") @RestController @@ -80,15 +73,25 @@ public class PackController { @GetMapping("/getOrderPack") - @Operation(summary = "查看生产订单对应的包裹信息") + @Operation(summary = "查看生产订单对应的包裹信息-未分页") @PreAuthorize("@ss.hasPermission('manage:pack:query')") - public CommonResult> getOrderPack(@Valid PackageDetailsReqVO reqVO) { + public CommonResult> getOrderPack(@Valid PackageDetailsReqVO reqVO) { return success(packService.getOrderPack(reqVO)); } + @GetMapping("/getPageOrderPack") + @Operation(summary = "查看生产订单对应的包裹信息-分页") + @PreAuthorize("@ss.hasPermission('manage:pack:query')") + public CommonResult> getPageOrderPack(@Valid PackageDetailsReqVO reqVO) { + + return success(packService.getPageOrderPack(reqVO)); + + } + + @GetMapping("/queryPackageDetails") @Operation(summary = "查询包裹的详细信息") diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/pack/OrderPackageMapper.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/pack/OrderPackageMapper.java index bf39ef5c9..3d1da8583 100644 --- a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/pack/OrderPackageMapper.java +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/pack/OrderPackageMapper.java @@ -4,6 +4,7 @@ package com.cf.imes.module.manage.dal.mysql.pack; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; 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; @@ -81,10 +82,16 @@ public interface OrderPackageMapper extends BaseMapperX { // 删除当前生产单下所有的包裹 - default void updateDelete(Long orderId) { + default void updateDelete(Long orderId,Long organId) { LambdaUpdateWrapper wrapper = new LambdaUpdateWrapper() .set(OrderPackageDO::getDeleted, true) - .eq(OrderPackageDO::getOrderId, orderId); + .eq(OrderPackageDO::getOrganId,organId) + .eq(OrderPackageDO::getOrderId, orderId) + .eq(OrderPackageDO::getType, OrderPackageTypeEnum.PLATE.getType()); update(wrapper); } + + + List selectPackListByOrderId(@Param("orderId") Long orderId,@Param("organId") Long organId); + } diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/plate/OrderPlateMapper.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/plate/OrderPlateMapper.java index e1e0d835b..19047ae99 100644 --- a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/plate/OrderPlateMapper.java +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/plate/OrderPlateMapper.java @@ -3,10 +3,8 @@ package com.cf.imes.module.manage.dal.mysql.plate; 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.patching.vo.PatchingDetailReqVO; import com.cf.imes.module.manage.controller.admin.patching.vo.PatchingDetailRespVO; import com.cf.imes.module.manage.controller.admin.patching.vo.PatchingPlatePageReqVO; -import com.cf.imes.module.manage.controller.admin.process.vo.OrderPlateReqVO; import com.cf.imes.module.manage.controller.admin.process.vo.PlateDetails; import com.cf.imes.module.manage.dal.dataobject.plate.OrderPlateDO; import org.apache.ibatis.annotations.Mapper; @@ -38,4 +36,13 @@ public interface OrderPlateMapper extends BaseMapperX { .in(OrderPlateDO::getPlateNo, plateNo)); } + + + default OrderPlateDO selectplateByPlateNo(Long plateNo, Long orderId, Long organId) { + return selectOne(new LambdaQueryWrapperX() + .eq(OrderPlateDO::getOrganId, organId) + .eq(OrderPlateDO::getOrderId, orderId) + .eqIfPresent(OrderPlateDO::getPlateNo, plateNo) + .select(OrderPlateDO::getId)); + } } diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/query/ProductionStatusMapper.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/process/OrdersMapper.java similarity index 53% rename from cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/query/ProductionStatusMapper.java rename to cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/process/OrdersMapper.java index ab6e9464c..5582cc07c 100644 --- a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/query/ProductionStatusMapper.java +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/process/OrdersMapper.java @@ -1,4 +1,4 @@ -package com.cf.imes.module.manage.dal.mysql.query; +package com.cf.imes.module.manage.dal.mysql.process; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -9,17 +9,15 @@ import com.cf.imes.module.manage.controller.admin.pack.vo.PackPageReqVO; import com.cf.imes.module.manage.controller.admin.pack.vo.PackRespVO; import com.cf.imes.module.manage.controller.admin.pack.vo.PrintOrderPackRespVO; import com.cf.imes.module.manage.controller.admin.query.vo.productionStatus.OrderPlatePageReqVO; -import com.cf.imes.module.manage.controller.admin.query.vo.pack.PrintOrderRespVO; import com.cf.imes.module.manage.dal.dataobject.process.OrderDO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import java.util.List; -import static com.cf.imes.framework.security.core.util.SecurityFrameworkUtils.getUserOrganId; - @Mapper -public interface ProductionStatusMapper extends BaseMapperX { +public interface OrdersMapper extends BaseMapperX { + default PageResult selectProductionPage(OrderPlatePageReqVO pageReqVO) { @@ -38,32 +36,24 @@ public interface ProductionStatusMapper extends BaseMapperX { + List selectOrderIds( @Param("createTime") String createTime, @Param("organId") Long organId, @Param("orderId") Long orderId); - PrintOrderRespVO selectPrintOrder(@Param("orderNo") Long orderNo,@Param("organId")Long organId); - - -// default List selectOrderIds(PackPageReqVO pageReqVO,Long organId) { -// return selectList(new LambdaQueryWrapperX() -// .eq(OrderDO::getOrganId,organId) -// .eqIfPresent(OrderDO::getId, pageReqVO.getOrderId()) -// .eqIfPresent(OrderDO::getCustomOrderNo, pageReqVO.getCustomOrderNo()) -// .likeIfPresent(OrderDO::getCustomer, pageReqVO.getCustomer()) -// .likeIfPresent(OrderDO::getAddress, pageReqVO.getAddress()) -// .eqIfPresent(OrderDO::getStatus, pageReqVO.getStatus()) -// .orderByDesc(OrderDO::getCreateTime)); -// } - - IPage selectOrderPlate( @Param("page") IPage page, @Param("orderIds") List orderIds, @Param("organId") Long organId); + List selectOrderIdsFalse( @Param("createTime") String createTime,@Param("organId") Long organId, @Param("orderId") Long orderId); - - PrintOrderPackRespVO selectOrderPack(@Param("orderNo")Long orderNo,@Param("packageNo") Long packageNo, @Param("organId") Long organId); + IPage selectOrderPlate(@Param("page") IPage page, @Param("orderIds") List orderIds, @Param("organId") Long organId); - List selectOrderIds(@Param("pageReqVO") PackPageReqVO pageReqVO,@Param("organId") Long organId); + PrintOrderPackRespVO selectOrderPack(@Param("orderNo")Long orderNo, @Param("packageNo") Long packageNo, @Param("organId") Long organId); + + + + IPage selectOrderIdList(@Param("page") IPage page, @Param("pageReqVO") PackPageReqVO pageReqVO, @Param("organId") Long organId); + + } diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/process/ProductionProcessMapper.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/process/ProductionProcessMapper.java deleted file mode 100644 index cb955a485..000000000 --- a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/process/ProductionProcessMapper.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.cf.imes.module.manage.dal.mysql.process; - - - -import com.cf.imes.framework.mybatis.core.mapper.BaseMapperX; -import com.cf.imes.module.manage.controller.admin.patching.vo.PatchingPlatePageReqVO; -import com.cf.imes.module.manage.controller.admin.patching.vo.PatchingPlateRespVO; -import com.cf.imes.module.manage.dal.dataobject.process.OrderDO; -import org.apache.ibatis.annotations.Mapper; -import org.apache.ibatis.annotations.Param; - -import java.time.LocalDateTime; -import java.util.List; - -/** - * 生产单表 order_{N} Mapper - * - * @author 晨丰科技 - */ -@Mapper -public interface ProductionProcessMapper extends BaseMapperX { - - - - - - List selectPatchingPlate(PatchingPlatePageReqVO pageReqVO); - - - OrderDO selectOrderIds(@Param("createTime") String createTime, @Param("organId") Long organId, @Param("orderId") Long orderId); - - OrderDO selectOrderIdsFalse(@Param("createTime") String createTime,@Param("organId") Long organId, @Param("orderId") Long orderId); - - -// OrderDO selectOrderIds(@Param("orderId") Long orderId,@Param("organId") Long organId); -// -// OrderDO selectOrderIdsFalse(@Param("orderId") Long orderId,@Param("organId") Long userOrganId); - - - - -} \ No newline at end of file diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/query/OrderItemMapper.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/query/OrderItemMapper.java index cbed9c208..79becf322 100644 --- a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/query/OrderItemMapper.java +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/query/OrderItemMapper.java @@ -1,12 +1,11 @@ package com.cf.imes.module.manage.dal.mysql.query; - -import com.baomidou.mybatisplus.core.metadata.IPage; 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.*; -import com.cf.imes.module.manage.controller.admin.process.vo.OrderPlateReqVO; +import com.cf.imes.module.manage.controller.admin.pack.vo.OrderPlateDetailsRespVO; +import com.cf.imes.module.manage.controller.admin.pack.vo.PackRespVO; +import com.cf.imes.module.manage.controller.admin.pack.vo.PlateDetailsRespVO; import com.cf.imes.module.manage.controller.admin.process.vo.PlateDetails; import com.cf.imes.module.manage.controller.admin.process.vo.ProcessPlateReqVO; import com.cf.imes.module.manage.controller.admin.query.vo.pack.PackageDetailsRespVO; @@ -14,13 +13,10 @@ import com.cf.imes.module.manage.controller.admin.query.vo.productionStatus.Orde import com.cf.imes.module.manage.controller.admin.query.vo.productionStatus.OrderPlateRespVO; import com.cf.imes.module.manage.controller.admin.query.vo.productionStatus.PlatePageVO; import com.cf.imes.module.manage.dal.dataobject.query.OrderItemDO; -import com.cf.imes.module.manage.dal.dataobject.query.OrderPackageDO; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; - import java.util.List; -import java.util.stream.Collectors; @Mapper public interface OrderItemMapper extends BaseMapperX { @@ -98,4 +94,16 @@ public interface OrderItemMapper extends BaseMapperX { .eqIfPresent(OrderItemDO::getOrderId, orderId)); } + + List selectPlateNum(@Param("orderIds") List orderIds,@Param("organId") Long organId); + + + + default List selectPartsList(Long orderId, Long organId) { + return selectList(new LambdaQueryWrapperX() + .eq(OrderItemDO::getOrganId, organId) + .eqIfPresent(OrderItemDO::getOrderId, orderId) + .eq(OrderItemDO::getPackageId,0) + .select(OrderItemDO::getPartsId)); + } } diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/pack/PackService.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/pack/PackService.java index 8e304307d..33cccfaa8 100644 --- a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/pack/PackService.java +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/pack/PackService.java @@ -16,9 +16,11 @@ public interface PackService { // 查看生产订单对应的包裹信息 - PageResult getOrderPack(PackageDetailsReqVO reqVO); + List getOrderPack(PackageDetailsReqVO reqVO); + PageResult getPageOrderPack(PackageDetailsReqVO reqVO); + // 查看生产订单对应的板材信息 List getOrderPlateList(Long orderId); diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/pack/PackServiceImpl.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/pack/PackServiceImpl.java index c95fabd8f..652b14619 100644 --- a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/pack/PackServiceImpl.java +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/pack/PackServiceImpl.java @@ -25,13 +25,10 @@ import com.cf.imes.module.manage.dal.mysql.pack.OrderBodyMapper; import com.cf.imes.module.manage.dal.mysql.pack.OrderPackageMapper; import com.cf.imes.module.manage.dal.mysql.pack.OrderPrepackagedMapper; import com.cf.imes.module.manage.dal.mysql.plate.OrderPlateMapper; -import com.cf.imes.module.manage.dal.mysql.process.ProcessStepItemMapper; -import com.cf.imes.module.manage.dal.mysql.process.ProcessStepMapper; -import com.cf.imes.module.manage.dal.mysql.process.ProductionProcessMapper; +import com.cf.imes.module.manage.dal.mysql.plate.PlateMapper; +import com.cf.imes.module.manage.dal.mysql.process.OrdersMapper; import com.cf.imes.module.manage.dal.mysql.query.OrderItemMapper; import com.cf.imes.module.manage.dal.mysql.query.OrderPartsMapper; -import com.cf.imes.module.manage.dal.mysql.query.ProductionStatusMapper; -import com.cf.imes.module.manage.service.process.ProductionProcessServiceImpl; import com.cf.imes.module.manage.util.SnowflakeIdWorker3rd; import com.cf.imes.module.system.api.setting.SettingApi; import com.cf.imes.module.system.api.setting.dto.PackageConfigDTO; @@ -64,8 +61,6 @@ public class PackServiceImpl implements PackService { @Resource private OrderPackageMapper orderPackageMapper; - @Resource - private ProductionStatusMapper productionStatusMapper; @Resource private OrderItemMapper orderItemMapper; @@ -80,16 +75,11 @@ public class PackServiceImpl implements PackService { private OrderPlateMapper orderPlateMapper; @Resource - private ProcessStepMapper processStepMapper; + private OrdersMapper ordersMapper; @Resource - private ProductionProcessServiceImpl productionProcessService; + private PlateMapper plateMapper; - @Resource - private ProcessStepItemMapper processStepItemMapper; - - @Resource - private ProductionProcessMapper productionProcessMapper; @Resource private SnowflakeIdWorker3rd idWorker; @@ -110,48 +100,62 @@ public class PackServiceImpl implements PackService { List orderIds = new ArrayList<>(); + + IPage packRespVOS = new PageDTO<>(); + + if(pageReqVO.getIsUp() != null){ - OrderDO order = productionProcessMapper.selectById(pageReqVO.getOrderId()); + OrderDO order = ordersMapper.selectById(pageReqVO.getOrderId()); - OrderDO orderDO = pageReqVO.getIsUp() ? - productionProcessMapper.selectOrderIds(order.getCreateTime().toString(), getUserOrganId(),order.getId()) : + List packRespVOList = pageReqVO.getIsUp() ? + ordersMapper.selectOrderIds(order.getCreateTime().toString(), getUserOrganId(),order.getId()) : - productionProcessMapper.selectOrderIdsFalse(order.getCreateTime().toString(), getUserOrganId(),order.getId()); + ordersMapper.selectOrderIdsFalse(order.getCreateTime().toString(), getUserOrganId(),order.getId()); - if(orderDO == null){ + if(packRespVOList.isEmpty()){ throw exception(NO_PRODUCTION_ORDER_INFORMATION_AVAILABLE, pageReqVO.getIsUp() ?"第" : "最后"); } - orderIds.add(orderDO.getId()); + packRespVOS.setRecords(packRespVOList); + + orderIds.addAll(packRespVOS.getRecords().stream().map(PackRespVO::getId).toList()); + }else { pageReqVO.setCustomer(insertSeparator(pageReqVO.getCustomer())); pageReqVO.setCustomOrderNo(insertSeparator(pageReqVO.getCustomOrderNo())); pageReqVO.setAddress(insertSeparator(pageReqVO.getAddress())); - // 根据生产状态查询生产单号 -// List orderIds = productionStatusMapper.selectOrderIds(pageReqVO, getUserOrganId()).stream().map(OrderDO::getId).toList(); - orderIds.addAll(productionStatusMapper.selectOrderIds(pageReqVO, getUserOrganId()).stream().map(OrderDO::getId).toList()); + // 查询查询分页 + packRespVOS = ordersMapper.selectOrderIdList(page,pageReqVO, getUserOrganId()); + + orderIds.addAll(packRespVOS.getRecords().stream().map(PackRespVO::getId).toList()); if (orderIds.isEmpty()) { return null; } } - // 查询打包首页分页数据信息,总的板件数量信息 - IPage packRespVOS = productionStatusMapper.selectOrderPlate(page,orderIds,getUserOrganId()); + + // 查询板材的总量 + List packRespVOList = orderItemMapper.selectPlateNum(orderIds,getUserOrganId()); + // 查询当前生产的包裹数量 List respVOS = orderPackageMapper.selectPackPage(orderIds,getUserOrganId()); + // 查询当前生产单已经打包的板材数量 List plateNum = orderPackageMapper.selectPackPieceCount(orderIds, getUserOrganId()); + for (PackRespVO record : packRespVOS.getRecords()) { + // 板材总数 + record.setTotalPieceCount(packRespVOList.stream().filter(f -> Objects.equals(f.getId(), record.getId())).mapToLong(PackRespVO::getTotalPieceCount).sum()); // 已打包数 record.setPackCount(respVOS.stream().filter(f -> Objects.equals(f.getId(), record.getId())).mapToLong(PackRespVO::getPackCount).sum()); // 已打包片数 @@ -238,12 +242,50 @@ public class PackServiceImpl implements PackService { } + // 查看生产订单对应的包裹信息 @Override - public PageResult getOrderPack(PackageDetailsReqVO reqVO) { + public List getOrderPack(PackageDetailsReqVO reqVO) { + + + List orderPackageVOS = orderPackageMapper.selectPackListByOrderId(reqVO.getOrderId(), getUserOrganId()); + + OrderDO orderDO = ordersMapper.selectById(reqVO.getOrderId()); + + // for (OrderPackageVO orderPackageVO : orderPackageVOS) { +// orderPackageVO.setCustomOrderNo(orderDO.getCustomOrderNo()); +// orderPackageVO.setCustomer(orderDO.getCustomer()); +// orderPackageVO.setAddress(orderDO.getAddress()); +// orderPackageVO.setDealer(orderDO.getDealer()); +// orderPackageVO.setOrderRemark(orderDO.getRemark()); +// } + + + return orderPackageVOS.stream().peek(m -> { + m.setCustomOrderNo(orderDO.getCustomOrderNo()); + m.setCustomer(orderDO.getCustomer()); + m.setAddress(orderDO.getAddress()); + m.setDealer(orderDO.getDealer()); + m.setOrderRemark(orderDO.getRemark()); + } + ).toList(); + + } + + + + @Override + public PageResult getPageOrderPack(PackageDetailsReqVO reqVO) { PageDTO page = new PageDTO<>(reqVO.getPageNo(), reqVO.getPageSize()); + +// if(reqVO.getPlateNo()!= null){ +// +// orderPlateMapper.selectplateByPlateNo(reqVO.getPlateNo(),reqVO.getOrderId(),getUserOrganId()); +// +// } + IPage orderPackageDOIPage = orderPackageMapper.selectByOrderNo(page,reqVO, getUserOrganId()); @@ -261,9 +303,6 @@ public class PackServiceImpl implements PackService { - - - // 查看配件列表分页 @Override public List getPartsList(OrderPartsReqVO reqVO) { @@ -497,7 +536,7 @@ public class PackServiceImpl implements PackService { @Transactional(rollbackFor = Exception.class) public void updateOrderStatus(Long orderId) { - OrderDO orderDO = productionProcessMapper.selectById(orderId); + OrderDO orderDO = ordersMapper.selectById(orderId); if(orderDO.getFinishTime() != null){ return; @@ -525,7 +564,7 @@ public class PackServiceImpl implements PackService { // 修改生产单的打包状态未已打包 orderDO.setPackaged(OrderPackageStatusEnum.PACKAGED.getStatus()); - productionProcessMapper.updateById(orderDO); + ordersMapper.updateById(orderDO); } @@ -549,7 +588,7 @@ public class PackServiceImpl implements PackService { @Override public PrintOrderPackRespVO printOrderPack(PrintOrderPackReqVO reqVO) { - PrintOrderPackRespVO printOrderPackRespVO = productionStatusMapper.selectOrderPack(reqVO.getOrderId(), reqVO.getPackageNo(),getUserOrganId()); + PrintOrderPackRespVO printOrderPackRespVO = ordersMapper.selectOrderPack(reqVO.getOrderId(), reqVO.getPackageNo(),getUserOrganId()); printOrderPackRespVO.setPlateList(orderItemMapper.selectPrintPlateList(reqVO.getOrderId(), reqVO.getPackageNo(),getUserOrganId())); return printOrderPackRespVO; @@ -799,7 +838,8 @@ public class PackServiceImpl implements PackService { if(!packageDOS.isEmpty()){ - orderPackageMapper.updateDelete(reqVO.getOrderId()); + // 删除除配件和其他配件外的所有包裹 + orderPackageMapper.updateDelete(reqVO.getOrderId(),getUserOrganId()); } @@ -828,6 +868,14 @@ public class PackServiceImpl implements PackService { orderItemMapper.updateBatch(orderItemDOS); + List orderItemDoPartsList = orderItemMapper.selectPartsList(reqVO.getOrderId(), getUserOrganId()); + + if(orderItemDoPartsList.isEmpty()) { + OrderDO orderDO = ordersMapper.selectById(reqVO.getOrderId()); + orderDO.setPackaged(OrderPackageStatusEnum.PACKAGED.getStatus()); + ordersMapper.updateById(orderDO); + } + } diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/patching/PatchingPlateServiceImpl.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/patching/PatchingPlateServiceImpl.java index 1734343a6..51d007b3e 100644 --- a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/patching/PatchingPlateServiceImpl.java +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/patching/PatchingPlateServiceImpl.java @@ -1,22 +1,15 @@ package com.cf.imes.module.manage.service.patching; -import com.alibaba.nacos.shaded.com.google.gson.Gson; 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.module.manage.controller.admin.pack.vo.PlateDetailsRespVO; import com.cf.imes.module.manage.controller.admin.patching.vo.*; -import com.cf.imes.module.manage.controller.admin.query.vo.productionStatus.OrderPlateRespVO; +import com.cf.imes.module.manage.dal.dataobject.patching.MachineDO; import com.cf.imes.module.manage.dal.dataobject.patching.PatchDetailDO; -import com.cf.imes.module.manage.dal.dataobject.plate.OrderPlateDO; import com.cf.imes.module.manage.dal.mysql.patching.MachineMapper; import com.cf.imes.module.manage.dal.mysql.patching.PatchDetailMapper; import com.cf.imes.module.manage.dal.mysql.plate.OrderPlateMapper; -import com.cf.imes.module.manage.dal.mysql.plate.PlateMapper; -import com.cf.imes.module.manage.dal.mysql.process.ProductionProcessMapper; import com.cf.imes.module.manage.util.page.PageHelperUtil; -import com.cf.imes.module.manage.dal.dataobject.patching.MachineDO; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import org.springframework.stereotype.Service; @@ -30,8 +23,7 @@ import java.util.List; public class PatchingPlateServiceImpl implements PatchingPlateService{ - @Resource - private ProductionProcessMapper productionProcessMapper; + @Resource private OrderPlateMapper orderPlateMapper; @@ -48,15 +40,7 @@ public class PatchingPlateServiceImpl implements PatchingPlateService{ @Override public PageResult patchingSearchPlate(PatchingPlatePageReqVO pageReqVO) { - - // 查询板件和订单的基础信息 - PageHelper.startPage(pageReqVO.getPageNo(), pageReqVO.getPageSize()); - List patchingPlateRespVOS = productionProcessMapper.selectPatchingPlate(pageReqVO); - - // - PageInfo pageInfo = new PageInfo<>(patchingPlateRespVOS); - return PageHelperUtil.convertToPageResult(pageInfo); - + return null; } diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/process/ProductionProcessServiceImpl.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/process/ProductionProcessServiceImpl.java index 61a96f7cf..93a192e8f 100644 --- a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/process/ProductionProcessServiceImpl.java +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/process/ProductionProcessServiceImpl.java @@ -2,8 +2,6 @@ package com.cf.imes.module.manage.service.process; import cn.hutool.core.collection.CollectionUtil; -import cn.hutool.core.util.StrUtil; -import cn.hutool.log.Log; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO; import com.cf.imes.framework.common.enums.OrderStatusEnum; @@ -15,15 +13,14 @@ import com.cf.imes.framework.common.util.object.BeanUtils; import com.cf.imes.module.manage.controller.admin.process.vo.*; import com.cf.imes.module.manage.controller.admin.query.vo.productionStatus.OrderModuleVO; import com.cf.imes.module.manage.dal.dataobject.pack.OrderBodyDO; -import com.cf.imes.module.manage.dal.dataobject.plate.OrderPlateDO; -import com.cf.imes.module.manage.dal.dataobject.plate.PlateDO; import com.cf.imes.module.manage.dal.dataobject.process.OrderDO; import com.cf.imes.module.manage.dal.dataobject.process.OrderProcessStepItemNDO; import com.cf.imes.module.manage.dal.dataobject.process.OrderProcessStepNDO; import com.cf.imes.module.manage.dal.mysql.pack.OrderBodyMapper; import com.cf.imes.module.manage.dal.mysql.plate.OrderPlateMapper; -import com.cf.imes.module.manage.dal.mysql.plate.PlateMapper; -import com.cf.imes.module.manage.dal.mysql.process.*; +import com.cf.imes.module.manage.dal.mysql.process.OrdersMapper; +import com.cf.imes.module.manage.dal.mysql.process.ProcessStepItemMapper; +import com.cf.imes.module.manage.dal.mysql.process.ProcessStepMapper; import com.cf.imes.module.manage.dal.mysql.query.OrderItemMapper; import com.cf.imes.module.system.api.process.ProcessApi; import com.cf.imes.module.system.enums.ErrorCodeConstants; @@ -35,7 +32,7 @@ import org.springframework.validation.annotation.Validated; import javax.annotation.Resource; import java.math.BigDecimal; import java.time.LocalDateTime; -import java.util.*; +import java.util.List; import java.util.stream.Collectors; import static com.cf.imes.framework.common.util.string.SearchUtil.insertSeparator; @@ -73,7 +70,7 @@ public class ProductionProcessServiceImpl implements ProductionProcessService { private OrderPlateMapper orderPlateMapper; @Resource - private ProductionProcessMapper productionProcessMapper; + private OrdersMapper ordersMapper; @Resource @@ -161,10 +158,10 @@ public class ProductionProcessServiceImpl implements ProductionProcessService { } // 当前工序已全部加工,修改生产单的状态为生产完成 if(validateOrderStatus(processStepStatuses.getOrderId())){ - OrderDO orderDO = productionProcessMapper.selectById(processStepStatuses.getOrderId()); + OrderDO orderDO = ordersMapper.selectById(processStepStatuses.getOrderId()); orderDO.setStatus(OrderStatusEnum.FINISH_PRODUCTION.getStatus()); orderDO.setFinishTime(LocalDateTime.now()); - productionProcessMapper.updateById(orderDO); + ordersMapper.updateById(orderDO); } return; @@ -192,10 +189,10 @@ public class ProductionProcessServiceImpl implements ProductionProcessService { } // 当前工序已全部加工,修改生产单的状态为生产完成 if(validateOrderStatus(processStepStatuses.getOrderId())){ - OrderDO orderDO = productionProcessMapper.selectById(processStepStatuses.getOrderId()); + OrderDO orderDO = ordersMapper.selectById(processStepStatuses.getOrderId()); orderDO.setStatus(OrderStatusEnum.FINISH_PRODUCTION.getStatus()); orderDO.setFinishTime(LocalDateTime.now()); - productionProcessMapper.updateById(orderDO); + ordersMapper.updateById(orderDO); } return; @@ -211,19 +208,19 @@ public class ProductionProcessServiceImpl implements ProductionProcessService { // 判断当前工序的状态是否为打包类型,如果是,修改生产的状态为生产完成 if(processStepStatuses.getType().equals(ProcessProcessingTypeEnum.PACK.getNumber())){ - OrderDO orderDO = productionProcessMapper.selectById(processStepStatuses.getOrderId()); + OrderDO orderDO = ordersMapper.selectById(processStepStatuses.getOrderId()); orderDO.setStatus(OrderStatusEnum.FINISH_PRODUCTION.getStatus()); orderDO.setFinishTime(LocalDateTime.now()); - productionProcessMapper.updateById(orderDO); + ordersMapper.updateById(orderDO); return; } // 当前工序已全部加工,修改生产单的状态为生产完成 if(validateOrderStatus(processStepStatuses.getOrderId())){ - OrderDO orderDO = productionProcessMapper.selectById(processStepStatuses.getOrderId()); + OrderDO orderDO = ordersMapper.selectById(processStepStatuses.getOrderId()); orderDO.setStatus(OrderStatusEnum.FINISH_PRODUCTION.getStatus()); orderDO.setFinishTime(LocalDateTime.now()); - productionProcessMapper.updateById(orderDO); + ordersMapper.updateById(orderDO); } }catch (Exception e){ diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/query/ProductionStatusServiceImpl.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/query/ProductionStatusServiceImpl.java index 527c3ba4b..7321c0b21 100644 --- a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/query/ProductionStatusServiceImpl.java +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/query/ProductionStatusServiceImpl.java @@ -7,12 +7,8 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO; import com.cf.imes.framework.common.enums.OrderPackageTypeEnum; import com.cf.imes.framework.common.pojo.PageResult; -import com.cf.imes.framework.common.util.object.BeanUtils; import com.cf.imes.module.manage.controller.admin.pack.vo.GroupNameList; -import com.cf.imes.module.manage.controller.admin.pack.vo.OrderPartsReqVO; import com.cf.imes.module.manage.controller.admin.pack.vo.PackDetailsReqVO; -import com.cf.imes.module.manage.controller.admin.pack.vo.PlateDetailsRespVO; -import com.cf.imes.module.manage.controller.admin.process.vo.ProcessRespVO; import com.cf.imes.module.manage.controller.admin.query.vo.pack.OrderPackageVO; import com.cf.imes.module.manage.controller.admin.query.vo.pack.PackageDetailsRespVO; import com.cf.imes.module.manage.controller.admin.query.vo.pack.PrintOrderRespVO; @@ -21,11 +17,12 @@ import com.cf.imes.module.manage.controller.admin.query.vo.salary.PriceRatePageR import com.cf.imes.module.manage.controller.admin.query.vo.salary.PriceRateReqVO; import com.cf.imes.module.manage.dal.dataobject.process.OrderDO; import com.cf.imes.module.manage.dal.dataobject.process.OrderProcessStepNDO; -import com.cf.imes.module.manage.dal.dataobject.query.OrderPackageDO; import com.cf.imes.module.manage.dal.mysql.pack.OrderPackageMapper; +import com.cf.imes.module.manage.dal.mysql.process.OrdersMapper; import com.cf.imes.module.manage.dal.mysql.process.ProcessStepItemMapper; import com.cf.imes.module.manage.dal.mysql.process.ProcessStepMapper; -import com.cf.imes.module.manage.dal.mysql.query.*; +import com.cf.imes.module.manage.dal.mysql.query.OrderItemMapper; +import com.cf.imes.module.manage.dal.mysql.query.OrderPartsMapper; import com.cf.imes.module.manage.util.page.PageHelperUtil; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; @@ -43,8 +40,7 @@ import static com.cf.imes.framework.security.core.util.SecurityFrameworkUtils.ge @Validated public class ProductionStatusServiceImpl implements ProductionStatusService { - @Resource - private ProductionStatusMapper productionStatusMapper; + @Resource private ProcessStepMapper processStepMapper; @@ -56,6 +52,8 @@ public class ProductionStatusServiceImpl implements ProductionStatusService { @Resource private OrderPackageMapper orderPackageMapper; + @Resource + private OrdersMapper ordersMapper; @Resource private OrderItemMapper orderItemMapper; @@ -69,7 +67,7 @@ public class ProductionStatusServiceImpl implements ProductionStatusService { @Override public PageResult getProductionPage(OrderPlatePageReqVO pageReqVO) { - return productionStatusMapper.selectProductionPage(pageReqVO); + return ordersMapper.selectProductionPage(pageReqVO); } @@ -156,7 +154,7 @@ public class ProductionStatusServiceImpl implements ProductionStatusService { @Override public PageResult queryPackage(OrderPlatePageReqVO pageReqVO) { - return productionStatusMapper.selectProductionPage(pageReqVO); + return ordersMapper.selectProductionPage(pageReqVO); } @@ -235,7 +233,9 @@ public class ProductionStatusServiceImpl implements ProductionStatusService { @Override public PrintOrderRespVO printOrder(Long orderNo) { - return productionStatusMapper.selectPrintOrder(orderNo,getUserOrganId()); +// return productionStatusMapper.selectPrintOrder(orderNo,getUserOrganId()); + + return null; } diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/resources/com/cf/imes/module/manage/dal/mysql/pack/OrderPackageMapper.xml b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/resources/com/cf/imes/module/manage/dal/mysql/pack/OrderPackageMapper.xml index 1cfb322df..19595dcfa 100644 --- a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/resources/com/cf/imes/module/manage/dal/mysql/pack/OrderPackageMapper.xml +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/resources/com/cf/imes/module/manage/dal/mysql/pack/OrderPackageMapper.xml @@ -15,42 +15,67 @@ resultMap="PackMap"> - select - op.order_id as id, - count(distinct op.id) as packCount - from order_package op - join order_item oi on op.id = oi.package_id and op.organ_id = oi.organ_id + select + order_id as id, + count(id) as packCount + + from order_package + where - oi.package_id != 0 - and op.organ_id = #{organId} - and op.order_id in + organ_id = #{organId} + + and status !=0 + + and order_id in #{id} - group by op.order_id; + + group by order_id + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/resources/com/cf/imes/module/manage/dal/mysql/query/ProductionStatusMapper.xml b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/resources/com/cf/imes/module/manage/dal/mysql/process/OrdersMapper.xml similarity index 61% rename from cf-module-prod-manage/cf-module-prod-manage-biz/src/main/resources/com/cf/imes/module/manage/dal/mysql/query/ProductionStatusMapper.xml rename to cf-module-prod-manage/cf-module-prod-manage-biz/src/main/resources/com/cf/imes/module/manage/dal/mysql/process/OrdersMapper.xml index b1744f594..fafb23ab3 100644 --- a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/resources/com/cf/imes/module/manage/dal/mysql/query/ProductionStatusMapper.xml +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/resources/com/cf/imes/module/manage/dal/mysql/process/OrdersMapper.xml @@ -1,40 +1,64 @@ - + - - - - - - - - - - - select - o.id as orderNo , - o.custom_order_no as customOrderNo, - o.dealer as dealer, - o.address as address, - o.customer as customer, - o.phone_number as customerPhone, - count(opn.order_id) as packageQuantity - from `orders` o - join order_package opn on o.id = opn.order_id and o.organ_id = opn.organ_id + SELECT + id as orderNo, + custom_order_no as customOrderNo, + dealer as dealer, + dealer_phone_number as dealerPhoneNumber, + order_date as orderDate, + create_time as createTime, + delivery_date as deliveryDate, + customer as customer, + phone_number as phoneNumber, + address as address, + salesman as salesman, + splitter as splitter, + packaged as packaged + FROM orders + WHERE organ_id = #{organId} and deleted = false and status != 0 and create_time >= #{createTime} and id != #{orderId} + ORDER BY create_time + LIMIT 1 ; - where o.id = #{orderNo} and opn.status <> 0 and o.organ_id = #{organId} ; + + + + + @@ -82,11 +106,11 @@ join order_item oi on o.id = oi.order_id and o.organ_id = oi.organ_id WHERE - o.organ_id = #{organId} and - o.id in - - #{id} - + o.organ_id = #{organId} and + o.id in + + #{id} + group by orderNo,customOrderNo,dealer,deliveryDate,customer,phoneNumber,address,salesman,splitter,packaged,dealerPhoneNumber,orderDate,o.create_time @@ -110,14 +134,14 @@ resultMap="PrintMap"> select o.custom_order_no as customOrderNo, - o.dealer as dealer, - opn.id as packNo , - o.id as orderNo, - o.address as address, - ((SELECT COUNT(t2.id) FROM order_package t2 WHERE t2.create_time <= opn.create_time and t2.order_id =#{orderNo})) as packNum + o.dealer as dealer, + opn.id as packNo , + o.id as orderNo, + o.address as address, + ((SELECT COUNT(t2.id) FROM order_package t2 WHERE t2.create_time <= opn.create_time and t2.order_id =#{orderNo})) as packNum from `orders` o - join order_package opn on o.id = opn.order_id and o.organ_id = opn.organ_id + join order_package opn on o.id = opn.order_id and o.organ_id = opn.organ_id where opn.order_id =#{orderNo} and opn.id = #{packageNo} and opn.status <> 0 and opn.organ_id = #{organId} order by opn.create_time ; @@ -125,10 +149,25 @@ - - select * from orders + select + id as orderNo, + custom_order_no as customOrderNo, + dealer as dealer, + dealer_phone_number as dealerPhoneNumber, + order_date as orderDate, + create_time as createTime, + delivery_date as deliveryDate, + customer as customer, + phone_number as phoneNumber, + address as address, + salesman as salesman, + splitter as splitter, + packaged as packaged + + from orders organ_id =#{organId} @@ -165,7 +204,9 @@ - + + + + + \ No newline at end of file diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/resources/com/cf/imes/module/manage/dal/mysql/process/ProductionProcessMapper.xml b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/resources/com/cf/imes/module/manage/dal/mysql/process/ProductionProcessMapper.xml deleted file mode 100644 index 7f4762d3b..000000000 --- a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/resources/com/cf/imes/module/manage/dal/mysql/process/ProductionProcessMapper.xml +++ /dev/null @@ -1,194 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/resources/com/cf/imes/module/manage/dal/mysql/query/OrderItemMapper.xml b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/resources/com/cf/imes/module/manage/dal/mysql/query/OrderItemMapper.xml index 92089cd21..249e46284 100644 --- a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/resources/com/cf/imes/module/manage/dal/mysql/query/OrderItemMapper.xml +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/resources/com/cf/imes/module/manage/dal/mysql/query/OrderItemMapper.xml @@ -468,4 +468,27 @@ + + + + \ No newline at end of file diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/resources/com/cf/imes/module/manage/dal/mysql/query/OrderPartsMapper.xml b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/resources/com/cf/imes/module/manage/dal/mysql/query/OrderPartsMapper.xml index cf44f34c3..5971391e1 100644 --- a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/resources/com/cf/imes/module/manage/dal/mysql/query/OrderPartsMapper.xml +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/resources/com/cf/imes/module/manage/dal/mysql/query/OrderPartsMapper.xml @@ -76,7 +76,7 @@ from order_parts op join order_item oi on op.id = oi.parts_id and op.organ_id = oi.organ_id - where op.organ_id = #{organId} and op.order_id = #{orderId} and oi.package_id = 0 + where op.organ_id = #{organId} and op.order_id = #{orderId} diff --git a/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/enums/ErrorCodeConstants.java b/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/enums/ErrorCodeConstants.java index 0166b5d7a..78454fba9 100644 --- a/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/enums/ErrorCodeConstants.java +++ b/cf-module-system/cf-module-system-api/src/main/java/com/cf/imes/module/system/enums/ErrorCodeConstants.java @@ -53,6 +53,7 @@ public interface ErrorCodeConstants { ErrorCode THE_PASSWORD_MUST_CONTAIN_AT_LEAST_ONE_NUMBER = new ErrorCode(1_002_003_012, "密码必须包含至少一个数字"); ErrorCode PASSWORDS_CAN_ONLY_CONTAIN_LETTERS_AND_NUMBERS = new ErrorCode(1_002_003_013, "密码只能包含字母和数字"); + ErrorCode INSUFFICIENT_PERMISSIONS = new ErrorCode(1_002_003_014, "当前用户权限不足,无法修改开料状态"); // ========== 部门模块 1-002-004-000 ========== ErrorCode DEPT_NAME_DUPLICATE = new ErrorCode(1_002_004_000, "已经存在该名字的部门"); @@ -213,7 +214,8 @@ public interface ErrorCodeConstants { ErrorCode MACHINE_ERROR = new ErrorCode(1_002_029_007, "当前机台错误,请重新选择机台"); ErrorCode THE_CURRENT_BRAND_OF_THE_MACHINE_EXISTS = new ErrorCode(1_002_029_008, "当前机台配置的模板中,该品牌已存在,请重新输入品牌名称"); ErrorCode THE_MODEL_OF_THE_MACHINE_DOES_NOT_EXIST = new ErrorCode(1_002_029_009, "该型号的机台不存在,请进行配置"); - ErrorCode THE_CURRENT_BRAND = new ErrorCode(1_002_029_666, "品牌ID错误,或品牌不存在"); + ErrorCode THE_CURRENT_BRAND = new ErrorCode(1_002_029_010, "品牌ID错误,或品牌不存在"); + ErrorCode MACHINE_NUM_ERROR = new ErrorCode(1_002_029_011, "当前模板创建的机台数量已达到最大轴,无法继续创建"); // ========== 标签模板 1-002-300-000 ========== ErrorCode LABEL_TEMPLATE_NOT_EXISTS = new ErrorCode(1_002_300_000, "标签模板不存在"); From 2248f89e709ee8f4486510bdc16c33795462f5e5 Mon Sep 17 00:00:00 2001 From: liuzhaotian Date: Tue, 27 Aug 2024 14:37:57 +0800 Subject: [PATCH 07/18] =?UTF-8?q?=E6=9C=AA=E6=8E=92=E5=8D=95=EF=BC=8C?= =?UTF-8?q?=E6=8E=92=E5=8D=95=EF=BC=8C=E6=89=93=E5=8C=85=E6=95=B0=E9=87=8F?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E6=95=B0=E6=8D=AE=E9=97=AE=E9=A2=98=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dal/mysql/planitem/PlanItemMapper.java | 7 +- .../service/plan/PlanServiceImpl.java | 17 ++-- .../resources/mapper/order/OrderMapper.xml | 2 +- .../mapper/planitem/PlanItemMapper.xml | 3 +- .../resources/mapper/plate/PlateMapper.xml | 2 +- .../dal/mysql/pack/OrderPackageMapper.java | 6 +- .../dal/mysql/plate/OrderPlateMapper.java | 6 +- .../dal/mysql/query/OrderItemMapper.java | 8 ++ .../manage/service/pack/PackServiceImpl.java | 35 ++++++-- .../dal/mysql/pack/OrderPackageMapper.xml | 81 ++++++++++--------- .../system/enums/ErrorCodeConstants.java | 1 + 11 files changed, 101 insertions(+), 67 deletions(-) diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/planitem/PlanItemMapper.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/planitem/PlanItemMapper.java index 055c61835..9b88e9067 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/planitem/PlanItemMapper.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/planitem/PlanItemMapper.java @@ -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 * diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/plan/PlanServiceImpl.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/plan/PlanServiceImpl.java index aec8c8a10..09570ec19 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/plan/PlanServiceImpl.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/plan/PlanServiceImpl.java @@ -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 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 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()) diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/order/OrderMapper.xml b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/order/OrderMapper.xml index 1a794803a..8b77ae91f 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/order/OrderMapper.xml +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/order/OrderMapper.xml @@ -4,7 +4,7 @@ diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/plate/PlateMapper.xml b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/plate/PlateMapper.xml index f0187bd98..f804244f7 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/plate/PlateMapper.xml +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/plate/PlateMapper.xml @@ -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 diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/pack/OrderPackageMapper.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/pack/OrderPackageMapper.java index 3d1da8583..29ad347ed 100644 --- a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/pack/OrderPackageMapper.java +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/pack/OrderPackageMapper.java @@ -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 { // } - IPage selectByOrderNo(@Param("page") IPage page, @Param("reqVO") PackageDetailsReqVO reqVO, @Param("organId") Long organId); +// IPage selectByOrderNo(@Param("page") IPage page, @Param("reqVO") PackageDetailsReqVO reqVO,@Param("packId") List packId, @Param("organId") Long organId); + IPage selectByOrderNo(@Param("page") IPage page, @Param(Constants.WRAPPER) Wrapper wrapper); default OrderPackageDO selectByPackNo(String packNo,Long organId) { return selectOne(new LambdaQueryWrapperX() diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/plate/OrderPlateMapper.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/plate/OrderPlateMapper.java index 19047ae99..e0a95fc90 100644 --- a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/plate/OrderPlateMapper.java +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/plate/OrderPlateMapper.java @@ -38,11 +38,11 @@ public interface OrderPlateMapper extends BaseMapperX { } - default OrderPlateDO selectplateByPlateNo(Long plateNo, Long orderId, Long organId) { - return selectOne(new LambdaQueryWrapperX() + default List selectplateByPlateNo(Long plateNo, Long orderId, Long organId) { + return selectList(new LambdaQueryWrapperX() .eq(OrderPlateDO::getOrganId, organId) .eq(OrderPlateDO::getOrderId, orderId) - .eqIfPresent(OrderPlateDO::getPlateNo, plateNo) + .likeIfPresent(OrderPlateDO::getPlateNo, plateNo.toString()) .select(OrderPlateDO::getId)); } } diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/query/OrderItemMapper.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/query/OrderItemMapper.java index 79becf322..8ad79532b 100644 --- a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/query/OrderItemMapper.java +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/dal/mysql/query/OrderItemMapper.java @@ -106,4 +106,12 @@ public interface OrderItemMapper extends BaseMapperX { .eq(OrderItemDO::getPackageId,0) .select(OrderItemDO::getPartsId)); } + + + default List selectPackByPlateId(List plateId, Long organId) { + return selectList(new LambdaQueryWrapperX() + .eq(OrderItemDO::getOrganId, organId) + .inIfPresent(OrderItemDO::getPlateId, plateId) + .select(OrderItemDO::getPackageId)); + } } diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/pack/PackServiceImpl.java b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/pack/PackServiceImpl.java index 652b14619..2b651c340 100644 --- a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/pack/PackServiceImpl.java +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/java/com/cf/imes/module/manage/service/pack/PackServiceImpl.java @@ -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 page = new PageDTO<>(reqVO.getPageNo(), reqVO.getPageSize()); + List packId = null; -// if(reqVO.getPlateNo()!= null){ -// -// orderPlateMapper.selectplateByPlateNo(reqVO.getPlateNo(),reqVO.getOrderId(),getUserOrganId()); -// -// } + if(reqVO.getPlateNo()!= null){ - IPage orderPackageDOIPage = orderPackageMapper.selectByOrderNo(page,reqVO, getUserOrganId()); + + List 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 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 orderPackageDOIPage = orderPackageMapper.selectByOrderNo(page,queryWrapperX); if (CollectionUtil.isEmpty(orderPackageDOIPage.getRecords())) { diff --git a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/resources/com/cf/imes/module/manage/dal/mysql/pack/OrderPackageMapper.xml b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/resources/com/cf/imes/module/manage/dal/mysql/pack/OrderPackageMapper.xml index 19595dcfa..4900ec70a 100644 --- a/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/resources/com/cf/imes/module/manage/dal/mysql/pack/OrderPackageMapper.xml +++ b/cf-module-prod-manage/cf-module-prod-manage-biz/src/main/resources/com/cf/imes/module/manage/dal/mysql/pack/OrderPackageMapper.xml @@ -27,6 +27,8 @@ and status !=0 + and deleted = false + and order_id in #{id} @@ -158,55 +160,60 @@ + +