From 0bfcab00fe43b542a92b9d39e13ca55ba11f89da Mon Sep 17 00:00:00 2001 From: zjf <1799650030@qq.com> Date: Tue, 13 May 2025 12:44:04 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A3=9F=E5=A0=82=E8=BF=9B=E9=94=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CanteenErpMaterialController.java | 2 +- .../CanteenProductionTemplateController.java | 11 +++- .../CanteenProductionTemplateService.java | 20 +++++++ .../CanteenProductionTemplateServiceImpl.java | 59 ++++++++++++++++++- 4 files changed, 88 insertions(+), 4 deletions(-) diff --git a/pjcloud-canteen/pjcloud-canteen-biz/src/main/java/com/bsd/pjcloud/canteen/controller/CanteenErpMaterialController.java b/pjcloud-canteen/pjcloud-canteen-biz/src/main/java/com/bsd/pjcloud/canteen/controller/CanteenErpMaterialController.java index 7b2330db6..dfc226e9f 100644 --- a/pjcloud-canteen/pjcloud-canteen-biz/src/main/java/com/bsd/pjcloud/canteen/controller/CanteenErpMaterialController.java +++ b/pjcloud-canteen/pjcloud-canteen-biz/src/main/java/com/bsd/pjcloud/canteen/controller/CanteenErpMaterialController.java @@ -133,7 +133,7 @@ public class CanteenErpMaterialController { */ @Operation(summary = "选择食材分页数据" , description = "选择食材分页数据" ) @GetMapping("/erpMaterialPage" ) - public R getErpMaterialPage(@ParameterObject Page page, @RequestParam("name")String name) { + public R getErpMaterialPage(@ParameterObject Page page, @RequestParam(value = "name",required = false)String name) { return R.ok(canteenErpMaterialService.getErpMaterialPage(page, name)); } } \ No newline at end of file diff --git a/pjcloud-canteen/pjcloud-canteen-biz/src/main/java/com/bsd/pjcloud/canteen/controller/CanteenProductionTemplateController.java b/pjcloud-canteen/pjcloud-canteen-biz/src/main/java/com/bsd/pjcloud/canteen/controller/CanteenProductionTemplateController.java index f5ee6e088..eecdaa44a 100644 --- a/pjcloud-canteen/pjcloud-canteen-biz/src/main/java/com/bsd/pjcloud/canteen/controller/CanteenProductionTemplateController.java +++ b/pjcloud-canteen/pjcloud-canteen-biz/src/main/java/com/bsd/pjcloud/canteen/controller/CanteenProductionTemplateController.java @@ -51,7 +51,7 @@ public class CanteenProductionTemplateController { public R getCanteenProductionTemplatePage(@ParameterObject Page page, @ParameterObject CanteenProductionTemplateEntity canteenProductionTemplate) { LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(); wrapper.eq(StrUtil.isNotBlank(canteenProductionTemplate.getTemplateName()),CanteenProductionTemplateEntity::getTemplateName,canteenProductionTemplate.getTemplateName()); - return R.ok(canteenProductionTemplateService.page(page, wrapper)); + return R.ok(canteenProductionTemplateService.pageScope(page, wrapper)); } @@ -120,4 +120,13 @@ public class CanteenProductionTemplateController { public List export(CanteenProductionTemplateEntity canteenProductionTemplate,Long[] ids) { return canteenProductionTemplateService.list(Wrappers.lambdaQuery(canteenProductionTemplate).in(ArrayUtil.isNotEmpty(ids), CanteenProductionTemplateEntity::getId, ids)); } + + + + + @Operation(summary = "选择加工菜品模版分页" , description = "选择加工菜品模版分页" ) + @GetMapping("/getSelectTemplatePage" ) + public R getSelectTemplatePage(@ParameterObject Page page, @RequestParam(value = "name",required = false)String name) { + return R.ok(canteenProductionTemplateService.getSelectTemplatePageScope(page, name)); + } } \ No newline at end of file diff --git a/pjcloud-canteen/pjcloud-canteen-biz/src/main/java/com/bsd/pjcloud/canteen/service/CanteenProductionTemplateService.java b/pjcloud-canteen/pjcloud-canteen-biz/src/main/java/com/bsd/pjcloud/canteen/service/CanteenProductionTemplateService.java index e2a9b9a72..257fe11b2 100644 --- a/pjcloud-canteen/pjcloud-canteen-biz/src/main/java/com/bsd/pjcloud/canteen/service/CanteenProductionTemplateService.java +++ b/pjcloud-canteen/pjcloud-canteen-biz/src/main/java/com/bsd/pjcloud/canteen/service/CanteenProductionTemplateService.java @@ -1,5 +1,7 @@ package com.bsd.pjcloud.canteen.service; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.bsd.pjcloud.canteen.vo.erp.ProductTemplateVO; import com.github.yulichang.extension.mapping.base.MPJDeepService; import com.bsd.pjcloud.canteen.entity.CanteenProductionTemplateDetailEntity; @@ -17,4 +19,22 @@ public interface CanteenProductionTemplateService extends MPJDeepService wrapper); + + + /** + * 获取模版分页选择下拉 + * @param page + * @param name + * @return + */ + Object getSelectTemplatePageScope(Page page, String name); } \ No newline at end of file diff --git a/pjcloud-canteen/pjcloud-canteen-biz/src/main/java/com/bsd/pjcloud/canteen/service/impl/CanteenProductionTemplateServiceImpl.java b/pjcloud-canteen/pjcloud-canteen-biz/src/main/java/com/bsd/pjcloud/canteen/service/impl/CanteenProductionTemplateServiceImpl.java index 22ae8e8db..005f97e5a 100644 --- a/pjcloud-canteen/pjcloud-canteen-biz/src/main/java/com/bsd/pjcloud/canteen/service/impl/CanteenProductionTemplateServiceImpl.java +++ b/pjcloud-canteen/pjcloud-canteen-biz/src/main/java/com/bsd/pjcloud/canteen/service/impl/CanteenProductionTemplateServiceImpl.java @@ -1,6 +1,8 @@ package com.bsd.pjcloud.canteen.service.impl; +import com.alibaba.nacos.common.utils.CollectionUtils; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.bsd.pjcloud.canteen.entity.CanteenErpMaterialEntity; import com.bsd.pjcloud.canteen.entity.CanteenProductionTemplateEntity; @@ -12,6 +14,8 @@ import com.bsd.pjcloud.canteen.service.CanteenProductionTemplateService; import com.bsd.pjcloud.canteen.vo.erp.ProductTemplateVO; import com.bsd.pjcloud.canteen.vo.erp.ProductionTemplateDetailVO; import com.bsd.pjcloud.common.core.util.BeanUtils; +import com.bsd.pjcloud.common.data.datascope.DataScope; +import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; import cn.hutool.core.collection.CollUtil; import com.baomidou.mybatisplus.core.toolkit.Wrappers; @@ -20,8 +24,9 @@ import com.bsd.pjcloud.canteen.mapper.CanteenProductionTemplateDetailMapper; import org.springframework.transaction.annotation.Transactional; import lombok.RequiredArgsConstructor; -import java.util.List; -import java.util.Objects; +import java.util.*; +import java.util.stream.Collectors; + /** * 加工模版表 * @@ -96,4 +101,54 @@ public class CanteenProductionTemplateServiceImpl extends ServiceImpl wrapper) { + Page pageData = baseMapper.selectPageByScope(page, wrapper, DataScope.of()); +// pageData.getRecords().forEach(item->{ +// }); + return pageData; + } + + @Override + public Object getSelectTemplatePageScope(Page page, String name) { + Page pageData = baseMapper.selectPageByScope(page, Wrappers.lambdaQuery().like(StringUtils.isNotBlank(name),CanteenProductionTemplateEntity::getTemplateName, name), DataScope.of()); + List records = pageData.getRecords(); + if (CollectionUtils.isEmpty(records)){ + return pageData; + } + List canteenProductionTemplateVOList = BeanUtils.toBean(records, ProductTemplateVO.class); + Set distinctIds = canteenProductionTemplateVOList.stream().map(ProductTemplateVO::getDishId).collect(Collectors.toSet()); + List templateIds = canteenProductionTemplateVOList.stream().map(ProductTemplateVO::getId).collect(Collectors.toList()); + List canteenSpuEntities = canteenSpuMapper.selectByIds(distinctIds); + Map dishMap = canteenSpuEntities.stream() + .collect(Collectors.toMap(CanteenSpuEntity::getId, entity -> entity)); + + List canteenProductionTemplateDetailEntities = canteenProductionTemplateDetailMapper.selectList(Wrappers.lambdaQuery().in(CanteenProductionTemplateDetailEntity::getTemplateId, templateIds)); + Set materialIds = canteenProductionTemplateDetailEntities.stream().map(CanteenProductionTemplateDetailEntity::getMaterialId).collect(Collectors.toSet()); + List canteenErpMaterialEntities = canteenErpMaterialMapper.selectByIds(materialIds); + + Map materialMap = canteenErpMaterialEntities.stream() + .collect(Collectors.toMap(CanteenErpMaterialEntity::getId, entity -> entity)); + + + Page productTemplateVOPage = new Page<>(); + List productionTemplateDetailVOList = BeanUtils.toBean(canteenProductionTemplateDetailEntities, ProductionTemplateDetailVO.class); + productionTemplateDetailVOList.forEach(item->{ + item.setMaterialName(materialMap.getOrDefault(item.getMaterialId(), new CanteenErpMaterialEntity()).getName()); + }); + Map> detailMap = productionTemplateDetailVOList.stream() + .collect(Collectors.groupingBy(ProductionTemplateDetailVO::getTemplateId)); + + canteenProductionTemplateVOList.forEach(item-> { + item.setDishName(dishMap.getOrDefault(item.getDishId(), new CanteenSpuEntity()).getName()); + item.setCanteenProductionTemplateDetailList(detailMap.getOrDefault(item.getId(), new ArrayList<>())); + }); + productTemplateVOPage.setRecords(canteenProductionTemplateVOList); + productTemplateVOPage.setTotal(pageData.getTotal()); + productTemplateVOPage.setPages(pageData.getPages()); + productTemplateVOPage.setCurrent(pageData.getCurrent()); + return productTemplateVOPage; + + } } \ No newline at end of file