解决新增问题和根据id查询问题

This commit is contained in:
dy 2025-07-08 23:41:03 +08:00
parent 1ca5352a9d
commit a5dae3530d
12 changed files with 142 additions and 84 deletions

View File

@ -6,6 +6,7 @@ import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import java.io.Serial; import java.io.Serial;
import java.util.List;
/** /**
* 保洁管理对象 clean * 保洁管理对象 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; private String searchValue;
@TableField(exist = false)
private CleanRelation cleanRelation;
} }

View File

@ -40,7 +40,7 @@ public class CleanOrder extends TenantEntity {
/** /**
* 面积 * 面积
*/ */
private Long area; private Double area;
/** /**
* 保洁id * 保洁id
@ -55,12 +55,12 @@ public class CleanOrder extends TenantEntity {
/** /**
* 单价 * 单价
*/ */
private Long prices; private Double prices;
/** /**
* 总价 * 总价
*/ */
private Long sumPeices; private Double sumPeices;
/** /**
* 支付状态 * 支付状态

View File

@ -14,7 +14,7 @@ import java.io.Serial;
* @date 2025-06-19 * @date 2025-06-19
*/ */
@Data @Data
@TableName("clean_order") @TableName("clean_relation")
public class CleanRelation { 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;
} }

View File

@ -9,6 +9,7 @@ import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*; import jakarta.validation.constraints.*;
import org.dromara.property.domain.CleanRelation;
import java.util.List; import java.util.List;
@ -47,10 +48,10 @@ public class CleanBo extends BaseEntity {
@NotBlank(message = "计量单位不能为空", groups = { AddGroup.class, EditGroup.class }) @NotBlank(message = "计量单位不能为空", groups = { AddGroup.class, EditGroup.class })
private String measure; 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 }) @NotBlank(message = "单价不能为空", groups = { AddGroup.class, EditGroup.class })
private String peices; private String peices;
/** // /**
* 总价 // * 总价
*/ // */
// @NotBlank(message = "总价不能为空", groups = { AddGroup.class, EditGroup.class }) //// @NotBlank(message = "总价不能为空", groups = { AddGroup.class, EditGroup.class })
private String sumPrices; // private String sumPrices;
/** /**
* 保洁频率 * 保洁频率
*/ */

View File

@ -43,7 +43,7 @@ public class CleanOrderBo extends BaseEntity {
/** /**
* 面积 * 面积
*/ */
private Long area; private Double area;
/** /**
* 保洁id * 保洁id
@ -65,7 +65,7 @@ public class CleanOrderBo extends BaseEntity {
/** /**
* 总价 * 总价
*/ */
private Long sumPeices; private Double sumPeices;
/** /**
* 支付状态 * 支付状态

View File

@ -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;
} }

View File

@ -12,6 +12,7 @@ import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert; import org.dromara.common.excel.convert.ExcelDictConvert;
import io.github.linpeilie.annotations.AutoMapper; import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data; import lombok.Data;
import org.dromara.property.domain.CleanRelation;
import java.io.Serial; import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
@ -67,13 +68,13 @@ public class CleanOrderVo implements Serializable {
* 单价 * 单价
*/ */
@ExcelProperty(value = "单价") @ExcelProperty(value = "单价")
private Long prices; private Double prices;
/** /**
* 总价 * 总价
*/ */
@ExcelProperty(value = "总价") @ExcelProperty(value = "总价")
private Long sumPeices; private Double sumPeices;
/** /**
* *
@ -123,10 +124,12 @@ public class CleanOrderVo implements Serializable {
*/ */
@ExcelProperty(value = "状态") @ExcelProperty(value = "状态")
private int state; private int state;
private List<Clean> cleanList; private List<Clean> cleanList;
private String unitName; private List<CleanRelation> relationList;
} }

View File

@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableName;
import io.github.linpeilie.annotations.AutoMapper; import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.Getter;
import org.dromara.common.mybatis.core.domain.BaseEntity; import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.property.domain.Clean; import org.dromara.property.domain.Clean;
@ -16,6 +17,8 @@ import java.io.Serial;
* @author mocheng * @author mocheng
* @date 2025-06-19 * @date 2025-06-19
*/ */
@Getter
@TableName("clean_relation")
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@AutoMapper(target = Clean.class, reverseConvertGenerate = false) @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;
} }

View File

