保洁逻辑修改

This commit is contained in:
dy 2025-07-01 15:13:38 +08:00
parent 1b158eb6ae
commit 2a2b400760
12 changed files with 229 additions and 53 deletions

View File

@ -90,10 +90,10 @@
<properties>
<!-- 环境标识,需要与配置文件的名称相对应 -->
<profiles.active>dev</profiles.active>
<!-- <nacos.server>127.0.0.1:8848</nacos.server>-->
<!-- <logstash.address>127.0.0.1:4560</logstash.address>-->
<nacos.server>47.109.37.87:8848</nacos.server>
<logstash.address>47.109.37.87:4560</logstash.address>
<nacos.server>127.0.0.1:8848</nacos.server>
<logstash.address>127.0.0.1:4560</logstash.address>
<!-- <nacos.server>47.109.37.87:8848</nacos.server>-->
<!-- <logstash.address>47.109.37.87:4560</logstash.address>-->
<nacos.discovery.group>DEFAULT_GROUP</nacos.discovery.group>
<nacos.config.group>DEFAULT_GROUP</nacos.config.group>
<nacos.username>nacos</nacos.username>

View File

@ -40,7 +40,7 @@ public class Clean extends TenantEntity {
/**
* 保洁面积
*/
private Long cleanArea;
private Long area;
/**
* 计算方式

View File

@ -4,6 +4,8 @@ import org.dromara.common.tenant.core.TenantEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.time.LocalDateTime;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
@ -68,12 +70,15 @@ public class CleanOrder extends TenantEntity {
/**
* 开始时间
*/
private Date starTime;
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern="yyyy-MM-dd HH:mm:ss")
private LocalDateTime starTime;
/**
* 结束时间
*/
private Date endTime;
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern="yyyy-MM-dd HH:mm:ss")
private LocalDateTime endTime;
/**
* 单位id
@ -115,7 +120,7 @@ public class CleanOrder extends TenantEntity {
*/
private String searchValue;
private List<Clean> cleanList;
// private List<Clean> cleanList;
}

View File

@ -0,0 +1,41 @@
package org.dromara.property.domain;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serial;
/**
* 保洁详情关联表 clean_relation
*
* @author mocheng
* @date 2025-06-19
*/
@Data
@TableName("clean_order")
public class CleanRelation {
@Serial
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@TableId(value = "id")
private Long id;
/**
* 保洁id
*/
private Long cleanId;
/**
* 面积
*/
private Long area;
private Long sumPrices;
}

View File

@ -50,7 +50,7 @@ public class CleanBo extends BaseEntity {
/**
* 保洁面积
*/
private Long cleanArea;
private Long area;
/**
* 计算方式

View File

@ -10,6 +10,7 @@ import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@ -30,13 +31,13 @@ public class CleanOrderBo extends BaseEntity {
/**
* 主键
*/
@NotNull(message = "主键不能为空", groups = { EditGroup.class })
@NotNull(message = "主键不能为空", groups = {EditGroup.class})
private Long id;
/**
* 位置
*/
@NotBlank(message = "位置不能为空", groups = { AddGroup.class, EditGroup.class })
// @NotBlank(message = "位置不能为空", groups = { AddGroup.class, EditGroup.class })
private String location;
/**
@ -69,25 +70,27 @@ public class CleanOrderBo extends BaseEntity {
/**
* 支付状态
*/
@NotNull(message = "支付状态不能为空", groups = { AddGroup.class, EditGroup.class })
@NotNull(message = "支付状态不能为空", groups = {AddGroup.class, EditGroup.class})
private Long payState;
/**
* 开始时间
*/
@NotNull(message = "开始时间不能为空", groups = { AddGroup.class, EditGroup.class })
private Date starTime;
@NotBlank(message = "开始时间不能为空", groups = {AddGroup.class, EditGroup.class})
// @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
private String starTime;
/**
* 结束时间
*/
@NotNull(message = "结束时间不能为空", groups = { AddGroup.class, EditGroup.class })
private Date endTime;
@NotBlank(message = "结束时间不能为空", groups = {AddGroup.class, EditGroup.class})
// @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
private String endTime;
/**
* 单位id
*/
@NotNull(message = "单位id不能为空", groups = { AddGroup.class, EditGroup.class })
@NotNull(message = "单位id不能为空", groups = {AddGroup.class, EditGroup.class})
private Long unitId;
// /**
@ -99,13 +102,13 @@ public class CleanOrderBo extends BaseEntity {
/**
* 联系人
*/
@NotBlank(message = "联系人不能为空", groups = { AddGroup.class, EditGroup.class })
@NotBlank(message = "联系人不能为空", groups = {AddGroup.class, EditGroup.class})
private String persion;
/**
* 联系电话
*/
@NotBlank(message = "联系电话不能为空", groups = { AddGroup.class, EditGroup.class })
@NotBlank(message = "联系电话不能为空", groups = {AddGroup.class, EditGroup.class})
private String phone;
/**
@ -113,7 +116,7 @@ public class CleanOrderBo extends BaseEntity {
*/
private int state;
@NotEmpty(message = "订单详情不能为空", groups = { AddGroup.class })
@NotEmpty(message = "订单详情不能为空", groups = {AddGroup.class})
private List<Clean> cleanList;

View File

@ -0,0 +1,43 @@
package org.dromara.property.domain.bo;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.property.domain.Clean;
import java.io.Serial;
/**
* 保洁详情关联表 clean_relation
*
* @author mocheng
* @date 2025-06-19
*/
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = Clean.class, reverseConvertGenerate = false)
public class CleanRelationBo extends BaseEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@TableId(value = "id")
private Long id;
/**
* 保洁id
*/
private Long cleanId;
/**
* 面积
*/
private Long area;
}

