嘉禾二期

master
sunjianxi 2 years ago
parent 61fffc9134
commit 6f052ca210
  1. 7
      lab-service-api/lab-lims-api/src/main/java/org/springblade/lims/entry/InspectionRecord.java
  2. 6
      lab-service-api/lab-lims-api/src/main/java/org/springblade/lims/entry/InspectionTask.java
  3. 195
      lab-service-api/lab-lims-api/src/main/java/org/springblade/lims/entry/InstrumentData.java
  4. 7
      lab-service-api/lab-lims-api/src/main/java/org/springblade/lims/entry/MaintainRecord.java
  5. 6
      lab-service-api/lab-lims-api/src/main/java/org/springblade/lims/entry/MaintainTask.java
  6. 9
      lab-service/lab-lims/pom.xml
  7. 9
      lab-service/lab-lims/src/main/java/org/springblade/lims/controller/InspectionTaskController.java
  8. 9
      lab-service/lab-lims/src/main/java/org/springblade/lims/controller/MaintainTaskController.java
  9. 15
      lab-service/lab-lims/src/main/java/org/springblade/lims/mapper/InstrumentDataMapper.java
  10. 179
      lab-service/lab-lims/src/main/java/org/springblade/lims/mqtt/callback/MyMQTTCallback.java
  11. 1
      lab-service/lab-lims/src/main/java/org/springblade/lims/mqtt/client/MyMQTTClient.java
  12. 8
      lab-service/lab-lims/src/main/java/org/springblade/lims/mqtt/config/MqttConfiguration.java
  13. 14
      lab-service/lab-lims/src/main/java/org/springblade/lims/service/IInstrumentDataService.java
  14. 7
      lab-service/lab-lims/src/main/java/org/springblade/lims/service/impl/InspectionRecordServiceImpl.java
  15. 4
      lab-service/lab-lims/src/main/java/org/springblade/lims/service/impl/InspectionTaskServiceImpl.java
  16. 27
      lab-service/lab-lims/src/main/java/org/springblade/lims/service/impl/InstrumentDataServiceImpl.java
  17. 12
      lab-service/lab-lims/src/main/java/org/springblade/lims/service/impl/MaintainRecordServiceImpl.java
  18. 4
      lab-service/lab-lims/src/main/java/org/springblade/lims/service/impl/MaintainTaskServiceImpl.java
  19. 17
      lab-service/lab-system/src/main/java/org/springblade/system/controller/DeptController.java

@ -10,7 +10,6 @@ import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
/**
* @author sjx
@ -72,4 +71,10 @@ public class InspectionRecord extends BaseEntity implements Serializable {
*/
private String tenantId;
/**
* 设备名称
*/
@TableField(exist = false)
private String assetName;
}

@ -167,4 +167,10 @@ public class InspectionTask extends BaseEntity implements Serializable {
@TableField(exist = false)
private List<InspectionTaskPoint> taskPointList;
/**
* 巡检班组
*/
@TableField(exist = false)
private List<String> groupIdList;
}

