From 7c95a690ea652d6deb63b3a38ff3a6d094b867da Mon Sep 17 00:00:00 2001 From: dy <2389062315@qq.com> Date: Mon, 30 Jun 2025 20:00:07 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=9D=E6=B4=81=E6=9F=A5=E8=AF=A2=E5=92=8C?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/dromara/property/domain/Clean.java | 12 +++++- .../dromara/property/domain/CleanOrder.java | 5 ++- .../dromara/property/domain/bo/CleanBo.java | 10 +++++ .../property/domain/bo/CleanOrderBo.java | 8 +++- .../property/domain/vo/CleanOrderVo.java | 2 +- .../dromara/property/domain/vo/CleanVo.java | 14 +++++++ .../property/mapper/CleanOrderMapper.java | 3 ++ .../service/impl/CleanOrderServiceImpl.java | 38 +++++++++++++++++-- .../mapper/Property/CleanOrderMapper.xml | 8 ++++ 9 files changed, 92 insertions(+), 8 deletions(-) diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/Clean.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/Clean.java index 426bbb1..5341b0d 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/Clean.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/Clean.java @@ -37,6 +37,11 @@ public class Clean extends TenantEntity { */ private String measure; + /** + * 保洁面积 + */ + private Long cleanArea; + /** * 计算方式 */ @@ -45,7 +50,12 @@ public class Clean extends TenantEntity { /** * 单价 */ - private String peices; + private Long peices; + + /** + * 总价 + */ + private Long sumPrices; /** * 保洁频率 diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/CleanOrder.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/CleanOrder.java index 42930aa..0ed10a5 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/CleanOrder.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/CleanOrder.java @@ -8,6 +8,7 @@ import java.util.Date; import com.fasterxml.jackson.annotation.JsonFormat; import java.io.Serial; +import java.util.List; /** * 保洁订单对象 clean_order @@ -37,7 +38,7 @@ public class CleanOrder extends TenantEntity { /** * 面积 */ - private String area; + private Long area; /** * 保洁id @@ -114,5 +115,7 @@ public class CleanOrder extends TenantEntity { */ private String searchValue; + private List cleanList; + } diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/CleanBo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/CleanBo.java index 4503fd0..5f3f404 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/CleanBo.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/CleanBo.java @@ -47,6 +47,11 @@ public class CleanBo extends BaseEntity { @NotBlank(message = "计量单位不能为空", groups = { AddGroup.class, EditGroup.class }) private String measure; + /** + * 保洁面积 + */ + private Long cleanArea; + /** * 计算方式 */ @@ -59,6 +64,11 @@ public class CleanBo extends BaseEntity { @NotBlank(message = "单价不能为空", groups = { AddGroup.class, EditGroup.class }) private String peices; + /** + * 总价 + */ + @NotBlank(message = "总价不能为空", groups = { AddGroup.class, EditGroup.class }) + private String sumPrices; /** * 保洁频率 */ diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/CleanOrderBo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/CleanOrderBo.java index 7036d49..6e6be49 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/CleanOrderBo.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/CleanOrderBo.java @@ -1,5 +1,6 @@ package org.dromara.property.domain.bo; +import org.dromara.property.domain.Clean; import org.dromara.property.domain.CleanOrder; import org.dromara.common.mybatis.core.domain.BaseEntity; import org.dromara.common.core.validate.AddGroup; @@ -8,6 +9,8 @@ import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; import lombok.EqualsAndHashCode; import jakarta.validation.constraints.*; + +import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -39,7 +42,7 @@ public class CleanOrderBo extends BaseEntity { /** * 面积 */ - private String area; + private Long area; /** * 保洁id @@ -110,5 +113,8 @@ public class CleanOrderBo extends BaseEntity { */ private int state; + @NotEmpty(message = "订单详情不能为空", groups = { AddGroup.class }) + private List cleanList; + } diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/CleanOrderVo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/CleanOrderVo.java index 3d4c77e..0a8e2bd 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/CleanOrderVo.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/CleanOrderVo.java @@ -47,7 +47,7 @@ public class CleanOrderVo implements Serializable { * 面积 */ @ExcelProperty(value = "面积") - private String area; + private Long area; /** * 保洁id diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/CleanVo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/CleanVo.java index 0ef362b..550c005 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/CleanVo.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/CleanVo.java @@ -1,5 +1,8 @@ package org.dromara.property.domain.vo; +import jakarta.validation.constraints.NotBlank; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; import org.dromara.property.domain.Clean; import cn.idev.excel.annotation.ExcelIgnoreUnannotated; import cn.idev.excel.annotation.ExcelProperty; @@ -46,6 +49,11 @@ public class CleanVo implements Serializable { @ExcelProperty(value = "计量单位") private String measure; + /** + * 保洁面积 + */ + private Long cleanArea; + /** * 计算方式 */ @@ -58,6 +66,12 @@ public class CleanVo implements Serializable { @ExcelProperty(value = "单价") private String peices; + /** + * 总价 + */ + @NotBlank(message = "总价不能为空", groups = { AddGroup.class, EditGroup.class }) + private String sumPrices; + /** * 保洁频率 */ diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/mapper/CleanOrderMapper.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/mapper/CleanOrderMapper.java index 3bda884..da9f2ef 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/mapper/CleanOrderMapper.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/mapper/CleanOrderMapper.java @@ -1,5 +1,7 @@ package org.dromara.property.mapper; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.dromara.property.domain.CleanOrder; import org.dromara.property.domain.vo.CleanOrderVo; import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; @@ -12,4 +14,5 @@ import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; */ public interface CleanOrderMapper extends BaseMapperPlus { + Page selectForPage(Page build, LambdaQueryWrapper lqw); } diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/CleanOrderServiceImpl.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/CleanOrderServiceImpl.java index d6b9a1e..d677738 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/CleanOrderServiceImpl.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/CleanOrderServiceImpl.java @@ -12,14 +12,18 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.dromara.property.domain.Clean; import org.dromara.property.domain.CleanserverOrder; +import org.dromara.property.mapper.CleanMapper; import org.dromara.property.mapper.CleanserverOrderMapper; +import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.dromara.property.domain.bo.CleanOrderBo; import org.dromara.property.domain.vo.CleanOrderVo; import org.dromara.property.domain.CleanOrder; import org.dromara.property.mapper.CleanOrderMapper; import org.dromara.property.service.ICleanOrderService; +import org.springframework.transaction.annotation.Transactional; import org.stringtemplate.v4.ST; import java.util.*; @@ -41,6 +45,8 @@ public class CleanOrderServiceImpl implements ICleanOrderService { private final CleanOrderMapper baseMapper; private final CleanserverOrderMapper cleanserverOrderMapper; + private final CleanMapper cleanMapper; + /** * 查询保洁订单 * @@ -62,7 +68,7 @@ public class CleanOrderServiceImpl implements ICleanOrderService { @Override public TableDataInfo queryPageList(CleanOrderBo bo, PageQuery pageQuery) { LambdaQueryWrapper lqw = buildQueryWrapper(bo); - Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + Page result = baseMapper.selectForPage(pageQuery.build(), lqw); return TableDataInfo.build(result); } @@ -83,7 +89,7 @@ public class CleanOrderServiceImpl implements ICleanOrderService { LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); lqw.orderByAsc(CleanOrder::getId); lqw.eq(StringUtils.isNotBlank(bo.getLocation()), CleanOrder::getLocation, bo.getLocation()); - lqw.eq(StringUtils.isNotBlank(bo.getArea()), CleanOrder::getArea, bo.getArea()); +// lqw.eq(StringUtils.isNotBlank(bo.getArea()), CleanOrder::getArea, bo.getArea()); // lqw.eq(bo.getCleanIds() != null, CleanOrder::getCleanId, bo.getCleanIds()); // lqw.like(StringUtils.isNotBlank(bo.getName()), CleanOrder::getName, bo.getName()); @@ -107,12 +113,36 @@ public class CleanOrderServiceImpl implements ICleanOrderService { * @param bo 保洁订单 * @return 是否新增成功 */ + @Transactional(rollbackFor = Exception.class) @Override public Boolean insertByBo(CleanOrderBo bo) { - CleanOrder add = MapstructUtils.convert(bo, CleanOrder.class); - validEntityBeforeSave(add); + //向clean_order表中插入数据 +// CleanOrder add = MapstructUtils.convert(bo, CleanOrder.class); +// validEntityBeforeSave(add); + CleanOrder add = new CleanOrder(); + BeanUtils.copyProperties(bo, add); + + + + //向clean表中插入数据 + //判断clean表是否为空 + List cleanList = bo.getCleanList(); + if (!CollectionUtils.isEmpty(cleanList)) { + //不为空,循环插入clean表 + for (Clean clean : cleanList) { + BeanUtils.copyProperties(add.getCleanList(), clean); + clean.setSumPrices(clean.getPeices() * clean.getCleanArea()); + cleanMapper.insert(clean); + } + } + + + //通过clean表格中的所有总价,计算出clean_order表中的总价 + add.setSumPeices(cleanList.stream().map(Clean::getSumPrices).reduce(Long::sum).orElse(0L)); boolean flag = baseMapper.insert(add) > 0; + + //向中间表插入数据 if (flag) { bo.setId(add.getId()); ArrayList cleanserverOrders = new ArrayList<>(); diff --git a/ruoyi-modules/Property/src/main/resources/mapper/Property/CleanOrderMapper.xml b/ruoyi-modules/Property/src/main/resources/mapper/Property/CleanOrderMapper.xml index 372d7e5..682c741 100644 --- a/ruoyi-modules/Property/src/main/resources/mapper/Property/CleanOrderMapper.xml +++ b/ruoyi-modules/Property/src/main/resources/mapper/Property/CleanOrderMapper.xml @@ -4,4 +4,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +