Merge remote-tracking branch 'origin/master'
This commit is contained in:
commit
e47a13c214
@ -25,6 +25,11 @@ public class RemoteUserVo implements Serializable {
|
||||
*/
|
||||
private Long userId;
|
||||
|
||||
/**
|
||||
* 租户ID
|
||||
*/
|
||||
private String tenantId;
|
||||
|
||||
/**
|
||||
* 部门ID
|
||||
*/
|
||||
|
@ -1,5 +1,6 @@
|
||||
package org.dromara.property.controller;
|
||||
|
||||
import java.time.Duration;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
|
||||
@ -11,6 +12,7 @@ import jakarta.servlet.http.HttpServletResponse;
|
||||
import jakarta.validation.constraints.*;
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import org.apache.dubbo.config.annotation.DubboReference;
|
||||
import org.dromara.common.core.constant.GlobalConstants;
|
||||
import org.dromara.common.redis.utils.RedisUtils;
|
||||
import org.dromara.property.domain.bo.QrCodeInfo;
|
||||
import org.dromara.resource.api.RemoteMessageService;
|
||||
@ -77,8 +79,7 @@ public class TbVisitorManagementController extends BaseController {
|
||||
String s = remoteConfigService.selectQrTimeOut();
|
||||
int i = Integer.parseInt(s);
|
||||
UUID value = UUID.randomUUID();
|
||||
RedisUtils.setCacheObject("Qrcode"+value, qrCodeInfo);
|
||||
RedisUtils.expire("Qrcode", i);
|
||||
RedisUtils.setCacheObject(GlobalConstants.CAPTCHA_CODE_KEY+"Qrcode"+value, qrCodeInfo, Duration.ofSeconds(i));
|
||||
return R.ok(value.toString());
|
||||
}
|
||||
|
||||
@ -87,9 +88,9 @@ public class TbVisitorManagementController extends BaseController {
|
||||
* @param qrcode
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("/useqr")
|
||||
@GetMapping("/useqr")
|
||||
public R<String> useqr(String qrcode) {
|
||||
QrCodeInfo qrCodeInfo = RedisUtils.getCacheObject("Qrcode" + qrcode);
|
||||
QrCodeInfo qrCodeInfo = RedisUtils.getCacheObject(GlobalConstants.CAPTCHA_CODE_KEY +"Qrcode" + qrcode);
|
||||
if (qrCodeInfo==null) {
|
||||
return R.fail("二维码已过期");
|
||||
}
|
||||
@ -127,12 +128,12 @@ public class TbVisitorManagementController extends BaseController {
|
||||
/**
|
||||
* 小程序新增访客管理
|
||||
*/
|
||||
@SaCheckPermission("property:visitorManagement:add")
|
||||
// @SaCheckPermission("property:visitorManagement:add")
|
||||
@Log(title = "访客管理", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping("/add")
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody TbVisitorManagementBo bo) {
|
||||
QrCodeInfo info = RedisUtils.getCacheObject("Qrcode" + bo.getQrCodeId());
|
||||
QrCodeInfo info = RedisUtils.getCacheObject(GlobalConstants.CAPTCHA_CODE_KEY +"Qrcode" + bo.getQrCodeId());
|
||||
if (info==null){
|
||||
return R.fail("请确认Qr码有效");
|
||||
}
|
||||
|
@ -0,0 +1,41 @@
|
||||
package org.dromara.property.controller.mobile;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.common.core.domain.R;
|
||||
import org.dromara.common.core.validate.AddGroup;
|
||||
import org.dromara.common.idempotent.annotation.RepeatSubmit;
|
||||
import org.dromara.common.log.annotation.Log;
|
||||
import org.dromara.common.log.enums.BusinessType;
|
||||
import org.dromara.common.web.core.BaseController;
|
||||
import org.dromara.property.domain.bo.mobile.MServiceWorkOrdersBo;
|
||||
import org.dromara.property.service.IServiceWorkOrdersService;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
/**
|
||||
* 【业务管理-工单处理】
|
||||
*
|
||||
* @author mocheng
|
||||
* @date 2025-07-07
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/mobile/workOrders")
|
||||
public class MServiceWorkOrdersController extends BaseController {
|
||||
|
||||
private final IServiceWorkOrdersService serviceWorkOrdersService;
|
||||
|
||||
/**
|
||||
* 小程序新增【工单处理】
|
||||
*/
|
||||
@Log(title = "【小程序新增工单处理】", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody MServiceWorkOrdersBo bo) {
|
||||
return toAjax(serviceWorkOrdersService.insertMServiceWorkOrdersBo(bo));
|
||||
}
|
||||
}
|
@ -101,6 +101,10 @@ public class ServiceWorkOrdersBo extends BaseEntity {
|
||||
* 图片
|
||||
*/
|
||||
private String imgUrl;
|
||||
/**
|
||||
* 工单图片
|
||||
*/
|
||||
private String orderImgUrl;
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
|
@ -26,7 +26,7 @@ public class TbVisitorManagementBo extends BaseEntity {
|
||||
* qr码id
|
||||
*/
|
||||
// @NotNull(message = "qr码id不能为空", groups = { AddGroup.class, EditGroup.class })
|
||||
private Long qrCodeId;
|
||||
private String qrCodeId;
|
||||
|
||||
/**
|
||||
* id
|
||||
|
@ -0,0 +1,113 @@
|
||||
package org.dromara.property.domain.bo.mobile;
|
||||
|
||||
|
||||
import cn.idev.excel.annotation.ExcelProperty;
|
||||
import io.github.linpeilie.annotations.AutoMapper;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import org.dromara.common.core.validate.EditGroup;
|
||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||
import org.dromara.property.domain.ServiceWorkOrders;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 【工单处理】业务对象 小程序端新增工单
|
||||
*
|
||||
* @author mocheng
|
||||
* @date 2025-07-07
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@AutoMapper(target = ServiceWorkOrders.class, reverseConvertGenerate = false)
|
||||
public class MServiceWorkOrdersBo extends BaseEntity {
|
||||
|
||||
/**
|
||||
* id
|
||||
*/
|
||||
@NotNull(message = "id不能为空", groups = { EditGroup.class })
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 工单编号
|
||||
*/
|
||||
private String orderNo;
|
||||
|
||||
/**
|
||||
* 权重
|
||||
*/
|
||||
@ExcelProperty(value = "权重")
|
||||
private String processingWeight;
|
||||
/**
|
||||
* 工单类型
|
||||
*/
|
||||
@NotNull(message = "工单类型不能为空", groups = { EditGroup.class })
|
||||
private Long type;
|
||||
|
||||
/**
|
||||
* 状态
|
||||
*/
|
||||
private String status;
|
||||
|
||||
/**
|
||||
* 派单时间
|
||||
*/
|
||||
private Date dispatchTime;
|
||||
|
||||
/**
|
||||
* 发起人姓名
|
||||
*/
|
||||
private String initiatorName;
|
||||
|
||||
|
||||
/**
|
||||
* 处理人姓名
|
||||
*/
|
||||
private Long handler;
|
||||
|
||||
/**
|
||||
* 地址
|
||||
*/
|
||||
@NotNull(message = "地址不能为空", groups = { EditGroup.class })
|
||||
|
||||
private String location;
|
||||
|
||||
/**
|
||||
* 计划完成时间
|
||||
*/
|
||||
//@NotNull(message = "计划完成时间不能为空", groups = { EditGroup.class })
|
||||
private Date planCompleTime;
|
||||
|
||||
/**
|
||||
* 完成时间
|
||||
*/
|
||||
private Date compleTime;
|
||||
|
||||
/**
|
||||
* 评价
|
||||
*/
|
||||
private Integer serviceEvalua;
|
||||
/**
|
||||
* 评价文本
|
||||
*/
|
||||
private String serviceEvaluaText;
|
||||
/**
|
||||
* 图片
|
||||
*/
|
||||
private String imgUrl;
|
||||
/**
|
||||
* 工单图片
|
||||
*/
|
||||
private String orderImgUrl;
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 是否超时
|
||||
*/
|
||||
private String isTimeOut;
|
||||
|
||||
}
|
@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.property.domain.bo.ServiceWorkOrdersBo;
|
||||
import org.dromara.property.domain.bo.mobile.MServiceWorkOrdersBo;
|
||||
import org.dromara.property.domain.vo.ServiceWorkOrderAnalysisVo;
|
||||
import org.dromara.property.domain.vo.ServiceWorkOrdersInfoVo;
|
||||
import org.dromara.property.domain.vo.ServiceWorkOrdersVo;
|
||||
@ -75,4 +76,15 @@ public interface IServiceWorkOrdersService {
|
||||
*/
|
||||
ServiceWorkOrderAnalysisVo counts();
|
||||
|
||||
|
||||
|
||||
//小程序端新增
|
||||
|
||||
/**
|
||||
* 新增工单
|
||||
* @param bo
|
||||
* @return
|
||||
*/
|
||||
Boolean insertMServiceWorkOrdersBo(MServiceWorkOrdersBo bo);
|
||||
|
||||
}
|
||||
|
@ -22,6 +22,7 @@ import org.dromara.property.domain.ServiceWorkOrders;
|
||||
import org.dromara.property.domain.ServiceWorkOrdersRecord;
|
||||
import org.dromara.property.domain.ServiceWorkOrdersType;
|
||||
import org.dromara.property.domain.bo.ServiceWorkOrdersBo;
|
||||
import org.dromara.property.domain.bo.mobile.MServiceWorkOrdersBo;
|
||||
import org.dromara.property.domain.vo.*;
|
||||
import org.dromara.property.mapper.ResidentPersonMapper;
|
||||
import org.dromara.property.mapper.ServiceWorkOrdersMapper;
|
||||
@ -495,4 +496,28 @@ public class ServiceWorkOrdersServiceImpl implements IServiceWorkOrdersService {
|
||||
.map(month -> new ServiceWorkOrderAnalysisVo.BarChartVo(month, Math.toIntExact(orderCountMap.getOrDefault(month, 0L))))
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
//小程序端新增
|
||||
@Override
|
||||
public Boolean insertMServiceWorkOrdersBo(MServiceWorkOrdersBo bo) {
|
||||
ServiceWorkOrders add = MapstructUtils.convert(bo, ServiceWorkOrders.class);
|
||||
LoginUser user = LoginHelper.getLoginUser();
|
||||
add.setOrderNo("GD" + IdUtil.getSnowflakeNextIdStr());
|
||||
add.setStatus("0");
|
||||
add.setInitiatorPeople(user.getNickname());
|
||||
validEntityBeforeSave(add);
|
||||
boolean flag = baseMapper.insert(add) > 0;
|
||||
if (flag) {
|
||||
bo.setId(add.getId());
|
||||
ServiceWorkOrdersRecord serviceWorkOrdersRecord = new ServiceWorkOrdersRecord();
|
||||
serviceWorkOrdersRecord.setOrderId(add.getId());
|
||||
serviceWorkOrdersRecord.setStatus(add.getStatus());
|
||||
workOrdersRecordMapper.insert(serviceWorkOrdersRecord);
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
package org.dromara.property.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import org.dromara.common.core.constant.GlobalConstants;
|
||||
import org.dromara.common.core.utils.MapstructUtils;
|
||||
import org.dromara.common.core.utils.StringUtils;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
@ -12,6 +13,8 @@ import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.dromara.common.redis.utils.RedisUtils;
|
||||
import org.dromara.property.domain.bo.QrCodeInfo;
|
||||
import org.dromara.system.api.RemoteUserService;
|
||||
import org.dromara.system.api.domain.vo.RemoteUserVo;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.dromara.property.domain.bo.TbVisitorManagementBo;
|
||||
import org.dromara.property.domain.vo.TbVisitorManagementVo;
|
||||
@ -35,6 +38,7 @@ import java.util.Collection;
|
||||
public class TbVisitorManagementServiceImpl implements ITbVisitorManagementService {
|
||||
|
||||
private final TbVisitorManagementMapper baseMapper;
|
||||
private final RemoteUserService remoteUserService;
|
||||
|
||||
/**
|
||||
* 查询访客管理
|
||||
@ -100,10 +104,16 @@ public class TbVisitorManagementServiceImpl implements ITbVisitorManagementServi
|
||||
*/
|
||||
@Override
|
||||
public Boolean insertByBo(TbVisitorManagementBo bo) {
|
||||
QrCodeInfo info = RedisUtils.getCacheObject("Qrcode" + bo.getQrCodeId());
|
||||
QrCodeInfo info = RedisUtils.getCacheObject(GlobalConstants.CAPTCHA_CODE_KEY +"Qrcode" + bo.getQrCodeId());
|
||||
TbVisitorManagement add = MapstructUtils.convert(bo, TbVisitorManagement.class);
|
||||
validEntityBeforeSave(add);
|
||||
add.setCreateById(info.getUserid());
|
||||
RemoteUserVo userInfoById = remoteUserService.getUserInfoById(info.getUserid());
|
||||
add.setTenantId(userInfoById.getTenantId());
|
||||
add.setCreateBy(userInfoById.getUserId());
|
||||
add.setUpdateById(userInfoById.getUserId());
|
||||
add.setUpdateBy(userInfoById.getUserId());
|
||||
add.setCreateDept(userInfoById.getDeptId());
|
||||
boolean flag = baseMapper.insert(add) > 0;
|
||||
if (flag) {
|
||||
bo.setId(add.getId());
|
||||
|
@ -88,7 +88,7 @@ public class SysOssController extends BaseController {
|
||||
*
|
||||
* @param file 文件
|
||||
*/
|
||||
@SaCheckPermission("system:oss:upload")
|
||||
// @SaCheckPermission("system:oss:upload")
|
||||
@Log(title = "OSS对象存储", businessType = BusinessType.INSERT)
|
||||
@PostMapping(value = "/qrupload", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
|
||||
public R<SysOssUploadVo> codeUpload(@RequestPart("file") MultipartFile file,String code) {
|
||||
|
@ -40,9 +40,9 @@ spring.sql.init.platform=mysql
|
||||
db.num=1
|
||||
|
||||
### Connect URL of DB:
|
||||
db.url.0=jdbc:mysql://47.109.37.87:23306/ry-config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true
|
||||
db.url.0=jdbc:mysql://127.0.0.1:3306/ry-config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true
|
||||
db.user.0=root
|
||||
db.password.0=admin@123456
|
||||
db.password.0=By@2025!
|
||||
|
||||
### the maximum retry times for push
|
||||
nacos.config.push.maxRetryTime=50
|
||||
|
10473
script/sql/ry-cloud.sql
10473
script/sql/ry-cloud.sql
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue
Block a user