@ -0,0 +1,195 @@
package org.springblade.lims.entry;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import org.springblade.core.mp.base.BaseEntity;
import org.springframework.data.annotation.Id;
import java.io.Serializable;
/**
* @author sjx
* @date 2023年11月27日15:34:17
*/
@Data
@TableName("t_instrument_data")
public class InstrumentData extends BaseEntity implements Serializable {
/**
* 业务主键
*/
@Id
private Long id;
/**
* 网关编号
*/
private String imei;
/**
* 总有功功率
*/
private Double totalActivePower;
/**
* 总无功功率
*/
private Double totalReactivePower;
/**
* 总视在功率
*/
private Double totalApparentPower;
/**
* 当前正向有功
*/
private Double currentPositiveActivePower;
/**
* 当前正向无功
*/
private Double currentPositiveReactivePower;
/**
* 当前反向有功
*/
private Double currentReverseActivePower;
/**
* 当前反向无功
*/
private Double currentReverseReactivePower;
/**
* 电流不平衡度
*/
private Double currentImbalance;
/**
* 电压不平衡度
*/
private Double voltageImbalance;
/**
* 总功率因数
*/
private Double totalPowerFactor;
/**
* 零序电流
*/
private Double zeroSequenceCurrent;
/**
* 频率
*/
private Double frequency;
/**
* A线电压
*/
private Double aLineVoltage;
/**
* B线电压
*/
private Double bLineVoltage;
/**
* C线电压
*/
private Double cLineVoltage;
/**
* A相电流
*/
private Double aPhaseCurrent;
/**
* B相电流
*/
private Double bPhaseCurrent;
/**
* C相电流
*/
private Double cPhaseCurrent;
/**
* A相电压
*/
private Double aPhaseVoltage;
/**
* B相电压
*/
private Double bPhaseVoltage;
/**
* C相电压
*/
private Double cPhaseVoltage;
/**
* A相有功功率
*/
private Double aPhaseActivePower;
/**
* B相有功功率
*/
private Double bPhaseActivePower;
/**
* C相有功功率
*/
private Double cPhaseActivePower;
/**
* A相功率因数
*/
private Double aPhasePowerFactor;
/**
* B相功率因数
*/
private Double bPhasePowerFactor;
/**
* C相功率因数
*/
private Double cPhasePowerFactor;
/**
* A相无功功率
*/
private Double aPhaseReactivePower;
/**
* B相无功功率
*/
private Double bPhaseReactivePower;
/**
* C相无功功率
*/
private Double cPhaseReactivePower;
/**
* A相视在功率
*/
private Double aPhaseApparentPower;
/**
* B相视在功率
*/
private Double bPhaseApparentPower;
/**
* C相视在功率
*/
private Double cPhaseApparentPower;
}

@ -1,5 +1,6 @@
package org.springblade.lims.entry;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
@ -61,4 +62,10 @@ public class MaintainRecord extends BaseEntity implements Serializable {
*/
private String operUserName;
/**
* 设备名称
*/
@TableField(exist = false)
private String assetName;
}

@ -192,4 +192,10 @@ public class MaintainTask extends BaseEntity implements Serializable {
@TableField(exist = false)
private List<MaintainProject> projectList;
/**
* 保养班组
*/
@TableField(exist = false)
private List<String> groupIdList;
}

@ -186,12 +186,13 @@
<artifactId>commons-logging</artifactId>
<version>1.2</version>
</dependency>
<!-- mqtt -->
<!--mqtt-->
<dependency>
<groupId>org.springframework.integration</groupId>
<artifactId>spring-integration-mqtt</artifactId>
<groupId>org.eclipse.paho</groupId>
<artifactId>org.eclipse.paho.client.mqttv3</artifactId>
<version>1.2.5</version>
</dependency>
</dependencies>

