From 0fa0ace1666f52a0fe29f5ccd5e19adc15c51b5b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A3=B7=E5=8F=B6?= <14103883+leaf-phos@user.noreply.gitee.com> Date: Sun, 27 Apr 2025 15:07:02 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8D=8F=E8=AE=AE=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ruoyi/bst/agreement/domain/Agreement.java | 14 +- .../bst/agreement/domain/AgreementVO.java | 3 + .../agreement/domain/enums/AgreementType.java | 16 ++ .../bst/agreement/mapper/AgreementMapper.java | 10 -- .../bst/agreement/mapper/AgreementMapper.xml | 155 +----------------- .../agreement/service/AgreementService.java | 12 +- .../service/impl/AgreementConverterImpl.java | 4 +- .../service/impl/AgreementServiceImpl.java | 71 +++++--- .../area/service/impl/AreaServiceImpl.java | 27 ++- .../impl/CustomerServiceServiceImpl.java | 2 +- .../service/impl/IotReceiveServiceImpl.java | 1 + .../ruoyi/web/bst/AgreementController.java | 4 +- .../web/bst/CustomerServiceController.java | 3 + 13 files changed, 126 insertions(+), 196 deletions(-) create mode 100644 ruoyi-service/src/main/java/com/ruoyi/bst/agreement/domain/enums/AgreementType.java diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/agreement/domain/Agreement.java b/ruoyi-service/src/main/java/com/ruoyi/bst/agreement/domain/Agreement.java index 06e7bf9..61f2c1e 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/bst/agreement/domain/Agreement.java +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/agreement/domain/Agreement.java @@ -1,16 +1,16 @@ package com.ruoyi.bst.agreement.domain; +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; + import com.ruoyi.common.annotation.Excel; import com.ruoyi.common.core.domain.BaseEntity; import com.ruoyi.common.core.interfaces.LogBizParam; - import com.ruoyi.common.core.validate.ValidGroup; + import io.swagger.annotations.ApiModelProperty; import lombok.Data; -import javax.validation.constraints.NotBlank; -import javax.validation.constraints.NotNull; - /** * 协议对象 bst_agreement * @@ -23,11 +23,7 @@ public class Agreement extends BaseEntity implements LogBizParam private static final long serialVersionUID = 1L; private Long id; - - @Excel(name = "商户ID") - @ApiModelProperty("商户ID") - private Long storeId; - + @Excel(name = "运营区ID") @ApiModelProperty("运营区ID") private Long areaId; diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/agreement/domain/AgreementVO.java b/ruoyi-service/src/main/java/com/ruoyi/bst/agreement/domain/AgreementVO.java index 88ceca1..4e3ccc4 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/bst/agreement/domain/AgreementVO.java +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/agreement/domain/AgreementVO.java @@ -7,6 +7,9 @@ import lombok.Data; public class AgreementVO extends Agreement{ + @ApiModelProperty("商户ID") + private Long storeId; + @ApiModelProperty("商户名") private String userName; diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/agreement/domain/enums/AgreementType.java b/ruoyi-service/src/main/java/com/ruoyi/bst/agreement/domain/enums/AgreementType.java new file mode 100644 index 0000000..d1b3587 --- /dev/null +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/agreement/domain/enums/AgreementType.java @@ -0,0 +1,16 @@ +package com.ruoyi.bst.agreement.domain.enums; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +@Getter +@AllArgsConstructor +public enum AgreementType { + + NOTICE("0", "公告"), + RENT("1", "租赁协议"); + + private final String code; + private final String name; + +} \ No newline at end of file diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/agreement/mapper/AgreementMapper.java b/ruoyi-service/src/main/java/com/ruoyi/bst/agreement/mapper/AgreementMapper.java index 0ce2b86..f5d85db 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/bst/agreement/mapper/AgreementMapper.java +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/agreement/mapper/AgreementMapper.java @@ -38,16 +38,6 @@ public interface AgreementMapper */ int insertAgreement(Agreement agreement); - /** - * 批量新增协议 - */ - int batchInsert(@Param("list") List list); - - /** - * 批量修改协议 - */ - int batchUpdate(@Param("list") List list); - /** * 修改协议 * diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/agreement/mapper/AgreementMapper.xml b/ruoyi-service/src/main/java/com/ruoyi/bst/agreement/mapper/AgreementMapper.xml index 914ed32..96e96e3 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/bst/agreement/mapper/AgreementMapper.xml +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/agreement/mapper/AgreementMapper.xml @@ -9,7 +9,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select bag.id, - bag.store_id, bag.area_id, bag.title, bag.brief, @@ -20,18 +19,19 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" bag.create_time, bag.update_time, su.nick_name as user_name, - ba.name as area_name + ba.name as area_name, + ba.user_id as store_id from bst_agreement bag - left join sys_user su on bag.store_id = su.user_id left join bst_area ba on bag.area_id = ba.id + left join sys_user su on ba.user_id = su.user_id - and bag.store_id = #{query.storeId} + and ba.user_id = #{query.storeId} and bag.area_id = #{query.areaId} and bag.title like concat('%', #{query.title}, '%') and bag.brief like concat('%', #{query.brief}, '%') @@ -45,10 +45,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{id} - + ${@com.ruoyi.framework.util.DataScopeUtil@dataScope( null, - "bag.store_id", + "ba.user_id", null, null, query.scope @@ -65,7 +65,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" @@ -80,7 +80,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" insert into bst_agreement - store_id, area_id, title, brief, @@ -92,7 +91,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" update_time, - #{storeId}, #{areaId}, #{title}, #{brief}, @@ -105,144 +103,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - - insert into bst_agreement - - store_id, - area_id, - title, - brief, - content, - agreement_type, - duration, - create_time, - update_time, - - values - - - #{i.storeId}, - default, - #{i.areaId}, - default, - #{i.title}, - default, - #{i.brief}, - default, - #{i.content}, - default, - #{i.agreementType}, - default, - #{i.duration}, - default, - #{i.createTime}, - default, - #{i.updateTime}, - default, - - - - - - update bst_agreement - - - - - WHEN #{item.id} THEN #{item.storeId} - - - WHEN #{item.id} THEN `store_id` - - - - - - - WHEN #{item.id} THEN #{item.areaId} - - - WHEN #{item.id} THEN `area_id` - - - - - - - WHEN #{item.id} THEN #{item.title} - - - WHEN #{item.id} THEN `title` - - - - - - - WHEN #{item.id} THEN #{item.brief} - - - WHEN #{item.id} THEN `brief` - - - - - - - WHEN #{item.id} THEN #{item.content} - - - WHEN #{item.id} THEN `content` - - - - - - - WHEN #{item.id} THEN #{item.agreementType} - - - WHEN #{item.id} THEN `agreement_type` - - - - - - - WHEN #{item.id} THEN #{item.duration} - - - WHEN #{item.id} THEN `duration` - - - - - - - WHEN #{item.id} THEN #{item.createTime} - - - WHEN #{item.id} THEN `create_time` - - - - - - - WHEN #{item.id} THEN #{item.updateTime} - - - WHEN #{item.id} THEN `update_time` - - - - - where id in - - #{item.id} - - - update bst_agreement bag @@ -252,7 +112,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - store_id = #{data.storeId}, area_id = #{data.areaId}, title = #{data.title}, brief = #{data.brief}, diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/agreement/service/AgreementService.java b/ruoyi-service/src/main/java/com/ruoyi/bst/agreement/service/AgreementService.java index 778a017..47dfa1a 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/bst/agreement/service/AgreementService.java +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/agreement/service/AgreementService.java @@ -1,9 +1,11 @@ package com.ruoyi.bst.agreement.service; import java.util.List; + import com.ruoyi.bst.agreement.domain.Agreement; -import com.ruoyi.bst.agreement.domain.AgreementVO; import com.ruoyi.bst.agreement.domain.AgreementQuery; +import com.ruoyi.bst.agreement.domain.AgreementVO; +import com.ruoyi.bst.agreement.domain.enums.AgreementType; /** * 协议Service接口 @@ -61,4 +63,12 @@ public interface AgreementService */ public int deleteAgreementById(Long id); + /** + * 复制模板 + * @param type + * @param areaId + * @return + */ + public int copyTemplate(AgreementType type, Long areaId); + } diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/agreement/service/impl/AgreementConverterImpl.java b/ruoyi-service/src/main/java/com/ruoyi/bst/agreement/service/impl/AgreementConverterImpl.java index 59e732a..5037fa8 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/bst/agreement/service/impl/AgreementConverterImpl.java +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/agreement/service/impl/AgreementConverterImpl.java @@ -28,7 +28,9 @@ public class AgreementConverterImpl implements AgreementConverter { po.setTitle(data.getTitle()); if (SecurityUtils.isAdmin()){ po.setContentType(data.getContentType()); - }else po.setContentType(AgreementContentType.TEXT.getCode()); + }else po.setContentType( + AgreementContentType.TEXT.getCode() + ); po.setAgreementType(data.getAgreementType()); po.setBrief(data.getBrief()); po.setContent(data.getContent()); diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/agreement/service/impl/AgreementServiceImpl.java b/ruoyi-service/src/main/java/com/ruoyi/bst/agreement/service/impl/AgreementServiceImpl.java index 032b843..52080fd 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/bst/agreement/service/impl/AgreementServiceImpl.java +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/agreement/service/impl/AgreementServiceImpl.java @@ -2,25 +2,23 @@ package com.ruoyi.bst.agreement.service.impl; import java.util.List; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.support.TransactionTemplate; +import org.springframework.util.CollectionUtils; + +import com.github.pagehelper.PageHelper; +import com.ruoyi.bst.agreement.domain.Agreement; +import com.ruoyi.bst.agreement.domain.AgreementQuery; +import com.ruoyi.bst.agreement.domain.AgreementVO; import com.ruoyi.bst.agreement.domain.enums.AgreementContentType; -import com.ruoyi.bst.area.domain.AreaQuery; -import com.ruoyi.bst.area.domain.AreaVO; +import com.ruoyi.bst.agreement.domain.enums.AgreementType; +import com.ruoyi.bst.agreement.mapper.AgreementMapper; +import com.ruoyi.bst.agreement.service.AgreementService; import com.ruoyi.bst.area.service.AreaService; -import com.ruoyi.bst.device.domain.DeviceVO; -import com.ruoyi.bst.model.domain.ModelVO; -import com.ruoyi.common.core.domain.vo.UserVO; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.ServiceUtil; import com.ruoyi.system.user.service.UserService; -import org.springframework.beans.BeanUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import com.ruoyi.bst.agreement.mapper.AgreementMapper; -import com.ruoyi.bst.agreement.domain.Agreement; -import com.ruoyi.bst.agreement.domain.AgreementVO; -import com.ruoyi.bst.agreement.domain.AgreementQuery; -import com.ruoyi.bst.agreement.service.AgreementService; -import org.springframework.transaction.support.TransactionTemplate; /** * 协议Service业务层处理 @@ -76,17 +74,17 @@ public class AgreementServiceImpl implements AgreementService contentTypeAreaCheck(agreement); agreement.setCreateTime(DateUtils.getNowDate()); Integer result = transactionTemplate.execute(status -> { - // 创建设备 - int insert = agreementMapper.insertAgreement(agreement); - ServiceUtil.assertion(insert != 1,"新增设备失败"); + // 创建设备 + int insert = agreementMapper.insertAgreement(agreement); + ServiceUtil.assertion(insert != 1,"新增协议失败"); - // 后校验 - AgreementVO vo = this.selectAgreementById(agreement.getId()); - distinct(vo); + // 后校验 + AgreementVO vo = this.selectAgreementById(agreement.getId()); + distinct(vo); - return insert; + return insert; - }); + }); return result==null? 0 : result; } @@ -158,4 +156,33 @@ public class AgreementServiceImpl implements AgreementService } + @Override + public int copyTemplate(AgreementType type, Long areaId) { + if (type == null || areaId == null) { + return 0; + } + + // 查询模板 + AgreementQuery query = new AgreementQuery(); + query.setAgreementType(type.getCode()); + query.setContentType(AgreementContentType.TEMPLATE.getCode()); + AgreementVO template = this.selectOne(query); + ServiceUtil.assertion(template == null, "协议模板不存在"); + + Agreement data = new Agreement(); + data.setAreaId(areaId); + data.setTitle(template.getTitle()); + data.setBrief(template.getBrief()); + data.setContent(template.getContent()); + data.setAgreementType(template.getAgreementType()); + data.setContentType(AgreementContentType.TEXT.getCode()); + data.setDuration(template.getDuration()); + return this.insertAgreement(data); + } + + private AgreementVO selectOne(AgreementQuery query) { + PageHelper.startPage(1, 1); + List list = agreementMapper.selectAgreementList(query); + return CollectionUtils.firstElement(list); + } } diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/area/service/impl/AreaServiceImpl.java b/ruoyi-service/src/main/java/com/ruoyi/bst/area/service/impl/AreaServiceImpl.java index c98ac82..0c0f408 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/bst/area/service/impl/AreaServiceImpl.java +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/area/service/impl/AreaServiceImpl.java @@ -6,8 +6,11 @@ import java.util.List; import org.locationtech.jts.geom.Geometry; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.support.TransactionTemplate; import com.github.pagehelper.PageHelper; +import com.ruoyi.bst.agreement.domain.enums.AgreementType; +import com.ruoyi.bst.agreement.service.AgreementService; import com.ruoyi.bst.area.domain.Area; import com.ruoyi.bst.area.domain.AreaQuery; import com.ruoyi.bst.area.domain.AreaVO; @@ -19,6 +22,7 @@ import com.ruoyi.bst.areaJoin.domain.enums.AreaJoinPermission; import com.ruoyi.bst.areaSub.domain.AreaSubVO; import com.ruoyi.bst.areaSub.service.AreaSubService; import com.ruoyi.common.utils.DateUtils; +import com.ruoyi.common.utils.ServiceUtil; import com.ruoyi.common.utils.collection.CollectionUtils; import com.ruoyi.common.utils.map.GeoUtils; @@ -40,6 +44,12 @@ public class AreaServiceImpl implements AreaService @Autowired private AreaSubService areaSubService; + @Autowired + private AgreementService agreementService; + + @Autowired + private TransactionTemplate transactionTemplate; + /** * 查询运营区 * @@ -103,7 +113,20 @@ public class AreaServiceImpl implements AreaService area.setBoundary(GeoUtils.wkt(geometry)); } area.setCreateTime(DateUtils.getNowDate()); - return areaMapper.insertArea(area); + + Integer result = transactionTemplate.execute(status -> { + + int rows = areaMapper.insertArea(area); + if (rows > 0) { + // 复制一份租赁协议到运营区内 + int copy = agreementService.copyTemplate(AgreementType.RENT, area.getId()); + ServiceUtil.assertion(copy != 1, "复制协议模板失败"); + } + + return rows; + }); + + return result == null ? 0 : result; } /** @@ -172,7 +195,7 @@ public class AreaServiceImpl implements AreaService } // 查询运营区内的禁行区 List noRidingList = areaSubService.selectNoRidingListByAreaId(areaId); - + return AreaUtil.getLocationArea(lon, lat, area, noRidingList); } diff --git a/ruoyi-service/src/main/java/com/ruoyi/bst/customerService/service/impl/CustomerServiceServiceImpl.java b/ruoyi-service/src/main/java/com/ruoyi/bst/customerService/service/impl/CustomerServiceServiceImpl.java index d78a1c2..2e30dab 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/bst/customerService/service/impl/CustomerServiceServiceImpl.java +++ b/ruoyi-service/src/main/java/com/ruoyi/bst/customerService/service/impl/CustomerServiceServiceImpl.java @@ -2,7 +2,6 @@ package com.ruoyi.bst.customerService.service.impl; import java.util.List; -import com.ruoyi.common.utils.ServiceUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -47,6 +46,7 @@ public class CustomerServiceServiceImpl implements CustomerServiceService CustomerServiceQuery query = new CustomerServiceQuery(); query.setId(id); query.setScope(scope); + query.addAreaPermission(AreaJoinPermission.CUSTOMER_SERVICE_VIEW.getCode()); return this.selectOne(query); } diff --git a/ruoyi-service/src/main/java/com/ruoyi/iot/service/impl/IotReceiveServiceImpl.java b/ruoyi-service/src/main/java/com/ruoyi/iot/service/impl/IotReceiveServiceImpl.java index 31f77cf..dc3ad35 100644 --- a/ruoyi-service/src/main/java/com/ruoyi/iot/service/impl/IotReceiveServiceImpl.java +++ b/ruoyi-service/src/main/java/com/ruoyi/iot/service/impl/IotReceiveServiceImpl.java @@ -85,6 +85,7 @@ public class IotReceiveServiceImpl implements IotReceiveService { } // 转为设备信息 + log.info("收到sys数据:" + msg.getValue()); IotDeviceSysInfo sys = IotUtil.toSysInfo(msg.getValue()); LocalDateTime at = DateUtils.toLocalDateTime(msg.getAt()); diff --git a/ruoyi-web/src/main/java/com/ruoyi/web/bst/AgreementController.java b/ruoyi-web/src/main/java/com/ruoyi/web/bst/AgreementController.java index db60576..f018cc8 100644 --- a/ruoyi-web/src/main/java/com/ruoyi/web/bst/AgreementController.java +++ b/ruoyi-web/src/main/java/com/ruoyi/web/bst/AgreementController.java @@ -4,8 +4,6 @@ import java.util.List; import javax.servlet.http.HttpServletResponse; -import com.ruoyi.bst.agreement.service.AgreementConverter; -import com.ruoyi.common.core.validate.ValidGroup; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; @@ -21,12 +19,14 @@ import org.springframework.web.bind.annotation.RestController; import com.ruoyi.bst.agreement.domain.Agreement; import com.ruoyi.bst.agreement.domain.AgreementQuery; import com.ruoyi.bst.agreement.domain.AgreementVO; +import com.ruoyi.bst.agreement.service.AgreementConverter; import com.ruoyi.bst.agreement.service.AgreementService; import com.ruoyi.bst.agreement.service.AgreementValidator; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.page.TableDataInfo; +import com.ruoyi.common.core.validate.ValidGroup; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.enums.LogBizType; import com.ruoyi.common.utils.poi.ExcelUtil; diff --git a/ruoyi-web/src/main/java/com/ruoyi/web/bst/CustomerServiceController.java b/ruoyi-web/src/main/java/com/ruoyi/web/bst/CustomerServiceController.java index 9911364..3a93c2d 100644 --- a/ruoyi-web/src/main/java/com/ruoyi/web/bst/CustomerServiceController.java +++ b/ruoyi-web/src/main/java/com/ruoyi/web/bst/CustomerServiceController.java @@ -17,6 +17,7 @@ import org.springframework.web.bind.annotation.RestController; import com.ruoyi.bst.area.service.AreaService; import com.ruoyi.bst.area.service.AreaValidator; +import com.ruoyi.bst.areaJoin.domain.enums.AreaJoinPermission; import com.ruoyi.bst.customerService.domain.CustomerService; import com.ruoyi.bst.customerService.domain.CustomerServiceQuery; import com.ruoyi.bst.customerService.domain.CustomerServiceVO; @@ -62,6 +63,7 @@ public class CustomerServiceController extends BaseController startPage(); startOrderBy(); query.setScope(true); + query.addAreaPermission(AreaJoinPermission.CUSTOMER_SERVICE_VIEW.getCode()); List list = customerServiceService.selectCustomerServiceList(query); return getDataTable(list); } @@ -75,6 +77,7 @@ public class CustomerServiceController extends BaseController public void export(HttpServletResponse response, CustomerServiceQuery query) { query.setScope(true); + query.addAreaPermission(AreaJoinPermission.CUSTOMER_SERVICE_VIEW.getCode()); List list = customerServiceService.selectCustomerServiceList(query); ExcelUtil util = new ExcelUtil(CustomerServiceVO.class); util.exportExcel(response, list, "客服数据");