@ -10,11 +10,12 @@ import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert; import org.dromara.common.excel.convert.ExcelDictConvert;
import io.github.linpeilie.annotations.AutoMapper; import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data; import lombok.Data;
import org.dromara.property.domain.CleanRelation;
import java.io.Serial; import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date; import java.util.Date;
import java.util.List;
/** /**
@ -49,10 +50,10 @@ public class CleanVo implements Serializable {
@ExcelProperty(value = "计量单位") @ExcelProperty(value = "计量单位")
private String measure; private String measure;
/** // /**
* 保洁面积 // * 保洁面积
*/ // */
private Long area; // private Long area;
/** /**
* 计算方式 * 计算方式
@ -66,11 +67,11 @@ public class CleanVo implements Serializable {
@ExcelProperty(value = "单价") @ExcelProperty(value = "单价")
private String peices; private String peices;
/** // /**
* 总价 // * 总价
*/ // */
@NotBlank(message = "总价不能为空", groups = { AddGroup.class, EditGroup.class }) // @NotBlank(message = "总价不能为空", groups = { AddGroup.class, EditGroup.class })
private String sumPrices; // private String sumPrices;
/** /**
* 保洁频率 * 保洁频率
@ -97,4 +98,16 @@ public class CleanVo implements Serializable {
private Long stater; private Long stater;
/**
* 面积
*/
private Double areas;
private Double sumPrice;
private CleanRelation cleanRelation;
} }

View File

@ -13,6 +13,6 @@ import org.dromara.property.domain.vo.CleanRelationVo;
*/ */
public interface CleanRelationMapper extends BaseMapperPlus<CleanRelation, CleanRelationVo> { public interface CleanRelationMapper extends BaseMapperPlus<CleanRelation, CleanRelationVo> {
@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); void insertCleanRelation(CleanRelation cleanRelation);
} }

View File

