Преглед на файлове

1、物业报修和工单生成

slowslo преди 4 години
родител
ревизия
c75a86d716
променени са 17 файла, в които са добавени 342 реда и са изтрити 195 реда
  1. 2 2
      blade-biz-common/src/main/java/org/springblade/common/constant/RequestUrlConstant.java
  2. 8 0
      blade-service-api/estate-api/src/main/java/org/springblade/estate/dto/RepairDTO.java
  3. 3 1
      blade-service-api/estate-api/src/main/java/org/springblade/estate/entity/Assets.java
  4. 111 103
      blade-service-api/estate-api/src/main/java/org/springblade/estate/entity/Repair.java
  5. 2 0
      blade-service-api/estate-api/src/main/java/org/springblade/estate/vo/RepairVO.java
  6. 19 8
      blade-service/estate/src/main/java/org/springblade/estate/controller/AssetsController.java
  7. 15 26
      blade-service/estate/src/main/java/org/springblade/estate/controller/RepairController.java
  8. 1 1
      blade-service/estate/src/main/java/org/springblade/estate/feign/RepairClient.java
  9. 30 30
      blade-service/estate/src/main/java/org/springblade/estate/mapper/RepairMapper.xml
  10. 5 0
      blade-service/estate/src/main/java/org/springblade/estate/service/IAssetsService.java
  11. 6 0
      blade-service/estate/src/main/java/org/springblade/estate/service/IRepairService.java
  12. 4 0
      blade-service/estate/src/main/java/org/springblade/estate/service/IWorkOrderService.java
  13. 16 0
      blade-service/estate/src/main/java/org/springblade/estate/service/impl/AssetsServiceImpl.java
  14. 66 16
      blade-service/estate/src/main/java/org/springblade/estate/service/impl/RepairServiceImpl.java
  15. 23 0
      blade-service/estate/src/main/java/org/springblade/estate/service/impl/WorkOrderServiceImpl.java
  16. 30 7
      blade-service/estate/src/main/java/org/springblade/estate/wrapper/RepairWrapper.java
  17. 1 1
      park-app-gateway/src/main/java/org/springblade/app/controller/DoorDeviceController.java

+ 2 - 2
blade-biz-common/src/main/java/org/springblade/common/constant/RequestUrlConstant.java

