diff --git a/6.program/wms-empty/src/main/java/com/mt/wms/empty/controller/AlarmInfoController.java b/6.program/wms-empty/src/main/java/com/mt/wms/empty/controller/AlarmInfoController.java new file mode 100644 index 0000000..754b6be --- /dev/null +++ b/6.program/wms-empty/src/main/java/com/mt/wms/empty/controller/AlarmInfoController.java @@ -0,0 +1,45 @@ +package com.mt.wms.empty.controller; + +import com.mt.wms.core.base.BaseController; +import com.mt.wms.core.constants.CommonConstant; +import com.mt.wms.core.validator.groups.PageGroup; +import com.mt.wms.core.vo.PageVo; +import com.mt.wms.core.vo.R; +import com.mt.wms.empty.params.AlarmInfoQueryParam; +import com.mt.wms.empty.service.AlarmInfoService; +import com.mt.wms.empty.vo.AlarmInfoVo; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import javax.validation.groups.Default; +import java.util.List; + +/** + * @Author: liguanghao + * @Date: 2021/12/16 19:22 + * @Version 1.0 + */ +@RestController +@RequestMapping(CommonConstant.API_MODULE_BASE + "alarmInfo") +@Slf4j +@Api(value = "报警信息相关接口", tags = "报警信息相关接口", hidden = false) +public class AlarmInfoController extends BaseController { + + + @Autowired + private AlarmInfoService alarmInfoService; + + @PostMapping(value = "page") + @ApiOperation(value = "获取分页报警基础信息") + private R> page(@Validated({PageGroup.class, Default.class}) @RequestBody AlarmInfoQueryParam alarmInfoQueryParam) { + return alarmInfoService.page(alarmInfoQueryParam); + } +} diff --git a/6.program/wms-empty/src/main/java/com/mt/wms/empty/controller/ElectricController.java b/6.program/wms-empty/src/main/java/com/mt/wms/empty/controller/ElectricController.java new file mode 100644 index 0000000..a2c6090 --- /dev/null +++ b/6.program/wms-empty/src/main/java/com/mt/wms/empty/controller/ElectricController.java @@ -0,0 +1,99 @@ +package com.mt.wms.empty.controller; + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.google.gson.JsonObject; +import com.mt.wms.core.base.BaseController; +import com.mt.wms.core.constants.CommonConstant; +import com.mt.wms.core.dal.entity.ParEleValue; +import com.mt.wms.core.dal.service.ParEleValueServiceBiz; +import com.mt.wms.core.vo.R; +import com.mt.wms.empty.params.ElectricQueryParam; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.validation.groups.Default; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.LocalTime; +import java.time.temporal.ChronoUnit; +import java.util.List; + +/** + * @Author: liguanghao + * @Date: 2021/12/16 11:20 + * @Version 1.0 + */ +@RestController +@RequestMapping(CommonConstant.API_MODULE_BASE + "electric") +@Slf4j +@Api(value = "电能消耗相关接口", tags = "电能消耗相关接口", hidden = false) +public class ElectricController extends BaseController { + + @Autowired + private ParEleValueServiceBiz parEleValueServiceBiz; + + @PostMapping(value = "eletric") + @ApiOperation(value = "根据窑炉id获取电能消耗情况") + private R list(@Validated({Default.class}) @RequestBody ElectricQueryParam electricQueryParam) { + Long kiln = electricQueryParam.getKilnId(); + //窑炉id为0代表全部 + if (kiln==0){ + + }else { + JSONObject jsonObject=new JSONObject(); + //指定时间节点 + LocalDate timeDate = electricQueryParam.getTime().toLocalDate(); + LocalDateTime timeStart = LocalDateTime.of(timeDate, LocalTime.MIN); + LocalDateTime timeEnd = LocalDateTime.of(timeDate, LocalTime.MAX); + //当前时间节点 + LocalDateTime todayStart = LocalDateTime.of(LocalDate.now(), LocalTime.MIN); + LocalDateTime todayEnd = LocalDateTime.of(LocalDate.now(), LocalTime.MAX); + + //总电能消耗 + List todayEleValueList = parEleValueServiceBiz.list(new QueryWrapper() + .eq("kiln_id", kiln) + .between("create_time", todayStart, todayEnd) + .orderByDesc("create_time")); + Float countEleValue = todayEleValueList.get(0).getTotalBat(); + jsonObject.put("countEle",countEleValue); + + //昨日电能消耗 + LocalDateTime yesterdayStart = LocalDateTime.of(LocalDate.now().plus(1, ChronoUnit.DAYS), LocalTime.MIN); + LocalDateTime yesterdayEnd = LocalDateTime.of(LocalDate.now().plus(1, ChronoUnit.DAYS), LocalTime.MAX); + List yesterdayEleValueList = parEleValueServiceBiz.list(new QueryWrapper() + .eq("kiln_id", kiln) + .between("create_time", yesterdayStart, yesterdayEnd) + .orderByAsc("create_time")); + Float yesterdayTotalBat= yesterdayEleValueList.get(yesterdayEleValueList.size()-1).getTotalBat()-yesterdayEleValueList.get(0).getTotalBat(); + jsonObject.put("yesterdayCountEle",yesterdayTotalBat); + + //指定日期当天的电能消耗 + if (electricQueryParam.getDateType()==1){ + List dateEleValueList = parEleValueServiceBiz.list(new QueryWrapper() + .eq("kiln_id", kiln) + .between("create_time", timeStart, timeEnd) + .orderByAsc("create_time")); + //总耗电量 + Float dateCountEle=0F; + if (dateEleValueList.size()!=0){ + dateCountEle= dateEleValueList.get(dateEleValueList.size()-1).getTotalBat()-dateEleValueList.get(0).getTotalBat(); + } + jsonObject.put("dateCountEle",dateCountEle); + //分时消耗量 + for (int i = 0; i < dateEleValueList.size() - 1; ++i) { + // TODO: 2021/12/16 + float eleValue = dateEleValueList.get(i).getTotalBat() - dateEleValueList.get(i - 1).getTotalBat(); + } + } + } + return null; + } +} diff --git a/6.program/wms-empty/src/main/java/com/mt/wms/empty/params/AlarmInfoQueryParam.java b/6.program/wms-empty/src/main/java/com/mt/wms/empty/params/AlarmInfoQueryParam.java new file mode 100644 index 0000000..853688c --- /dev/null +++ b/6.program/wms-empty/src/main/java/com/mt/wms/empty/params/AlarmInfoQueryParam.java @@ -0,0 +1,38 @@ +package com.mt.wms.empty.params; + +import com.mt.wms.core.base.BaseParam; +import com.mt.wms.core.params.BasePageParam; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.time.LocalDateTime; + +/** + * @Author: liguanghao + * @Date: 2021/12/16 19:03 + * @Version 1.0 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel(value = "报警信息查询参数", description = "报警信息查询参数") +public class AlarmInfoQueryParam extends BasePageParam { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "设备ID", required = false) + private Long equipmentID; + + @ApiModelProperty(value = "报警类型", required = true) + private Integer type; + + @ApiModelProperty(value = "开始时间", required = false) + private LocalDateTime startTime; + + @ApiModelProperty(value = "结束时间", required = false) + private LocalDateTime endTime; + +} diff --git a/6.program/wms-empty/src/main/java/com/mt/wms/empty/params/ElectricQueryParam.java b/6.program/wms-empty/src/main/java/com/mt/wms/empty/params/ElectricQueryParam.java new file mode 100644 index 0000000..c537f26 --- /dev/null +++ b/6.program/wms-empty/src/main/java/com/mt/wms/empty/params/ElectricQueryParam.java @@ -0,0 +1,34 @@ +package com.mt.wms.empty.params; + +import com.mt.wms.core.base.BaseParam; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.time.LocalDateTime; + +/** + * @Author: liguanghao + * @Date: 2021/12/16 11:03 + * @Version 1.0 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@ApiModel(value = "电能消耗查询参数", description = "电能消耗查询参数") +public class ElectricQueryParam extends BaseParam { + + private static final long serialVersionUID = 1L; + + @ApiModelProperty(value = "窑炉id", required = true) + private Long kilnId; + + + @ApiModelProperty(value = "时间节点", required = true) + private LocalDateTime time; + + @ApiModelProperty(value = "时间类型:1 天,2 周,3 月,4 年", required = true) + private Integer dateType; +} diff --git a/6.program/wms-empty/src/main/java/com/mt/wms/empty/service/AlarmInfoService.java b/6.program/wms-empty/src/main/java/com/mt/wms/empty/service/AlarmInfoService.java new file mode 100644 index 0000000..ddadd21 --- /dev/null +++ b/6.program/wms-empty/src/main/java/com/mt/wms/empty/service/AlarmInfoService.java @@ -0,0 +1,24 @@ +package com.mt.wms.empty.service; + +import com.mt.wms.basic.params.AlarmBaseQueryParam; +import com.mt.wms.basic.vo.AlarmBaseVo; +import com.mt.wms.core.dal.entity.AlarmInfo; +import com.mt.wms.core.vo.PageVo; +import com.mt.wms.core.vo.R; +import com.mt.wms.empty.params.AlarmInfoQueryParam; +import com.mt.wms.empty.vo.AlarmInfoVo; + +/** + * @Author: liguanghao + * @Date: 2021/12/16 19:19 + * @Version 1.0 + */ +public interface AlarmInfoService { + /** + * 获取xx分页列表 + * + * @param alarmInfoQueryParam xx查询参数 + * @return xx分页列表 + */ + R> page(AlarmInfoQueryParam alarmInfoQueryParam); +} diff --git a/6.program/wms-empty/src/main/java/com/mt/wms/empty/service/impl/AlarmInfoServiceImpl.java b/6.program/wms-empty/src/main/java/com/mt/wms/empty/service/impl/AlarmInfoServiceImpl.java new file mode 100644 index 0000000..f8d4e69 --- /dev/null +++ b/6.program/wms-empty/src/main/java/com/mt/wms/empty/service/impl/AlarmInfoServiceImpl.java @@ -0,0 +1,42 @@ +package com.mt.wms.empty.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.mt.wms.core.base.BaseService; +import com.mt.wms.core.dal.entity.AlarmInfo; +import com.mt.wms.core.dal.service.AlarmInfoServiceBiz; +import com.mt.wms.core.vo.PageVo; +import com.mt.wms.core.vo.R; +import com.mt.wms.empty.params.AlarmInfoQueryParam; +import com.mt.wms.empty.service.AlarmInfoService; +import com.mt.wms.empty.vo.AlarmInfoVo; +import org.apache.commons.lang.StringUtils; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; + +/** + * @Author: liguanghao + * @Date: 2021/12/16 19:21 + * @Version 1.0 + */ +@Service +@Transactional +public class AlarmInfoServiceImpl extends BaseService implements AlarmInfoService { + + @Resource + private AlarmInfoServiceBiz alarmInfoServiceBiz; + @Override + public R> page(AlarmInfoQueryParam alarmInfoQueryParam) { + + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.between(alarmInfoQueryParam.getStartTime() != null, AlarmInfo.CREATE_TIME, alarmInfoQueryParam.getStartTime(), alarmInfoQueryParam.getEndTime()) + .eq(AlarmInfo.TYPE, alarmInfoQueryParam.getType()) + .eq(alarmInfoQueryParam.getEquipmentID() != null, AlarmInfo.EQUIPMENT_ID, alarmInfoQueryParam.getEquipmentID()) + .orderByDesc(AlarmInfo.CREATE_TIME); + Page page = alarmInfoServiceBiz.page(new Page<>(alarmInfoQueryParam.getCurrent(), alarmInfoQueryParam.getSize()), wrapper); + return successful(new PageVo<>(page, AlarmInfoVo.class)); + } +} + diff --git a/6.program/wms-empty/src/main/java/com/mt/wms/empty/task/AsynRunTaskService.java b/6.program/wms-empty/src/main/java/com/mt/wms/empty/task/AsynRunTaskService.java index 1094497..6a2a840 100644 --- a/6.program/wms-empty/src/main/java/com/mt/wms/empty/task/AsynRunTaskService.java +++ b/6.program/wms-empty/src/main/java/com/mt/wms/empty/task/AsynRunTaskService.java @@ -109,7 +109,7 @@ public class AsynRunTaskService extends BaseService { currTask.setLocationId(location.getId()); currTask.setLocationName(location.getLocationNameAlias()); currTaskServiceBiz.updateById(currTask); - // TODO: 2021/12/14 调用车辆填入起终点,得到车辆执行结果 + // TODO: 2021/12/14 调用车辆填入起终点,得到车辆执行结果,填入任务号(待确认) if (true){ //更新关系表状态为完成 @@ -133,4 +133,10 @@ public class AsynRunTaskService extends BaseService { // TODO: 2021/12/14 websocket推送到前端 } } + //窑炉加工完成,调用车辆入库到缓存区 + @Async("asyncServiceExecutor") + public void asynRunTaskForKilnToWarehouse(Long kilnId,Long vehicleId){ + + } + } diff --git a/6.program/wms-empty/src/main/java/com/mt/wms/empty/task/ScheduledTask.java b/6.program/wms-empty/src/main/java/com/mt/wms/empty/task/ScheduledTask.java index f66713c..0a1d395 100644 --- a/6.program/wms-empty/src/main/java/com/mt/wms/empty/task/ScheduledTask.java +++ b/6.program/wms-empty/src/main/java/com/mt/wms/empty/task/ScheduledTask.java @@ -14,6 +14,6 @@ public class ScheduledTask { */ @Scheduled public void taskForStockToKiln(){ - + //遍历窑炉状态,若加工完毕,查询空车,占用,异步处理,继续遍历下一个窑炉状态 } } diff --git a/6.program/wms-empty/src/main/java/com/mt/wms/empty/vo/AlarmInfoVo.java b/6.program/wms-empty/src/main/java/com/mt/wms/empty/vo/AlarmInfoVo.java new file mode 100644 index 0000000..ad4f5af --- /dev/null +++ b/6.program/wms-empty/src/main/java/com/mt/wms/empty/vo/AlarmInfoVo.java @@ -0,0 +1,52 @@ +package com.mt.wms.empty.vo; + +import com.mt.wms.core.base.BaseVo; +import com.mt.wms.core.vo.PageVo; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Builder; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import javax.validation.constraints.NotNull; +import java.time.LocalDateTime; +import java.util.List; + +/** + * @Author: liguanghao + * @Date: 2021/12/16 19:09 + * @Version 1.0 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@Builder +@ApiModel(value = "报警信息视图对象", description = "用于查询报警信息信息") +public class AlarmInfoVo extends BaseVo implements PageVo.ConvertVo{ + /** + * 主键,自增 + */ + @ApiModelProperty(value = "主键", example = "1") + private Long id; + /** + * 添加时间 + */ + @ApiModelProperty(value = "添加时间", example = "0") + private LocalDateTime createTime; + /** + * 设备名称 + */ + @ApiModelProperty(value = "设备名称",example = "0") + private String equipmentName; + /** + * 报警类型 + */ + @ApiModelProperty(value = "报警类型",example = "0") + private String alarmType; + /** + * 报警内容 + */ + @ApiModelProperty(value = "报警内容",example = "0") + private String alarmInfo; +}