From a5dae3530d81bc5a38573af3e490a18f68c193cf Mon Sep 17 00:00:00 2001 From: dy <2389062315@qq.com> Date: Tue, 8 Jul 2025 23:41:03 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E6=96=B0=E5=A2=9E=E9=97=AE?= =?UTF-8?q?=E9=A2=98=E5=92=8C=E6=A0=B9=E6=8D=AEid=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=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 | 10 ++- .../dromara/property/domain/CleanOrder.java | 6 +- .../property/domain/CleanRelation.java | 19 ++++- .../dromara/property/domain/bo/CleanBo.java | 20 ++--- .../property/domain/bo/CleanOrderBo.java | 4 +- .../property/domain/bo/CleanRelationBo.java | 17 +++- .../property/domain/vo/CleanOrderVo.java | 11 ++- .../property/domain/vo/CleanRelationVo.java | 20 ++++- .../dromara/property/domain/vo/CleanVo.java | 33 +++++--- .../property/mapper/CleanRelationMapper.java | 2 +- .../service/impl/CleanOrderServiceImpl.java | 79 ++++++++----------- .../mapper/Property/CleanOrderMapper.xml | 5 +- 12 files changed, 142 insertions(+), 84 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 cd52932..ffc324d 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 @@ -6,6 +6,7 @@ import lombok.Data; import lombok.EqualsAndHashCode; import java.io.Serial; +import java.util.List; /** * 保洁管理对象 clean @@ -40,7 +41,7 @@ public class Clean extends TenantEntity { /** * 保洁面积 */ - private Long area; + private Double area; /** * 计算方式 @@ -50,12 +51,12 @@ public class Clean extends TenantEntity { /** * 单价 */ - private Long peices; + private Double peices; /** * 总价 */ - private Long sumPrices; + private Double sumPrices; /** * 保洁频率 @@ -92,5 +93,8 @@ public class Clean extends TenantEntity { */ private String searchValue; + @TableField(exist = false) + private CleanRelation cleanRelation; + } 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 c8a5b19..75f9792 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 @@ -40,7 +40,7 @@ public class CleanOrder extends TenantEntity { /** * 面积 */ - private Long area; + private Double area; /** * 保洁id @@ -55,12 +55,12 @@ public class CleanOrder extends TenantEntity { /** * 单价 */ - private Long prices; + private Double prices; /** * 总价 */ - private Long sumPeices; + private Double sumPeices; /** * 支付状态 diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/CleanRelation.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/CleanRelation.java index 62a4de8..6ca150a 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/CleanRelation.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/CleanRelation.java @@ -14,7 +14,7 @@ import java.io.Serial; * @date 2025-06-19 */ @Data -@TableName("clean_order") +@TableName("clean_relation") public class CleanRelation { @@ -35,7 +35,20 @@ public class CleanRelation { /** * 面积 */ - private Long area; + private Double areas; - private Long sumPrices; + + private Double sumPrice; + + private Long cleanserverOrderId; + + /** + * 创建人id + */ + private Long createBy; + + /** + * 更新人id + */ + private Long updateBy; } 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 baeb918..5c063c3 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 @@ -9,6 +9,7 @@ import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; import lombok.EqualsAndHashCode; import jakarta.validation.constraints.*; +import org.dromara.property.domain.CleanRelation; import java.util.List; @@ -47,10 +48,10 @@ public class CleanBo extends BaseEntity { @NotBlank(message = "计量单位不能为空", groups = { AddGroup.class, EditGroup.class }) private String measure; - /** - * 保洁面积 - */ - private Long area; +// /** +// * 保洁面积 +// */ +// private Long area; /** * 计算方式 @@ -64,11 +65,12 @@ 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; +// /** +// * 总价 +// */ +//// @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 62ff1f1..7815d49 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 @@ -43,7 +43,7 @@ public class CleanOrderBo extends BaseEntity { /** * 面积 */ - private Long area; + private Double area; /** * 保洁id @@ -65,7 +65,7 @@ public class CleanOrderBo extends BaseEntity { /** * 总价 */ - private Long sumPeices; + private Double sumPeices; /** * 支付状态 diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/CleanRelationBo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/CleanRelationBo.java index 2840beb..7c0d225 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/CleanRelationBo.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/CleanRelationBo.java @@ -39,5 +39,20 @@ public class CleanRelationBo extends BaseEntity { /** * 面积 */ - private Long area; + private Double areas; + + + private Double sumPrice; + + private Long cleanserverOrderId; + + /** + * 创建人id + */ + private Long createBy; + + /** + * 更新人id + */ + private Long updateBy; } 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 a70ce94..50b286d 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 @@ -12,6 +12,7 @@ import org.dromara.common.excel.annotation.ExcelDictFormat; import org.dromara.common.excel.convert.ExcelDictConvert; import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; +import org.dromara.property.domain.CleanRelation; import java.io.Serial; import java.io.Serializable; @@ -67,13 +68,13 @@ public class CleanOrderVo implements Serializable { * 单价 */ @ExcelProperty(value = "单价") - private Long prices; + private Double prices; /** * 总价 */ @ExcelProperty(value = "总价") - private Long sumPeices; + private Double sumPeices; /** * @@ -123,10 +124,12 @@ public class CleanOrderVo implements Serializable { */ @ExcelProperty(value = "状态") private int state; - private List cleanList; - private String unitName; + private List relationList; + + + } diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/CleanRelationVo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/CleanRelationVo.java index d2a97d2..b8fc981 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/CleanRelationVo.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/CleanRelationVo.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableName; import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; import lombok.EqualsAndHashCode; +import lombok.Getter; import org.dromara.common.mybatis.core.domain.BaseEntity; import org.dromara.property.domain.Clean; @@ -16,6 +17,8 @@ import java.io.Serial; * @author mocheng * @date 2025-06-19 */ +@Getter +@TableName("clean_relation") @Data @EqualsAndHashCode(callSuper = true) @AutoMapper(target = Clean.class, reverseConvertGenerate = false) @@ -39,5 +42,20 @@ public class CleanRelationVo extends BaseEntity { /** * 面积 */ - private Long area; + private Double areas; + + private Double sumPrice; + + private Long cleanserverOrderId; + + /** + * 创建人id + */ + private Long createBy; + + /** + * 更新人id + */ + private Long updateBy; + } 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 abc542e..b683bb7 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 @@ -10,11 +10,12 @@ import org.dromara.common.excel.annotation.ExcelDictFormat; import org.dromara.common.excel.convert.ExcelDictConvert; import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; +import org.dromara.property.domain.CleanRelation; import java.io.Serial; import java.io.Serializable; import java.util.Date; - +import java.util.List; /** @@ -49,10 +50,10 @@ public class CleanVo implements Serializable { @ExcelProperty(value = "计量单位") private String measure; - /** - * 保洁面积 - */ - private Long area; +// /** +// * 保洁面积 +// */ +// private Long area; /** * 计算方式 @@ -66,11 +67,11 @@ public class CleanVo implements Serializable { @ExcelProperty(value = "单价") private String peices; - /** - * 总价 - */ - @NotBlank(message = "总价不能为空", groups = { AddGroup.class, EditGroup.class }) - private String sumPrices; +// /** +// * 总价 +// */ +// @NotBlank(message = "总价不能为空", groups = { AddGroup.class, EditGroup.class }) +// private String sumPrices; /** * 保洁频率 @@ -97,4 +98,16 @@ public class CleanVo implements Serializable { private Long stater; + /** + * 面积 + */ + private Double areas; + + + private Double sumPrice; + + + private CleanRelation cleanRelation; + } + diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/mapper/CleanRelationMapper.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/mapper/CleanRelationMapper.java index 9e82ece..97d549a 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/mapper/CleanRelationMapper.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/mapper/CleanRelationMapper.java @@ -13,6 +13,6 @@ import org.dromara.property.domain.vo.CleanRelationVo; */ public interface CleanRelationMapper extends BaseMapperPlus { - @Insert("insert into clean_relation(id,clean_id, area, sum_prices) values(#{id},#{cleanId}, #{area}, #{sumPrices})") + @Insert("insert into clean_relation(id,clean_id, areas, sum_price) values(#{id},#{cleanId}, #{areas}, #{sumPrice})") void insertCleanRelation(CleanRelation cleanRelation); } 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 9e97f3e..3d1400b 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 @@ -63,20 +63,28 @@ public class CleanOrderServiceImpl implements ICleanOrderService { */ @Override public CleanOrderVo queryById(Long id) { - //根据id查询出cleanserver_order表中的所有记录 + //根据id查询出cleanserver_order表中的所有记录,封装到list集合中 LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery().eq(CleanserverOrder::getOrderId, id); List cleanserverOrderList = cleanserverOrderMapper.selectList(queryWrapper); - //根据cleanserver_order表中的所有记录取出所有的cleanId查询出clean表中的所有记录 + +// 根据cleanserver_order表中的所有记录取出所有的cleanId查询出clean表中的所有记录 List cleanIds = cleanserverOrderList.stream().map(CleanserverOrder::getCleanServerId).collect(Collectors.toList()); - List cleanList = cleanMapper.selectBatchIds(cleanIds); - //根据cleanserver_order表中的所有记录取出所有的orderId查询出clean_order表中的所有记录 + List cleanList = cleanMapper.selectByIds(cleanIds); + + //根据cleanserverOrderList中的所有记录取出所有的id,封装到list集合中 + List cleanserverOrderIds = cleanserverOrderList.stream().map(CleanserverOrder::getId).collect(Collectors.toList()); + //将查询出的cleanserverOrderIds与clean_relation比较,查出clean_relation表中的所有记录 + List cleanRelationList = cleanRelationMapper.selectList(Wrappers.lambdaQuery().in(CleanRelation::getCleanserverOrderId, cleanserverOrderIds)); + + //根据cleanserver_order表中的所有记录取出所有的orderId查询出clean_order表中的记录 CleanOrder cleanOrder = baseMapper.selectById(id); + //将cleanserver_order表中的所有记录和clean表中的所有记录和clean_order表中的所有记录合并 CleanOrderVo cleanOrderVo = MapstructUtils.convert(cleanOrder, CleanOrderVo.class); cleanOrderVo.setCleanList(cleanList); + cleanOrderVo.setRelationList(cleanRelationList); return cleanOrderVo; -// return baseMapper.selectforDetail(id); } /** @@ -138,7 +146,7 @@ public class CleanOrderServiceImpl implements ICleanOrderService { @Transactional(rollbackFor = Exception.class) @Override public Boolean insertByBo(CleanOrderBo bo) { - //向clean_order表中插入数据 + //1.向clean_order表中插入数据 // CleanOrder add = MapstructUtils.convert(bo, CleanOrder.class); CleanOrder add = new CleanOrder(); validEntityBeforeSave(add); @@ -147,26 +155,13 @@ public class CleanOrderServiceImpl implements ICleanOrderService { add.setEndTime(String.valueOf(new DateTime(bo.getEndTime()).toLocalDateTime())); boolean flag = baseMapper.insert(add) > 0; - //向clean表中插入数据 - //判断clean表是否为空 + //取出clean_order表中的所有clean数据 List cleanList = bo.getCleanList(); - if (!CollectionUtils.isEmpty(cleanList)) { - //不为空,循环插入clean表 - for (Clean clean : bo.getCleanList()) { - //向clean关联表中插入数据 - CleanRelation cleanRelation = new CleanRelation(); - cleanRelation.setCleanId(clean.getId()); - cleanRelation.setArea(clean.getArea()); - cleanRelation.setSumPrices(clean.getPeices() * clean.getArea()); - - cleanRelationMapper.insertCleanRelation(cleanRelation); - } - } - //通过cleanlist取出所有的cleanId List cleanIds = cleanList.stream().map(Clean::getId).collect(Collectors.toList()); - //向cleanserver_order表中插入数据 + + //2.向cleanserver_order表中插入数据 if (!CollectionUtils.isEmpty(cleanIds)) { //循环插入cleanserver_order表 for (Long cleanId : cleanIds) { @@ -177,29 +172,22 @@ public class CleanOrderServiceImpl implements ICleanOrderService { } } -// //向中间表插入数据 -// if (flag) { -// bo.setId(add.getId()); -// ArrayList cleanserverOrders = new ArrayList<>(); -// LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); -// // 查询cleanserver_order表中的所有记录 -// List cleanserverOrderList = cleanserverOrderMapper.selectList(queryWrapper); -// //判断是否有cleanserver表中的数据 -//// if (!cleanserverOrderList.isEmpty()) { -//// // 循环插入cleanserver_order表 -//// for (CleanserverOrder order : cleanserverOrderList) { -//// Long cleanId = order.getCleanServerId(); -//// CleanserverOrder cleanserverOrder = new CleanserverOrder(); -//// cleanserverOrder.setCleanServerId(cleanId); -//// cleanserverOrder.setOrderId(add.getId()); -//// cleanserverOrders.add(cleanserverOrder); -//// } -//// } -// -// -// cleanserverOrderMapper.insert(cleanserverOrders); -// -// } + //3.向clean_relation表中插入cleanserver_order的id数据 + //通过cleanserver_order表中的orderId查询出cleanserver_order表中的所有id,封装为list + List cleanserverOrderIds = cleanserverOrderMapper.selectList(Wrappers.lambdaQuery().eq(CleanserverOrder::getOrderId, add.getId())).stream().map(CleanserverOrder::getId).collect(Collectors.toList()); + //通过cleanserver_order表中的id向clean_relation表中插入数据 + if (!CollectionUtils.isEmpty(cleanserverOrderIds)) { + int i = 0; + for (Clean clean : cleanList) { + CleanRelation cleanRelation = new CleanRelation(); + cleanRelation.setCleanserverOrderId(cleanserverOrderIds.get(i)); + cleanRelation.setCleanId(clean.getId()); + cleanRelation.setAreas(clean.getArea()); + cleanRelation.setSumPrice(clean.getPeices() * clean.getArea()); + cleanRelationMapper.insert(cleanRelation); + i++; + } + } return flag; } @@ -235,6 +223,7 @@ public class CleanOrderServiceImpl implements ICleanOrderService { if (isValid) { //TODO 做一些业务上的校验,判断是否需要校验 } + //todo:应该删除中间表中的数据 return baseMapper.deleteByIds(ids) > 0; } } 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 5778bde..248b7fa 100644 --- a/ruoyi-modules/Property/src/main/resources/mapper/Property/CleanOrderMapper.xml +++ b/ruoyi-modules/Property/src/main/resources/mapper/Property/CleanOrderMapper.xml @@ -8,11 +8,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" SELECT co.*, c.*, - ru.name unitName,ru.id unitId + cr.areas, + cr.sum_price FROM clean_order co LEFT JOIN clean c ON co.clean_id = c.id - LEFT JOIN resident_unit ru ON co.unit_id = ru.id; + LEFT JOIN clean_relation cr ON c.id = cr.clean_id;