@ -7,11 +7,15 @@ import io.swagger.annotations.ApiParam;
import lombok.AllArgsConstructor;
import org.springblade.core.boot.ctrl.BladeController;
import org.springblade.core.mp.support.Query;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.api.R;
import org.springblade.lims.entry.InspectionTask;
import org.springblade.lims.service.IInspectionTaskService;
import org.springframework.web.bind.annotation.*;
import java.util.Arrays;
import java.util.List;
/**
* @author sjx
@ -27,6 +31,11 @@ public class InspectionTaskController extends BladeController {
@GetMapping("/page")
public R<Object> page(InspectionTask entry, Query query) {
List<String> roles = Arrays.asList(AuthUtil.getUserRole().split(","));
if(!roles.contains("admin")){
List<String> groupIdList = Arrays.asList(AuthUtil.getDeptId().split(","));
entry.setGroupIdList(groupIdList);
}
return R.data(service.findPage(entry, query));
}

@ -7,11 +7,15 @@ import io.swagger.annotations.ApiParam;
import lombok.AllArgsConstructor;
import org.springblade.core.boot.ctrl.BladeController;
import org.springblade.core.mp.support.Query;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.api.R;
import org.springblade.lims.entry.MaintainTask;
import org.springblade.lims.service.IMaintainTaskService;
import org.springframework.web.bind.annotation.*;
import java.util.Arrays;
import java.util.List;
/**
* @author sjx
@ -27,6 +31,11 @@ public class MaintainTaskController extends BladeController {
@GetMapping("/page")
public R<Object> page(MaintainTask entry, Query query) {
List<String> roles = Arrays.asList(AuthUtil.getUserRole().split(","));
if(!roles.contains("admin")){
List<String> groupIdList = Arrays.asList(AuthUtil.getDeptId().split(","));
entry.setGroupIdList(groupIdList);
}
return R.data(service.findPage(entry, query));
}

@ -0,0 +1,15 @@
package org.springblade.lims.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springblade.lims.entry.InstrumentData;
/**
*
*
* @author sjx
* @since 2023年11月27日15:47:39
*/
public interface InstrumentDataMapper extends BaseMapper<InstrumentData> {
}

