解决新增问题和根据id查询问题
This commit is contained in:
parent
1ca5352a9d
commit
a5dae3530d
@ -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;
|
||||
|
||||
|
||||
}
|
||||
|
@ -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;
|
||||
|
||||
/**
|
||||
* 支付状态
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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;
|
||||
|
||||
/**
|
||||
* 保洁频率
|
||||
*/
|
||||
|
@ -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;
|
||||
|
||||
/**
|
||||
* 支付状态
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
@ -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;
|
||||
|
||||
}
|
||||
|
@ -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;
|
||||
|
||||
}
|
||||
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
@ -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">-->
|
||||
|
Loading…
Reference in New Issue
Block a user