|
|
|
@ -9,9 +9,17 @@ import java.util.HashMap;
|
|
|
|
|
|
|
|
|
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
|
|
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
|
|
|
|
|
import com.zbkj.common.model.system.SysDept;
|
|
|
|
import com.zbkj.common.request.PageParamRequest;
|
|
|
|
import com.zbkj.common.request.PageParamRequest;
|
|
|
|
import com.zbkj.common.response.CommonResult;
|
|
|
|
import com.zbkj.common.response.CommonResult;
|
|
|
|
import com.zbkj.common.page.CommonPage;
|
|
|
|
import com.zbkj.common.page.CommonPage;
|
|
|
|
|
|
|
|
import com.zbkj.common.utils.SecurityUtil;
|
|
|
|
|
|
|
|
import com.zbkj.common.vo.LoginUserVo;
|
|
|
|
|
|
|
|
import com.zbkj.service.service.SysDeptService;
|
|
|
|
|
|
|
|
import com.zbkj.service.service.SystemAdminService;
|
|
|
|
|
|
|
|
import com.zbkj.service.service.UserService;
|
|
|
|
|
|
|
|
import com.zbkj.common.model.user.User;
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
import org.springframework.validation.annotation.Validated;
|
|
|
|
import org.springframework.validation.annotation.Validated;
|
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
|
@ -34,6 +42,12 @@ import com.zbkj.modules.autogencode.entity.PmHouse;
|
|
|
|
import com.zbkj.modules.autogencode.service.PmHouseService;
|
|
|
|
import com.zbkj.modules.autogencode.service.PmHouseService;
|
|
|
|
import com.zbkj.modules.autogencode.entity.PmTenant;
|
|
|
|
import com.zbkj.modules.autogencode.entity.PmTenant;
|
|
|
|
import com.zbkj.modules.autogencode.service.PmTenantService;
|
|
|
|
import com.zbkj.modules.autogencode.service.PmTenantService;
|
|
|
|
|
|
|
|
import com.zbkj.modules.autogencode.entity.PmOwnerHouseRel;
|
|
|
|
|
|
|
|
import com.zbkj.modules.autogencode.service.PmOwnerHouseRelService;
|
|
|
|
|
|
|
|
import com.zbkj.modules.autogencode.entity.PmTenantHouse;
|
|
|
|
|
|
|
|
import com.zbkj.modules.autogencode.service.PmTenantHouseService;
|
|
|
|
|
|
|
|
import com.zbkj.modules.autogencode.entity.PmTenantHouseRel;
|
|
|
|
|
|
|
|
import com.zbkj.modules.autogencode.service.PmTenantHouseRelService;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -61,7 +75,16 @@ public class PmMaintenanceOrderController {
|
|
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
@Autowired
|
|
|
|
private PmTenantService pmTenantService;
|
|
|
|
private PmTenantService pmTenantService;
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
|
|
|
private UserService userService;
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
|
|
|
private PmOwnerHouseRelService pmOwnerHouseRelService;
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
|
|
|
private PmTenantHouseService pmTenantHouseService;
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
|
|
|
private PmTenantHouseRelService pmTenantHouseRelService;
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
|
|
|
private SysDeptService sysDeptService;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
@ -338,11 +361,24 @@ public class PmMaintenanceOrderController {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void setFile(PmMaintenanceOrder pmMaintenanceOrder) {
|
|
|
|
private void setFile(PmMaintenanceOrder pmMaintenanceOrder) {
|
|
|
|
|
|
|
|
// 初始化文件列表
|
|
|
|
|
|
|
|
pmMaintenanceOrder.setFiles(new ArrayList<>());
|
|
|
|
|
|
|
|
pmMaintenanceOrder.setAfterProcessFiles(new ArrayList<>());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 根据维修单ID查询所有相关文件
|
|
|
|
Long faultPhoto = pmMaintenanceOrder.getFaultPhoto();
|
|
|
|
Long faultPhoto = pmMaintenanceOrder.getFaultPhoto();
|
|
|
|
if (faultPhoto != null) {
|
|
|
|
if (faultPhoto != null) {
|
|
|
|
List<SystemAttachment> list = systemAttachmentService.list(new LambdaQueryWrapper<SystemAttachment>()
|
|
|
|
List<SystemAttachment> allFiles = systemAttachmentService.list(new LambdaQueryWrapper<SystemAttachment>()
|
|
|
|
.eq(SystemAttachment::getFileId, faultPhoto));
|
|
|
|
.eq(SystemAttachment::getFileId, faultPhoto));
|
|
|
|
pmMaintenanceOrder.setFiles(list);
|
|
|
|
|
|
|
|
|
|
|
|
// 根据attType区分故障照片和修复凭证
|
|
|
|
|
|
|
|
for (SystemAttachment attachment : allFiles) {
|
|
|
|
|
|
|
|
if ("fault_photo".equals(attachment.getAttType())) {
|
|
|
|
|
|
|
|
pmMaintenanceOrder.getFiles().add(attachment);
|
|
|
|
|
|
|
|
} else if ("repair_photo".equals(attachment.getAttType())) {
|
|
|
|
|
|
|
|
pmMaintenanceOrder.getAfterProcessFiles().add(attachment);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@ -360,9 +396,95 @@ public class PmMaintenanceOrderController {
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
@RequestMapping(value = "/save", method = RequestMethod.POST)
|
|
|
|
@RequestMapping(value = "/save", method = RequestMethod.POST)
|
|
|
|
public CommonResult<String> save(@RequestBody PmMaintenanceOrder pmMaintenanceOrder){
|
|
|
|
public CommonResult<String> save(@RequestBody PmMaintenanceOrder pmMaintenanceOrder){
|
|
|
|
|
|
|
|
// 获取当前用户信息(如果没有通过 uid 设置 create_by)
|
|
|
|
|
|
|
|
Long currentUserId = null;
|
|
|
|
|
|
|
|
if (pmMaintenanceOrder.getCreateBy() == null) {
|
|
|
|
|
|
|
|
LoginUserVo loginUserVo = SecurityUtil.getLoginUserVo();
|
|
|
|
|
|
|
|
if (loginUserVo != null && loginUserVo.getUser() != null) {
|
|
|
|
|
|
|
|
// 自动填写create_by
|
|
|
|
|
|
|
|
currentUserId = Long.valueOf(loginUserVo.getUser().getId());
|
|
|
|
|
|
|
|
pmMaintenanceOrder.setCreateBy(currentUserId);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
currentUserId = pmMaintenanceOrder.getCreateBy();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 如果有传uid,根据eb_user中的字段查询对应的业主、租户、部门
|
|
|
|
|
|
|
|
if (pmMaintenanceOrder.getUid() != null) {
|
|
|
|
|
|
|
|
User user = userService.getOne(Wrappers.<User>lambdaQuery()
|
|
|
|
|
|
|
|
.eq(User::getUid, pmMaintenanceOrder.getUid()));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (user != null) {
|
|
|
|
|
|
|
|
// 根据dept_id设置所属公司
|
|
|
|
|
|
|
|
if (pmMaintenanceOrder.getCreateDept() == null && user.getDeptId() != null) {
|
|
|
|
|
|
|
|
pmMaintenanceOrder.setCreateDept(user.getDeptId());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 根据owner_tenant_id设置业主/租户ID和类型
|
|
|
|
|
|
|
|
if (pmMaintenanceOrder.getOwnerId() == null && user.getOwnerTenantId() != null) {
|
|
|
|
|
|
|
|
// 根据staff_type区分业主和租户
|
|
|
|
|
|
|
|
if ("1".equals(user.getStaffType())) {
|
|
|
|
|
|
|
|
// 业主类型
|
|
|
|
|
|
|
|
pmMaintenanceOrder.setOwnerId(user.getOwnerTenantId());
|
|
|
|
|
|
|
|
pmMaintenanceOrder.setOwnerType("1"); // 业主类型
|
|
|
|
|
|
|
|
} else if ("2".equals(user.getStaffType())) {
|
|
|
|
|
|
|
|
// 租户类型
|
|
|
|
|
|
|
|
pmMaintenanceOrder.setOwnerId(user.getOwnerTenantId());
|
|
|
|
|
|
|
|
pmMaintenanceOrder.setOwnerType("2"); // 租户类型
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
// 如果staff_type未设置,回退到原来的查询方式
|
|
|
|
|
|
|
|
// 查询是否为业主
|
|
|
|
|
|
|
|
PmOwner owner = pmOwnerService.getById(user.getOwnerTenantId());
|
|
|
|
|
|
|
|
if (owner != null) {
|
|
|
|
|
|
|
|
pmMaintenanceOrder.setOwnerId(owner.getId());
|
|
|
|
|
|
|
|
pmMaintenanceOrder.setOwnerType("1"); // 业主类型
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
// 查询是否为租户
|
|
|
|
|
|
|
|
PmTenant tenant = pmTenantService.getById(user.getOwnerTenantId());
|
|
|
|
|
|
|
|
if (tenant != null) {
|
|
|
|
|
|
|
|
pmMaintenanceOrder.setOwnerId(tenant.getId());
|
|
|
|
|
|
|
|
pmMaintenanceOrder.setOwnerType("2"); // 租户类型
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 根据业主/租户ID查询房屋
|
|
|
|
|
|
|
|
if (pmMaintenanceOrder.getHouseId() == null && pmMaintenanceOrder.getOwnerId() != null) {
|
|
|
|
|
|
|
|
if ("1".equals(pmMaintenanceOrder.getOwnerType())) {
|
|
|
|
|
|
|
|
// 查询业主的房屋
|
|
|
|
|
|
|
|
List<PmOwnerHouseRel> ownerHouseRels = pmOwnerHouseRelService.list(Wrappers.<PmOwnerHouseRel>lambdaQuery()
|
|
|
|
|
|
|
|
.eq(PmOwnerHouseRel::getOwnerId, pmMaintenanceOrder.getOwnerId()));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (ownerHouseRels != null && !ownerHouseRels.isEmpty()) {
|
|
|
|
|
|
|
|
pmMaintenanceOrder.setHouseId(ownerHouseRels.get(0).getHouseId());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
} else if ("2".equals(pmMaintenanceOrder.getOwnerType())) {
|
|
|
|
|
|
|
|
// 查询租户的房屋
|
|
|
|
|
|
|
|
List<PmTenantHouse> tenantHouses = pmTenantHouseService.list(Wrappers.<PmTenantHouse>lambdaQuery()
|
|
|
|
|
|
|
|
.eq(PmTenantHouse::getRentId, pmMaintenanceOrder.getOwnerId()));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (tenantHouses != null && !tenantHouses.isEmpty()) {
|
|
|
|
|
|
|
|
List<PmTenantHouseRel> tenantHouseRels = pmTenantHouseRelService.list(Wrappers.<PmTenantHouseRel>lambdaQuery()
|
|
|
|
|
|
|
|
.eq(PmTenantHouseRel::getTenantHouseId, tenantHouses.get(0).getId()));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (tenantHouseRels != null && !tenantHouseRels.isEmpty()) {
|
|
|
|
|
|
|
|
pmMaintenanceOrder.setHouseId(tenantHouseRels.get(0).getHouseId());
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// 处理文件保存
|
|
|
|
// 处理文件保存
|
|
|
|
if (pmMaintenanceOrder.getFiles() != null) {
|
|
|
|
if (pmMaintenanceOrder.getFiles() != null || pmMaintenanceOrder.getAfterProcessFiles() != null) {
|
|
|
|
updateFile(pmMaintenanceOrder);
|
|
|
|
updateFiles(pmMaintenanceOrder);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 办结时检查处理后文件
|
|
|
|
|
|
|
|
if ("99".equals(pmMaintenanceOrder.getStatus()) && (pmMaintenanceOrder.getAfterProcessFiles() == null || pmMaintenanceOrder.getAfterProcessFiles().isEmpty())) {
|
|
|
|
|
|
|
|
return CommonResult.failed("办结时必须上传修复凭证");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (pmMaintenanceOrderService.save(pmMaintenanceOrder)) {
|
|
|
|
if (pmMaintenanceOrderService.save(pmMaintenanceOrder)) {
|
|
|
|
@ -385,8 +507,13 @@ public class PmMaintenanceOrderController {
|
|
|
|
@RequestMapping(value = "/update", method = RequestMethod.POST)
|
|
|
|
@RequestMapping(value = "/update", method = RequestMethod.POST)
|
|
|
|
public CommonResult<String> update(@RequestBody PmMaintenanceOrder pmMaintenanceOrder){
|
|
|
|
public CommonResult<String> update(@RequestBody PmMaintenanceOrder pmMaintenanceOrder){
|
|
|
|
// 处理文件更新
|
|
|
|
// 处理文件更新
|
|
|
|
if (pmMaintenanceOrder.getFiles() != null) {
|
|
|
|
if (pmMaintenanceOrder.getFiles() != null || pmMaintenanceOrder.getAfterProcessFiles() != null) {
|
|
|
|
updateFile(pmMaintenanceOrder);
|
|
|
|
updateFiles(pmMaintenanceOrder);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 办结时检查处理后文件
|
|
|
|
|
|
|
|
if ("99".equals(pmMaintenanceOrder.getStatus()) && (pmMaintenanceOrder.getAfterProcessFiles() == null || pmMaintenanceOrder.getAfterProcessFiles().isEmpty())) {
|
|
|
|
|
|
|
|
return CommonResult.failed("办结时必须上传修复凭证");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (pmMaintenanceOrderService.updateById(pmMaintenanceOrder)) {
|
|
|
|
if (pmMaintenanceOrderService.updateById(pmMaintenanceOrder)) {
|
|
|
|
@ -403,15 +530,30 @@ public class PmMaintenanceOrderController {
|
|
|
|
return CommonResult.failed();
|
|
|
|
return CommonResult.failed();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private void updateFile(PmMaintenanceOrder pmMaintenanceOrder) {
|
|
|
|
private void updateFiles(PmMaintenanceOrder pmMaintenanceOrder) {
|
|
|
|
Long newId = System.currentTimeMillis() + new Random().nextInt(1000);
|
|
|
|
// 生成统一的文件ID
|
|
|
|
List<SystemAttachment> files = pmMaintenanceOrder.getFiles();
|
|
|
|
Long fileId = pmMaintenanceOrder.getFaultPhoto();
|
|
|
|
if (files != null) {
|
|
|
|
if (fileId == null) {
|
|
|
|
for (SystemAttachment attachment : files) {
|
|
|
|
fileId = System.currentTimeMillis() + new Random().nextInt(1000);
|
|
|
|
attachment.setFileId(String.valueOf(newId));
|
|
|
|
pmMaintenanceOrder.setFaultPhoto(fileId);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 处理故障照片文件
|
|
|
|
|
|
|
|
if (pmMaintenanceOrder.getFiles() != null && !pmMaintenanceOrder.getFiles().isEmpty()) {
|
|
|
|
|
|
|
|
for (SystemAttachment attachment : pmMaintenanceOrder.getFiles()) {
|
|
|
|
|
|
|
|
attachment.setFileId(String.valueOf(fileId));
|
|
|
|
|
|
|
|
attachment.setAttType("fault_photo"); // 设置为故障照片类型
|
|
|
|
}
|
|
|
|
}
|
|
|
|
systemAttachmentService.updateBatchById(files);
|
|
|
|
systemAttachmentService.saveOrUpdateBatch(pmMaintenanceOrder.getFiles());
|
|
|
|
pmMaintenanceOrder.setFaultPhoto(newId);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 处理修复凭证文件
|
|
|
|
|
|
|
|
if (pmMaintenanceOrder.getAfterProcessFiles() != null && !pmMaintenanceOrder.getAfterProcessFiles().isEmpty()) {
|
|
|
|
|
|
|
|
for (SystemAttachment attachment : pmMaintenanceOrder.getAfterProcessFiles()) {
|
|
|
|
|
|
|
|
attachment.setFileId(String.valueOf(fileId));
|
|
|
|
|
|
|
|
attachment.setAttType("repair_photo"); // 设置为修复凭证类型
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
systemAttachmentService.saveOrUpdateBatch(pmMaintenanceOrder.getAfterProcessFiles());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@ -484,6 +626,16 @@ public class PmMaintenanceOrderController {
|
|
|
|
return CommonResult.failed("订单不存在");
|
|
|
|
return CommonResult.failed("订单不存在");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 办结时检查修复照片
|
|
|
|
|
|
|
|
if ("99".equals(status)) {
|
|
|
|
|
|
|
|
// 这里需要从前端传递修复照片,或者在前端进行检查
|
|
|
|
|
|
|
|
// 由于此接口主要用于状态和备注的快速修改,建议在前端进行修复照片的检查
|
|
|
|
|
|
|
|
// 如果前端没有传递修复照片,则返回错误
|
|
|
|
|
|
|
|
if (params.get("afterProcessFiles") == null) {
|
|
|
|
|
|
|
|
return CommonResult.failed("办结时必须上传修复凭证");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// 只修改状态和备注
|
|
|
|
// 只修改状态和备注
|
|
|
|
pmMaintenanceOrder.setStatus(status);
|
|
|
|
pmMaintenanceOrder.setStatus(status);
|
|
|
|
pmMaintenanceOrder.setRemark(remark);
|
|
|
|
pmMaintenanceOrder.setRemark(remark);
|
|
|
|
@ -499,6 +651,16 @@ public class PmMaintenanceOrderController {
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
@RequestMapping(value = "/delete", method = RequestMethod.POST)
|
|
|
|
@RequestMapping(value = "/delete", method = RequestMethod.POST)
|
|
|
|
public CommonResult<String> delete(@RequestBody Long[] ids){
|
|
|
|
public CommonResult<String> delete(@RequestBody Long[] ids){
|
|
|
|
|
|
|
|
// 检查每个订单是否有报修派单记录
|
|
|
|
|
|
|
|
for (Long id : ids) {
|
|
|
|
|
|
|
|
LambdaQueryWrapper<PmMaintenanceDispatch> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
|
|
|
|
|
queryWrapper.eq(PmMaintenanceDispatch::getOrderId, id);
|
|
|
|
|
|
|
|
long count = pmMaintenanceDispatchService.count(queryWrapper);
|
|
|
|
|
|
|
|
if (count > 0) {
|
|
|
|
|
|
|
|
return CommonResult.failed("报修单下存在报修派单记录,无法删除");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (pmMaintenanceOrderService.removeByIds(Arrays.asList(ids))) {
|
|
|
|
if (pmMaintenanceOrderService.removeByIds(Arrays.asList(ids))) {
|
|
|
|
return CommonResult.success();
|
|
|
|
return CommonResult.success();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|