@ -1,17 +1,24 @@
package org.springblade.lims.mqtt.callback;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import org.apache.commons.lang3.time.DateUtils;
import org.eclipse.paho.client.mqttv3.IMqttDeliveryToken;
import org.eclipse.paho.client.mqttv3.MqttCallbackExtended;
import org.eclipse.paho.client.mqttv3.MqttException;
import org.eclipse.paho.client.mqttv3.MqttMessage;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springblade.core.tool.utils.Charsets;
import org.springblade.core.tool.utils.SpringUtil;
import org.springblade.lims.entry.Instrument;
import org.springblade.lims.entry.InstrumentData;
import org.springblade.lims.mqtt.client.MyMQTTClient;
import org.springblade.lims.mqtt.config.MqttConfiguration;
import org.springblade.lims.service.IInstrumentDataService;
import org.springblade.lims.service.IInstrumentService;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
@ -21,16 +28,10 @@ import java.util.Map;
public class MyMQTTCallback implements MqttCallbackExtended {
//手动注入
//private MqttConfiguration mqttConfiguration = SpringUtil.getBean(MqttConfiguration.class);
private MqttConfiguration mqttConfiguration = SpringUtil.getBean(MqttConfiguration.class);
private static MqttConfiguration mqttConfiguration;
private static MqttConfiguration getMqttConfiguration() {
if (mqttConfiguration == null) {
mqttConfiguration = SpringUtil.getBean(MqttConfiguration.class);
}
return mqttConfiguration;
}
private IInstrumentDataService instrumentDataService = SpringUtil.getBean(IInstrumentDataService.class);
private IInstrumentService instrumentService = SpringUtil.getBean(IInstrumentService.class);
private static final Logger log = LoggerFactory.getLogger(MyMQTTCallback.class);
@ -40,6 +41,10 @@ public class MyMQTTCallback implements MqttCallbackExtended {
this.mqttClient = mqttClient;
}
private int count =0;
private List<InstrumentData> dataList = new ArrayList<>();
/**
* 丢失连接可在这里做重连
@ -50,25 +55,28 @@ public class MyMQTTCallback implements MqttCallbackExtended {
@Override
public void connectionLost(Throwable throwable) {
log.error("mqtt connectionLost 连接断开,5S之后尝试重连: {}", throwable.getMessage());
long reconnectTimes = 1;
/*long reconnectTimes = 1;
while (true) {
if (MyMQTTClient.getClient().isConnected()) {
//判断已经重新连接成功 需要重新订阅主题 可以在这个if里面订阅主题 或者 connectComplete(方法里面) 看你们自己选择
//订阅主题
mqttClient.subscribe(mqttConfiguration.getTopic1(), 1);
mqttClient.subscribe(mqttConfiguration.getTopic2(), 1);
log.warn("mqtt reconnect success end 重新连接 重新订阅成功");
return;
}
reconnectTimes+=1;
log.warn("mqtt reconnect times = {} try again... mqtt重新连接时间 {}", reconnectTimes, reconnectTimes);
try {
if (MyMQTTClient.getClient().isConnected()) {
//判断已经重新连接成功 需要重新订阅主题 可以在这个if里面订阅主题 或者 connectComplete(方法里面) 看你们自己选择
log.warn("mqtt reconnect success end 重新连接 重新订阅成功");
return;
}
reconnectTimes+=1;
log.warn("mqtt reconnect times = {} try again... mqtt重新连接时间 {}", reconnectTimes, reconnectTimes);
MyMQTTClient.getClient().reconnect();
} catch (MqttException e) {
log.error("mqtt断连异常", e);
throw new RuntimeException(e);
}
try {
Thread.sleep(5000);
} catch (InterruptedException e1) {
}
}
}*/
}
/**
@ -81,10 +89,132 @@ public class MyMQTTCallback implements MqttCallbackExtended {
public void messageArrived(String topic, MqttMessage mqttMessage) throws Exception {
log.info("接收消息主题 : {},接收消息内容 : {}", topic, new String(mqttMessage.getPayload()));
//接收消息主题
if (topic.equals("instrument/updateStatus")){
Map maps = (Map) JSON.parse(new String(mqttMessage.getPayload(), Charsets.UTF_8.name()));
if (topic.contains("/device/data")){
count++;
InstrumentData data = new InstrumentData();
Map map = (Map) JSON.parse(new String(mqttMessage.getPayload(), Charsets.UTF_8.name()));
Map map1 = (Map) JSON.parse(map.get("vals").toString());
data.setCreateTime(DateUtils.parseDate(map.get("tsstr").toString(),"yyyy-MM-dd hh:mm:ss"));
data.setImei(map.get("imei").toString());
if(map1.containsKey("总有功功率")){
data.setTotalActivePower(Double.parseDouble(map1.get("总有功功率").toString()));
}
if(map1.containsKey("总无功功率")){
data.setTotalReactivePower(Double.parseDouble(map1.get("总无功功率").toString()));
}
if(map1.containsKey("总视在功率")){
data.setTotalApparentPower(Double.parseDouble(map1.get("总视在功率").toString()));
}
if(map1.containsKey("当前正向有功")){
data.setCurrentPositiveActivePower(Double.parseDouble(map1.get("当前正向有功").toString()));
}
if(map1.containsKey("当前正向无功")){
data.setCurrentPositiveReactivePower(Double.parseDouble(map1.get("当前正向无功").toString()));
}
if(map1.containsKey("当前反向有功")){
data.setCurrentReverseActivePower(Double.parseDouble(map1.get("当前反向有功").toString()));
}
if(map1.containsKey("当前反向无功")){
data.setCurrentReverseReactivePower(Double.parseDouble(map1.get("当前反向无功").toString()));
}
if(map1.containsKey("电流不平衡度")){
data.setCurrentImbalance(Double.parseDouble(map1.get("电流不平衡度").toString()));
}
if(map1.containsKey("电压不平衡度")){
data.setVoltageImbalance(Double.parseDouble(map1.get("电压不平衡度").toString()));
}
if(map1.containsKey("总功率因数")){
data.setTotalPowerFactor(Double.parseDouble(map1.get("总功率因数").toString()));
}
if(map1.containsKey("零序电流")){
data.setZeroSequenceCurrent(Double.parseDouble(map1.get("零序电流").toString()));
}
if(map1.containsKey("频率")){
data.setFrequency(Double.parseDouble(map1.get("频率").toString()));
}
if(map1.containsKey("A线电压")){
data.setALineVoltage(Double.parseDouble(map1.get("A线电压").toString()));
}
if(map1.containsKey("B线电压")){
data.setBLineVoltage(Double.parseDouble(map1.get("B线电压").toString()));
}
if(map1.containsKey("C线电压")){
data.setCLineVoltage(Double.parseDouble(map1.get("C线电压").toString()));
}
if(map1.containsKey("A相电流")){
data.setAPhaseCurrent(Double.parseDouble(map1.get("A相电流").toString()));
}
if(map1.containsKey("B相电流")){
data.setBPhaseCurrent(Double.parseDouble(map1.get("B相电流").toString()));
}
if(map1.containsKey("C相电流")){
data.setCPhaseCurrent(Double.parseDouble(map1.get("C相电流").toString()));
}
if(map1.containsKey("A相电压")){
data.setAPhaseVoltage(Double.parseDouble(map1.get("A相电压").toString()));
}
if(map1.containsKey("B相电压")){
data.setBPhaseVoltage(Double.parseDouble(map1.get("B相电压").toString()));
}
if(map1.containsKey("C相电压")){
data.setCPhaseVoltage(Double.parseDouble(map1.get("C相电压").toString()));
}
if(map1.containsKey("A相有功功率")){
data.setAPhaseActivePower(Double.parseDouble(map1.get("A相有功功率").toString()));
}
if(map1.containsKey("B相有功功率")){
data.setBPhaseActivePower(Double.parseDouble(map1.get("B相有功功率").toString()));
}
if(map1.containsKey("C相有功功率")){
data.setCPhaseActivePower(Double.parseDouble(map1.get("C相有功功率").toString()));
}
if(map1.containsKey("A相功率因数")){
data.setAPhasePowerFactor(Double.parseDouble(map1.get("A相功率因数").toString()));
}
if(map1.containsKey("B相功率因数")){
data.setBPhasePowerFactor(Double.parseDouble(map1.get("B相功率因数").toString()));
}
if(map1.containsKey("C相功率因数")){
data.setCPhasePowerFactor(Double.parseDouble(map1.get("C相功率因数").toString()));
}
if(map1.containsKey("A相无功功率")){
data.setAPhaseReactivePower(Double.parseDouble(map1.get("A相无功功率").toString()));
}
if(map1.containsKey("B相无功功率")){
data.setBPhaseReactivePower(Double.parseDouble(map1.get("B相无功功率").toString()));
}
if(map1.containsKey("C相无功功率")){
data.setCPhaseReactivePower(Double.parseDouble(map1.get("C相无功功率").toString()));
}
if(map1.containsKey("A相视在功率")){
data.setAPhaseApparentPower(Double.parseDouble(map1.get("A相视在功率").toString()));
}
if(map1.containsKey("B相视在功率")){
data.setBPhaseApparentPower(Double.parseDouble(map1.get("B相视在功率").toString()));
}
if(map1.containsKey("C相视在功率")){
data.setCPhaseApparentPower(Double.parseDouble(map1.get("C相视在功率").toString()));
}
//你自己的业务接口
log.info(maps.toString());
log.info(map1.toString());
dataList.add(data);
}
if(dataList.size() ==100){
instrumentDataService.saveBatch(dataList);
dataList.clear();
}
if (topic.contains("/device/status")){
Map map = (Map) JSON.parse(new String(mqttMessage.getPayload(), Charsets.UTF_8.name()));
log.info(map.toString());
LambdaUpdateWrapper<Instrument> wrapper = new LambdaUpdateWrapper<>();
wrapper.eq(Instrument::getCode,map.get("imei").toString());
Instrument instrument = new Instrument();
if("online".equals(map.get("status").toString())){
instrument.setRunStatus(1);
}else{
instrument.setRunStatus(4);
}
instrumentService.update(instrument,wrapper);
}
}
@ -99,7 +229,8 @@ public class MyMQTTCallback implements MqttCallbackExtended {
public void connectComplete(boolean reconnect,String serverURI){
log.info("MQTT 连接成功,连接方式:{}",reconnect?"重连":"直连");
//订阅主题
mqttClient.subscribe(getMqttConfiguration().getTopic(), 1);
mqttClient.subscribe(mqttConfiguration.getTopic1(), 1);
mqttClient.subscribe(mqttConfiguration.getTopic2(), 1);
}
/**

@ -73,6 +73,7 @@ public class MyMQTTClient {
client.disconnect();
client.connect(mqttConnectOptions);
}
boolean a = client.isConnected();
LOGGER.info("MQTT connect success");//未发生异常,则连接成功
}

@ -7,12 +7,14 @@ import org.slf4j.LoggerFactory;
import org.springblade.lims.mqtt.client.MyMQTTClient;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.DependsOn;
/**
1. @author WXY
2. @date 2022/6/29 20:42
*/
//@Configuration
@DependsOn({"springUtil"})
@Data
public class MqttConfiguration {
@ -29,8 +31,10 @@ public class MqttConfiguration {
int timeOut;
@Value("${mqtt.keepalive}")
int keepAlive;
@Value("${mqtt.topic}")
String topic;
@Value("${mqtt.topic1}")
String topic1;
@Value("${mqtt.topic2}")
String topic2;
@Bean//注入spring

@ -0,0 +1,14 @@
package org.springblade.lims.service;
import org.springblade.core.mp.base.BaseService;
import org.springblade.lims.entry.InstrumentData;
/**
* @author sjx
* @date 2023年11月27日15:34:17
*/
public interface IInstrumentDataService extends BaseService<InstrumentData> {
boolean saveData();
}

@ -10,8 +10,10 @@ import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.lims.entry.InspectionRecord;
import org.springblade.lims.entry.Instrument;
import org.springblade.lims.mapper.InspectionRecordMapper;
import org.springblade.lims.service.IInspectionRecordService;
import org.springblade.lims.service.IInstrumentService;
import org.springframework.stereotype.Service;
@ -23,6 +25,7 @@ import org.springframework.stereotype.Service;
@AllArgsConstructor
public class InspectionRecordServiceImpl extends BaseServiceImpl<InspectionRecordMapper, InspectionRecord> implements IInspectionRecordService {
private final IInstrumentService instrumentService;
@Override
public IPage<InspectionRecord> findPage(InspectionRecord entry, Query query) {
LambdaQueryWrapper<InspectionRecord> wrapper = new LambdaQueryWrapper<>();
@ -30,6 +33,10 @@ public class InspectionRecordServiceImpl extends BaseServiceImpl<InspectionRecor
wrapper.eq(BaseEntity::getIsDeleted, 0);
wrapper.orderByDesc(InspectionRecord::getCreateTime);
IPage<InspectionRecord> page = this.page(Condition.getPage(query), wrapper);
page.getRecords().forEach(record ->{
Instrument instrument = instrumentService.getById(record.getAssetId());
record.setAssetName(instrument.getName());
});
return page;
}

@ -72,6 +72,10 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl<InspectionTaskMap
wrapper.le(InspectionTask::getActStartTime,entry.getActStartTimeEnd());
}
if(CollectionUtils.isNotEmpty(entry.getGroupIdList())){
wrapper.in(InspectionTask::getGroupId,entry.getGroupIdList());
}
wrapper.eq(BaseEntity::getIsDeleted,0);
wrapper.orderByDesc(InspectionTask::getCreateTime);
IPage<InspectionTask> page = this.page(Condition.getPage(query), wrapper);

@ -0,0 +1,27 @@
package org.springblade.lims.service.impl;
import lombok.AllArgsConstructor;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.lims.entry.InstrumentData;
import org.springblade.lims.mapper.InstrumentDataMapper;
import org.springblade.lims.service.IInstrumentDataService;
import org.springframework.stereotype.Service;
/**
*
* @author swj
* @since 2022年6月2日15:53:01
*/
@Service
@AllArgsConstructor
public class InstrumentDataServiceImpl extends BaseServiceImpl<InstrumentDataMapper, InstrumentData> implements IInstrumentDataService {
@Override
public boolean saveData() {
return false;
}
}

@ -9,14 +9,12 @@ import org.springblade.core.mp.base.BaseEntity;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.lims.entry.Instrument;
import org.springblade.lims.entry.MaintainRecord;
import org.springblade.lims.mapper.MaintainRecordMapper;
import org.springblade.lims.service.IInstrumentService;
import org.springblade.lims.service.IMaintainRecordService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Date;
/**
@ -28,7 +26,7 @@ import java.util.Date;
@AllArgsConstructor
public class MaintainRecordServiceImpl extends BaseServiceImpl<MaintainRecordMapper, MaintainRecord> implements IMaintainRecordService {
private final IInstrumentService instrumentService;
@Override
public IPage<MaintainRecord> findPage(MaintainRecord entry, Query query) {
LambdaQueryWrapper<MaintainRecord> wrapper = new LambdaQueryWrapper<>();
@ -36,6 +34,10 @@ public class MaintainRecordServiceImpl extends BaseServiceImpl<MaintainRecordMap
wrapper.eq(BaseEntity::getIsDeleted,0);
wrapper.orderByDesc(MaintainRecord::getCreateTime);
IPage<MaintainRecord> page = this.page(Condition.getPage(query), wrapper);
page.getRecords().forEach(record ->{
Instrument instrument = instrumentService.getById(record.getAssetId());
record.setAssetName(instrument.getName());
});
return page;
}

@ -89,6 +89,10 @@ public class MaintainTaskServiceImpl extends BaseServiceImpl<MaintainTaskMapper,
wrapper.le(MaintainTask::getActStartTime,entry.getActStartTimeEnd());
}
if(CollectionUtils.isNotEmpty(entry.getGroupIdList())){
wrapper.in(MaintainTask::getGroupId,entry.getGroupIdList());
}
wrapper.eq(BaseEntity::getIsDeleted,0);
wrapper.orderByDesc(MaintainTask::getCreateTime);
IPage<MaintainTask> page = this.page(Condition.getPage(query), wrapper);

@ -11,6 +11,7 @@ import org.springblade.core.boot.ctrl.BladeController;
import org.springblade.core.cache.utils.CacheUtil;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.secure.BladeUser;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tenant.annotation.NonDS;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.constant.BladeConstant;
@ -26,6 +27,7 @@ import org.springframework.web.bind.annotation.*;
import springfox.documentation.annotations.ApiIgnore;
import javax.validation.Valid;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@ -170,15 +172,20 @@ public class DeptController extends BladeController {
@ApiOperationSupport(order = 5)
@ApiOperation(value = "根据父级部门名称获取下级部门列表", notes = "根据父级部门名称获取下级部门列表")
public R<List<Dept>> getDeptList(String parentDeptName) {
List<Dept> list = new ArrayList<>();
String deptId = AuthUtil.getDeptId();
Dept dept = deptService.getById(deptId);
LambdaQueryWrapper<Dept> parentWrapper = new LambdaQueryWrapper<>();
parentWrapper.eq(Dept::getParentId,dept.getId());
parentWrapper.eq(Dept::getDeptName,parentDeptName);
parentWrapper.eq(Dept::getIsDeleted,0);
Dept parent = deptService.getOne(parentWrapper);
LambdaQueryWrapper<Dept> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(Dept::getParentId,parent.getId());
wrapper.eq(Dept::getIsDeleted,0);
List<Dept> list = deptService.list(wrapper);
if(parent != null){
LambdaQueryWrapper<Dept> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(Dept::getParentId,parent.getId());
wrapper.eq(Dept::getIsDeleted,0);
list = deptService.list(wrapper);
}
return R.data(list);
}

Loading…
Cancel
Save