功能修改

master
zhouxinyu 10 months ago
parent 18c8b24514
commit b5589499fb
  1. 30
      src/main/java/org/springblade/modules/business/contraller/DeviceController.java
  2. 2
      src/main/java/org/springblade/modules/business/excel/DeviceImportExcel.java
  3. 4
      src/main/java/org/springblade/modules/business/pojo/entity/workorder/WorkOrder.java
  4. 5
      src/main/java/org/springblade/modules/business/pojo/vo/workorder/WorkOrderVO.java
  5. 55
      src/main/java/org/springblade/modules/business/service/impl/DeviceServiceImpl.java
  6. 1
      src/main/java/org/springblade/modules/business/service/impl/WorkOrderServiceImpl.java

@ -1,5 +1,7 @@
package org.springblade.modules.business.contraller;
import com.alibaba.excel.write.metadata.style.WriteCellStyle;
import com.alibaba.excel.write.metadata.style.WriteFont;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
@ -12,9 +14,10 @@ import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.Valid;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.poi.ss.usermodel.FillPatternType;
import org.apache.poi.ss.usermodel.IndexedColors;
import org.springblade.core.boot.ctrl.BladeController;
import org.springblade.core.excel.util.ExcelUtil;
import org.springblade.core.mp.base.BaseEntity;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.secure.BladeUser;
@ -31,8 +34,6 @@ import org.springblade.modules.business.pojo.dto.DeviceDTO;
import org.springblade.modules.business.pojo.entity.Device;
import org.springblade.modules.business.pojo.entity.DeviceAttach;
import org.springblade.modules.business.pojo.entity.DeviceMaintenance;
import org.springblade.modules.business.pojo.entity.maintenance.MaintenanceTask;
import org.springblade.modules.business.pojo.entity.supplies.Apply;
import org.springblade.modules.business.pojo.vo.DeviceVO;
import org.springblade.modules.business.service.IDeviceAttachService;
import org.springblade.modules.business.service.IDeviceMaintenanceService;
@ -268,6 +269,29 @@ public class DeviceController extends BladeController {
// deviceExcel.setFloorName("三层");
// deviceExcel.setRoomName("301");
// list.add(deviceExcel);
// 示例数据 1
DeviceImportExcel device1 = new DeviceImportExcel();
device1.setCode("NT-MAU-401");
device1.setName("测试设备");
device1.setTypeName("一级分类/二级分类/三级分类");
device1.setCheckContent("1、巡检内容;\n2、巡检内容;\n(请使用分号分割每条巡检内容)");
device1.setCraft("1、工艺要求一;\n2、工艺要求;\n(请使用分号分割每条工艺要求)");
device1.setDescription("上传格式以此条为准,导入时请将此条示例数据删除");
list.add(device1);
// 配置样式
WriteCellStyle yellowFillStyle = new WriteCellStyle();
yellowFillStyle.setFillForegroundColor(IndexedColors.YELLOW.getIndex());
yellowFillStyle.setFillPatternType(FillPatternType.SOLID_FOREGROUND);
yellowFillStyle.setWrapped(true);
WriteFont yellowFont = new WriteFont();
yellowFont.setColor(IndexedColors.BLACK.getIndex());
yellowFont.setBold(true);
yellowFillStyle.setWriteFont(yellowFont);
ExcelUtil.export(response, "设备模板", "设备表", list, DeviceImportExcel.class);
}