@ -63,20 +63,28 @@ public class CleanOrderServiceImpl implements ICleanOrderService {
*/ */
@Override @Override
public CleanOrderVo queryById(Long id) { public CleanOrderVo queryById(Long id) {
//根据id查询出cleanserver_order表中的所有记录 //根据id查询出cleanserver_order表中的所有记录封装到list集合中
LambdaQueryWrapper<CleanserverOrder> queryWrapper = Wrappers.<CleanserverOrder>lambdaQuery().eq(CleanserverOrder::getOrderId, id); LambdaQueryWrapper<CleanserverOrder> queryWrapper = Wrappers.<CleanserverOrder>lambdaQuery().eq(CleanserverOrder::getOrderId, id);
List<CleanserverOrder> cleanserverOrderList = cleanserverOrderMapper.selectList(queryWrapper); List<CleanserverOrder> cleanserverOrderList = cleanserverOrderMapper.selectList(queryWrapper);
//根据cleanserver_order表中的所有记录取出所有的cleanId查询出clean表中的所有记录
// 根据cleanserver_order表中的所有记录取出所有的cleanId查询出clean表中的所有记录
List<Long> cleanIds = cleanserverOrderList.stream().map(CleanserverOrder::getCleanServerId).collect(Collectors.toList()); List<Long> cleanIds = cleanserverOrderList.stream().map(CleanserverOrder::getCleanServerId).collect(Collectors.toList());
List<Clean> cleanList = cleanMapper.selectBatchIds(cleanIds); List<Clean> cleanList = cleanMapper.selectByIds(cleanIds);
//根据cleanserver_order表中的所有记录取出所有的orderId查询出clean_order表中的所有记录
//根据cleanserverOrderList中的所有记录取出所有的id封装到list集合中
List<Long> cleanserverOrderIds = cleanserverOrderList.stream().map(CleanserverOrder::getId).collect(Collectors.toList());
//将查询出的cleanserverOrderIds与clean_relation比较查出clean_relation表中的所有记录
List<CleanRelation> cleanRelationList = cleanRelationMapper.selectList(Wrappers.<CleanRelation>lambdaQuery().in(CleanRelation::getCleanserverOrderId, cleanserverOrderIds));
//根据cleanserver_order表中的所有记录取出所有的orderId查询出clean_order表中的记录
CleanOrder cleanOrder = baseMapper.selectById(id); CleanOrder cleanOrder = baseMapper.selectById(id);
//将cleanserver_order表中的所有记录和clean表中的所有记录和clean_order表中的所有记录合并 //将cleanserver_order表中的所有记录和clean表中的所有记录和clean_order表中的所有记录合并
CleanOrderVo cleanOrderVo = MapstructUtils.convert(cleanOrder, CleanOrderVo.class); CleanOrderVo cleanOrderVo = MapstructUtils.convert(cleanOrder, CleanOrderVo.class);
cleanOrderVo.setCleanList(cleanList); cleanOrderVo.setCleanList(cleanList);
cleanOrderVo.setRelationList(cleanRelationList);
return cleanOrderVo; return cleanOrderVo;
// return baseMapper.selectforDetail(id);
} }
/** /**
@ -138,7 +146,7 @@ public class CleanOrderServiceImpl implements ICleanOrderService {
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@Override @Override
public Boolean insertByBo(CleanOrderBo bo) { public Boolean insertByBo(CleanOrderBo bo) {
//向clean_order表中插入数据 //1.向clean_order表中插入数据
// CleanOrder add = MapstructUtils.convert(bo, CleanOrder.class); // CleanOrder add = MapstructUtils.convert(bo, CleanOrder.class);
CleanOrder add = new CleanOrder(); CleanOrder add = new CleanOrder();
validEntityBeforeSave(add); validEntityBeforeSave(add);
@ -147,26 +155,13 @@ public class CleanOrderServiceImpl implements ICleanOrderService {
add.setEndTime(String.valueOf(new DateTime(bo.getEndTime()).toLocalDateTime())); add.setEndTime(String.valueOf(new DateTime(bo.getEndTime()).toLocalDateTime()));
boolean flag = baseMapper.insert(add) > 0; boolean flag = baseMapper.insert(add) > 0;
//向clean表中插入数据 //取出clean_order表中的所有clean数据
//判断clean表是否为空
List<Clean> cleanList = bo.getCleanList(); List<Clean> 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 //通过cleanlist取出所有的cleanId
List<Long> cleanIds = cleanList.stream().map(Clean::getId).collect(Collectors.toList()); List<Long> cleanIds = cleanList.stream().map(Clean::getId).collect(Collectors.toList());
//向cleanserver_order表中插入数据
//2.向cleanserver_order表中插入数据
if (!CollectionUtils.isEmpty(cleanIds)) { if (!CollectionUtils.isEmpty(cleanIds)) {
//循环插入cleanserver_order表 //循环插入cleanserver_order表
for (Long cleanId : cleanIds) { for (Long cleanId : cleanIds) {
@ -177,29 +172,22 @@ public class CleanOrderServiceImpl implements ICleanOrderService {
} }
} }
// //向中间表插入数据 //3.向clean_relation表中插入cleanserver_order的id数据
// if (flag) { //通过cleanserver_order表中的orderId查询出cleanserver_order表中的所有id封装为list
// bo.setId(add.getId()); List<Long> cleanserverOrderIds = cleanserverOrderMapper.selectList(Wrappers.<CleanserverOrder>lambdaQuery().eq(CleanserverOrder::getOrderId, add.getId())).stream().map(CleanserverOrder::getId).collect(Collectors.toList());
// ArrayList<CleanserverOrder> cleanserverOrders = new ArrayList<>(); //通过cleanserver_order表中的id向clean_relation表中插入数据
// LambdaQueryWrapper<CleanserverOrder> queryWrapper = new LambdaQueryWrapper<>(); if (!CollectionUtils.isEmpty(cleanserverOrderIds)) {
// // 查询cleanserver_order表中的所有记录 int i = 0;
// List<CleanserverOrder> cleanserverOrderList = cleanserverOrderMapper.selectList(queryWrapper); for (Clean clean : cleanList) {
// //判断是否有cleanserver表中的数据 CleanRelation cleanRelation = new CleanRelation();
//// if (!cleanserverOrderList.isEmpty()) { cleanRelation.setCleanserverOrderId(cleanserverOrderIds.get(i));
//// // 循环插入cleanserver_order表 cleanRelation.setCleanId(clean.getId());
//// for (CleanserverOrder order : cleanserverOrderList) { cleanRelation.setAreas(clean.getArea());
//// Long cleanId = order.getCleanServerId(); cleanRelation.setSumPrice(clean.getPeices() * clean.getArea());
//// CleanserverOrder cleanserverOrder = new CleanserverOrder(); cleanRelationMapper.insert(cleanRelation);
//// cleanserverOrder.setCleanServerId(cleanId); i++;
//// cleanserverOrder.setOrderId(add.getId()); }
//// cleanserverOrders.add(cleanserverOrder); }
//// }
//// }
//
//
// cleanserverOrderMapper.insert(cleanserverOrders);
//
// }
return flag; return flag;
} }
@ -235,6 +223,7 @@ public class CleanOrderServiceImpl implements ICleanOrderService {
if (isValid) { if (isValid) {
//TODO 做一些业务上的校验,判断是否需要校验 //TODO 做一些业务上的校验,判断是否需要校验
} }
//todo:应该删除中间表中的数据
return baseMapper.deleteByIds(ids) > 0; return baseMapper.deleteByIds(ids) > 0;
} }
} }

View File

@ -8,11 +8,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
SELECT SELECT
co.*, co.*,
c.*, c.*,
ru.name unitName,ru.id unitId cr.areas,
cr.sum_price
FROM FROM
clean_order co clean_order co
LEFT JOIN clean c ON co.clean_id = c.id 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;
</select> </select>
<!-- <select id="selectforDetail" resultType="org.dromara.property.domain.vo.CleanOrderVo"--> <!-- <select id="selectforDetail" resultType="org.dromara.property.domain.vo.CleanOrderVo"-->
<!-- parameterType="java.lang.Long">--> <!-- parameterType="java.lang.Long">-->