Browse Source

Merge remote-tracking branch 'origin/prod-20240506' into prod-20240506

zhongwei
ty 5 months ago
parent
commit
e93dcd665a
  1. 3
      hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/main/vo/RealStationVo.java
  2. 5
      hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/station/entity/StationEntity.java
  3. 25
      hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/dto/CarCheckTemplateDTO.java
  4. 35
      hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/entity/CarCheckTemplateDetailEntity.java
  5. 26
      hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/entity/CarCheckTemplateEntity.java
  6. 25
      hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/vo/CarCheckTemplateDetailVO.java
  7. 2
      hzims-service/equipment/src/main/java/com/hnac/hzims/equipment/controller/EmAssociationController.java
  8. 17
      hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/monitor/service/impl/AlarmSaveServiceImpl.java
  9. 2
      hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/mqtt/HZ300MqttConsumer.java
  10. 4
      hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/show/mapper/AlarmHandleMapper.java
  11. 12
      hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/show/mapper/AlarmHandleMapper.xml
  12. 4
      hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/show/service/AlarmHandleService.java
  13. 8
      hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/show/service/impl/AlarmHandleServiceImpl.java
  14. 2
      hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/source/service/impl/MessageServiceImpl.java
  15. 14
      hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/scheduled/RealTargetScheduledTask.java
  16. 4
      hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/service/alarm/impl/AlarmServiceImpl.java
  17. 2
      hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/service/operation/home/RealTargetService.java
  18. 82
      hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/service/operation/home/impl/RealTargetServiceImpl.java
  19. 1
      hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/service/operation/monitor/impl/MonitorServiceImpl.java
  20. 1
      hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/service/operation/plate/impl/DataServiceImpl.java
  21. 35
      hzims-service/inspect/src/main/java/com/hnac/hzinfo/inspect/offline/service/impl/InspectOfflineServiceImpl.java
  22. 5
      hzims-service/message/src/main/java/com/hnac/hzims/message/fegin/MessageClient.java
  23. 4
      hzims-service/message/src/main/java/com/hnac/hzims/message/service/IMessageService.java
  24. 8
      hzims-service/message/src/main/java/com/hnac/hzims/message/service/impl/MailMessageServiceImpl.java
  25. 29
      hzims-service/message/src/main/java/com/hnac/hzims/message/service/impl/SmsMessageServiceImpl.java
  26. 2
      hzims-service/operational/src/main/java/com/hnac/hzims/operational/census/service/impl/TargetServiceImpl.java
  27. 17
      hzims-service/operational/src/main/java/com/hnac/hzims/operational/main/service/impl/HydropowerServiceImpl.java
  28. 6
      hzims-service/operational/src/main/java/com/hnac/hzims/operational/station/service/impl/RealMonitorServiceImpl.java
  29. 1
      hzims-service/operational/src/main/resources/db/2.0.6.sql
  30. 69
      hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/controller/CarController.java
  31. 15
      hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/controller/HygieneController.java
  32. 18
      hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/controller/RehearsalController.java
  33. 18
      hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/controller/TrainController.java
  34. 15
      hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/CarCheckTemplateDetailMapper.java
  35. 5
      hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/CarCheckTemplateDetailMapper.xml
  36. 20
      hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/CarCheckTemplateMapper.java
  37. 18
      hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/CarCheckTemplateMapper.xml
  38. 2
      hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/HygieneTemplateMapper.xml
  39. 11
      hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/TrainPlanMapper.xml
  40. 61
      hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/ICarCheckTemplateService.java
  41. 8
      hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/IHygienePlanService.java
  42. 8
      hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/IRehearsalPlanService.java
  43. 8
      hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/ITrainPlanService.java
  44. 67
      hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/CarCheckRecordServiceImpl.java
  45. 37
      hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/CarCheckTemplateDetailServiceImpl.java
  46. 161
      hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/CarCheckTemplateServiceImpl.java
  47. 33
      hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/HygienePlanServiceImpl.java
  48. 28
      hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/ICarCheckTemplateDetailService.java
  49. 33
      hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/RehearsalPlanServiceImpl.java
  50. 34
      hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/TrainPlanServiceImpl.java
  51. 3
      hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/utils/BaseUtil.java
  52. 30
      hzims-service/safeproduct/src/main/resources/db/2.0.1.sql

3
hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/main/vo/RealStationVo.java

@ -34,6 +34,9 @@ public class RealStationVo implements Serializable {
@ApiModelProperty("最大前池水位")
private Double waterLevelMax;
@ApiModelProperty("下限前池水位")
private Double downWaterLevel;
@ApiModelProperty("前池水位")
private Double waterLevel;

5
hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/station/entity/StationEntity.java

@ -99,6 +99,11 @@ public class StationEntity extends TenantEntity implements Serializable {
@TableField(updateStrategy = FieldStrategy.IGNORED)
private Double waterLevelMax;
@ApiModelProperty("前池下限水位")
@JsonSerialize(nullsUsing = NullSerializer.class)
@TableField(updateStrategy = FieldStrategy.IGNORED)
private Double downWaterLevel;
@ApiModelProperty("经度(东经)")
@JsonSerialize(nullsUsing = NullSerializer.class)
private Float lgtd;

25
hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/dto/CarCheckTemplateDTO.java

@ -0,0 +1,25 @@
package com.hnac.hzims.safeproduct.dto;
import com.hnac.hzims.safeproduct.entity.CarCheckTemplateDetailEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* @date 2024-05-30
*/
@Data
@ApiModel(value = "车检记录模板DTO类")
public class CarCheckTemplateDTO {
@ApiModelProperty("模板id")
private Long id;
@ApiModelProperty("模板名称")
private String templateName;
@ApiModelProperty("模板详情列表")
private List<CarCheckTemplateDetailEntity> detailList;
}

35
hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/entity/CarCheckTemplateDetailEntity.java

@ -0,0 +1,35 @@
package com.hnac.hzims.safeproduct.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.core.mp.base.BaseEntity;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
/**
* 车检模板详情服务类
*
* @date 2024-05-30
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("hzims_car_check_template_detail")
@ApiModel(value = "车检模板详情实体类")
public class CarCheckTemplateDetailEntity extends BaseEntity {
@ApiModelProperty("车检记录id")
private Long templateId;
@NotNull
@Size(max = 500, message = "检查项目长度不能超过50")
@ApiModelProperty("检查项目")
private String checkItem;
@NotNull
@ApiModelProperty("检查内容")
private String checkContent;
}

26
hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/entity/CarCheckTemplateEntity.java

@ -0,0 +1,26 @@
package com.hnac.hzims.safeproduct.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.core.mp.base.BaseEntity;
/**
* @date 2024-05-28
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("hzims_car_check_template")
@ApiModel(value = "车检模板实体类")
public class CarCheckTemplateEntity extends BaseEntity {
@ApiModelProperty("模板名称")
private String templateName;
@TableField(exist = false)
@ApiModelProperty("创建机构名称")
private String createDeptName;
}

25
hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/vo/CarCheckTemplateDetailVO.java

@ -0,0 +1,25 @@
package com.hnac.hzims.safeproduct.vo;
import com.hnac.hzims.safeproduct.entity.CarCheckTemplateDetailEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* @date 2024-05-30
*/
@Data
@ApiModel(value = "车检模板详情VO类")
public class CarCheckTemplateDetailVO {
@ApiModelProperty("模板id")
private Long id;
@ApiModelProperty("模板名称")
private String templateName;
@ApiModelProperty("模板详情列表")
private List<CarCheckTemplateDetailEntity> templateDetailList;
}

2
hzims-service/equipment/src/main/java/com/hnac/hzims/equipment/controller/EmAssociationController.java

@ -76,6 +76,4 @@ public class EmAssociationController extends BladeController {
return R.status(emAssociationService.deleteLogic(Func.toLongList(ids)));
}
}

17
hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/monitor/service/impl/AlarmSaveServiceImpl.java

@ -18,6 +18,8 @@ import lombok.extern.slf4j.Slf4j;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.CollectionUtil;
import org.springblade.core.tool.utils.ObjectUtil;
import org.springblade.core.tool.utils.StringUtil;
import org.springblade.server.domain.Sys;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Service;
@ -59,9 +61,9 @@ public class AlarmSaveServiceImpl implements AlarmSaveService {
return false;
}
// 步骤2.查询当天处理的告警
List<String> handlers = handleService.sameDayContent();
List<String> handlers = handleService.sameDayContent(stations.getData().stream().map(StationEntity::getCode).collect(Collectors.toList()));
// 步骤3.查询延后未完成的告警
List<String> delays = handleService.incompleteContent();
List<String> delays = handleService.incompleteContent(stations.getData().stream().map(StationEntity::getCode).collect(Collectors.toList()));
// 步骤4.近5分钟内告警
Set<String> keys = stringRedisTemplate.keys("hzims:queue:filter:alarm" + "*");
// 步骤5.遍历保存告警数据
@ -79,6 +81,12 @@ public class AlarmSaveServiceImpl implements AlarmSaveService {
if(CollectionUtil.isNotEmpty(delays) && delays.contains(alarm.getAlarmContext())){
return;
}
// 告警站点名称截取
if(StringUtil.isNotBlank(alarm.getAlarmContext()) && !AlarmConstants.CONDITION_ALARM.equals(alarm.getAlarmSource()) && !AlarmConstants.INTERRUPT.equals(alarm.getAlarmType())
&& !AlarmConstants.ABNORMAL.equals(alarm.getAlarmType())){
String[] countext = alarm.getAlarmContext().split("\\.");
alarm.setAlarmContext(countext[countext.length - 1]);
}
// 近5分钟内告警重复
if(CollectionUtil.isNotEmpty(keys)){
for (String key : keys) {
@ -88,10 +96,6 @@ public class AlarmSaveServiceImpl implements AlarmSaveService {
}
}
}
// fpd告警拼接
if(AlarmConstants.EARLY_WARNING.equals(alarm.getAlarmSource())){
alarm.setAlarmContext(optional.get().getName() + "." + alarm.getAlarmContext());
}
// 步骤3.站点参数设置
alarm.setCreateDept(optional.get().getCreateDept());
alarm.setStationName(optional.get().getName());
@ -126,5 +130,4 @@ public class AlarmSaveServiceImpl implements AlarmSaveService {
});
return true;
}
}

