解决新增问题和根据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 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;
}

View File

@ -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;
/**
* 支付状态

View File

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

View File

@ -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;
/**
* 保洁频率
*/

View File

@ -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;
/**
* 支付状态

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

View File

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

View File

@ -13,6 +13,6 @@ import org.dromara.property.domain.vo.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);
}

View File

@ -63,20 +63,28 @@ public class CleanOrderServiceImpl implements ICleanOrderService {
*/
@Override
public CleanOrderVo queryById(Long id) {
//根据id查询出cleanserver_order表中的所有记录
//根据id查询出cleanserver_order表中的所有记录封装到list集合中
LambdaQueryWrapper<CleanserverOrder> queryWrapper = Wrappers.<CleanserverOrder>lambdaQuery().eq(CleanserverOrder::getOrderId, id);
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<Clean> cleanList = cleanMapper.selectBatchIds(cleanIds);
//根据cleanserver_order表中的所有记录取出所有的orderId查询出clean_order表中的所有记录
List<Clean> cleanList = cleanMapper.selectByIds(cleanIds);
//根据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);
//将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<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
List<Long> 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<CleanserverOrder> cleanserverOrders = new ArrayList<>();
// LambdaQueryWrapper<CleanserverOrder> queryWrapper = new LambdaQueryWrapper<>();
// // 查询cleanserver_order表中的所有记录
// List<CleanserverOrder> 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<Long> cleanserverOrderIds = cleanserverOrderMapper.selectList(Wrappers.<CleanserverOrder>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;
}
}

View File

@ -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;
</select>
<!-- <select id="selectforDetail" resultType="org.dromara.property.domain.vo.CleanOrderVo"-->
<!-- parameterType="java.lang.Long">-->