@@ -7,8 +7,8 @@ package org.springblade.common.constant;
  **/
 public interface RequestUrlConstant {
 
-	String baseUrl = "139.9.103.171:9527";
-//	String baseUrl = "192.168.1.69:9527";//原康
+//	String baseUrl = "139.9.103.171:9527";
+	String baseUrl = "192.168.1.69:9527";//原康
 //	String baseUrl = "192.168.1.128:9527";  //德希电脑
 
 	String AGENCY_BYAREACODE = "http://"+baseUrl+"/grid-community/agency/list";

+ 8 - 0
blade-service-api/estate-api/src/main/java/org/springblade/estate/dto/RepairDTO.java

@@ -38,4 +38,12 @@ public class RepairDTO extends Repair {
 	 */
 	private Page<Repair> page;
 
+	/**
+	 * 事件标签
+	 * 比如 报事,报事
+	 */
+	private String bizTag;
+
+	private String workOrderName;
+
 }

+ 3 - 1
blade-service-api/estate-api/src/main/java/org/springblade/estate/entity/Assets.java

@@ -18,6 +18,8 @@ package org.springblade.estate.entity;
 
 import com.baomidou.mybatisplus.annotation.TableName;
 import org.springblade.core.mp.base.BaseEntity;
+
+import java.math.BigDecimal;
 import java.time.LocalDate;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
@@ -52,7 +54,7 @@ public class Assets extends BaseEntity {
 	* 资产价值
 	*/
 		@ApiModelProperty(value = "资产价值")
-		private String assetsValue;
+		private BigDecimal assetsValue;
 	/**
 	* 资产分类
 	*/

+ 111 - 103
blade-service-api/estate-api/src/main/java/org/springblade/estate/entity/Repair.java

@@ -19,8 +19,6 @@ package org.springblade.estate.entity;
 import com.baomidou.mybatisplus.annotation.TableName;
 import org.springblade.core.mp.base.BaseEntity;
 import java.time.LocalDateTime;
-import java.util.Date;
-
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import io.swagger.annotations.ApiModel;
@@ -30,7 +28,7 @@ import io.swagger.annotations.ApiModelProperty;
  * 报事工单实体类
  *
  * @author BladeX
- * @since 2021-03-30
+ * @since 2022-01-12
  */
 @Data
 @TableName("estate_repair")
@@ -41,113 +39,123 @@ public class Repair extends BaseEntity {
 	private static final long serialVersionUID = 1L;
 
 	/**
-	* 工单编号
-	*/
-		@ApiModelProperty(value = "工单编号")
-		private String jobNo;
-	/**
-	* 上报人
-	*/
-		@ApiModelProperty(value = "上报人")
-		private String reportor;
-	/**
-	* 上报人电话
-	*/
-		@ApiModelProperty(value = "上报人电话")
-		private String reportPhone;
-	/**
-	* 上报时间
-	*/
-		@ApiModelProperty(value = "上报时间")
-		private Date reportTime;
-	/**
-	* 处理人
-	*/
-		@ApiModelProperty(value = "处理人")
-		private String handler;
-	/**
-	* 处理人电话
-	*/
-		@ApiModelProperty(value = "处理人电话")
-		private String handlerPhone;
-	/**
-	* 工单状态
-	*/
-		@ApiModelProperty(value = "工单状态")
-		private Integer jobStatus;
-	/**
-	* 小区id
-	*/
-		@ApiModelProperty(value = "小区id")
-		private Long residentialId;
-	/**
-	* 机构路径
-	*/
-		@ApiModelProperty(value = "机构路径")
-		private String orgPosition;
-	/**
-	* 报修位置
-	*/
-		@ApiModelProperty(value = "报修位置")
-		private String reportPosition;
-	/**
-	* 预约开始时间
-	*/
-		@ApiModelProperty(value = "预约开始时间")
-		private Date beginTime;
-	/**
-	* 预约结束时间
-	*/
-		@ApiModelProperty(value = "预约结束时间")
-		private Date endTime;
-	/**
-	* 0-未评价  1-已评价
-	*/
-		@ApiModelProperty(value = "0-未评价  1-已评价")
-		private Integer estimateStatus;
-	/**
-	* 用户对处理结果的评论
-	*/
-		@ApiModelProperty(value = "用户对处理结果的评论")
-		private String comment;
-	/**
-	* 处理时间
-	*/
-		@ApiModelProperty(value = "处理时间")
-		private Date handleTime;
-	/**
-	* 小区名称
-	*/
-		@ApiModelProperty(value = "小区名称")
-		private String residentialName;
-	/**
-	* 图片-多张图片用“,”切割
-	*/
-		@ApiModelProperty(value = "图片-多张图片用“,”切割")
-		private String pic;
-	/**
-	* 报修详情
-	*/
-		@ApiModelProperty(value = "报修详情")
-		private String reportDetail;
+	 * 报事报修编号
+	 */
+	@ApiModelProperty(value = "报事报修编号")
+	private String repairNo;
 
 	/**
-	 * 租户id
+	 * 报事报修名称
 	 */
-	@ApiModelProperty(value = "租户id")
-	private String tenantId;
-
+	@ApiModelProperty(value = "报事报修名称")
+	private String repairName;
 	/**
-	 * 会员id
+	 * 上报人
 	 */
-	@ApiModelProperty(value = "会员id")
-	private Long MemberId;
-
+	@ApiModelProperty(value = "上报人")
+	private String reportor;
+	/**
+	 * 上报人电话
+	 */
+	@ApiModelProperty(value = "上报人电话")
+	private String reportorPhone;
+	/**
+	 * 工单ID
+	 */
+	@ApiModelProperty(value = "工单ID")
+	private Long workOrderId;
+	/**
+	 * 是否生成工单,0:未生成,1:已生成
+	 */
+	@ApiModelProperty(value = "是否生成工单,0:未生成,1:已生成")
+	private Integer hasWorkOrder;
+	/**
+	 * 上报时间
+	 */
+	@ApiModelProperty(value = "上报时间")
+	private LocalDateTime reportTime;
+	/**
+	 * 报修详情
+	 */
+	@ApiModelProperty(value = "报修详情")
+	private String reportDetail;
+	/**
+	 * 报事来源,1:小程序,2:后台
+	 */
+	@ApiModelProperty(value = "报事来源,1:小程序,2:后台")
+	private Integer reportSource;
+	/**
+	 * 报事报修位置
+	 */
+	@ApiModelProperty(value = "报事报修位置")
+	private String reportPosition;
+	/**
+	 * 处理人
+	 */
+	@ApiModelProperty(value = "处理人")
+	private String handler;
+	/**
+	 * 处理人电话
+	 */
+	@ApiModelProperty(value = "处理人电话")
+	private String handlerPhone;
 	/**
-	 * 住户id
+	 * 处理状态
 	 */
-	@ApiModelProperty(value = "住户id")
-	private Long userId;
+	@ApiModelProperty(value = "处理状态")
+	private Integer handleStatus;
+	/**
+	 * 处理时间
+	 */
+	@ApiModelProperty(value = "处理时间")
+	private LocalDateTime handleTime;
+	/**
+	 * 预约开始时间
+	 */
+	@ApiModelProperty(value = "预约开始时间")
+	private LocalDateTime beginTime;
+	/**
+	 * 预约结束时间
+	 */
+	@ApiModelProperty(value = "预约结束时间")
+	private LocalDateTime endTime;
+	/**
+	 * 受理状态:0:等待受理,1:已受理,2:拒绝受理
+	 */
+	@ApiModelProperty(value = "受理状态:0:等待受理,1:已受理,2:拒绝受理")
+	private Integer acceptStatus;
+	/**
+	 * 受理原因
+	 */
+	@ApiModelProperty(value = "受理原因")
+	private String acceptReason;
+	/**
+	 * 0-未评价  1-已评价
+	 */
+	@ApiModelProperty(value = "0-未评价  1-已评价")
+	private Integer hasEstimate;
+	/**
+	 * 用户对处理结果的评论
+	 */
+	@ApiModelProperty(value = "用户对处理结果的评论")
+	private String comment;
+	/**
+	 * 图片-多张图片用“,”切割
+	 */
+	@ApiModelProperty(value = "图片-多张图片用“,”切割")
+	private String pic;
+	/**
+	 * 园区ID
+	 */
+	@ApiModelProperty(value = "园区ID")
+	private Long agencyId;
+	/**
+	 * 企业ID
+	 */
+	@ApiModelProperty(value = "企业ID")
+	private Long enterpriseId;
+
+	private String tenantId;
 
 
 }

+ 2 - 0
blade-service-api/estate-api/src/main/java/org/springblade/estate/vo/RepairVO.java

@@ -33,4 +33,6 @@ import io.swagger.annotations.ApiModel;
 public class RepairVO extends Repair {
 	private static final long serialVersionUID = 1L;
 
+	private String agencyName;
+
 }

+ 19 - 8
blade-service/estate/src/main/java/org/springblade/estate/controller/AssetsController.java

@@ -25,6 +25,7 @@ import javax.validation.Valid;
 
 import org.springblade.core.mp.support.Condition;
 import org.springblade.core.mp.support.Query;
+import org.springblade.core.secure.BladeUser;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.Func;
 import org.springframework.web.bind.annotation.*;
@@ -62,7 +63,7 @@ public class AssetsController extends BladeController {
 	}
 
 	/**
-	 * 分页 
+	 * 分页
 	 */
 	@GetMapping("/list")
 	@ApiOperationSupport(order = 2)
@@ -74,7 +75,7 @@ public class AssetsController extends BladeController {
 
 
 	/**
-	 * 自定义分页 
+	 * 自定义分页
 	 */
 	@GetMapping("/page")
 	@ApiOperationSupport(order = 3)
@@ -85,7 +86,7 @@ public class AssetsController extends BladeController {
 	}
 
 	/**
-	 * 新增 
+	 * 新增
 	 */
 	@PostMapping("/save")
 	@ApiOperationSupport(order = 4)
@@ -95,7 +96,7 @@ public class AssetsController extends BladeController {
 	}
 
 	/**
-	 * 修改 
+	 * 修改
 	 */
 	@PostMapping("/update")
 	@ApiOperationSupport(order = 5)
@@ -105,7 +106,7 @@ public class AssetsController extends BladeController {
 	}
 
 	/**
-	 * 新增或修改 
+	 * 新增或修改
 	 */
 	@PostMapping("/submit")
 	@ApiOperationSupport(order = 6)
@@ -114,9 +115,9 @@ public class AssetsController extends BladeController {
 		return R.status(assetsService.saveOrUpdate(assets));
 	}
 
-	
+
 	/**
-	 * 删除 
+	 * 删除
 	 */
 	@PostMapping("/remove")
 	@ApiOperationSupport(order = 7)
@@ -125,5 +126,15 @@ public class AssetsController extends BladeController {
 		return R.status(assetsService.deleteLogic(Func.toLongList(ids)));
 	}
 
-	
+	/**
+	 * 删除
+	 */
+	@PostMapping("/assetsStat")
+	@ApiOperationSupport(order = 8)
+	@ApiOperation(value = "资产统计")
+	public R assetsStat(@RequestParam(value = "beginDate", required = false) String beginDate, @RequestParam(value = "endDate", required = false) String endDate) {
+		return assetsService.assetsStat(beginDate, endDate);
+	}
+
+
 }

+ 15 - 26
blade-service/estate/src/main/java/org/springblade/estate/controller/RepairController.java

@@ -23,19 +23,14 @@ import io.swagger.annotations.ApiParam;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import lombok.AllArgsConstructor;
 import javax.validation.Valid;
-
-import org.springblade.common.utils.GenerateNum;
-import org.springblade.community.entity.Residential;
 import org.springblade.community.feign.IResidentialClient;
-import org.springblade.community.vo.ResidentialVO;
 import org.springblade.core.mp.support.Condition;
 import org.springblade.core.mp.support.Query;
 import org.springblade.core.secure.BladeUser;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.Func;
-import org.springblade.estate.feign.RepairClient;
+import org.springblade.estate.dto.RepairDTO;
 import org.springblade.system.expand.feign.IOrgPositionClient;
-import org.springblade.system.expand.util.QueryWrapperUtil;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.bind.annotation.RequestParam;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -44,12 +39,7 @@ import org.springblade.estate.vo.RepairVO;
 import org.springblade.estate.wrapper.RepairWrapper;
 import org.springblade.estate.service.IRepairService;
 import org.springblade.core.boot.ctrl.BladeController;
-
-import java.time.LocalDateTime;
-import java.time.ZoneId;
-import java.time.format.DateTimeFormatter;
 import java.util.Map;
-import java.util.concurrent.atomic.AtomicInteger;
 
 /**
  * 报事工单 控制器
@@ -64,8 +54,6 @@ import java.util.concurrent.atomic.AtomicInteger;
 public class RepairController extends BladeController {
 
 	private final IRepairService repairService;
-	private final IOrgPositionClient orgPositionClient;
-	private final IResidentialClient residentialClient;
 	/**
 	 * 详情
 	 */
@@ -84,8 +72,7 @@ public class RepairController extends BladeController {
 	@ApiOperationSupport(order = 2)
 	@ApiOperation(value = "分页", notes = "传入repair")
 	public R<IPage<RepairVO>> list(@RequestParam Map<String, Object> repair, Query query, BladeUser bladeUser) {
-		LambdaQueryWrapper<Repair> wrapper = new QueryWrapperUtil<Repair>().getBasicQueryWrapperByMap(Repair::getOrgPosition, repair, new Repair(), bladeUser, orgPositionClient);
-		IPage<Repair> pages = repairService.page(Condition.getPage(query), wrapper);
+		IPage<Repair> pages = repairService.page(Condition.getPage(query), new LambdaQueryWrapper<Repair>().orderByDesc(Repair::getReportTime).orderByAsc(Repair::getAcceptStatus));
 		return R.data(RepairWrapper.build().pageVO(pages));
 	}
 
@@ -127,17 +114,9 @@ public class RepairController extends BladeController {
 	@PostMapping("/submit")
 	@ApiOperationSupport(order = 6)
 	@ApiOperation(value = "新增或修改", notes = "传入repair")
-	public R submit(@Valid @RequestBody Repair repair) {
-		repair.setJobNo(GenerateNum.generateNum());
-		//设置报修的orgPosition和小区名称
-		if (repair.getResidentialId()!=null){
-			Residential residential = new Residential();
-			residential.setId(repair.getResidentialId());
-			ResidentialVO residentialVO = residentialClient.detail(residential);
-			repair.setOrgPosition(residentialVO.getOrgPosition());
-			repair.setResidentialName(residentialVO.getName());
-		}
-		return R.status(repairService.saveOrUpdate(repair));
+	public R submit(@Valid @RequestBody RepairDTO repairDTO) {
+		repairDTO.setReportSource(2);
+		return this.repairService.repairSubmit(repairDTO);
 	}
 
 
@@ -151,5 +130,15 @@ public class RepairController extends BladeController {
 		return R.status(repairService.deleteLogic(Func.toLongList(ids)));
 	}
 
+	/**
+	 * 生成报修报事工单
+	 */
+	@PostMapping("/generateWorkOrder")
+	@ApiOperationSupport(order = 8)
+	@ApiOperation(value = "生成报修报事工单")
+	public R generateWorkOrder(@RequestBody RepairDTO repairDTO) {
+		return repairService.generateWorkOrder(repairDTO);
+	}
+
 
 }

+ 1 - 1
blade-service/estate/src/main/java/org/springblade/estate/feign/RepairClient.java

@@ -82,7 +82,7 @@ public class RepairClient implements IRepairClient {
     @Override
     @PostMapping("/submit")
     public boolean submit(@Valid @RequestBody Repair repair) {
-		repair.setJobNo(GenerateNum.generateNum());
+		repair.setRepairNo(GenerateNum.generateNum());
         return repairService.saveOrUpdate(repair);
         }
 

+ 30 - 30
blade-service/estate/src/main/java/org/springblade/estate/mapper/RepairMapper.xml

@@ -4,36 +4,36 @@
 
     <!-- 通用查询映射结果 -->
     <resultMap id="repairResultMap" type="org.springblade.estate.entity.Repair">
-        <result column="id" property="id"/>
-        <result column="create_user" property="createUser"/>
-        <result column="create_dept" property="createDept"/>
-        <result column="create_time" property="createTime"/>
-        <result column="update_user" property="updateUser"/>
-        <result column="update_time" property="updateTime"/>
-        <result column="status" property="status"/>
-        <result column="is_deleted" property="isDeleted"/>
-        <result column="job_no" property="jobNo"/>
-        <result column="reportor" property="reportor"/>
-        <result column="report_phone" property="reportPhone"/>
-        <result column="report_time" property="reportTime"/>
-        <result column="handler" property="handler"/>
-        <result column="handler_phone" property="handlerPhone"/>
-        <result column="job_status" property="jobStatus"/>
-        <result column="agency_id" property="agencyId"/>
-        <result column="residential_id" property="residentialId"/>
-        <result column="enterprise_id" property="enterpriseId"/>
-        <result column="report_position" property="reportPosition"/>
-        <result column="begin_time" property="beginTime"/>
-        <result column="end_time" property="endTime"/>
-        <result column="estimate_status" property="estimateStatus"/>
-        <result column="comment" property="comment"/>
-        <result column="handle_time" property="handleTime"/>
-        <result column="residential_name" property="residentialName"/>
-        <result column="pic" property="pic"/>
-        <result column="report_detail" property="reportDetail"/>
-        <result column="tenant_id" property="tenantId"/>
-        <result column="member_id" property="memberId"/>
-        <result column="user_id" property="userId"/>
+        <result property="id" column="id"/>
+        <result property="createUser" column="create_user"/>
+        <result property="createDept" column="create_dept"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateUser" column="update_user"/>
+        <result property="updateTime" column="update_time"/>
+        <result property="status" column="status"/>
+        <result property="isDeleted" column="is_deleted"/>
+        <result property="repairNo" column="repair_no"/>
+        <result property="reportor" column="reportor"/>
+        <result property="reportorPhone" column="report_phone"/>
+        <result property="workOrderId" column="work_order_id"/>
+        <result property="hasWorkOrder" column="has_work_order"/>
+        <result property="reportTime" column="report_time"/>
+        <result property="reportDetail" column="report_detail"/>
+        <result property="reportSource" column="report_source"/>
+        <result property="reportPosition" column="report_position"/>
+        <result property="handler" column="handler"/>
+        <result property="handlerPhone" column="handler_phone"/>
+        <result property="handleStatus" column="handle_status"/>
+        <result property="handleTime" column="handle_time"/>
+        <result property="beginTime" column="begin_time"/>
+        <result property="endTime" column="end_time"/>
+        <result property="acceptStatus" column="accept_status"/>
+        <result property="acceptReason" column="accept_reason"/>
+        <result property="hasEstimate" column="has_estimate"/>
+        <result property="comment" column="comment"/>
+        <result property="pic" column="pic"/>
+        <result property="agencyId" column="agency_id"/>
+        <result property="enterpriseId" column="enterprise_id"/>
     </resultMap>
 
 

+ 5 - 0
blade-service/estate/src/main/java/org/springblade/estate/service/IAssetsService.java

@@ -16,11 +16,14 @@
  */
 package org.springblade.estate.service;
 
+import org.springblade.core.tool.api.R;
 import org.springblade.estate.entity.Assets;
 import org.springblade.estate.vo.AssetsVO;
 import org.springblade.core.mp.base.BaseService;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 
+import java.math.BigDecimal;
+
 /**
  *  服务类
  *
@@ -38,4 +41,6 @@ public interface IAssetsService extends BaseService<Assets> {
 	 */
 	IPage<AssetsVO> selectAssetsPage(IPage<AssetsVO> page, AssetsVO assets);
 
+	R<BigDecimal> assetsStat(String beginDate, String endDate);
+
 }

+ 6 - 0
blade-service/estate/src/main/java/org/springblade/estate/service/IRepairService.java

@@ -16,6 +16,8 @@
  */
 package org.springblade.estate.service;
 
+import org.springblade.core.tool.api.R;
+import org.springblade.estate.dto.RepairDTO;
 import org.springblade.estate.entity.Repair;
 import org.springblade.estate.vo.RepairVO;
 import org.springblade.core.mp.base.BaseService;
@@ -38,4 +40,8 @@ public interface IRepairService extends BaseService<Repair> {
 	 */
 	IPage<RepairVO> selectRepairPage(IPage<RepairVO> page, RepairVO repair);
 
+	R repairSubmit(RepairDTO repairDTO);
+
+	R generateWorkOrder(RepairDTO repairDTO);
+
 }

+ 4 - 0
blade-service/estate/src/main/java/org/springblade/estate/service/IWorkOrderService.java

@@ -16,6 +16,7 @@
  */
 package org.springblade.estate.service;
 
+import org.springblade.core.tool.api.R;
 import org.springblade.estate.entity.WorkOrder;
 import org.springblade.estate.vo.WorkOrderVO;
 import org.springblade.core.mp.base.BaseService;
@@ -38,4 +39,7 @@ public interface IWorkOrderService extends BaseService<WorkOrder> {
 	 */
 	IPage<WorkOrderVO> selectWorkOrderPage(IPage<WorkOrderVO> page, WorkOrderVO workOrder);
 
+	R<WorkOrder> generateWorkOrder(String orderName, Integer eventType, String eventDesc, String bizTag,
+						String handler, String handlerPhone, String img, String contact, String contactPhone);
+
 }

+ 16 - 0
blade-service/estate/src/main/java/org/springblade/estate/service/impl/AssetsServiceImpl.java

@@ -16,6 +16,9 @@
  */
 package org.springblade.estate.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.StringUtil;
 import org.springblade.estate.entity.Assets;
 import org.springblade.estate.vo.AssetsVO;
 import org.springblade.estate.mapper.AssetsMapper;
@@ -24,6 +27,9 @@ import org.springblade.core.mp.base.BaseServiceImpl;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 
+import java.math.BigDecimal;
+import java.util.List;
+
 /**
  *  服务实现类
  *
@@ -38,4 +44,14 @@ public class AssetsServiceImpl extends BaseServiceImpl<AssetsMapper, Assets> imp
 		return page.setRecords(baseMapper.selectAssetsPage(page, assets));
 	}
 
+	@Override
+	public R<BigDecimal> assetsStat(String beginDate, String endDate) {
+		LambdaQueryWrapper<Assets> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+		lambdaQueryWrapper.ge(StringUtil.isNotBlank(beginDate), Assets::getAssetsRecordTime, beginDate);
+		lambdaQueryWrapper.le(StringUtil.isNotBlank(endDate), Assets::getAssetsRecordTime, endDate);
+		List<Assets> list = this.list(lambdaQueryWrapper);
+		BigDecimal stat = list.stream().map(Assets::getAssetsValue).reduce(BigDecimal.ZERO, BigDecimal::add);
+		return R.data(stat);
+	}
+
 }

+ 66 - 16
blade-service/estate/src/main/java/org/springblade/estate/service/impl/RepairServiceImpl.java

@@ -1,29 +1,28 @@
-/*
- *      Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
- *
- *  Redistribution and use in source and binary forms, with or without
- *  modification, are permitted provided that the following conditions are met:
- *
- *  Redistributions of source code must retain the above copyright notice,
- *  this list of conditions and the following disclaimer.
- *  Redistributions in binary form must reproduce the above copyright
- *  notice, this list of conditions and the following disclaimer in the
- *  documentation and/or other materials provided with the distribution.
- *  Neither the name of the dreamlu.net developer nor the names of its
- *  contributors may be used to endorse or promote products derived from
- *  this software without specific prior written permission.
- *  Author: Chill 庄骞 (smallchill@163.com)
- */
 package org.springblade.estate.service.impl;
 
+import org.springblade.common.constant.CommonConstant;
+import org.springblade.common.utils.GenerateNum;
+import org.springblade.community.entity.Agency;
+import org.springblade.community.feign.IAgencyClient;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.Func;
+import org.springblade.core.tool.utils.StringUtil;
+import org.springblade.estate.dto.RepairDTO;
 import org.springblade.estate.entity.Repair;
+import org.springblade.estate.entity.WorkOrder;
+import org.springblade.estate.service.IWorkOrderService;
 import org.springblade.estate.vo.RepairVO;
 import org.springblade.estate.mapper.RepairMapper;
 import org.springblade.estate.service.IRepairService;
 import org.springblade.core.mp.base.BaseServiceImpl;
+import org.springblade.system.expand.feign.IConfClient;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 
+import java.util.ArrayList;
+import java.util.List;
+
 /**
  * 报事工单 服务实现类
  *
@@ -33,9 +32,60 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 @Service
 public class RepairServiceImpl extends BaseServiceImpl<RepairMapper, Repair> implements IRepairService {
 
+	@Autowired
+	private IAgencyClient agencyClient;
+	@Autowired
+	private IConfClient confClient;
+	@Autowired
+	private IWorkOrderService workOrderService;
+
 	@Override
 	public IPage<RepairVO> selectRepairPage(IPage<RepairVO> page, RepairVO repair) {
 		return page.setRecords(baseMapper.selectRepairPage(page, repair));
 	}
 
+	@Override
+	public R repairSubmit(RepairDTO repairDTO) {
+		Long agencyId = repairDTO.getAgencyId();
+		Agency agency = agencyClient.getById(agencyId);
+		repairDTO.setTenantId(agency.getTenantId());
+		repairDTO.setRepairNo(GenerateNum.generateNum());
+		if(StringUtil.isNotBlank(repairDTO.getPic())){
+			List<String> picList = Func.toStrList(repairDTO.getPic());
+			List<String> picPathList = new ArrayList<>();
+			for(String pic : picList){
+				picPathList.add(confClient.removePrefix(pic));
+			}
+			repairDTO.setPic(Func.join(picPathList, ","));
+		}
+		return R.status(this.saveOrUpdate(repairDTO));
+	}
+
+	@Override
+	public R generateWorkOrder(RepairDTO repairDTO) {
+		Repair repair = this.getById(repairDTO.getId());
+		if(repair == null){
+			return R.fail("事件不存在");
+		}
+		if(repair.getHasWorkOrder() == 1){
+			return R.fail("工单已生成,请勿重复");
+		}
+		R<WorkOrder> result = this.workOrderService.generateWorkOrder(repairDTO.getWorkOrderName(), 2,
+			repair.getReportDetail(), repairDTO.getBizTag(), repairDTO.getHandler(), repairDTO.getHandlerPhone(),
+			repair.getPic(), repair.getReportor(), repair.getReportorPhone());
+		if(result.isSuccess()){
+			repair.setHandler(repairDTO.getHandler());
+			repair.setHandlerPhone(repairDTO.getHandlerPhone());
+			repair.setHandleTime(repairDTO.getHandleTime());
+			repair.setAcceptStatus(1);
+			repair.setAcceptReason("已受理");
+			repair.setHasWorkOrder(1);
+			repair.setWorkOrderId(result.getData().getId());
+			return R.status(this.updateById(repairDTO));
+		}else{
+			return R.fail("工单生成失败");
+		}
+
+	}
+
 }

+ 23 - 0
blade-service/estate/src/main/java/org/springblade/estate/service/impl/WorkOrderServiceImpl.java

@@ -16,6 +16,8 @@
  */
 package org.springblade.estate.service.impl;
 
+import org.springblade.common.utils.GenerateNum;
+import org.springblade.core.tool.api.R;
 import org.springblade.estate.entity.WorkOrder;
 import org.springblade.estate.vo.WorkOrderVO;
 import org.springblade.estate.mapper.WorkOrderMapper;
@@ -38,4 +40,25 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
 		return page.setRecords(baseMapper.selectWorkOrderPage(page, workOrder));
 	}
 
+	@Override
+	public R<WorkOrder> generateWorkOrder(String orderName, Integer eventType, String eventDesc, String bizTag, String handler, String handlerPhone, String img, String contact, String contactPhone) {
+		WorkOrder workOrder = new WorkOrder();
+		workOrder.setOrderNo("RE" + GenerateNum.generateNum());
+		workOrder.setImg(img);
+		workOrder.setBizTag(bizTag);
+		workOrder.setContact(contact);
+		workOrder.setContactPhone(contactPhone);
+		workOrder.setHandler(handler);
+		workOrder.setHandlerPhone(handlerPhone);
+		workOrder.setOrderName(orderName);
+		workOrder.setEventType(eventType);
+		workOrder.setEventDesc(eventDesc);
+		boolean save = this.save(workOrder);
+		if(save){
+			return R.data(workOrder);
+		}else{
+			return R.status(false);
+		}
+	}
+
 }

+ 30 - 7
blade-service/estate/src/main/java/org/springblade/estate/wrapper/RepairWrapper.java

@@ -16,10 +16,19 @@
  */
 package org.springblade.estate.wrapper;
 
+import org.springblade.community.entity.Agency;
+import org.springblade.community.feign.IAgencyClient;
 import org.springblade.core.mp.support.BaseEntityWrapper;
 import org.springblade.core.tool.utils.BeanUtil;
+import org.springblade.core.tool.utils.Func;
+import org.springblade.core.tool.utils.SpringUtil;
+import org.springblade.core.tool.utils.StringUtil;
 import org.springblade.estate.entity.Repair;
 import org.springblade.estate.vo.RepairVO;
+import org.springblade.system.expand.feign.IConfClient;
+
+import java.util.ArrayList;
+import java.util.List;
 import java.util.Objects;
 
 /**
@@ -28,21 +37,35 @@ import java.util.Objects;
  * @author BladeX
  * @since 2021-03-30
  */
-public class RepairWrapper extends BaseEntityWrapper<Repair, RepairVO>  {
+public class RepairWrapper extends BaseEntityWrapper<Repair, RepairVO> {
+
+	private static IConfClient confClient;
+	private static IAgencyClient agencyClient;
 
 	public static RepairWrapper build() {
 		return new RepairWrapper();
  	}
 
+ 	static {
+		confClient = SpringUtil.getBean(IConfClient.class);
+		agencyClient = SpringUtil.getBean(IAgencyClient.class);
+	}
+
 	@Override
 	public RepairVO entityVO(Repair repair) {
 		RepairVO repairVO = Objects.requireNonNull(BeanUtil.copy(repair, RepairVO.class));
-
-		//User createUser = UserCache.getUser(repair.getCreateUser());
-		//User updateUser = UserCache.getUser(repair.getUpdateUser());
-		//repairVO.setCreateUserName(createUser.getName());
-		//repairVO.setUpdateUserName(updateUser.getName());
-
+		if(StringUtil.isNotBlank(repair.getPic())){
+			List<String> picPathList = Func.toStrList(repair.getPic());
+			List<String> picList = new ArrayList<>();
+			for(String pic : picPathList){
+				picList.add(confClient.addPrefix(pic));
+			}
+			repairVO.setPic(Func.join(picList, ","));
+		}
+		Agency agency = agencyClient.getById(repair.getAgencyId());
+		if(agency != null){
+			repairVO.setAgencyName(agency.getName());
+		}
 		return repairVO;
 	}
 

+ 1 - 1
park-app-gateway/src/main/java/org/springblade/app/controller/DoorDeviceController.java

@@ -47,7 +47,7 @@ public class DoorDeviceController {
 							@RequestParam(value = "userId", required = true)String userId,
 							@RequestParam(value = "userType", required = true) Integer userType){
 
-		DoorDevice doorDevice = doorDeviceClient.getByMacAddresses(macAddress);
+		DoorDevice doorDevice = doorDeviceClient.getBySerialNum(macAddress);
 		Assert.notNull(doorDevice, "设备不存在");
 		String deviceUserId = null;
 		String userName = null;