@ -29,7 +29,7 @@ public class DeviceImportExcel implements Serializable {
private String name;
@ExcelProperty("设备类型")
private String type;
private String typeName;
@ExcelProperty({"巡检相关","巡检内容"})
private String checkContent;

@ -186,6 +186,10 @@ public class WorkOrder extends BaseEntity {
* 评价时效是否满意(0否 1是)
*/
private Integer isOkValidity;
/**
* 评价意见
*/
private String evaluationRemarks;
/**
* 签名图片地址

@ -57,4 +57,9 @@ public class WorkOrderVO extends WorkOrder {
* 提交用户地址
*/
private String address;
/**
* 评价意见
*/
private String evaluationRemarks;
}

@ -26,11 +26,13 @@ import org.springblade.modules.business.pojo.dto.DeviceDTO;
import org.springblade.modules.business.pojo.entity.Device;
import org.springblade.modules.business.pojo.entity.DeviceAttach;
import org.springblade.modules.business.pojo.entity.DeviceMaintenance;
import org.springblade.modules.business.pojo.entity.DeviceType;
import org.springblade.modules.business.pojo.vo.DeviceVO;
import org.springblade.modules.business.pojo.vo.PieStatVO;
import org.springblade.modules.business.service.IDeviceAttachService;
import org.springblade.modules.business.service.IDeviceMaintenanceService;
import org.springblade.modules.business.service.IDeviceService;
import org.springblade.modules.business.service.IDeviceTypeService;
import org.springblade.modules.system.pojo.entity.Dept;
import org.springblade.modules.system.pojo.vo.DeptVO;
import org.springblade.modules.system.service.IDeptService;
@ -38,6 +40,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
@ -53,6 +56,7 @@ public class DeviceServiceImpl extends BaseServiceImpl<DeviceMapper, Device> imp
private final IDeviceAttachService deviceAttachService;
private final IDeviceMaintenanceService maintenanceService;
private final IDeviceTypeService typeService;
private final IDeptService deptService;
@Override
@ -73,7 +77,10 @@ public class DeviceServiceImpl extends BaseServiceImpl<DeviceMapper, Device> imp
@Override
@Transactional(rollbackFor = Exception.class)
public boolean add(DeviceDTO device) {
device.setCode("编码格式待定");
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
String timestamp = sdf.format(new Date());
String typeName = device.getTypeName().replace("/", "-");
device.setCode(typeName + "-" + timestamp);
device.setRunStatus(CommonConstant.DEVICE_RUN_STATUS_WORKING);
boolean save = this.save(device);
// 附件保存
@ -219,9 +226,32 @@ public class DeviceServiceImpl extends BaseServiceImpl<DeviceMapper, Device> imp
if(StringUtils.isEmpty(deviceExcel.getCode())){
throw new ServiceException("设备" + deviceExcel.getName() + "未填写设备编码,请修改后再上传!");
}
if(StringUtils.isEmpty(deviceExcel.getTypeName())){
throw new ServiceException("设备" + deviceExcel.getName() + "未填写设备类型,请修改后再上传!");
}
Device device = BeanUtil.copyProperties(deviceExcel, Device.class);
DeviceMaintenance deviceMaintenance = BeanUtil.copyProperties(deviceExcel, DeviceMaintenance.class);
if (device != null) {
// 根据传入的typeName查询设备id
String fullTypeName = device.getTypeName();
String[] typeParts = fullTypeName.split("/");
String name = typeParts[typeParts.length - 1].trim();
LambdaQueryWrapper<DeviceType> wrapper = Wrappers.lambdaQuery(DeviceType.class)
.eq(DeviceType::getTypeName, name);
DeviceType deviceType = typeService.getOne(wrapper);
if (deviceType != null) {
StringBuilder parentIds = new StringBuilder();
getAllParentIdsRecursive(deviceType.getId(), parentIds);
// 移除最后一个逗号
if (parentIds.length() > 0) {
parentIds.setLength(parentIds.length() - 1);
} else {
parentIds.append(deviceType.getId());
}
device.setType(parentIds.toString());
} else {
throw new ServiceException("设备" + deviceExcel.getName() + "的设备类型不存在,请填写正确的设备类型");
}
//根据编码查询设备
Device oldDevice = this.getOne(Wrappers.lambdaQuery(Device.class).eq(Device::getCode,device.getCode()).eq(BaseEntity::getIsDeleted,0));
if (oldDevice != null) {
@ -242,6 +272,29 @@ public class DeviceServiceImpl extends BaseServiceImpl<DeviceMapper, Device> imp
});
}
/**
* 递归方法获取所有上级的 ID 并拼接到 StringBuilder
*
* @param currentId 当前父级 ID
* @param parentIds 拼接结果
*/
private void getAllParentIdsRecursive(Long currentId, StringBuilder parentIds) {
if (currentId == null) {
return;
}
// 查询当前设备类型
LambdaQueryWrapper<DeviceType> wrapper = Wrappers.lambdaQuery(DeviceType.class)
.eq(DeviceType::getId, currentId);
DeviceType currentType = typeService.getOne(wrapper);
if (currentType != null) {
// 先递归查询父级,再添加当前 ID
getAllParentIdsRecursive(currentType.getParentId(), parentIds);
parentIds.append(currentType.getId()).append(",");
}
}
@Override
public List<DeviceVO> limsList(Device device) {

@ -477,6 +477,7 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
workOrderOld.setIsOkSecure(workOrder.getIsOkSecure());
workOrderOld.setIsOkValidity(workOrder.getIsOkValidity());
workOrderOld.setIsOkQuality(workOrder.getIsOkQuality());
workOrderOld.setEvaluationRemarks(workOrder.getEvaluationRemarks());
// 若未产生费用,直接关闭工单
if (workOrderOld.getDiscountPrice() == null || workOrderOld.getDiscountPrice() == 0) {
workOrderOld.setStatus(WorkOrderStatusEnum.KF_ORDER_CLOSE.getValue());

Loading…
Cancel
Save