View File

@ -0,0 +1,43 @@
package org.dromara.property.domain.vo;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.property.domain.Clean;
import java.io.Serial;
/**
* 保洁详情关联表 clean_relation
*
* @author mocheng
* @date 2025-06-19
*/
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = Clean.class, reverseConvertGenerate = false)
public class CleanRelationVo extends BaseEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@TableId(value = "id")
private Long id;
/**
* 保洁id
*/
private Long cleanId;
/**
* 面积
*/
private Long area;
}

View File

@ -52,7 +52,7 @@ public class CleanVo implements Serializable {
/**
* 保洁面积
*/
private Long cleanArea;
private Long area;
/**
* 计算方式

View File

@ -15,4 +15,6 @@ import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
public interface CleanOrderMapper extends BaseMapperPlus<CleanOrder, CleanOrderVo> {
Page<CleanOrderVo> selectForPage(Page<Object> build, LambdaQueryWrapper<CleanOrder> lqw);
// int insertCleanOrder(CleanOrder add);
}

View File

@ -0,0 +1,18 @@
package org.dromara.property.mapper;
import org.apache.ibatis.annotations.Insert;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
import org.dromara.property.domain.CleanRelation;
import org.dromara.property.domain.vo.CleanRelationVo;
/**
* 保洁-保洁关系表Mapper接口
*
* @author mocheng
* @date 2025-07-01
*/
public interface CleanRelationMapper extends BaseMapperPlus<CleanRelation, CleanRelationVo> {
@Insert("insert into clean_relation(id,clean_id, area, sum_prices) values(#{id},#{cleanId}, #{area}, #{sumPrices})")
void insertCleanRelation(CleanRelation cleanRelation);
}

View File

@ -1,5 +1,6 @@
package org.dromara.property.service.impl;
import cn.hutool.core.date.DateTime;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.Mapper;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
@ -13,8 +14,10 @@ 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.CleanRelation;
import org.dromara.property.domain.CleanserverOrder;
import org.dromara.property.mapper.CleanMapper;
import org.dromara.property.mapper.CleanRelationMapper;
import org.dromara.property.mapper.CleanserverOrderMapper;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
@ -26,6 +29,7 @@ import org.dromara.property.service.ICleanOrderService;
import org.springframework.transaction.annotation.Transactional;
import org.stringtemplate.v4.ST;
import java.time.LocalDateTime;
import java.util.*;
import java.util.stream.Collectors;
@ -47,6 +51,8 @@ public class CleanOrderServiceImpl implements ICleanOrderService {
private final CleanMapper cleanMapper;
private final CleanRelationMapper cleanRelationMapper;
/**
* 查询保洁订单
*
@ -118,54 +124,69 @@ public class CleanOrderServiceImpl implements ICleanOrderService {
public Boolean insertByBo(CleanOrderBo bo) {
//向clean_order表中插入数据
// CleanOrder add = MapstructUtils.convert(bo, CleanOrder.class);
// validEntityBeforeSave(add);
CleanOrder add = new CleanOrder();
validEntityBeforeSave(add);
BeanUtils.copyProperties(bo, add);
add.setStarTime(new DateTime(bo.getStarTime()).toLocalDateTime());
add.setEndTime(new DateTime(bo.getEndTime()).toLocalDateTime());
boolean flag = baseMapper.insert(add) > 0;
//向clean表中插入数据
//判断clean表是否为空
List<Clean> 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);
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);
}
}
//通过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<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());
// CleanserverOrder convert = MapstructUtils.convert(cleanserverOrder, CleanserverOrder.class);
cleanserverOrders.add(cleanserverOrder);
}
//通过cleanlist取出所有的cleanId
List<Long> cleanIds = cleanList.stream().map(Clean::getId).collect(Collectors.toList());
//向cleanserver_order表中插入数据
if (!CollectionUtils.isEmpty(cleanIds)) {
//循环插入cleanserver_order表
for (Long cleanId : cleanIds) {
CleanserverOrder cleanserverOrder = new CleanserverOrder();
cleanserverOrder.setCleanServerId(cleanId);
cleanserverOrder.setOrderId(add.getId());
cleanserverOrderMapper.insert(cleanserverOrder);
}
cleanserverOrderMapper.insert(cleanserverOrders);
}
// //向中间表插入数据
// 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);
//
// }
return flag;
}