2
hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/mqtt/HZ300MqttConsumer.java

@ -29,7 +29,7 @@ public class HZ300MqttConsumer implements SubscribeCallBack {
private AlarmSaveService alarmSaveService;
@Override
public void onMessage(Map<String, Object> data) {
log.info("HZ3000队列监听到消息 : {}",data);
log.error("HZ3000队列监听到消息 : {}",data);
//消费代码
List<AlarmEntity> alarmEntities = systemAlarmService.receiveMessage(JSONObject.toJSONString(data));
if(CollectionUtil.isEmpty(alarmEntities)){

4
hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/show/mapper/AlarmHandleMapper.java

@ -22,7 +22,7 @@ public interface AlarmHandleMapper extends UserDataScopeBaseMapper<AlarmHandleEn
List<String> handles(@Param("start") String start,@Param("end") String end);
List<String> sameDayContent(@Param("start") String start,@Param("end") String end);
List<String> sameDayContent(@Param("start") String start,@Param("end") String end,@Param("stations") List<String> stations);
List<String> incompleteContent(@Param("end") String end);
List<String> incompleteContent(@Param("end") String end,@Param("stations") List<String> stations);
}

12
hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/show/mapper/AlarmHandleMapper.xml

@ -50,6 +50,12 @@
<if test="start != null and end != null">
AND HANDLER.CREATE_TIME BETWEEN #{start} AND #{end}
</if>
<if test="stations != null">
and HANDLER.STATION_CODE in
<foreach collection="stations" item="station" index="index" open="(" close=")" separator=",">
#{station}
</foreach>
</if>
</where>
</select>
<select id="incompleteContent" resultType="java.lang.String">
@ -59,6 +65,12 @@
HANDLER.IS_DELETED = 0
AND HANDLER.HANDLE_WAY = 1
AND (HANDLER.DELAY_TIME &gt; #{end})
<if test="stations != null">
and HANDLER.STATION_CODE in
<foreach collection="stations" item="station" index="index" open="(" close=")" separator=",">
#{station}
</foreach>
</if>
</where>
</select>
</mapper>

4
hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/show/service/AlarmHandleService.java

@ -26,7 +26,7 @@ public interface AlarmHandleService extends BaseService<AlarmHandleEntity> {
List<String> handles();
List<String> sameDayContent();
List<String> sameDayContent(List<String> stations);
List<String> incompleteContent();
List<String> incompleteContent(List<String> stations);
}

8
hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/show/service/impl/AlarmHandleServiceImpl.java

@ -173,12 +173,12 @@ public class AlarmHandleServiceImpl extends BaseServiceImpl<AlarmHandleMapper, A
* @return
*/
@Override
public List<String> sameDayContent() {
public List<String> sameDayContent(List<String> stations) {
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.HOUR_OF_DAY,-1);
String start = DateUtil.format(calendar.getTime(),DateUtil.PATTERN_DATE) + " 00:00:00";
String end = DateUtil.format(new Date(),DateUtil.PATTERN_DATETIME);
return this.baseMapper.sameDayContent(start,end);
return this.baseMapper.sameDayContent(start,end,stations);
}
/**
@ -186,8 +186,8 @@ public class AlarmHandleServiceImpl extends BaseServiceImpl<AlarmHandleMapper, A
* @return
*/
@Override
public List<String> incompleteContent() {
public List<String> incompleteContent(List<String> stations) {
String end = DateUtil.format(new Date(),DateUtil.PATTERN_DATETIME);
return this.baseMapper.incompleteContent(end);
return this.baseMapper.incompleteContent(end,stations);
}
}

2
hzims-service/hzims-alarm/src/main/java/com/hnac/hzims/alarm/source/service/impl/MessageServiceImpl.java

@ -86,7 +86,7 @@ public class MessageServiceImpl implements MessageService {
message.setSubject(MessageConstants.BusinessClassifyEnum.WARNING.getDescription());
message.setTaskId(entity.getId());
message.setTenantId(stationByCode.getData().getTenantId());
message.setContent(entity.getAlarmContext());
message.setContent(entity.getStationName() + "." +entity.getAlarmContext());
message.setDeptId(dept);
R<String> deptName = sysClient.getDeptName(dept);
if (deptName.isSuccess()) {

14
hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/scheduled/RealTargetScheduledTask.java

@ -8,7 +8,6 @@ import lombok.extern.slf4j.Slf4j;
import org.springblade.core.tool.utils.DateUtil;
import org.springblade.core.tool.utils.Func;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.util.Arrays;
@ -157,19 +156,6 @@ public class RealTargetScheduledTask {
return new ReturnT<>("SUCCESS");
}
/**
* 获取站点近3年发电量数据
*/
@XxlJob(LOAD_POWER_DATA_NEW)
//@Scheduled(cron = "0/40 * * * * ? ")
public ReturnT<String> loadPowerDataNew(String param) {
if (Func.isBlank(param)) {
param = DateUtil.format(new Date(), "yyyy-MM");
}
service.loadPowerDataNew(param, Arrays.asList(HomePageConstant.HYDROPOWER,HomePageConstant.PHOTOVOLTAIC),2,3);
return new ReturnT<>("SUCCESS");
}
@XxlJob(WIND_POWER_GENERATION_RECENT_YEAR)
//@Scheduled(cron = "0/40 * * * * ? ")

4
hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/service/alarm/impl/AlarmServiceImpl.java

@ -247,6 +247,8 @@ public class AlarmServiceImpl implements AlarmService {
if(InterruptionConstants.ABNORMAL_STATUS.equals(soe.getSoeAlarmType())){
entity.setStatus(1);
}
return entity;
}).collect(Collectors.toList());
if(CollectionUtil.isEmpty(entities)){
@ -274,7 +276,7 @@ public class AlarmServiceImpl implements AlarmService {
alarm.setType(Integer.parseInt(entity.getType()));
alarm.setStation(entity.getStationId());
alarm.setRealId(entity.getRealId());
alarm.setContext(entity.getStationName() + "." + entity.getSoeExplain());
alarm.setContext(entity.getSoeExplain());
alarm.setState(entity.getStatus());
log.error("send_interruption_msg : {}",JsonUtil.toJson(alarm));
mqttSender.sendToMqtt(InterruptionConstants.HZ3000_TOPIC_PREFIX + entity.getStationId(), JsonUtil.toJson(alarm));

2
hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/service/operation/home/RealTargetService.java

@ -28,7 +28,5 @@ public interface RealTargetService {
void loadPowerData(String param, List<Integer> types, Integer serveType, int year);
void loadPowerDataNew(String param, List<Integer> types, Integer serveType, int year);
void loadPowerDataByWindEnergy(String param, List<Integer> types, Integer serveType, int year,String key);
}

82
hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/service/operation/home/impl/RealTargetServiceImpl.java

@ -1252,22 +1252,25 @@ public class RealTargetServiceImpl implements RealTargetService {
List<List<StationEntity>> limits = Stream.iterate(0, n -> n + 1).limit(limit).parallel().map(a -> stations.stream().skip((long) a * 3).limit(3).parallel().collect(Collectors.toList())).collect(Collectors.toList());
CountDownLatch countDownLatch = new CountDownLatch(limits.size());
for(List<StationEntity> item : limits){
pool.submit(()->{
item.forEach(station->{
// 站点设备集合
List<EminfoAndEmParamVo> stationDevices = devices.stream().filter(device -> device.getCreateDept().equals(station.getRefDept())).collect(Collectors.toList());
Map<String, Float> generateMap = this.getGenerateYear(station,stationDevices,start,end);
if(MapUtils.isEmpty(generateMap)){
return;
}
powerMap.put(station.getId(),generateMap);
try{
pool.submit(()->{
item.forEach(station->{
// 站点设备集合
List<EminfoAndEmParamVo> stationDevices = devices.stream().filter(device -> device.getCreateDept().equals(station.getRefDept())).collect(Collectors.toList());
Map<String, Float> generateMap = this.getGenerateYear(station,stationDevices,start,end);
if(MapUtils.isEmpty(generateMap)){
return;
}
powerMap.put(station.getId(),generateMap);
});
countDownLatch.countDown();
log.error("pool_item_execute_complete: {}" ,item.stream().map(StationEntity::getName).collect(Collectors.toList()));
});
countDownLatch.countDown();
log.error("pool_item_execute_complete: {}" ,item.stream().map(StationEntity::getName).collect(Collectors.toList()));
});
}catch (Exception e){
log.error("pool_item_execute_complete_error : {}" ,e.getMessage());
}
}
//所有模板数据获取完成后释放锁
// 等待所有线程执行完成
try {
countDownLatch.await();
} catch (InterruptedException e) {
@ -1277,57 +1280,6 @@ public class RealTargetServiceImpl implements RealTargetService {
redisTemplate.opsForValue().set(recent_year_power_data, powerMap);
}
@Override
public void loadPowerDataNew(String param, List<Integer> types, Integer serveType, int year) {
// 站点查询
List<StationEntity> stations = stationService.list(new LambdaQueryWrapper<StationEntity>() {{
if (CollectionUtil.isNotEmpty(types)) {
in(StationEntity::getType, types);
}
}});
// 设备信息
List<EminfoAndEmParamVo> devices = JSONObject.parseObject(redisTemplate.opsForValue().get(device_cache_cofig_final).toString(), new TypeReference<List<EminfoAndEmParamVo>>() {
});
// 开始时间
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.MONTH, -calendar.get(Calendar.MONTH) + 12);
calendar.add(Calendar.DATE, -calendar.get(Calendar.DATE) + 1);
String end = DateUtil.format(calendar.getTime(),DateUtil.PATTERN_DATE) + " 00:00:00";
// 结束日期
calendar.set(Calendar.YEAR, calendar.get(Calendar.YEAR) - year);
calendar.add(Calendar.MONTH, -calendar.get(Calendar.MONTH));
String start = DateUtil.format(calendar.getTime(),DateUtil.PATTERN_DATE) + " 00:00:00";
// 存储数据map :<站点id,<月份,发电量>>
Map<Long, Map<String, Float>> powerMap = new CopyOnWriteMap<>();
// 将站点切割
int limit = countStep(stations.size());
List<List<StationEntity>> limits = Stream.iterate(0, n -> n + 1).limit(limit).parallel().map(a -> stations.stream().skip((long) a * 3).limit(3).parallel().collect(Collectors.toList())).collect(Collectors.toList());
CountDownLatch countDownLatch = new CountDownLatch(limits.size());
for(List<StationEntity> item : limits){
pool.submit(()->{
item.forEach(station->{
// 站点设备集合
List<EminfoAndEmParamVo> stationDevices = devices.stream().filter(device -> device.getCreateDept().equals(station.getRefDept())).collect(Collectors.toList());
Map<String, Float> generateMap = this.lastReduceFirst(station,stationDevices,start,end);
if(MapUtils.isEmpty(generateMap)){
return;
}
powerMap.put(station.getId(),generateMap);
});
countDownLatch.countDown();
log.error("pool_item_execute_complete: {}" ,item.stream().map(StationEntity::getName).collect(Collectors.toList()));
});
}
//所有模板数据获取完成后释放锁
try {
countDownLatch.await();
} catch (InterruptedException e) {
e.printStackTrace();
Thread.currentThread().interrupt();
}
redisTemplate.opsForValue().set(recent_year_power_data_test, JSONObject.toJSONString(powerMap));
}
private Map<String, Float> lastReduceFirst(StationEntity station, List<EminfoAndEmParamVo> devices, String start, String end) {
List<PowerMonthVo> datas = new ArrayList<>();

1
hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/service/operation/monitor/impl/MonitorServiceImpl.java

@ -500,6 +500,7 @@ public class MonitorServiceImpl implements MonitorService {
}
realStation.setStationCode(optional.get().getCode());
realStation.setStationName(optional.get().getName());
realStation.setDownWaterLevel(Optional.ofNullable(optional.get().getDownWaterLevel()).orElse(0.0));
realStation.setWaterLevelMax(Optional.ofNullable(optional.get().getLimitWaterLevel()).orElse(0.0));
realStation.setServerType(optional.get().getServeType());
realStation.setStationDeptId(optional.get().getRefDept());

1
hzims-service/hzims-scheduled/src/main/java/com/hnac/hzims/scheduled/service/operation/plate/impl/DataServiceImpl.java

@ -97,6 +97,7 @@ public class DataServiceImpl implements DataService {
List<AnalyzeDataConditionPO> signboardConditions = new ArrayList<>();
AnalyzeDataConditionPO analyzeDataConditionPO = new AnalyzeDataConditionPO();
analyzeDataConditionPO.setFull(1);
po.setDeviceCode(deviceCode);
analyzeDataConditionPO.setSignages(signages);
analyzeDataConditionPO.setKeepFigures(2);

35
hzims-service/inspect/src/main/java/com/hnac/hzinfo/inspect/offline/service/impl/InspectOfflineServiceImpl.java

@ -855,22 +855,27 @@ public class InspectOfflineServiceImpl implements IOfflineDataService {
*/
@Transactional(rollbackFor = Exception.class)
public void updateData(BaseService service, List<? extends SyncBO> data) {
if (CollectionUtil.isEmpty(data)) {
return;
}
Map<Integer, List<SyncBO>> dataList = data.stream().collect(Collectors.groupingBy(o -> o.getOfflineFlag() != null ? o.getOfflineFlag() : 0));
//新增
if (CollectionUtil.isNotEmpty(dataList.get(1))) {
service.saveBatch(dataList.get(1));
}
//修改
if (CollectionUtil.isNotEmpty(dataList.get(2))) {
service.updateBatchById(dataList.get(2));
}
//删除
if (CollectionUtil.isNotEmpty(dataList.get(3))) {
service.deleteLogic(dataList.get(3).stream().map(SyncBO::getPrimaryKey).collect(Collectors.toList()));
try{
if (CollectionUtil.isEmpty(data)) {
return;
}
Map<Integer, List<SyncBO>> dataList = data.stream().collect(Collectors.groupingBy(o -> o.getOfflineFlag() != null ? o.getOfflineFlag() : 0));
//新增
if (CollectionUtil.isNotEmpty(dataList.get(1))) {
service.saveBatch(dataList.get(1));
}
//修改
if (CollectionUtil.isNotEmpty(dataList.get(2))) {
service.updateBatchById(dataList.get(2));
}
//删除
if (CollectionUtil.isNotEmpty(dataList.get(3))) {
service.deleteLogic(dataList.get(3).stream().map(SyncBO::getPrimaryKey).collect(Collectors.toList()));
}
}catch (Exception exception){
log.error("offline_update_data : {}",exception.getMessage());
}
}
/**

5
hzims-service/message/src/main/java/com/hnac/hzims/message/fegin/MessageClient.java

@ -179,9 +179,6 @@ public class MessageClient extends BladeController implements IMessageClient{
try {
for (Long pushId : Func.toLongList(",", smsImmediatelyPushDTO.getPusher())) {
User user = UserCache.getUser(pushId);
if (ObjectUtil.isEmpty(user)||ObjectUtil.isEmpty(user.getPhone())){
continue;
}
MessagePushRecordEntity record = BeanUtil.copy(smsImmediatelyPushDTO, MessagePushRecordEntity.class);
record.setMessageId(IdWorker.getId());
record.setPusherName(user.getRealName());
@ -199,7 +196,7 @@ public class MessageClient extends BladeController implements IMessageClient{
record.setSmsParam(JSON.toJSONString(params));
Boolean flag = recordService.sendSmsImmediatelyMsg(record);
if (!flag) {
log.error("短信推送失败,参数:" + record.toString());
log.error("短信推送失败,参数:{}", JSON.toJSONString(record));
}
}
return R.data(true);

4
hzims-service/message/src/main/java/com/hnac/hzims/message/service/IMessageService.java

@ -35,9 +35,9 @@ public interface IMessageService {
if(ObjectUtil.isNotEmpty(user)) {
switch(type) {
case MAIL_PUSH:
return Func.isNotEmpty(user.getEmail()) ? user.getEmail() : Long.toString(pusher);
return user.getEmail();
case SMS_PUSH:
return Func.isNotEmpty(user.getPhone()) ? user.getPhone() : Long.toString(pusher);
return user.getPhone();
default:
break;
}

8
hzims-service/message/src/main/java/com/hnac/hzims/message/service/impl/MailMessageServiceImpl.java

@ -13,12 +13,14 @@ import lombok.extern.slf4j.Slf4j;
import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.CollectionUtil;
import org.springblade.core.tool.utils.Func;
import org.springblade.core.tool.utils.ObjectUtil;
import org.springblade.core.tool.utils.StringUtil;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Service;
import org.springframework.util.Assert;
import org.springframework.web.multipart.MultipartFile;
import javax.mail.MessagingException;
@ -79,6 +81,10 @@ public class MailMessageServiceImpl implements IMessageService {
@Override
public boolean send(MessagePushRecordEntity request) {
String account = getAccountByPusher(Long.parseLong(request.getPusher()), request.getType());
Assert.isTrue(Func.isNotEmpty(account) && StringUtil.isNotBlank(account) , () -> {
throw new ServiceException("未查询到相关用户,邮件推送失败!");
});
// 创建复杂有限发送对象
MimeMessage mimeMessage = mailSender.createMimeMessage();
MimeMessageHelper messageHelper;
@ -87,7 +93,7 @@ public class MailMessageServiceImpl implements IMessageService {
// 设置发件人邮箱(若配置默认邮箱则不用再设置)
messageHelper.setFrom(fromAccount);
// 设置收件人邮箱
messageHelper.setTo(getAccountByPusher(Long.parseLong(request.getPusher()),request.getType()));
messageHelper.setTo(account);
// 设置抄报人邮箱(可以不填写)
if(StringUtil.isNotBlank(request.getCcAccount())) {
messageHelper.setCc(request.getCcAccount());

29
hzims-service/message/src/main/java/com/hnac/hzims/message/service/impl/SmsMessageServiceImpl.java

@ -15,6 +15,7 @@ import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.sms.model.SmsResponse;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.Func;
import org.springblade.core.tool.utils.StringUtil;
import org.springblade.resource.feign.ISmsClient;
import org.springframework.stereotype.Service;
import org.springframework.util.Assert;
@ -48,11 +49,15 @@ public class SmsMessageServiceImpl implements IMessageService {
@Override
public boolean send(MessagePushRecordEntity request) {
String account = this.getAccountByPusher(Long.parseLong(request.getPusher()), request.getType());
Assert.isTrue(Func.isNotEmpty(account) && StringUtil.isNotBlank(account) ,() -> {
throw new ServiceException("未查询到相关用户,短信推送失败!");
});
R<SmsResponse> response = smsClient.sendMessage(
Func.isNotEmpty(AuthUtil.getTenantId()) ? AuthUtil.getTenantId() : request.getTenantId(),
request.getResourceCode(),
request.getSmsParam(),
this.getAccountByPusher(Long.parseLong(request.getPusher()),request.getType())
Func.isNotEmpty(AuthUtil.getTenantId()) ? AuthUtil.getTenantId() : request.getTenantId(),
request.getResourceCode(),
request.getSmsParam(),
account
);
if(ObjectUtils.isEmpty(response.getData())) {
Assert.isTrue(response.isSuccess(), () -> {
@ -68,11 +73,15 @@ public class SmsMessageServiceImpl implements IMessageService {
}
public R sendSmsByRecord(MessagePushRecordEntity request) {
return smsClient.sendMessage(
Func.isNotEmpty(AuthUtil.getTenantId()) ? AuthUtil.getTenantId() : request.getTenantId(),
request.getResourceCode(),
request.getSmsParam(),
this.getAccountByPusher(Long.parseLong(request.getPusher()),request.getType())
);
String account = this.getAccountByPusher(Long.parseLong(request.getPusher()), request.getType());
if(Func.isNotEmpty(account) && StringUtil.isNotBlank(account)) {
return smsClient.sendMessage(
Func.isNotEmpty(AuthUtil.getTenantId()) ? AuthUtil.getTenantId() : request.getTenantId(),
request.getResourceCode(),
request.getSmsParam(),
account
);
}
return R.fail("未查询到相关用户,短信推送失败!");
}
}

2
hzims-service/operational/src/main/java/com/hnac/hzims/operational/census/service/impl/TargetServiceImpl.java

@ -164,7 +164,7 @@ public class TargetServiceImpl implements TargetService {
double sum = stationDevices.stream().mapToDouble(EminfoAndEmParamVo::getInstalledCapacity).sum();
item.setInstalledCapacity(sum);
// 装机容量详情
List<String> details = stationDevices.stream().map(device-> "[" + device.getName() + " " +device.getInstalledCapacity() +"kW]").collect(Collectors.toList());
List<String> details = stationDevices.stream().map(device-> "[" + device.getName() + " " + (int) Math.floor(device.getInstalledCapacity()) +"kW]").collect(Collectors.toList());
item.setDetail(String.join("|",details));
return item;
}).filter(capacity->Math.abs(capacity.getInstalledCapacity()) > 0).collect(Collectors.toList());

17
hzims-service/operational/src/main/java/com/hnac/hzims/operational/main/service/impl/HydropowerServiceImpl.java

@ -403,6 +403,9 @@ public class HydropowerServiceImpl implements HydropowerService {
if(CollectionUtil.isEmpty(targetList)){
return;
}
// 月发电量
float powerMon = (float) targetList.stream().filter(o-> deptId.equals(o.getDeptId())).mapToDouble(HydropowerUnitTargetVo::getPowerMon).sum();
response.setPowerYear(powerMon);
// 年发电量
float powerYear = (float) targetList.stream().filter(o-> deptId.equals(o.getDeptId())).mapToDouble(HydropowerUnitTargetVo::getPowerYear).sum();
response.setPowerYear(powerYear);
@ -428,7 +431,10 @@ public class HydropowerServiceImpl implements HydropowerService {
return;
}
String month = DateUtil.format(new Date(),"yyyy-MM") + "-01";
response.setPowerMon(map.get(id).getOrDefault(month, 0f));
float powerMon = map.get(id).getOrDefault(month, 0f);
if(powerMon > 0){
response.setPowerMon(powerMon);
}
}
@ -650,14 +656,17 @@ public class HydropowerServiceImpl implements HydropowerService {
if (MapUtils.isEmpty(map)) {
return kpi;
}
String month = DateUtil.format(new Date(),"yyyy-MM") + "-01";
// 当月发电量
kpi.setGenerateMon(map.entrySet().stream().filter(o->stations.stream().map(StationEntity::getId).collect(Collectors.toList()).contains(o.getKey())).mapToDouble(entry->{
String month = DateUtil.format(new Date(),"yyyy-MM") + "-01";
double generateMon = map.entrySet().stream().filter(o->stations.stream().map(StationEntity::getId).collect(Collectors.toList()).contains(o.getKey())).mapToDouble(entry->{
if(entry.getValue().containsKey(month)){
return Double.valueOf(entry.getValue().get(month));
}
return 0.0;
}).sum());
}).sum();
if(generateMon > 0){
kpi.setGenerateMon(generateMon);
}
// 今年发电趋势
kpi.setPowerMonthVoList(this.handlePowerFinish(stations,map));
// 近3年发电量

6
hzims-service/operational/src/main/java/com/hnac/hzims/operational/station/service/impl/RealMonitorServiceImpl.java

@ -336,12 +336,12 @@ public class RealMonitorServiceImpl implements IRealMonitorService {
return;
}
station.setWaterLevel(levelList.get(0));
if(ObjectUtil.isEmpty(station.getWaterLevelMax()) || ObjectUtil.isEmpty(station.getWaterLevel()) || station.getWaterLevelMax() <= 0 || station.getWaterLevel() <= 0){
if(station.getWaterLevel() <= 0){
return;
}
if(station.getWaterLevelMax() < station.getWaterLevel()){
if(station.getWaterLevelMax() > 0 && station.getWaterLevel() > station.getWaterLevelMax()){
station.setWaterColor(2);
}else if((station.getWaterLevel() / station.getWaterLevelMax()) > 0.9){
}else if(station.getDownWaterLevel() > 0 && station.getWaterLevel() < station.getDownWaterLevel()){
station.setWaterColor(1);
}
}

1
hzims-service/operational/src/main/resources/db/2.0.6.sql

@ -0,0 +1 @@
ALTER TABLE `hzims_station` ADD COLUMN `DOWN_WATER_LEVEL` decimal(6, 2) NULL DEFAULT NULL COMMENT '下限水位' AFTER `LIMIT_WATER_LEVEL`;

69
hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/controller/CarController.java

@ -5,6 +5,7 @@ import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import com.hnac.hzims.common.utils.Condition;
import com.hnac.hzims.safeproduct.Constants;
import com.hnac.hzims.safeproduct.dto.CarCheckRecordDTO;
import com.hnac.hzims.safeproduct.dto.CarCheckTemplateDTO;
import com.hnac.hzims.safeproduct.dto.CarMaintenanceConfirmationDTO;
import com.hnac.hzims.safeproduct.dto.CarUsedRecordConfirmationDTO;
import com.hnac.hzims.safeproduct.entity.*;
@ -54,6 +55,8 @@ public class CarController extends BladeController {
private final ICarInsuranceService carInsuranceService;
private final ICarCheckTemplateService carCheckTemplateService;
@PostMapping("/saveCar")
@ApiOperation(value = "新增车辆")
@ApiOperationSupport(order = 1)
@ -269,31 +272,47 @@ public class CarController extends BladeController {
return R.data(page);
}
// @ApiOperation(value = "新增车检记录模板")
// @ApiOperationSupport(order = 39)
// public R saveCarCheckRecordTemplate() {
//
// }
//
// @ApiOperationSupport(order = 40)
// public R updateCarCheckRecordTemplate() {
//
// }
//
// @ApiOperationSupport(order = 41)
// public R removeCarCheckRecordTemplate() {
//
// }
//
// @ApiOperationSupport(order = 42)
// public R carCheckRecordTemplateDetail() {
//
// }
//
// @ApiOperationSupport(order = 43)
// public R carCheckRecordTemplatePage() {
//
// }
@PostMapping("/saveCarCheckTemplate")
@ApiOperation(value = "新增车检模板")
@ApiOperationSupport(order = 39)
@Operate(label = "新增车检模板", type = BusinessType.INSERT, ignore = false)
public R saveCarCheckTemplate(@RequestBody CarCheckTemplateDTO dto) {
return R.status(carCheckTemplateService.saveCarCheckTemplate(dto));
}
@PostMapping("/updateCarCheckTemplate")
@ApiOperation(value = "修改车检模板")
@ApiOperationSupport(order = 40)
@Operate(label = "修改车检模板", type = BusinessType.UPDATE, ignore = false)
public R updateCarCheckTemplate(@RequestBody CarCheckTemplateDTO dto) {
return R.status(carCheckTemplateService.updateCarCheckTemplate(dto));
}
@GetMapping("/removeCarCheckTemplate")
@ApiOperation(value = "删除车检模板")
@ApiOperationSupport(order = 41)
@Operate(label = "删除车检模板", type = BusinessType.DELETE, ignore = false)
public R removeCarCheckTemplate(@RequestParam Long id) {
return R.status(carCheckTemplateService.removeCarCheckTemplate(id));
}
@GetMapping("/carCheckTemplateDetail")
@ApiOperation(value = "车检模板详情")
@ApiOperationSupport(order = 42)
@Operate(label = "车检模板详情", type = BusinessType.QUERY, ignore = false)
public R<CarCheckTemplateDetailVO> carCheckTemplateDetail(@RequestParam Long id) {
CarCheckTemplateDetailVO vo = carCheckTemplateService.getCarCheckTemplateDetail(id);
return R.data(vo);
}
@GetMapping("/carCheckTemplatePage")
@ApiOperation(value = "车检模板分页")
@ApiOperationSupport(order = 43)
@Operate(label = "车检模板分页", type = BusinessType.QUERY, ignore = false)
public R<IPage<CarCheckTemplateEntity>> carCheckTemplatePage(@ApiIgnore @RequestParam Map<String, Object> param, Query query) {
IPage<CarCheckTemplateEntity> page = carCheckTemplateService.getCarCheckTemplatePage(query, param);
return R.data(page);
}
@GetMapping("/exportCarMaintenanceData")
@ApiOperation(value = "导出车辆维保记录单")

15
hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/controller/HygieneController.java

@ -230,4 +230,19 @@ public class HygieneController extends BladeController {
IPage<HygieneTemplateEntity> page = hygieneTemplateService.getHygieneTemplatePage(param, query);
return R.data(page);
}
@GetMapping("/detailListByMonth")
@ApiImplicitParams({
@ApiImplicitParam(name = "unit", value = "单位", dataType = "query", paramType = "string"),
@ApiImplicitParam(name = "scheduledStartTime", value = "计划开始时间", dataType = "query", paramType = "string"),
@ApiImplicitParam(name = "scheduledEndTime", value = "计划结束时间", dataType = "query", paramType = "string"),
@ApiImplicitParam(name = "hygienePlanStatus", value = "卫生计划状态", dataType = "query", paramType = "string")
})
@ApiOperation(value = "卫生月度详情列表")
@ApiOperationSupport(order = 20)
@Operate(label = "卫生月度详情列表", type = BusinessType.QUERY, ignore = false)
public R<IPage<HygienePlanEntity>> detailListByMonth(@ApiIgnore @RequestParam Map<String, Object> param, Query query) {
IPage<HygienePlanEntity> page = hygienePlanService.getDetailListByMonth(param, query);
return R.data(page);
}
}

18
hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/controller/RehearsalController.java

@ -82,8 +82,7 @@ public class RehearsalController extends BladeController {
@ApiImplicitParams({
@ApiImplicitParam(name = "unit", value = "单位", dataType = "query", paramType = "string"),
@ApiImplicitParam(name = "scheduledStartTime", value = "计划开始时间", dataType = "query", paramType = "string"),
@ApiImplicitParam(name = "scheduledEndTime", value = "计划结束时间", dataType = "query", paramType = "string"),
@ApiImplicitParam(name = "rehearsalStatus", value = "演练状态", dataType = "query", paramType = "string")
@ApiImplicitParam(name = "scheduledEndTime", value = "计划结束时间", dataType = "query", paramType = "string")
})
@ApiOperation(value = "演练计划分页")
@ApiOperationSupport(order = 5)
@ -178,4 +177,19 @@ public class RehearsalController extends BladeController {
public void exportRehearsalRecordData(@RequestParam Long id, HttpServletResponse response) {
rehearsalRecordService.exportRehearsalRecordData(id, response);
}
@GetMapping("/detailListByMonth")
@ApiImplicitParams({
@ApiImplicitParam(name = "unit", value = "单位", dataType = "query", paramType = "string"),
@ApiImplicitParam(name = "scheduledStartTime", value = "计划开始时间", dataType = "query", paramType = "string"),
@ApiImplicitParam(name = "scheduledEndTime", value = "计划结束时间", dataType = "query", paramType = "string"),
@ApiImplicitParam(name = "rehearsalStatus", value = "演练状态", dataType = "query", paramType = "string")
})
@ApiOperation(value = "演练月度详情列表")
@ApiOperationSupport(order = 15)
@Operate(label = "演练月度详情列表", type = BusinessType.QUERY, ignore = false)
public R<IPage<RehearsalPlanEntity>> detailListByMonth(@ApiIgnore @RequestParam Map<String, Object> param, Query query) {
IPage<RehearsalPlanEntity> page = rehearsalPlanService.getDetailListByMonth(query, param);
return R.data(page);
}
}

18
hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/controller/TrainController.java

@ -91,8 +91,7 @@ public class TrainController extends BladeController {
@ApiImplicitParams({
@ApiImplicitParam(name = "unit", value = "单位", dataType = "query", paramType = "string"),
@ApiImplicitParam(name = "scheduledStartTime", value = "计划开始时间", dataType = "query", paramType = "string"),
@ApiImplicitParam(name = "scheduledEndTime", value = "计划结束时间", dataType = "query", paramType = "string"),
@ApiImplicitParam(name = "trainStatus", value = "培训计划状态", dataType = "query", paramType = "string")
@ApiImplicitParam(name = "scheduledEndTime", value = "计划结束时间", dataType = "query", paramType = "string")
})
@ApiOperation(value = "培训计划分页")
@ApiOperationSupport(order = 5)
@ -276,4 +275,19 @@ public class TrainController extends BladeController {
public void exportTrainRecordData(@RequestParam Long id, HttpServletResponse response) {
trainRecordService.exportTrainRecordData(id, response);
}
@GetMapping("/detailListByMonth")
@ApiImplicitParams({
@ApiImplicitParam(name = "unit", value = "单位", dataType = "query", paramType = "string"),
@ApiImplicitParam(name = "scheduledStartTime", value = "计划开始时间", dataType = "query", paramType = "string"),
@ApiImplicitParam(name = "scheduledEndTime", value = "计划结束时间", dataType = "query", paramType = "string"),
@ApiImplicitParam(name = "trainStatus", value = "培训计划状态", dataType = "query", paramType = "string")
})
@ApiOperation(value = "培训月度详情列表")
@ApiOperationSupport(order = 24)
@Operate(label = "培训月度详情列表", type = BusinessType.QUERY, ignore = false)
public R<IPage<TrainPlanEntity>> detailListByMonth(@ApiIgnore @RequestParam Map<String, Object> param, Query query) {
IPage<TrainPlanEntity> page = trainPlanService.getDetailListByMonth(param, query);
return R.data(page);
}
}

15
hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/CarCheckTemplateDetailMapper.java

@ -0,0 +1,15 @@
package com.hnac.hzims.safeproduct.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.hnac.hzims.safeproduct.entity.CarCheckTemplateDetailEntity;
import org.apache.ibatis.annotations.Mapper;
/**
* 车检模板详情Mapper类
*
* @date 2024-05-30
*/
@Mapper
public interface CarCheckTemplateDetailMapper extends BaseMapper<CarCheckTemplateDetailEntity> {
}

5
hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/CarCheckTemplateDetailMapper.xml

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.hnac.hzims.safeproduct.mapper.CarCheckTemplateDetailMapper">
</mapper>

20
hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/CarCheckTemplateMapper.java

@ -0,0 +1,20 @@
package com.hnac.hzims.safeproduct.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.hnac.hzims.safeproduct.entity.CarCheckTemplateEntity;
import org.apache.ibatis.annotations.Mapper;
import java.util.Map;
@Mapper
public interface CarCheckTemplateMapper extends BaseMapper<CarCheckTemplateEntity> {
/**
* 车检分页
* @param page 分页类
* @param param 参数
* @return 分页
*/
IPage<CarCheckTemplateEntity> getCarCheckTemplatePage(IPage<CarCheckTemplateEntity> page, Map<String, Object> param);
}

18
hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/CarCheckTemplateMapper.xml

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.hnac.hzims.safeproduct.mapper.CarCheckTemplateMapper">
<select id="getCarCheckTemplatePage" resultType="com.hnac.hzims.safeproduct.entity.CarCheckTemplateEntity">
SELECT
*
FROM
hzims_car_check_template
WHERE
is_deleted = 0
<if test="param.templateName != null and param.templateName != ''">
AND template_name like concat('%', #{param.templateName}, '%')
</if>
ORDER BY
create_time DESC
</select>
</mapper>

2
hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/HygieneTemplateMapper.xml

@ -9,7 +9,7 @@
WHERE
is_deleted = 0
<if test="param.templateName != null and param.templateName != ''">
AND template_name like concate('%', #{param.templateName}, '%')
AND template_name like concat('%', #{param.templateName}, '%')
</if>
ORDER BY
create_time DESC

11
hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/mapper/TrainPlanMapper.xml

@ -81,14 +81,11 @@
<if test="param.unit != null and param.unit != ''">
AND unit like concat('%', #{param.unit}, '%')
</if>
<if test="param.startTime != null and param.startTime != ''">
AND scheduled_start_time >= #{param.startTime}
<if test="param.scheduledStartTime != null and param.scheduledStartTime != ''">
AND scheduled_start_time >= #{param.scheduledStartTime}
</if>
<if test="param.endTime != null and param.endTime != ''">
AND scheduled_end_time &lt;= #{param.endTime}
</if>
<if test="param.trainStatus != null and param.trainStatus != ''">
AND train_status = #{param.trainStatus}
<if test="param.scheduledEndTime != null and param.scheduledEndTime != ''">
AND scheduled_end_time &lt;= #{param.scheduledEndTime}
</if>
ORDER BY
create_time DESC

61
hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/ICarCheckTemplateService.java

@ -0,0 +1,61 @@
package com.hnac.hzims.safeproduct.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hnac.hzims.safeproduct.dto.CarCheckTemplateDTO;
import com.hnac.hzims.safeproduct.entity.CarCheckTemplateEntity;
import com.hnac.hzims.safeproduct.vo.CarCheckTemplateDetailVO;
import org.springblade.core.mp.support.Query;
import java.util.Map;
/**
* 车检模板服务类
*
* @date 2024-05-28
*/
public interface ICarCheckTemplateService extends IService<CarCheckTemplateEntity> {
/**
* 新增车检模板
* @param dto 车检模板dto类
* @return true-成功false-失败
*/
boolean saveCarCheckTemplate(CarCheckTemplateDTO dto);
/**
* 根据名称获取车检模板
* @param name 模板名称
* @return 车检模板实体类
*/
CarCheckTemplateEntity getCarCheckTemplateByName(String name);
/**
* 修改车检模板
* @param dto 车检模板dto类
* @return true-成功false-失败
*/
boolean updateCarCheckTemplate(CarCheckTemplateDTO dto);
/**
* 删除车检模板
* @param id 模板id
* @return true-成功false-失败
*/
boolean removeCarCheckTemplate(Long id);
/**
* 车检模板详情
* @param id 模板id
* @return 模板详情VO类
*/
CarCheckTemplateDetailVO getCarCheckTemplateDetail(Long id);
/**
* 车检分页
* @param query 分页类
* @param param 参数
* @return 分页
*/
IPage<CarCheckTemplateEntity> getCarCheckTemplatePage(Query query, Map<String, Object> param);
}

8
hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/IHygienePlanService.java

@ -92,4 +92,12 @@ public interface IHygienePlanService extends IService<HygienePlanEntity> {
* @param response 响应类
*/
void exportHygienePlanData(Map<String, Object> param, HttpServletResponse response);
/**
* 查询卫生月度详情列表
* @param param 参数
* @param query 分页类
* @return 月度详情列表
*/
IPage<HygienePlanEntity> getDetailListByMonth(Map<String, Object> param, Query query);
}

8
hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/IRehearsalPlanService.java

@ -66,4 +66,12 @@ public interface IRehearsalPlanService extends IService<RehearsalPlanEntity> {
* @return 演练计划数据
*/
IPage<RehearsalPlanEntity> rehearsalPlanPage(Map<String, Object> param, Query query);
/**
* 查询月度详情列表
* @param query 分页类
* @param param 参数
* @return 详情列表
*/
IPage<RehearsalPlanEntity> getDetailListByMonth(Query query, Map<String, Object> param);
}

8
hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/ITrainPlanService.java

@ -66,4 +66,12 @@ public interface ITrainPlanService extends IService<TrainPlanEntity> {
* @return 培训计划数据
*/
IPage<TrainPlanEntity> trainPlanPage(Map<String, Object> param, Query query);
/**
* 查询培训月度详情列表
* @param param 参数
* @param query 分页类
* @return 月度详情列表
*/
IPage<TrainPlanEntity> getDetailListByMonth(Map<String, Object> param, Query query);
}

67
hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/CarCheckRecordServiceImpl.java

@ -18,6 +18,7 @@ import com.hnac.hzims.safeproduct.service.ICarCheckRecordService;
import com.hnac.hzims.safeproduct.utils.BaseUtil;
import com.hnac.hzims.safeproduct.vo.CarCheckRecordDetailVO;
import com.hnac.hzims.safeproduct.vo.CarCheckRecordPageVO;
import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.mp.support.Query;
import org.springblade.core.tool.utils.BeanUtil;
import org.springframework.beans.factory.annotation.Autowired;
@ -68,15 +69,16 @@ public class CarCheckRecordServiceImpl extends ServiceImpl<CarCheckRecordMapper,
String lastCode = getLastCode(currentNormMonth);
String code = BaseUtil.getUniqueCode("CLJC", lastCode, currentSimpleMonth);
carCheckRecordEntity.setCode(code);
// 新增车检记录成功,新增相关检查项数据
// 新增车检记录
boolean saveRecord = this.save(carCheckRecordEntity);
if (saveRecord) {
CarCheckRecordEntity recordEntity = getCarCheckRecordByCode(code);
List<CarCheckItemEntity> itemList = carCheckRecordDTO.getItemList();
itemList.forEach(x -> x.setCarCheckRecordId(recordEntity.getId()));
return carCheckItemService.saveBatch(itemList);
if (!saveRecord) {
throw new ServiceException("车检记录新增失败");
}
return false;
// 新增车检项
CarCheckRecordEntity recordEntity = getCarCheckRecordByCode(code);
List<CarCheckItemEntity> itemList = carCheckRecordDTO.getItemList();
itemList.forEach(x -> x.setCarCheckRecordId(recordEntity.getId()));
return carCheckItemService.saveBatch(itemList);
}
/**
@ -157,22 +159,24 @@ public class CarCheckRecordServiceImpl extends ServiceImpl<CarCheckRecordMapper,
@Transactional(rollbackFor = Exception.class)
@Override
public boolean updateCarCheckRecord(CarCheckRecordDTO carCheckRecordDTO) {
boolean deleteFlag = carCheckItemService.removeRelativeCarCheckItem(carCheckRecordDTO.getId());
if (!deleteFlag){
return false;
// 修改车检记录
CarCheckRecordEntity carCheckRecordEntity = new CarCheckRecordEntity();
BeanUtil.copyProperties(carCheckRecordDTO, carCheckRecordEntity);
boolean updateRecord = this.updateById(carCheckRecordEntity);
if (!updateRecord) {
throw new ServiceException("车检记录更新失败");
}
// 更新检查项
List<CarCheckItemEntity> itemList = carCheckRecordDTO.getItemList();
itemList.forEach(x -> {x.setCarCheckRecordId(carCheckRecordDTO.getId());
x.setId(null);});
boolean b = carCheckItemService.saveBatch(itemList);
if (b) {
// 若更新检查项成功,则更新车检记录
CarCheckRecordEntity carCheckRecordEntity = new CarCheckRecordEntity();
BeanUtil.copyProperties(carCheckRecordDTO, carCheckRecordEntity);
return this.updateById(carCheckRecordEntity);
// 删除旧的检查项
boolean deleteItem = carCheckItemService.removeRelativeCarCheckItem(carCheckRecordDTO.getId());
if (!deleteItem) {
throw new ServiceException("旧的车检记录检查项删除失败");
}
return false;
// 新增新的检查项
List<CarCheckItemEntity> itemList = carCheckRecordDTO.getItemList();
itemList.forEach(x -> {
x.setCarCheckRecordId(carCheckRecordDTO.getId());
});
return carCheckItemService.saveBatch(itemList);
}
/**
@ -182,10 +186,10 @@ public class CarCheckRecordServiceImpl extends ServiceImpl<CarCheckRecordMapper,
@Override
public boolean removeCarCheckRecord(Long id) {
boolean remove = this.removeById(id);
if (remove) {
return carCheckItemService.removeRelativeCarCheckItem(id);
if (!remove) {
throw new ServiceException("车检记录删除失败");
}
return false;
return carCheckItemService.removeRelativeCarCheckItem(id);
}
/**
@ -195,6 +199,21 @@ public class CarCheckRecordServiceImpl extends ServiceImpl<CarCheckRecordMapper,
public void exportCarCheckRecordData(Long id, HttpServletResponse response) {
CarCheckRecordDetailVO carCheckRecordDetailVO = this.getCarCheckRecord(id);
// 数据处理
// 检查项
List<CarCheckItemEntity> checkList = carCheckRecordDetailVO.getCheckItemList();
List<CarCheckItemEntity> res = new ArrayList<>();
checkList.forEach(item -> {
String[] checkContent = item.getCheckContent().split(",");
String[] checkResult = item.getCheckResult().split(",");
for (int i = 0; i < checkContent.length; i++) {
CarCheckItemEntity carCheckItemEntity = new CarCheckItemEntity();
carCheckItemEntity.setCheckItem(item.getCheckItem());
carCheckItemEntity.setCheckContent(checkContent[i]);
carCheckItemEntity.setCheckResult(checkResult[i]);
res.add(carCheckItemEntity);
}
});
carCheckRecordDetailVO.setCheckItemList(res);
// 表头年月
String code = carCheckRecordDetailVO.getCode();
carCheckRecordDetailVO.setYear(code.substring(4, 8));

37
hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/CarCheckTemplateDetailServiceImpl.java

@ -0,0 +1,37 @@
package com.hnac.hzims.safeproduct.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.hnac.hzims.safeproduct.entity.CarCheckTemplateDetailEntity;
import com.hnac.hzims.safeproduct.mapper.CarCheckTemplateDetailMapper;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.stream.Collectors;
/**
* 车检模板详情服务实现类
*
* @date 2024-05-30
*/
@Service
public class CarCheckTemplateDetailServiceImpl extends ServiceImpl<CarCheckTemplateDetailMapper, CarCheckTemplateDetailEntity>
implements ICarCheckTemplateDetailService {
/**
* 删除关联的模板详情数据
*/
@Override
public boolean removeReferenceDetail(Long templateId) {
List<CarCheckTemplateDetailEntity> list = this.getReferenceDetail(templateId);
List<Long> ids = list.stream().map(CarCheckTemplateDetailEntity::getId).collect(Collectors.toList());
return this.removeByIds(ids);
}
@Override
public List<CarCheckTemplateDetailEntity> getReferenceDetail(Long templateId) {
QueryWrapper<CarCheckTemplateDetailEntity> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().eq(CarCheckTemplateDetailEntity::getTemplateId, templateId);
return this.list(queryWrapper);
}
}

161
hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/CarCheckTemplateServiceImpl.java

@ -0,0 +1,161 @@
package com.hnac.hzims.safeproduct.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.hnac.hzims.safeproduct.dto.CarCheckTemplateDTO;
import com.hnac.hzims.safeproduct.entity.*;
import com.hnac.hzims.safeproduct.mapper.CarCheckTemplateMapper;
import com.hnac.hzims.safeproduct.service.ICarCheckTemplateService;
import com.hnac.hzims.safeproduct.vo.CarCheckTemplateDetailVO;
import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.mp.support.Query;
import org.springblade.core.tool.api.R;
import org.springblade.system.feign.ISysClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.List;
import java.util.Map;
/**
* 车检模板服务实现类
*
* @date 2024-05-28
*/
@Service
public class CarCheckTemplateServiceImpl extends ServiceImpl<CarCheckTemplateMapper, CarCheckTemplateEntity> implements ICarCheckTemplateService {
@Autowired
ICarCheckTemplateDetailService carCheckTemplateDetailService;
@Resource
CarCheckTemplateMapper carCheckTemplateMapper;
@Autowired
ISysClient sysClient;
/**
* 新增车检模板
*/
@Override
@Transactional(rollbackFor = Exception.class)
public boolean saveCarCheckTemplate(CarCheckTemplateDTO dto) {
String templateName = dto.getTemplateName();
// 重名校验
CarCheckTemplateEntity template = getCarCheckTemplateByName(templateName);
if (template != null) {
throw new ServiceException("模板名不可重复");
}
// 新增车检模板
CarCheckTemplateEntity templateEntity = new CarCheckTemplateEntity();
templateEntity.setTemplateName(templateName);
boolean saveTemplate = this.save(templateEntity);
if (!saveTemplate) {
throw new ServiceException("车检模板新增失败");
}
// 新增模板详情
template = getCarCheckTemplateByName(templateName);
List<CarCheckTemplateDetailEntity> details = dto.getDetailList();
for (CarCheckTemplateDetailEntity detail : details) {
detail.setTemplateId(template.getId());
}
return carCheckTemplateDetailService.saveBatch(details);
}
/**
* 根据名称获取车检模板
*/
public CarCheckTemplateEntity getCarCheckTemplateByName(String name) {
QueryWrapper<CarCheckTemplateEntity> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().eq(CarCheckTemplateEntity::getTemplateName, name);
return this.getOne(queryWrapper);
}
/**
* 修改车检模板
*/
@Override
@Transactional(rollbackFor = Exception.class)
public boolean updateCarCheckTemplate(CarCheckTemplateDTO dto) {
String templateName = dto.getTemplateName();
Long templateId = dto.getId();
// 重名校验
QueryWrapper<CarCheckTemplateEntity> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().eq(CarCheckTemplateEntity::getTemplateName, templateName);
queryWrapper.lambda().ne(CarCheckTemplateEntity::getId, templateId);
CarCheckTemplateEntity template = this.getOne(queryWrapper);
if (template != null) {
throw new ServiceException("模板名不可重复");
}
// 更新模板
CarCheckTemplateEntity templateEntity = new CarCheckTemplateEntity();
templateEntity.setId(templateId);
templateEntity.setTemplateName(templateName);
boolean updateTemplate = this.updateById(templateEntity);
if (!updateTemplate) {
throw new ServiceException("车检模板更新失败");
}
// 更新模板详情
// 删除旧的模板详情数据
boolean removeDetail = carCheckTemplateDetailService.removeReferenceDetail(templateId);
if (!removeDetail) {
throw new ServiceException("车检模板详情数据删除失败");
}
// 新增新的模板详情数据
List<CarCheckTemplateDetailEntity> detailList = dto.getDetailList();
for (CarCheckTemplateDetailEntity detail : detailList) {
detail.setTemplateId(templateId);
}
return carCheckTemplateDetailService.saveBatch(detailList);
}
/**
* 删除车检模板
*/
@Override
@Transactional(rollbackFor = Exception.class)
public boolean removeCarCheckTemplate(Long id) {
boolean removeTemplate = this.removeById(id);
if (!removeTemplate) {
throw new ServiceException("车检模板删除失败");
}
return carCheckTemplateDetailService.removeReferenceDetail(id);
}
/**
* 车检模板详情
*/
@Override
public CarCheckTemplateDetailVO getCarCheckTemplateDetail(Long id) {
CarCheckTemplateEntity templateEntity = this.getById(id);
CarCheckTemplateDetailVO vo = new CarCheckTemplateDetailVO();
vo.setId(templateEntity.getId());
vo.setTemplateName(templateEntity.getTemplateName());
List<CarCheckTemplateDetailEntity> list = carCheckTemplateDetailService.getReferenceDetail(id);
vo.setTemplateDetailList(list);
return vo;
}
/**
* 车检分页
*/
@Override
public IPage<CarCheckTemplateEntity> getCarCheckTemplatePage(Query query, Map<String, Object> param) {
IPage<CarCheckTemplateEntity> page = new Page<>(query.getCurrent(), query.getSize());
IPage<CarCheckTemplateEntity> templatePage = carCheckTemplateMapper.getCarCheckTemplatePage(page, param);
List<CarCheckTemplateEntity> templateList = templatePage.getRecords();
// 获取机构名
templateList.forEach(template -> {
R<String> deptName = sysClient.getDeptName(template.getCreateDept());
if (deptName.isSuccess()) {
template.setCreateDeptName(deptName.getData());
}
});
templatePage.setRecords(templateList);
return templatePage;
}
}

33
hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/HygienePlanServiceImpl.java

@ -371,6 +371,39 @@ public class HygienePlanServiceImpl extends ServiceImpl<HygienePlanMapper, Hygie
}
/**
* 查询卫生月度详情列表
*/
@Override
public IPage<HygienePlanEntity> getDetailListByMonth(Map<String, Object> param, Query query) {
QueryWrapper<HygienePlanEntity> queryWrapper = new QueryWrapper<>();
String unit = String.valueOf(param.get("unit"));
String startTime = String.valueOf(param.get("scheduledStartTime"));
String endTime = String.valueOf(param.get("scheduledEndTime"));
String hygieneStatus = String.valueOf(param.get("hygienePlanStatus"));
if (!unit.equals("null") && !unit.equals("")) {
queryWrapper.lambda().like(HygienePlanEntity::getUnit, unit);
}
if (!startTime.equals("null") && !startTime.equals("")) {
queryWrapper.lambda().ge(HygienePlanEntity::getScheduledEndTime, startTime);
}
if (!endTime.equals("null") && !endTime.equals("")) {
queryWrapper.lambda().le(HygienePlanEntity::getScheduledEndTime, endTime);
}
if (!hygieneStatus.equals("null") && !hygieneStatus.equals("")) {
// 未完成计划包括UNFINISHED和WAITING两种状态
if (hygieneStatus.equals("UNFINISHED+WAITING")) {
queryWrapper.lambda().and(wrapper -> wrapper.eq(HygienePlanEntity::getHygienePlanStatus, HygieneStatusEnum.UNFINISHED.getValue())
.or()
.eq(HygienePlanEntity::getHygienePlanStatus, HygieneStatusEnum.WAITING.getValue()));
} else {
queryWrapper.lambda().eq(HygienePlanEntity::getHygienePlanStatus, hygieneStatus);
}
}
queryWrapper.lambda().orderByDesc(HygienePlanEntity::getCreateTime);
return this.page(Condition.getPage(query), queryWrapper);
}
/**
* 根据单位名称时间查询卫生自查计划
* @param unit 单位
* @param name 名称

28
hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/ICarCheckTemplateDetailService.java

@ -0,0 +1,28 @@
package com.hnac.hzims.safeproduct.service.impl;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hnac.hzims.safeproduct.entity.CarCheckTemplateDetailEntity;
import java.util.List;
/**
* 车检模板详情服务类
*
* @date 2024-05-30
*/
public interface ICarCheckTemplateDetailService extends IService<CarCheckTemplateDetailEntity> {
/**
* 删除关联的模板详情数据
* @param templateId 模板id
* @return true-成功false-失败
*/
boolean removeReferenceDetail(Long templateId);
/**
* 查询关联的模板详情列表
* @param templateId 模板id
* @return 模板详情列表
*/
List<CarCheckTemplateDetailEntity> getReferenceDetail(Long templateId);
}

33
hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/RehearsalPlanServiceImpl.java

@ -276,7 +276,6 @@ public class RehearsalPlanServiceImpl extends ServiceImpl<RehearsalPlanMapper, R
String unit = String.valueOf(param.get("unit"));
String startTime = String.valueOf(param.get("scheduledStartTime"));
String endTime = String.valueOf(param.get("scheduledEndTime"));
String rehearsalStatus = String.valueOf(param.get("rehearsalStatus"));
if (!unit.equals("null") && !unit.equals("")) {
queryWrapper.lambda().like(RehearsalPlanEntity::getUnit, unit);
}
@ -286,8 +285,38 @@ public class RehearsalPlanServiceImpl extends ServiceImpl<RehearsalPlanMapper, R
if (!endTime.equals("null") && !endTime.equals("")) {
queryWrapper.lambda().le(RehearsalPlanEntity::getScheduledEndTime, endTime);
}
queryWrapper.lambda().orderByDesc(RehearsalPlanEntity::getCreateTime);
return this.page(Condition.getPage(query), queryWrapper);
}
/**
* 查询月度详情列表
*/
@Override
public IPage<RehearsalPlanEntity> getDetailListByMonth(Query query, Map<String, Object> param) {
QueryWrapper<RehearsalPlanEntity> queryWrapper = new QueryWrapper<>();
String unit = String.valueOf(param.get("unit"));
String startTime = String.valueOf(param.get("scheduledStartTime"));
String endTime = String.valueOf(param.get("scheduledEndTime"));
String rehearsalStatus = String.valueOf(param.get("rehearsalStatus"));
if (!unit.equals("null") && !unit.equals("")) {
queryWrapper.lambda().like(RehearsalPlanEntity::getUnit, unit);
}
if (!startTime.equals("null") && !startTime.equals("")) {
queryWrapper.lambda().ge(RehearsalPlanEntity::getScheduledEndTime, startTime);
}
if (!endTime.equals("null") && !endTime.equals("")) {
queryWrapper.lambda().le(RehearsalPlanEntity::getScheduledEndTime, endTime);
}
if (!rehearsalStatus.equals("null") && !rehearsalStatus.equals("")) {
queryWrapper.lambda().eq(RehearsalPlanEntity::getRehearsalStatus, rehearsalStatus);
// 未完成计划包括UNFINISHED和WAITING两种状态
if (rehearsalStatus.equals("UNFINISHED+WAITING")) {
queryWrapper.lambda().and(wrapper -> wrapper.eq(RehearsalPlanEntity::getRehearsalStatus, RehearsalStatusEnum.UNFINISHED.getValue())
.or()
.eq(RehearsalPlanEntity::getRehearsalStatus, RehearsalStatusEnum.WAITING.getValue()));
} else {
queryWrapper.lambda().eq(RehearsalPlanEntity::getRehearsalStatus, rehearsalStatus);
}
}
queryWrapper.lambda().orderByDesc(RehearsalPlanEntity::getCreateTime);
return this.page(Condition.getPage(query), queryWrapper);

34
hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/TrainPlanServiceImpl.java

@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.hnac.hzims.common.utils.Condition;
import com.hnac.hzims.safeproduct.constants.SafeProductConstant;
import com.hnac.hzims.safeproduct.dto.AnalysisYearDTO;
import com.hnac.hzims.safeproduct.entity.TrainPlanEntity;
@ -268,6 +269,39 @@ public class TrainPlanServiceImpl extends ServiceImpl<TrainPlanMapper, TrainPlan
}
/**
* 查询培训月度详情列表
*/
@Override
public IPage<TrainPlanEntity> getDetailListByMonth(Map<String, Object> param, Query query) {
QueryWrapper<TrainPlanEntity> queryWrapper = new QueryWrapper<>();
String unit = String.valueOf(param.get("unit"));
String startTime = String.valueOf(param.get("scheduledStartTime"));
String endTime = String.valueOf(param.get("scheduledEndTime"));
String trainStatus = String.valueOf(param.get("trainStatus"));
if (!unit.equals("null") && !unit.equals("")) {
queryWrapper.lambda().like(TrainPlanEntity::getUnit, unit);
}
if (!startTime.equals("null") && !startTime.equals("")) {
queryWrapper.lambda().ge(TrainPlanEntity::getScheduledEndTime, startTime);
}
if (!endTime.equals("null") && !endTime.equals("")) {
queryWrapper.lambda().le(TrainPlanEntity::getScheduledEndTime, endTime);
}
if (!trainStatus.equals("null") && !trainStatus.equals("")) {
// 未完成计划包括UNFINISHED和WAITING两种状态
if (trainStatus.equals("UNFINISHED+WAITING")) {
queryWrapper.lambda().and(wrapper -> wrapper.eq(TrainPlanEntity::getTrainStatus, TrainStatusEnum.UNFINISHED.getValue())
.or()
.eq(TrainPlanEntity::getTrainStatus, TrainStatusEnum.WAITING.getValue()));
} else {
queryWrapper.lambda().eq(TrainPlanEntity::getTrainStatus, trainStatus);
}
}
queryWrapper.lambda().orderByDesc(TrainPlanEntity::getCreateTime);
return this.page(Condition.getPage(query), queryWrapper);
}
/**
* 根据单位和计划时间查询培训计划数据
* @param unit 单位
* @param startTime 计划开始时间

3
hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/utils/BaseUtil.java

@ -147,6 +147,9 @@ public class BaseUtil {
if (templatePath.equals("template/卫生自查表.docx")) {
formatHygieneRecordTable(xwpfDocument);
}
if (templatePath.equals("template/车辆检查表.docx")) {
formatCarCheckRecordTable(xwpfDocument);
}
} catch (Exception e) {
e.printStackTrace();
}

30
hzims-service/safeproduct/src/main/resources/db/2.0.1.sql

@ -47,3 +47,33 @@ CREATE TABLE IF NOT EXISTS `hzims_hygiene_template_detail` (
-- 添加考试及格分字段
ALTER TABLE hzims_test
ADD COLUMN passing_score int(10) NOT NULL DEFAULT 60 COMMENT '考试及格分';
-- 新增车检模板表
CREATE TABLE IF NOT EXISTS `hzims_car_check_template` (
`id` bigint(20) NOT NULL COMMENT '主键ID',
`template_name` varchar(50) NOT NULL COMMENT '模板名称',
`create_user` bigint(20) NOT NULL DEFAULT '-1' COMMENT '创建人',
`create_dept` bigint(20) NOT NULL DEFAULT '-1' COMMENT '创建部门',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_user` bigint(20) DEFAULT '-1' COMMENT '更新人',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后更新时间',
`status` int(2) NOT NULL DEFAULT '1' COMMENT '状态',
`is_deleted` int(2) NOT NULL DEFAULT '0' COMMENT '逻辑删除状态:0-未删除,1-删除',
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='车检模板表';
-- 新增车检模板详情表
CREATE TABLE IF NOT EXISTS `hzims_car_check_template_detail` (
`id` bigint(20) NOT NULL COMMENT '主键ID',
`template_id` bigint(20) NOT NULL COMMENT '模板id',
`check_item` varchar(500) NOT NULL COMMENT '检查项目',
`check_content` mediumtext NOT NULL COMMENT '检查内容',
`create_user` bigint(20) NOT NULL DEFAULT '-1' COMMENT '创建人',
`create_dept` bigint(20) NOT NULL DEFAULT '-1' COMMENT '创建部门',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_user` bigint(20) DEFAULT '-1' COMMENT '更新人',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后更新时间',
`status` int(2) NOT NULL DEFAULT '1' COMMENT '状态',
`is_deleted` int(2) NOT NULL DEFAULT '0' COMMENT '逻辑删除状态:0-未删除,1-删除',
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='车检模板详情表';
Loading…
Cancel
Save