diff --git a/src/main/java/com/zhgd/xmgl/modules/rt/controller/MockRtToolHistoryConfigController.java b/src/main/java/com/zhgd/xmgl/modules/rt/controller/MockRtToolHistoryConfigController.java new file mode 100644 index 000000000..e1e76f984 --- /dev/null +++ b/src/main/java/com/zhgd/xmgl/modules/rt/controller/MockRtToolHistoryConfigController.java @@ -0,0 +1,146 @@ +package com.zhgd.xmgl.modules.rt.controller; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.zhgd.annotation.OperLog; +import com.zhgd.jeecg.common.api.vo.Result; +import com.zhgd.xmgl.modules.rt.entity.MockRtToolHistoryConfig; +import com.zhgd.xmgl.modules.rt.service.IMockRtToolHistoryConfigService; +import com.zhgd.xmgl.util.mysql.MysqlDataUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections.MapUtils; +import org.simpleframework.xml.core.Validate; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import springfox.documentation.annotations.ApiIgnore; + +import java.util.HashMap; +import java.util.List; + + +/** + * @Title: Controller + * @Description: 模拟工器具历史数据配置 + * @author: pds + * @date: 2025-05-26 + * @version: V1.0 + */ +@RestController +@RequestMapping("/xmgl/mockRtToolHistoryConfig") +@Slf4j +@Api(tags = "模拟工器具历史数据配置相关Api") +public class MockRtToolHistoryConfigController { + @Autowired + private IMockRtToolHistoryConfigService mockRtToolHistoryConfigService; + + /** + * 分页列表查询 + * + * @return + */ + @OperLog(operModul = "模拟工器具历史数据配置管理", operType = "分页查询", operDesc = "分页列表查询模拟工器具历史数据配置信息") + @ApiOperation(value = "分页列表查询模拟工器具历史数据配置信息", notes = "分页列表查询模拟工器具历史数据配置信息", httpMethod = "GET") + @ApiImplicitParams({ + @ApiImplicitParam(name = "pageNo", value = "第几页", paramType = "query", required = true, dataType = "Integer"), + @ApiImplicitParam(name = "pageSize", value = "每页显示条数", paramType = "query", required = true, dataType = "Integer"), + }) + @GetMapping(value = "/page") + public Result> queryPageList(@ApiIgnore @RequestParam HashMap param) { + return Result.success(mockRtToolHistoryConfigService.queryPageList(param)); + } + + /** + * 列表查询 + * + * @return + */ + @OperLog(operModul = "模拟工器具历史数据配置管理", operType = "列表查询", operDesc = "列表查询模拟工器具历史数据配置信息") + @ApiOperation(value = "列表查询模拟工器具历史数据配置信息", notes = "列表查询模拟工器具历史数据配置信息", httpMethod = "GET") + @GetMapping(value = "/list") + public Result> queryList(@ApiIgnore @RequestParam HashMap param) { + return Result.success(mockRtToolHistoryConfigService.queryList(param)); + } + + /** + * 添加 + * + * @param mockRtToolHistoryConfig + * @return + */ + @OperLog(operModul = "模拟工器具历史数据配置管理", operType = "添加", operDesc = "添加模拟工器具历史数据配置信息") + @ApiOperation(value = "添加模拟工器具历史数据配置信息", notes = "添加模拟工器具历史数据配置信息", httpMethod = "POST") + @PostMapping(value = "/add") + public Result add(@RequestBody @Validate MockRtToolHistoryConfig mockRtToolHistoryConfig) { + mockRtToolHistoryConfigService.add(mockRtToolHistoryConfig); + return Result.ok(); + } + + /** + * 编辑 + * + * @param mockRtToolHistoryConfig + * @return + */ + @OperLog(operModul = "模拟工器具历史数据配置管理", operType = "编辑", operDesc = "编辑模拟工器具历史数据配置信息") + @ApiOperation(value = "编辑模拟工器具历史数据配置信息", notes = "编辑模拟工器具历史数据配置信息", httpMethod = "POST") + @PostMapping(value = "/edit") + public Result edit(@RequestBody MockRtToolHistoryConfig mockRtToolHistoryConfig) { + mockRtToolHistoryConfigService.edit(mockRtToolHistoryConfig); + return Result.ok(); + } + + /** + * 通过id删除 + * + * @return + */ + @OperLog(operModul = "模拟工器具历史数据配置管理", operType = "删除", operDesc = "删除模拟工器具历史数据配置信息") + @ApiOperation(value = "删除模拟工器具历史数据配置信息", notes = "删除模拟工器具历史数据配置信息", httpMethod = "POST") + @ApiImplicitParam(name = "id", value = "模拟工器具历史数据配置ID", paramType = "body", required = true, dataType = "String", example = "{\"id\":\"1\"}") + @PostMapping(value = "/delete") + public Result delete(@ApiIgnore @RequestBody HashMap map) { + mockRtToolHistoryConfigService.delete(MapUtils.getString(map, "id")); + return Result.ok(); + } + + /** + * 通过id查询 + * + * @param id + * @return + */ + @OperLog(operModul = "模拟工器具历史数据配置管理", operType = "通过id查询", operDesc = "通过id查询模拟工器具历史数据配置信息") + @ApiOperation(value = "通过id查询模拟工器具历史数据配置信息", notes = "通过id查询模拟工器具历史数据配置信息", httpMethod = "GET") + @ApiImplicitParam(name = "id", value = "模拟工器具历史数据配置ID", paramType = "query", required = true, dataType = "Integer") + @GetMapping(value = "/queryById") + public Result queryById(@RequestParam(name = "id", required = true) String id) { + return Result.success(mockRtToolHistoryConfigService.queryById(id)); + } + + + @OperLog(operModul = "模拟工器具历史数据配置管理", operType = "保存", operDesc = "保存模拟工器具历史数据配置信息") + @ApiOperation(value = "保存模拟工器具历史数据配置信息", notes = "保存模拟工器具历史数据配置信息", httpMethod = "POST") + @PostMapping(value = "/save") + public Result saveEntity(@RequestBody @Validate MockRtToolHistoryConfig mockWorkerAttendanceConfig) { + mockRtToolHistoryConfigService.saveEntity(mockWorkerAttendanceConfig); + return Result.ok(); + } + + @OperLog(operModul = "模拟工器具历史数据配置管理", operType = "重置", operDesc = "重置模拟工器具历史数据配置信息") + @ApiOperation(value = "重置模拟工器具历史数据配置信息", notes = "重置模拟工器具历史数据配置信息", httpMethod = "POST") + @PostMapping(value = "/reset") + public Result reset(@RequestBody @Validate MockRtToolHistoryConfig mockWorkerAttendanceConfig) { + MockRtToolHistoryConfig one = mockRtToolHistoryConfigService.getOne(new LambdaQueryWrapper() + .eq(MockRtToolHistoryConfig::getProjectSn, mockWorkerAttendanceConfig.getProjectSn()) + ); + if (one != null) { + MysqlDataUtil.setFieldsToNull(mockRtToolHistoryConfigService, MockRtToolHistoryConfig.class, one.getId()); + } + return Result.ok(); + } + +} diff --git a/src/main/java/com/zhgd/xmgl/modules/rt/controller/RtToolHistoryController.java b/src/main/java/com/zhgd/xmgl/modules/rt/controller/RtToolHistoryController.java index 1a997f50f..5fccf1242 100644 --- a/src/main/java/com/zhgd/xmgl/modules/rt/controller/RtToolHistoryController.java +++ b/src/main/java/com/zhgd/xmgl/modules/rt/controller/RtToolHistoryController.java @@ -1,27 +1,34 @@ package com.zhgd.xmgl.modules.rt.controller; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.zhgd.jeecg.common.api.vo.Result; +import com.zhgd.jeecg.common.execption.OpenAlertException; +import com.zhgd.xmgl.modules.rt.entity.MockRtToolHistoryConfig; +import com.zhgd.xmgl.modules.rt.entity.RtTool; import com.zhgd.xmgl.modules.rt.entity.RtToolHistory; +import com.zhgd.xmgl.modules.rt.service.IMockRtToolHistoryConfigService; import com.zhgd.xmgl.modules.rt.service.IRtToolHistoryService; +import com.zhgd.xmgl.modules.rt.service.IRtToolService; +import com.zhgd.xmgl.util.EntityUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; -import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiImplicitParams; - -import java.util.HashMap; - +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections.MapUtils; +import org.simpleframework.xml.core.Validate; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; +import org.springframework.web.bind.annotation.*; import springfox.documentation.annotations.ApiIgnore; -import java.util.List; - -import com.zhgd.jeecg.common.api.vo.Result; -import org.apache.commons.collections.MapUtils; - -import org.simpleframework.xml.core.Validate; -import com.baomidou.mybatisplus.core.metadata.IPage; -import lombok.extern.slf4j.Slf4j; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; +import java.util.*; +import java.util.concurrent.ThreadLocalRandom; +import java.util.function.Function; +import java.util.stream.Collectors; /** @@ -38,6 +45,12 @@ import org.springframework.web.bind.annotation.*; public class RtToolHistoryController { @Autowired private IRtToolHistoryService rtToolHistoryService; + @Lazy + @Autowired + private IMockRtToolHistoryConfigService mockRtToolHistoryConfigService; + @Lazy + @Autowired + private IRtToolService rtToolService; /** * 分页列表查询 @@ -136,4 +149,53 @@ public class RtToolHistoryController { return result; } + @ApiOperation(value = "生成榕图-工器具历史数据", notes = "生成榕图-工器具历史数据", httpMethod = "POST") + @PostMapping(value = "/mockData") + public Result mockData(@RequestBody MockRtToolHistoryConfig config) { + if (config.getStartTime() == null) { + throw new OpenAlertException("开始时间不能为空"); + } + if (config.getEndTime() == null) { + throw new OpenAlertException("结束时间不能为空"); + } + mockRtToolHistoryConfigService.saveEntity(config); + List devIdList = StrUtil.split(config.getDevSns(), ","); + ThreadLocalRandom random = ThreadLocalRandom.current(); + List datas = new ArrayList<>(); + Map devSnMap = rtToolService.list(new LambdaQueryWrapper() + .eq(RtTool::getProjectSn, config.getProjectSn())).stream().collect(Collectors.toMap(RtTool::getDevSn, Function.identity(), (o1, o2) -> o1)); + for (String devId : devIdList) { + for (int i = 0; i < config.getDevGenerateNum(); i++) { + RtToolHistory data = new RtToolHistory(); + data.setDevSn(devId); + data.setToolName(Optional.ofNullable(devSnMap.get(devId)).map(RtTool::getToolName).orElse(null)); + EntityUtils.setRandomIntByPoint(config.getToolStatuses(), data::setToolStatus, random); + EntityUtils.setRandomDateTime(config.getStartTime(), config.getEndTime(), data::setEntryTime, random); + EntityUtils.setRandomDateTime(data.getEntryTime(), config.getEndTime(), data::setExitTime, random); + data.setProjectSn(config.getProjectSn()); + datas.add(data); + } + } + if (CollUtil.isNotEmpty(datas)) { + rtToolHistoryService.saveBatch(datas); + } + return Result.ok(); + } + + @ApiOperation(value = "批量删除榕图-工器具历史数据", notes = "批量删除榕图-工器具历史数据", httpMethod = "POST") + @ApiImplicitParam(name = "ids", value = "榕图-工器具历史数据ID字符串(多个以,分割)", paramType = "body", required = true, dataType = "String") + @PostMapping(value = "/deleteBatch") + public Result deleteBatch(@ApiIgnore @RequestBody HashMap paramMap) { + String ids = MapUtils.getString(paramMap, "ids"); + Result result = new Result<>(); + if (ids == null || "".equals(ids.trim())) { + result.error500("参数不识别!"); + } else { + rtToolHistoryService.removeByIds(Arrays.asList(ids.split(","))); + Result.success("删除成功!"); + } + return result; + } + + } diff --git a/src/main/java/com/zhgd/xmgl/modules/rt/entity/MockRtToolHistoryConfig.java b/src/main/java/com/zhgd/xmgl/modules/rt/entity/MockRtToolHistoryConfig.java new file mode 100644 index 000000000..88dd5f4bf --- /dev/null +++ b/src/main/java/com/zhgd/xmgl/modules/rt/entity/MockRtToolHistoryConfig.java @@ -0,0 +1,80 @@ +package com.zhgd.xmgl.modules.rt.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; + +/** + * @Description: 模拟工器具历史数据配置 + * @author: pds + * @date: 2025-05-26 + * @version: V1.0 + */ +@Data +@TableName("mock_rt_tool_history_config") +@ApiModel(value = "MockRtToolHistoryConfig实体类", description = "MockRtToolHistoryConfig") +public class MockRtToolHistoryConfig implements Serializable { + private static final long serialVersionUID = 1L; + + /** + * id + */ + @TableId(type = IdType.ASSIGN_ID) + @ApiModelProperty(value = "id") + private java.lang.Long id; + /** + * 所属项目SN + */ + @ApiModelProperty(value = "所属项目SN") + private java.lang.String projectSn; + /** + * 设备sn(多个,分隔) + */ + @ApiModelProperty(value = "设备sn(多个,分隔)") + private java.lang.String devSns; + /** + * 每个设备随机生成数量 + */ + @ApiModelProperty(value = "每个设备随机生成数量") + private java.lang.Integer devGenerateNum; + /** + * 开始时间 + */ + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "开始时间") + private java.util.Date startTime; + /** + * 结束时间 + */ + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "结束时间") + private java.util.Date endTime; + /** + * 创建时间 + */ + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "创建时间") + private java.util.Date createDate; + /** + * 更新时间 + */ + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "更新时间") + private java.util.Date updateDate; + /** + * 工器具状态:1在场2离场(多个数字,分割) + */ + @ApiModelProperty(value = "工器具状态:1在场2离场(多个数字,分割)") + private java.lang.String toolStatuses; +} diff --git a/src/main/java/com/zhgd/xmgl/modules/rt/entity/RtToolHistory.java b/src/main/java/com/zhgd/xmgl/modules/rt/entity/RtToolHistory.java index d255845a7..7867f0665 100644 --- a/src/main/java/com/zhgd/xmgl/modules/rt/entity/RtToolHistory.java +++ b/src/main/java/com/zhgd/xmgl/modules/rt/entity/RtToolHistory.java @@ -1,17 +1,16 @@ package com.zhgd.xmgl.modules.rt.entity; -import java.io.Serializable; -import java.util.Date; - import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; -import lombok.Data; import com.fasterxml.jackson.annotation.JsonFormat; -import org.springframework.format.annotation.DateTimeFormat; -import org.jeecgframework.poi.excel.annotation.Excel; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.jeecgframework.poi.excel.annotation.Excel; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; /** * @Description: 榕图-工器具历史数据 @@ -44,10 +43,10 @@ public class RtToolHistory implements Serializable { @ApiModelProperty(value = "工器具名称") private java.lang.String toolName; /** - * 工器具状态 + * 工器具状态:1在场2离场 */ - @Excel(name = "工器具状态", width = 15) - @ApiModelProperty(value = "工器具状态") + @Excel(name = "工器具状态:1在场2离场", width = 15) + @ApiModelProperty(value = "工器具状态:1在场2离场") private java.lang.Integer toolStatus; /** * 进场时间 @@ -87,4 +86,9 @@ public class RtToolHistory implements Serializable { @Excel(name = "项目sn", width = 15) @ApiModelProperty(value = "项目sn") private java.lang.String projectSn; + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "模拟生成时间") + private java.util.Date mockTime; + } diff --git a/src/main/java/com/zhgd/xmgl/modules/rt/mapper/MockRtToolHistoryConfigMapper.java b/src/main/java/com/zhgd/xmgl/modules/rt/mapper/MockRtToolHistoryConfigMapper.java new file mode 100644 index 000000000..ee1961fac --- /dev/null +++ b/src/main/java/com/zhgd/xmgl/modules/rt/mapper/MockRtToolHistoryConfigMapper.java @@ -0,0 +1,51 @@ +package com.zhgd.xmgl.modules.rt.mapper; + +import java.util.List; +import java.util.HashMap; + +import com.zhgd.xmgl.modules.rt.entity.MockRtToolHistoryConfig; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Constants; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * @Description: 模拟工器具历史数据配置 + * @author: pds + * @date: 2025-05-26 + * @version: V1.0 + */ +@Mapper +public interface MockRtToolHistoryConfigMapper extends BaseMapper { + + /** + * 分页列表查询模拟工器具历史数据配置信息 + * + * @param page + * @param queryWrapper + * @param param + * @return + */ + IPage queryList(Page page, @Param(Constants.WRAPPER) QueryWrapper queryWrapper, @Param("param") HashMap param); + + /** + * 列表查询模拟工器具历史数据配置信息 + * + * @param queryWrapper + * @param param + * @return + */ + List queryList(@Param(Constants.WRAPPER) QueryWrapper queryWrapper, @Param("param") HashMap param); + + + /** + * 通过id查询模拟工器具历史数据配置信息 + * + * @param id + * @return + */ + MockRtToolHistoryConfig queryById(String id); +} diff --git a/src/main/java/com/zhgd/xmgl/modules/rt/mapper/xml/MockRtToolHistoryConfigMapper.xml b/src/main/java/com/zhgd/xmgl/modules/rt/mapper/xml/MockRtToolHistoryConfigMapper.xml new file mode 100644 index 000000000..f1609574c --- /dev/null +++ b/src/main/java/com/zhgd/xmgl/modules/rt/mapper/xml/MockRtToolHistoryConfigMapper.xml @@ -0,0 +1,18 @@ + + + + + + diff --git a/src/main/java/com/zhgd/xmgl/modules/rt/service/IMockRtToolHistoryConfigService.java b/src/main/java/com/zhgd/xmgl/modules/rt/service/IMockRtToolHistoryConfigService.java new file mode 100644 index 000000000..5107f6788 --- /dev/null +++ b/src/main/java/com/zhgd/xmgl/modules/rt/service/IMockRtToolHistoryConfigService.java @@ -0,0 +1,66 @@ +package com.zhgd.xmgl.modules.rt.service; + +import com.zhgd.xmgl.modules.rt.entity.MockRtToolHistoryConfig; +import com.baomidou.mybatisplus.extension.service.IService; +import com.baomidou.mybatisplus.core.metadata.IPage; + +import java.util.HashMap; +import java.util.List; + +/** + * @Description: 模拟工器具历史数据配置 + * @author: pds + * @date: 2025-05-26 + * @version: V1.0 + */ +public interface IMockRtToolHistoryConfigService extends IService { + /** + * 分页列表查询模拟工器具历史数据配置信息 + * + * @param param 参数map + * @return + */ + IPage queryPageList(HashMap param); + + /** + * 列表查询模拟工器具历史数据配置信息 + * + * @param param 参数map + * @return + */ + List queryList(HashMap param); + + /** + * 添加模拟工器具历史数据配置信息 + * + * @param mockRtToolHistoryConfig 模拟工器具历史数据配置 + * @return + */ + void add(MockRtToolHistoryConfig mockRtToolHistoryConfig); + + /** + * 编辑模拟工器具历史数据配置信息 + * + * @param mockRtToolHistoryConfig 模拟工器具历史数据配置 + * @return + */ + void edit(MockRtToolHistoryConfig mockRtToolHistoryConfig); + + /** + * 根据id删除模拟工器具历史数据配置信息 + * + * @param id 模拟工器具历史数据配置的id + * @return + */ + void delete(String id); + + /** + * 根据id查询模拟工器具历史数据配置信息 + * + * @param id 模拟工器具历史数据配置的id + * @return + */ + MockRtToolHistoryConfig queryById(String id); + + void saveEntity(MockRtToolHistoryConfig mockWorkerAttendanceConfig); +} diff --git a/src/main/java/com/zhgd/xmgl/modules/rt/service/impl/MockRtToolHistoryConfigServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/rt/service/impl/MockRtToolHistoryConfigServiceImpl.java new file mode 100644 index 000000000..5b753b2b0 --- /dev/null +++ b/src/main/java/com/zhgd/xmgl/modules/rt/service/impl/MockRtToolHistoryConfigServiceImpl.java @@ -0,0 +1,104 @@ +package com.zhgd.xmgl.modules.rt.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +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.zhgd.jeecg.common.execption.OpenAlertException; +import com.zhgd.jeecg.common.system.query.QueryGenerator; +import com.zhgd.xmgl.modules.rt.entity.MockRtToolHistoryConfig; +import com.zhgd.xmgl.modules.rt.mapper.MockRtToolHistoryConfigMapper; +import com.zhgd.xmgl.modules.rt.service.IMockRtToolHistoryConfigService; +import com.zhgd.xmgl.util.PageUtil; +import com.zhgd.xmgl.util.RefUtil; +import com.zhgd.xmgl.util.mysql.MysqlDataUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.HashMap; +import java.util.List; + +/** + * @Description: 模拟工器具历史数据配置 + * @author: pds + * @date: 2025-05-26 + * @version: V1.0 + */ +@Service +public class MockRtToolHistoryConfigServiceImpl extends ServiceImpl implements IMockRtToolHistoryConfigService { + @Autowired + private MockRtToolHistoryConfigMapper mockRtToolHistoryConfigMapper; + + @Override + public IPage queryPageList(HashMap param) { + QueryWrapper queryWrapper = this.getQueryWrapper(param); + Page page = PageUtil.getPage(param); + IPage pageList = baseMapper.queryList(page, queryWrapper, param); + pageList.setRecords(this.dealList(pageList.getRecords())); + return pageList; + } + + @Override + public List queryList(HashMap param) { + QueryWrapper queryWrapper = getQueryWrapper(param); + return dealList(baseMapper.queryList(queryWrapper, param)); + } + + private QueryWrapper getQueryWrapper(HashMap param) { + QueryWrapper queryWrapper = QueryGenerator.initPageQueryWrapper(MockRtToolHistoryConfig.class, param, true); + queryWrapper.orderByDesc(RefUtil.fieldNameUlc(MockRtToolHistoryConfig::getId)); + return queryWrapper; + } + + private List dealList(List list) { + return list; + } + + @Override + public void add(MockRtToolHistoryConfig mockRtToolHistoryConfig) { + mockRtToolHistoryConfig.setId(null); + baseMapper.insert(mockRtToolHistoryConfig); + } + + @Override + public void edit(MockRtToolHistoryConfig mockRtToolHistoryConfig) { + MockRtToolHistoryConfig oldMockRtToolHistoryConfig = baseMapper.selectById(mockRtToolHistoryConfig.getId()); + if (oldMockRtToolHistoryConfig == null) { + throw new OpenAlertException("未找到对应实体"); + } + baseMapper.updateById(mockRtToolHistoryConfig); + } + + @Override + public void delete(String id) { + MockRtToolHistoryConfig mockRtToolHistoryConfig = baseMapper.selectById(id); + if (mockRtToolHistoryConfig == null) { + throw new OpenAlertException("未找到对应实体"); + } + baseMapper.deleteById(id); + } + + @Override + public MockRtToolHistoryConfig queryById(String id) { + MockRtToolHistoryConfig entity = baseMapper.queryById(id); + if (entity == null) { + throw new OpenAlertException("未找到对应实体"); + } + return entity; + } + + @Override + public void saveEntity(MockRtToolHistoryConfig config) { + MockRtToolHistoryConfig dbConfig = this.getOne(new LambdaQueryWrapper() + .eq(MockRtToolHistoryConfig::getProjectSn, config.getProjectSn())); + if (dbConfig == null) { + this.add(config); + } else { + config.setId(dbConfig.getId()); + this.edit(config); + } + MysqlDataUtil.setFieldsToNull(this, config); + } + +} diff --git a/src/main/java/com/zhgd/xmgl/modules/rt/service/impl/RtToolHistoryServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/rt/service/impl/RtToolHistoryServiceImpl.java index 73805c287..397178440 100644 --- a/src/main/java/com/zhgd/xmgl/modules/rt/service/impl/RtToolHistoryServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/rt/service/impl/RtToolHistoryServiceImpl.java @@ -1,22 +1,23 @@ package com.zhgd.xmgl.modules.rt.service.impl; -import com.zhgd.xmgl.modules.rt.entity.RtToolHistory; -import com.zhgd.xmgl.modules.rt.mapper.RtToolHistoryMapper; -import com.zhgd.xmgl.modules.rt.service.IRtToolHistoryService; -import org.springframework.stereotype.Service; 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.zhgd.jeecg.common.system.query.QueryGenerator; -import com.zhgd.xmgl.util.PageUtil; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.zhgd.jeecg.common.system.query.QueryGenerator; +import com.zhgd.xmgl.modules.rt.entity.RtToolHistory; +import com.zhgd.xmgl.modules.rt.mapper.RtToolHistoryMapper; +import com.zhgd.xmgl.modules.rt.service.IRtToolHistoryService; +import com.zhgd.xmgl.util.PageUtil; +import com.zhgd.xmgl.util.RefUtil; +import org.apache.commons.collections4.MapUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import java.util.HashMap; import java.util.List; - -import com.zhgd.xmgl.util.RefUtil; -import org.springframework.transaction.annotation.Transactional; -import org.springframework.beans.factory.annotation.Autowired; +import java.util.Objects; /** * @Description: 榕图-工器具历史数据 @@ -48,7 +49,12 @@ public class RtToolHistoryServiceImpl extends ServiceImpl getQueryWrapper(HashMap paramMap) { String alias = ""; QueryWrapper queryWrapper = QueryGenerator.initPageQueryWrapper(RtToolHistory.class, paramMap, alias); - queryWrapper.orderByDesc(alias + RefUtil.fieldNameUlc(RtToolHistory::getId)); + if (Objects.equals(MapUtils.getInteger(paramMap, "mockDesc"), 1)) { + queryWrapper.orderByDesc(alias + RefUtil.fieldNameUlc(RtToolHistory::getMockTime)); + } else { + queryWrapper.orderByDesc(alias + RefUtil.fieldNameUlc(RtToolHistory::getId)); + } + return queryWrapper; } diff --git a/src/main/java/com/zhgd/xmgl/modules/sewage/controller/MockSewageDataConfigController.java b/src/main/java/com/zhgd/xmgl/modules/sewage/controller/MockSewageDataConfigController.java new file mode 100644 index 000000000..71f7dbd32 --- /dev/null +++ b/src/main/java/com/zhgd/xmgl/modules/sewage/controller/MockSewageDataConfigController.java @@ -0,0 +1,146 @@ +package com.zhgd.xmgl.modules.sewage.controller; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.zhgd.annotation.OperLog; +import com.zhgd.jeecg.common.api.vo.Result; +import com.zhgd.xmgl.modules.sewage.entity.MockSewageDataConfig; +import com.zhgd.xmgl.modules.sewage.service.IMockSewageDataConfigService; +import com.zhgd.xmgl.util.mysql.MysqlDataUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections.MapUtils; +import org.simpleframework.xml.core.Validate; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import springfox.documentation.annotations.ApiIgnore; + +import java.util.HashMap; +import java.util.List; + + +/** + * @Title: Controller + * @Description: 模拟污水数据配置 + * @author: pds + * @date: 2025-05-26 + * @version: V1.0 + */ +@RestController +@RequestMapping("/xmgl/mockSewageDataConfig") +@Slf4j +@Api(tags = "模拟污水数据配置相关Api") +public class MockSewageDataConfigController { + @Autowired + private IMockSewageDataConfigService mockSewageDataConfigService; + + /** + * 分页列表查询 + * + * @return + */ + @OperLog(operModul = "模拟污水数据配置管理", operType = "分页查询", operDesc = "分页列表查询模拟污水数据配置信息") + @ApiOperation(value = "分页列表查询模拟污水数据配置信息", notes = "分页列表查询模拟污水数据配置信息", httpMethod = "GET") + @ApiImplicitParams({ + @ApiImplicitParam(name = "pageNo", value = "第几页", paramType = "query", required = true, dataType = "Integer"), + @ApiImplicitParam(name = "pageSize", value = "每页显示条数", paramType = "query", required = true, dataType = "Integer"), + }) + @GetMapping(value = "/page") + public Result> queryPageList(@ApiIgnore @RequestParam HashMap param) { + return Result.success(mockSewageDataConfigService.queryPageList(param)); + } + + /** + * 列表查询 + * + * @return + */ + @OperLog(operModul = "模拟污水数据配置管理", operType = "列表查询", operDesc = "列表查询模拟污水数据配置信息") + @ApiOperation(value = "列表查询模拟污水数据配置信息", notes = "列表查询模拟污水数据配置信息", httpMethod = "GET") + @GetMapping(value = "/list") + public Result> queryList(@ApiIgnore @RequestParam HashMap param) { + return Result.success(mockSewageDataConfigService.queryList(param)); + } + + /** + * 添加 + * + * @param mockSewageDataConfig + * @return + */ + @OperLog(operModul = "模拟污水数据配置管理", operType = "添加", operDesc = "添加模拟污水数据配置信息") + @ApiOperation(value = "添加模拟污水数据配置信息", notes = "添加模拟污水数据配置信息", httpMethod = "POST") + @PostMapping(value = "/add") + public Result add(@RequestBody @Validate MockSewageDataConfig mockSewageDataConfig) { + mockSewageDataConfigService.add(mockSewageDataConfig); + return Result.ok(); + } + + /** + * 编辑 + * + * @param mockSewageDataConfig + * @return + */ + @OperLog(operModul = "模拟污水数据配置管理", operType = "编辑", operDesc = "编辑模拟污水数据配置信息") + @ApiOperation(value = "编辑模拟污水数据配置信息", notes = "编辑模拟污水数据配置信息", httpMethod = "POST") + @PostMapping(value = "/edit") + public Result edit(@RequestBody MockSewageDataConfig mockSewageDataConfig) { + mockSewageDataConfigService.edit(mockSewageDataConfig); + return Result.ok(); + } + + /** + * 通过id删除 + * + * @return + */ + @OperLog(operModul = "模拟污水数据配置管理", operType = "删除", operDesc = "删除模拟污水数据配置信息") + @ApiOperation(value = "删除模拟污水数据配置信息", notes = "删除模拟污水数据配置信息", httpMethod = "POST") + @ApiImplicitParam(name = "id", value = "模拟污水数据配置ID", paramType = "body", required = true, dataType = "String", example = "{\"id\":\"1\"}") + @PostMapping(value = "/delete") + public Result delete(@ApiIgnore @RequestBody HashMap map) { + mockSewageDataConfigService.delete(MapUtils.getString(map, "id")); + return Result.ok(); + } + + /** + * 通过id查询 + * + * @param id + * @return + */ + @OperLog(operModul = "模拟污水数据配置管理", operType = "通过id查询", operDesc = "通过id查询模拟污水数据配置信息") + @ApiOperation(value = "通过id查询模拟污水数据配置信息", notes = "通过id查询模拟污水数据配置信息", httpMethod = "GET") + @ApiImplicitParam(name = "id", value = "模拟污水数据配置ID", paramType = "query", required = true, dataType = "Integer") + @GetMapping(value = "/queryById") + public Result queryById(@RequestParam(name = "id", required = true) String id) { + return Result.success(mockSewageDataConfigService.queryById(id)); + } + + + @OperLog(operModul = "模拟污水数据配置管理", operType = "保存", operDesc = "保存模拟污水数据配置信息") + @ApiOperation(value = "保存模拟污水数据配置信息", notes = "保存模拟污水数据配置信息", httpMethod = "POST") + @PostMapping(value = "/save") + public Result saveEntity(@RequestBody @Validate MockSewageDataConfig mockWorkerAttendanceConfig) { + mockSewageDataConfigService.saveEntity(mockWorkerAttendanceConfig); + return Result.ok(); + } + + @OperLog(operModul = "模拟污水数据配置管理", operType = "重置", operDesc = "重置模拟污水数据配置信息") + @ApiOperation(value = "重置模拟污水数据配置信息", notes = "重置模拟污水数据配置信息", httpMethod = "POST") + @PostMapping(value = "/reset") + public Result reset(@RequestBody @Validate MockSewageDataConfig mockWorkerAttendanceConfig) { + MockSewageDataConfig one = mockSewageDataConfigService.getOne(new LambdaQueryWrapper() + .eq(MockSewageDataConfig::getProjectSn, mockWorkerAttendanceConfig.getProjectSn()) + ); + if (one != null) { + MysqlDataUtil.setFieldsToNull(mockSewageDataConfigService, MockSewageDataConfig.class, one.getId()); + } + return Result.ok(); + } + +} diff --git a/src/main/java/com/zhgd/xmgl/modules/sewage/controller/SewageDataController.java b/src/main/java/com/zhgd/xmgl/modules/sewage/controller/SewageDataController.java index 369a02f6b..8c7b08844 100644 --- a/src/main/java/com/zhgd/xmgl/modules/sewage/controller/SewageDataController.java +++ b/src/main/java/com/zhgd/xmgl/modules/sewage/controller/SewageDataController.java @@ -1,11 +1,17 @@ package com.zhgd.xmgl.modules.sewage.controller; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.metadata.IPage; import com.gexin.fastjson.JSON; import com.zhgd.jeecg.common.api.vo.Result; +import com.zhgd.jeecg.common.execption.OpenAlertException; import com.zhgd.xmgl.enums.ParamEnum; +import com.zhgd.xmgl.modules.sewage.entity.MockSewageDataConfig; import com.zhgd.xmgl.modules.sewage.entity.SewageData; +import com.zhgd.xmgl.modules.sewage.service.IMockSewageDataConfigService; import com.zhgd.xmgl.modules.sewage.service.ISewageDataService; +import com.zhgd.xmgl.util.EntityUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; @@ -16,12 +22,13 @@ import org.jeecgframework.poi.excel.def.NormalExcelConstants; import org.jeecgframework.poi.excel.entity.ExportParams; import org.jeecgframework.poi.excel.view.JeecgEntityExcelView; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; import org.springframework.web.bind.annotation.*; import org.springframework.web.servlet.ModelAndView; import springfox.documentation.annotations.ApiIgnore; -import java.util.HashMap; -import java.util.List; +import java.util.*; +import java.util.concurrent.ThreadLocalRandom; /** @@ -38,6 +45,9 @@ import java.util.List; public class SewageDataController { @Autowired private ISewageDataService sewageDataService; + @Lazy + @Autowired + private IMockSewageDataConfigService mockSewageDataConfigService; /** * 分页列表查询 @@ -67,7 +77,6 @@ public class SewageDataController { return Result.success(sewageDataService.queryList(paramMap)); } - @ApiOperation(value = "列表查询污水设备和最新的一条数据信息", notes = "列表查询污水设备和最新的一条数据信息", httpMethod = "GET") @ApiImplicitParams({ @ApiImplicitParam(name = "pageNo", value = "第几页", paramType = "query", required = true, dataType = "Integer"), @@ -202,4 +211,55 @@ public class SewageDataController { return Result.success(values); } + @ApiOperation(value = "生成污水数据", notes = "生成污水数据", httpMethod = "POST") + @PostMapping(value = "/mockData") + public Result mockData(@RequestBody MockSewageDataConfig config) { + if (config.getStartTime() == null) { + throw new OpenAlertException("开始时间不能为空"); + } + if (config.getEndTime() == null) { + throw new OpenAlertException("结束时间不能为空"); + } + mockSewageDataConfigService.saveEntity(config); + List devIdList = StrUtil.split(config.getDevSns(), ","); + ThreadLocalRandom random = ThreadLocalRandom.current(); + List datas = new ArrayList<>(); + for (String devId : devIdList) { + for (int i = 0; i < config.getDevGenerateNum(); i++) { + SewageData data = new SewageData(); + data.setDevSn(devId); + EntityUtils.setRandomDouble(config.getPhValueBegin(), config.getPhValueEnd(), data::setPhValue, 2, random); + EntityUtils.setRandomDouble(config.getTurbidityValueBegin(), config.getTurbidityValueEnd(), data::setTurbidityValue, 2, random); + EntityUtils.setRandomDouble(config.getConductivityBegin(), config.getConductivityEnd(), data::setConductivity, 2, random); + EntityUtils.setRandomDouble(config.getDissolvedOxygenBegin(), config.getDissolvedOxygenEnd(), data::setDissolvedOxygen, 2, random); + EntityUtils.setRandomDouble(config.getWaterTemperatureBegin(), config.getWaterTemperatureEnd(), data::setWaterTemperature, 2, random); + EntityUtils.setRandomDouble(config.getFlowVelocityBegin(), config.getFlowVelocityEnd(), data::setFlowVelocity, 2, random); + EntityUtils.setRandomDouble(config.getWaterLevelBegin(), config.getWaterLevelEnd(), data::setWaterLevel, 2, random); + data.setProjectSn(config.getProjectSn()); + data.setCreateDate(new Date(random.nextLong(config.getStartTime().getTime(), config.getEndTime().getTime() + 1))); + datas.add(data); + } + } + if (CollUtil.isNotEmpty(datas)) { + sewageDataService.saveBatch(datas); + } + return Result.ok(); + } + + @ApiOperation(value = "批量删除污水数据", notes = "批量删除污水数据", httpMethod = "POST") + @ApiImplicitParam(name = "ids", value = "污水数据ID字符串(多个以,分割)", paramType = "body", required = true, dataType = "String") + @PostMapping(value = "/deleteBatch") + public Result deleteBatch(@ApiIgnore @RequestBody HashMap paramMap) { + String ids = MapUtils.getString(paramMap, "ids"); + Result result = new Result<>(); + if (ids == null || "".equals(ids.trim())) { + result.error500("参数不识别!"); + } else { + sewageDataService.removeByIds(Arrays.asList(ids.split(","))); + Result.success("删除成功!"); + } + return result; + } + + } diff --git a/src/main/java/com/zhgd/xmgl/modules/sewage/entity/MockSewageDataConfig.java b/src/main/java/com/zhgd/xmgl/modules/sewage/entity/MockSewageDataConfig.java new file mode 100644 index 000000000..f93e65a69 --- /dev/null +++ b/src/main/java/com/zhgd/xmgl/modules/sewage/entity/MockSewageDataConfig.java @@ -0,0 +1,145 @@ +package com.zhgd.xmgl.modules.sewage.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; + +/** + * @Description: 模拟污水数据配置 + * @author: pds + * @date: 2025-05-26 + * @version: V1.0 + */ +@Data +@TableName("mock_sewage_data_config") +@ApiModel(value = "MockSewageDataConfig实体类", description = "MockSewageDataConfig") +public class MockSewageDataConfig implements Serializable { + private static final long serialVersionUID = 1L; + + /** + * id + */ + @TableId(type = IdType.ASSIGN_ID) + @ApiModelProperty(value = "id") + private java.lang.Long id; + /** + * 所属项目SN + */ + @ApiModelProperty(value = "所属项目SN") + private java.lang.String projectSn; + /** + * 设备sn(多个,分隔) + */ + @ApiModelProperty(value = "设备sn(多个,分隔)") + private java.lang.String devSns; + /** + * 每个设备随机生成数量 + */ + @ApiModelProperty(value = "每个设备随机生成数量") + private java.lang.Integer devGenerateNum; + /** + * 开始时间 + */ + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "开始时间") + private java.util.Date startTime; + /** + * 结束时间 + */ + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "结束时间") + private java.util.Date endTime; + /** + * 创建时间 + */ + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "创建时间") + private java.util.Date createDate; + /** + * 更新时间 + */ + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "更新时间") + private java.util.Date updateDate; + /** + * PH值开始 + */ + @ApiModelProperty(value = "PH值开始") + private java.lang.Double phValueBegin; + /** + * PH值结束 + */ + @ApiModelProperty(value = "PH值结束") + private java.lang.Double phValueEnd; + /** + * 浊度值(NTU)开始 + */ + @ApiModelProperty(value = "浊度值(NTU)开始") + private java.lang.Double turbidityValueBegin; + /** + * 浊度值(NTU)结束 + */ + @ApiModelProperty(value = "浊度值(NTU)结束") + private java.lang.Double turbidityValueEnd; + /** + * 电导率(μS/cm)开始 + */ + @ApiModelProperty(value = "电导率(μS/cm)开始") + private java.lang.Double conductivityBegin; + /** + * 电导率(μS/cm)结束 + */ + @ApiModelProperty(value = "电导率(μS/cm)结束") + private java.lang.Double conductivityEnd; + /** + * 溶解氧(mg/L)开始 + */ + @ApiModelProperty(value = "溶解氧(mg/L)开始") + private java.lang.Double dissolvedOxygenBegin; + /** + * 溶解氧(mg/L)结束 + */ + @ApiModelProperty(value = "溶解氧(mg/L)结束") + private java.lang.Double dissolvedOxygenEnd; + /** + * 水温(℃)开始 + */ + @ApiModelProperty(value = "水温(℃)开始") + private java.lang.Double waterTemperatureBegin; + /** + * 水温(℃)结束 + */ + @ApiModelProperty(value = "水温(℃)结束") + private java.lang.Double waterTemperatureEnd; + /** + * 流速(m/s)开始 + */ + @ApiModelProperty(value = "流速(m/s)开始") + private java.lang.Double flowVelocityBegin; + /** + * 流速(m/s)结束 + */ + @ApiModelProperty(value = "流速(m/s)结束") + private java.lang.Double flowVelocityEnd; + /** + * 水位(m)开始 + */ + @ApiModelProperty(value = "水位(m)开始") + private java.lang.Double waterLevelBegin; + /** + * 水位(m)结束 + */ + @ApiModelProperty(value = "水位(m)结束") + private java.lang.Double waterLevelEnd; +} diff --git a/src/main/java/com/zhgd/xmgl/modules/sewage/entity/SewageData.java b/src/main/java/com/zhgd/xmgl/modules/sewage/entity/SewageData.java index 1eda07f44..b371b64a4 100644 --- a/src/main/java/com/zhgd/xmgl/modules/sewage/entity/SewageData.java +++ b/src/main/java/com/zhgd/xmgl/modules/sewage/entity/SewageData.java @@ -1,18 +1,18 @@ package com.zhgd.xmgl.modules.sewage.entity; -import java.io.Serializable; -import java.util.List; - import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; -import lombok.Data; import com.fasterxml.jackson.annotation.JsonFormat; -import org.springframework.format.annotation.DateTimeFormat; -import org.jeecgframework.poi.excel.annotation.Excel; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.jeecgframework.poi.excel.annotation.Excel; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.List; /** * @Description: 污水数据 @@ -92,26 +92,30 @@ public class SewageData implements Serializable { @Excel(name = "创建时间 yyyy-MM-dd HH:mm:ss", width = 20, format = "yyyy-MM-dd HH:mm:ss") @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @ApiModelProperty(value = "创建时间 yyyy-MM-dd HH:mm:ss") - private java.util.Date createDate; - /** - * 更新时间 yyyy-MM-dd HH:mm:ss - */ - @Excel(name = "更新时间 yyyy-MM-dd HH:mm:ss", width = 20, format = "yyyy-MM-dd HH:mm:ss") - @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") - @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @ApiModelProperty(value = "更新时间 yyyy-MM-dd HH:mm:ss") - private java.util.Date updateDate; + @ApiModelProperty(value = "创建时间 yyyy-MM-dd HH:mm:ss") + private java.util.Date createDate; + /** + * 更新时间 yyyy-MM-dd HH:mm:ss + */ + @Excel(name = "更新时间 yyyy-MM-dd HH:mm:ss", width = 20, format = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "更新时间 yyyy-MM-dd HH:mm:ss") + private java.util.Date updateDate; + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "模拟生成时间") + private java.util.Date mockTime; - @TableField(exist = false) - @ApiModelProperty(value = "设备名称") - private java.lang.String devName; + @TableField(exist = false) + @ApiModelProperty(value = "设备名称") + private java.lang.String devName; - @TableField(exist = false) - @ApiModelProperty(value = "time") - private java.lang.String time; + @TableField(exist = false) + @ApiModelProperty(value = "time") + private java.lang.String time; - @TableField(exist = false) + @TableField(exist = false) @ApiModelProperty(value = "是否报警") private java.lang.Boolean isWarning; diff --git a/src/main/java/com/zhgd/xmgl/modules/sewage/mapper/MockSewageDataConfigMapper.java b/src/main/java/com/zhgd/xmgl/modules/sewage/mapper/MockSewageDataConfigMapper.java new file mode 100644 index 000000000..4cd4c5ee1 --- /dev/null +++ b/src/main/java/com/zhgd/xmgl/modules/sewage/mapper/MockSewageDataConfigMapper.java @@ -0,0 +1,51 @@ +package com.zhgd.xmgl.modules.sewage.mapper; + +import java.util.List; +import java.util.HashMap; + +import com.zhgd.xmgl.modules.sewage.entity.MockSewageDataConfig; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Constants; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * @Description: 模拟污水数据配置 + * @author: pds + * @date: 2025-05-26 + * @version: V1.0 + */ +@Mapper +public interface MockSewageDataConfigMapper extends BaseMapper { + + /** + * 分页列表查询模拟污水数据配置信息 + * + * @param page + * @param queryWrapper + * @param param + * @return + */ + IPage queryList(Page page, @Param(Constants.WRAPPER) QueryWrapper queryWrapper, @Param("param") HashMap param); + + /** + * 列表查询模拟污水数据配置信息 + * + * @param queryWrapper + * @param param + * @return + */ + List queryList(@Param(Constants.WRAPPER) QueryWrapper queryWrapper, @Param("param") HashMap param); + + + /** + * 通过id查询模拟污水数据配置信息 + * + * @param id + * @return + */ + MockSewageDataConfig queryById(String id); +} diff --git a/src/main/java/com/zhgd/xmgl/modules/sewage/mapper/SewageDataMapper.java b/src/main/java/com/zhgd/xmgl/modules/sewage/mapper/SewageDataMapper.java index 5de3b040e..7adb30ec1 100644 --- a/src/main/java/com/zhgd/xmgl/modules/sewage/mapper/SewageDataMapper.java +++ b/src/main/java/com/zhgd/xmgl/modules/sewage/mapper/SewageDataMapper.java @@ -1,6 +1,7 @@ package com.zhgd.xmgl.modules.sewage.mapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Constants; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.apache.ibatis.annotations.Mapper; @@ -25,4 +26,6 @@ public interface SewageDataMapper extends BaseMapper { List countSewageDataTrend(HashMap paramMap); SewageData queryNewestData(HashMap paramMap); + + IPage queryList(Page page, @Param(Constants.WRAPPER) QueryWrapper queryWrapper); } diff --git a/src/main/java/com/zhgd/xmgl/modules/sewage/mapper/xml/MockSewageDataConfigMapper.xml b/src/main/java/com/zhgd/xmgl/modules/sewage/mapper/xml/MockSewageDataConfigMapper.xml new file mode 100644 index 000000000..6b0878c6b --- /dev/null +++ b/src/main/java/com/zhgd/xmgl/modules/sewage/mapper/xml/MockSewageDataConfigMapper.xml @@ -0,0 +1,18 @@ + + + + + + diff --git a/src/main/java/com/zhgd/xmgl/modules/sewage/mapper/xml/SewageDataMapper.xml b/src/main/java/com/zhgd/xmgl/modules/sewage/mapper/xml/SewageDataMapper.xml index b8348e1b7..fa1387476 100644 --- a/src/main/java/com/zhgd/xmgl/modules/sewage/mapper/xml/SewageDataMapper.xml +++ b/src/main/java/com/zhgd/xmgl/modules/sewage/mapper/xml/SewageDataMapper.xml @@ -51,4 +51,14 @@ order by create_date desc limit 1 + + diff --git a/src/main/java/com/zhgd/xmgl/modules/sewage/service/IMockSewageDataConfigService.java b/src/main/java/com/zhgd/xmgl/modules/sewage/service/IMockSewageDataConfigService.java new file mode 100644 index 000000000..018dfd55e --- /dev/null +++ b/src/main/java/com/zhgd/xmgl/modules/sewage/service/IMockSewageDataConfigService.java @@ -0,0 +1,66 @@ +package com.zhgd.xmgl.modules.sewage.service; + +import com.zhgd.xmgl.modules.sewage.entity.MockSewageDataConfig; +import com.baomidou.mybatisplus.extension.service.IService; +import com.baomidou.mybatisplus.core.metadata.IPage; + +import java.util.HashMap; +import java.util.List; + +/** + * @Description: 模拟污水数据配置 + * @author: pds + * @date: 2025-05-26 + * @version: V1.0 + */ +public interface IMockSewageDataConfigService extends IService { + /** + * 分页列表查询模拟污水数据配置信息 + * + * @param param 参数map + * @return + */ + IPage queryPageList(HashMap param); + + /** + * 列表查询模拟污水数据配置信息 + * + * @param param 参数map + * @return + */ + List queryList(HashMap param); + + /** + * 添加模拟污水数据配置信息 + * + * @param mockSewageDataConfig 模拟污水数据配置 + * @return + */ + void add(MockSewageDataConfig mockSewageDataConfig); + + /** + * 编辑模拟污水数据配置信息 + * + * @param mockSewageDataConfig 模拟污水数据配置 + * @return + */ + void edit(MockSewageDataConfig mockSewageDataConfig); + + /** + * 根据id删除模拟污水数据配置信息 + * + * @param id 模拟污水数据配置的id + * @return + */ + void delete(String id); + + /** + * 根据id查询模拟污水数据配置信息 + * + * @param id 模拟污水数据配置的id + * @return + */ + MockSewageDataConfig queryById(String id); + + void saveEntity(MockSewageDataConfig mockWorkerAttendanceConfig); +} diff --git a/src/main/java/com/zhgd/xmgl/modules/sewage/service/impl/MockSewageDataConfigServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/sewage/service/impl/MockSewageDataConfigServiceImpl.java new file mode 100644 index 000000000..d373d37e2 --- /dev/null +++ b/src/main/java/com/zhgd/xmgl/modules/sewage/service/impl/MockSewageDataConfigServiceImpl.java @@ -0,0 +1,104 @@ +package com.zhgd.xmgl.modules.sewage.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +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.zhgd.jeecg.common.execption.OpenAlertException; +import com.zhgd.jeecg.common.system.query.QueryGenerator; +import com.zhgd.xmgl.modules.sewage.entity.MockSewageDataConfig; +import com.zhgd.xmgl.modules.sewage.mapper.MockSewageDataConfigMapper; +import com.zhgd.xmgl.modules.sewage.service.IMockSewageDataConfigService; +import com.zhgd.xmgl.util.PageUtil; +import com.zhgd.xmgl.util.RefUtil; +import com.zhgd.xmgl.util.mysql.MysqlDataUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.HashMap; +import java.util.List; + +/** + * @Description: 模拟污水数据配置 + * @author: pds + * @date: 2025-05-26 + * @version: V1.0 + */ +@Service +public class MockSewageDataConfigServiceImpl extends ServiceImpl implements IMockSewageDataConfigService { + @Autowired + private MockSewageDataConfigMapper mockSewageDataConfigMapper; + + @Override + public IPage queryPageList(HashMap param) { + QueryWrapper queryWrapper = this.getQueryWrapper(param); + Page page = PageUtil.getPage(param); + IPage pageList = baseMapper.queryList(page, queryWrapper, param); + pageList.setRecords(this.dealList(pageList.getRecords())); + return pageList; + } + + @Override + public List queryList(HashMap param) { + QueryWrapper queryWrapper = getQueryWrapper(param); + return dealList(baseMapper.queryList(queryWrapper, param)); + } + + private QueryWrapper getQueryWrapper(HashMap param) { + QueryWrapper queryWrapper = QueryGenerator.initPageQueryWrapper(MockSewageDataConfig.class, param, true); + queryWrapper.orderByDesc(RefUtil.fieldNameUlc(MockSewageDataConfig::getId)); + return queryWrapper; + } + + private List dealList(List list) { + return list; + } + + @Override + public void add(MockSewageDataConfig mockSewageDataConfig) { + mockSewageDataConfig.setId(null); + baseMapper.insert(mockSewageDataConfig); + } + + @Override + public void edit(MockSewageDataConfig mockSewageDataConfig) { + MockSewageDataConfig oldMockSewageDataConfig = baseMapper.selectById(mockSewageDataConfig.getId()); + if (oldMockSewageDataConfig == null) { + throw new OpenAlertException("未找到对应实体"); + } + baseMapper.updateById(mockSewageDataConfig); + } + + @Override + public void delete(String id) { + MockSewageDataConfig mockSewageDataConfig = baseMapper.selectById(id); + if (mockSewageDataConfig == null) { + throw new OpenAlertException("未找到对应实体"); + } + baseMapper.deleteById(id); + } + + @Override + public MockSewageDataConfig queryById(String id) { + MockSewageDataConfig entity = baseMapper.queryById(id); + if (entity == null) { + throw new OpenAlertException("未找到对应实体"); + } + return entity; + } + + @Override + public void saveEntity(MockSewageDataConfig config) { + MockSewageDataConfig dbConfig = this.getOne(new LambdaQueryWrapper() + .eq(MockSewageDataConfig::getProjectSn, config.getProjectSn())); + if (dbConfig == null) { + this.add(config); + } else { + config.setId(dbConfig.getId()); + this.edit(config); + } + MysqlDataUtil.setFieldsToNull(this, config); + } + +} diff --git a/src/main/java/com/zhgd/xmgl/modules/sewage/service/impl/SewageDataServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/sewage/service/impl/SewageDataServiceImpl.java index f43f0138a..6656ee538 100644 --- a/src/main/java/com/zhgd/xmgl/modules/sewage/service/impl/SewageDataServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/sewage/service/impl/SewageDataServiceImpl.java @@ -49,7 +49,7 @@ public class SewageDataServiceImpl extends ServiceImpl queryPageList(HashMap paramMap) { QueryWrapper queryWrapper = getQueryWrapper(paramMap); Page page = PageUtil.getPage(paramMap); - IPage pageList = this.page(page, queryWrapper); + IPage pageList = baseMapper.queryList(page, queryWrapper); pageList.setRecords(dealList(pageList.getRecords())); return pageList; } @@ -269,7 +269,11 @@ public class SewageDataServiceImpl extends ServiceImpl getQueryWrapper(HashMap paramMap) { QueryWrapper queryWrapper = QueryGenerator.initPageQueryWrapper(SewageData.class, paramMap); - queryWrapper.orderByDesc(RefUtil.fieldNameUlc(SewageData::getId)); + if (Objects.equals(MapUtils.getInteger(paramMap, "mockDesc"), 1)) { + queryWrapper.orderByDesc(RefUtil.fieldNameUlc(SewageData::getMockTime)); + } else { + queryWrapper.orderByDesc(RefUtil.fieldNameUlc(SewageData::getCreateDate)); + } return queryWrapper; } diff --git a/src/main/java/com/zhgd/xmgl/modules/smarttension/controller/SmartTensionDataController.java b/src/main/java/com/zhgd/xmgl/modules/smarttension/controller/SmartTensionDataController.java index 6e7611b15..76bc95a1b 100644 --- a/src/main/java/com/zhgd/xmgl/modules/smarttension/controller/SmartTensionDataController.java +++ b/src/main/java/com/zhgd/xmgl/modules/smarttension/controller/SmartTensionDataController.java @@ -1,46 +1,27 @@ package com.zhgd.xmgl.modules.smarttension.controller; +import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.zhgd.jeecg.common.api.vo.Result; import com.zhgd.xmgl.base.entity.vo.FlexibleBigScreenVo; import com.zhgd.xmgl.base.entity.vo.SectorVo; import com.zhgd.xmgl.base.entity.vo.TrendVo; -import com.zhgd.xmgl.modules.smartgrout.entity.vo.CountSmartGroutDataVo; import com.zhgd.xmgl.modules.smarttension.entity.SmartTensionData; import com.zhgd.xmgl.modules.smarttension.entity.vo.CountSmartTensionDataRealTimeVo; import com.zhgd.xmgl.modules.smarttension.entity.vo.CountSmartTensionDataVo; import com.zhgd.xmgl.modules.smarttension.service.ISmartTensionDataService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; -import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiImplicitParams; - -import java.util.HashMap; - -import org.glassfish.jersey.message.internal.Qualified; -import springfox.documentation.annotations.ApiIgnore; - -import java.util.List; -import java.io.UnsupportedEncodingException; -import java.net.URLDecoder; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import com.zhgd.jeecg.common.api.vo.Result; -import com.zhgd.jeecg.common.system.query.QueryGenerator; -import com.zhgd.jeecg.common.util.oConvertUtils; -import org.apache.commons.collections.MapUtils; - -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.core.metadata.IPage; +import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; - -import org.jeecgframework.poi.excel.def.NormalExcelConstants; -import org.jeecgframework.poi.excel.entity.ExportParams; -import org.jeecgframework.poi.excel.view.JeecgEntityExcelView; - +import org.apache.commons.collections.MapUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; -import org.springframework.web.servlet.ModelAndView; -import com.alibaba.fastjson.JSON; +import springfox.documentation.annotations.ApiIgnore; + +import java.util.HashMap; +import java.util.List; /** @@ -107,7 +88,7 @@ public class SmartTensionDataController { @ApiOperation(value = "编辑智能张拉-数据信息", notes = "编辑智能张拉-数据信息", httpMethod = "POST") @PostMapping(value = "/edit") public Result edit(@RequestBody SmartTensionData smartTensionData) { - smartTensionDataService.updateById(smartTensionData); + smartTensionDataService.edit(smartTensionData); return Result.ok(); } diff --git a/src/main/java/com/zhgd/xmgl/modules/smarttension/controller/SmartTensionSteelBeamDataController.java b/src/main/java/com/zhgd/xmgl/modules/smarttension/controller/SmartTensionSteelBeamDataController.java index 8d9281c46..63cbd8c85 100644 --- a/src/main/java/com/zhgd/xmgl/modules/smarttension/controller/SmartTensionSteelBeamDataController.java +++ b/src/main/java/com/zhgd/xmgl/modules/smarttension/controller/SmartTensionSteelBeamDataController.java @@ -1,11 +1,9 @@ package com.zhgd.xmgl.modules.smarttension.controller; -import com.alibaba.fastjson.JSON; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.gexin.fastjson.TypeReference; import com.zhgd.jeecg.common.api.vo.Result; -import com.zhgd.jeecg.common.system.query.QueryGenerator; -import com.zhgd.jeecg.common.util.oConvertUtils; import com.zhgd.xmgl.base.entity.vo.FlexibleBigScreenVo; import com.zhgd.xmgl.base.entity.vo.TrendOneVo; import com.zhgd.xmgl.modules.smarttension.entity.SmartTensionSteelBeamData; @@ -16,18 +14,10 @@ import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections.MapUtils; -import org.jeecgframework.poi.excel.def.NormalExcelConstants; -import org.jeecgframework.poi.excel.entity.ExportParams; -import org.jeecgframework.poi.excel.view.JeecgEntityExcelView; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; -import org.springframework.web.servlet.ModelAndView; import springfox.documentation.annotations.ApiIgnore; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.UnsupportedEncodingException; -import java.net.URLDecoder; import java.util.HashMap; import java.util.List; @@ -145,6 +135,16 @@ public class SmartTensionSteelBeamDataController { if (smartTensionSteelBeamData == null) { result.error500("未找到对应实体"); } else { + String curveDataJson = smartTensionSteelBeamData.getCurveDataJson(); + String tripProgressJson = smartTensionSteelBeamData.getTripProgressJson(); + if (StrUtil.isNotBlank(curveDataJson)) { + smartTensionSteelBeamData.setCurveDataList(com.gexin.fastjson.JSON.parseObject(curveDataJson, new TypeReference>() { + })); + } + if (StrUtil.isNotBlank(tripProgressJson)) { + smartTensionSteelBeamData.setTripProgressList(com.gexin.fastjson.JSON.parseObject(tripProgressJson, new TypeReference>() { + })); + } result.setResult(smartTensionSteelBeamData); result.setSuccess(true); } diff --git a/src/main/java/com/zhgd/xmgl/modules/smarttension/service/ISmartTensionDataService.java b/src/main/java/com/zhgd/xmgl/modules/smarttension/service/ISmartTensionDataService.java index 2b93f29aa..cccaac189 100644 --- a/src/main/java/com/zhgd/xmgl/modules/smarttension/service/ISmartTensionDataService.java +++ b/src/main/java/com/zhgd/xmgl/modules/smarttension/service/ISmartTensionDataService.java @@ -71,4 +71,6 @@ public interface ISmartTensionDataService extends IService { * @return */ SectorVo countBeamType(HashMap paramMap); + + void edit(SmartTensionData smartTensionData); } diff --git a/src/main/java/com/zhgd/xmgl/modules/smarttension/service/impl/SmartTensionDataServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/smarttension/service/impl/SmartTensionDataServiceImpl.java index ba09407af..f8ed844d1 100644 --- a/src/main/java/com/zhgd/xmgl/modules/smarttension/service/impl/SmartTensionDataServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/smarttension/service/impl/SmartTensionDataServiceImpl.java @@ -10,7 +10,6 @@ import com.gexin.fastjson.JSON; import com.zhgd.jeecg.common.execption.OpenAlertException; import com.zhgd.jeecg.common.system.query.QueryGenerator; import com.zhgd.xmgl.base.entity.vo.*; -import com.zhgd.xmgl.modules.concretemixstation.entity.ConcreteMixStationDev; import com.zhgd.xmgl.modules.smarttension.entity.SmartTensionData; import com.zhgd.xmgl.modules.smarttension.entity.SmartTensionDev; import com.zhgd.xmgl.modules.smarttension.entity.SmartTensionSteelBeamData; @@ -20,11 +19,13 @@ import com.zhgd.xmgl.modules.smarttension.mapper.SmartTensionDataMapper; import com.zhgd.xmgl.modules.smarttension.mapper.SmartTensionDevMapper; import com.zhgd.xmgl.modules.smarttension.mapper.SmartTensionSteelBeamDataMapper; import com.zhgd.xmgl.modules.smarttension.service.ISmartTensionDataService; +import com.zhgd.xmgl.modules.smarttension.service.ISmartTensionSteelBeamDataService; import com.zhgd.xmgl.util.DateUtils; import com.zhgd.xmgl.util.PageUtil; import com.zhgd.xmgl.util.RefUtil; import org.apache.commons.collections.MapUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -32,7 +33,6 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Objects; -import java.util.stream.Collectors; /** * @Description: 智能张拉-数据 @@ -47,6 +47,9 @@ public class SmartTensionDataServiceImpl extends ServiceImpl queryPageList(HashMap paramMap) { @@ -75,6 +78,10 @@ public class SmartTensionDataServiceImpl extends ServiceImpl beamDataList = smartTensionData.getBeamDataList(); if (CollUtil.isNotEmpty(beamDataList)) { for (SmartTensionSteelBeamData beamData : beamDataList) { @@ -105,7 +112,6 @@ public class SmartTensionDataServiceImpl extends ServiceImpl paramMap) { Integer type = MapUtils.getInteger(paramMap, "type"); @@ -130,7 +136,6 @@ public class SmartTensionDataServiceImpl extends ServiceImpl countQualifiedTrend(HashMap paramMap) { String projectSn = MapUtils.getString(paramMap, "projectSn"); @@ -167,4 +172,12 @@ public class SmartTensionDataServiceImpl extends ServiceImpl() + .eq(SmartTensionSteelBeamData::getSmartTensionDataId, smartTensionData.getId())); + saveSmartTensionSteelBeamDatas(smartTensionData, smartTensionData.getDevSn(), smartTensionData.getProjectSn()); + } + } diff --git a/src/main/java/com/zhgd/xmgl/util/EntityUtils.java b/src/main/java/com/zhgd/xmgl/util/EntityUtils.java index 84ed1d11b..451b97c24 100644 --- a/src/main/java/com/zhgd/xmgl/util/EntityUtils.java +++ b/src/main/java/com/zhgd/xmgl/util/EntityUtils.java @@ -76,7 +76,7 @@ public class EntityUtils { /** * 对象保存随机的Double - * eg:EntityUtils.setRandomDouble(config.getStopBegin(), config.getStopEnd(), data::setStop, 2, random); + * eg:EntityUtils.setRandomDouble(config.getXBegin(), config.getXEnd(), data::setX, 2, random); * * @param begin * @param end