From fb95c2619b31e0fbd006aeb2c15c7071f4b01bfe Mon Sep 17 00:00:00 2001 From: haungxing <1203316822@qq.com> Date: Tue, 12 Mar 2024 18:53:37 +0800 Subject: [PATCH 01/13] =?UTF-8?q?#=20=E5=BA=94=E6=80=A5=E9=A2=84=E6=A1=88?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E6=9B=B4=E6=96=B0=E6=8E=A5=E5=8F=A3=E5=BC=80?= =?UTF-8?q?=E6=94=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/EmergencyPlanController.java | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/controller/EmergencyPlanController.java b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/controller/EmergencyPlanController.java index 2529e30..3f5a22d 100644 --- a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/controller/EmergencyPlanController.java +++ b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/controller/EmergencyPlanController.java @@ -53,15 +53,15 @@ public class EmergencyPlanController extends BladeController { return R.status(emergencyPlanService.save(req)); } -// /** -// * 修改 -// */ -// @PostMapping("/update") -// @ApiOperationSupport(order = 30) -// @ApiOperation(value = "修改", notes = "传入emergencyPlan") -// public R update(@Validated(Update.class) @RequestBody EmergencyPlanDTO req) { -// return R.status(emergencyPlanService.updateById(req)); -// } + /** + * 修改 + */ + @PostMapping("/update") + @ApiOperationSupport(order = 30) + @ApiOperation(value = "修改", notes = "传入emergencyPlan") + public R update(@RequestBody EmergencyPlanDTO req) { + return R.status(emergencyPlanService.updateById(req)); + } /** * 详情 From eaa0a89c1d17dae44d1991fa226e412c30859bbf Mon Sep 17 00:00:00 2001 From: haungxing <1203316822@qq.com> Date: Tue, 12 Mar 2024 18:57:01 +0800 Subject: [PATCH 02/13] =?UTF-8?q?#=20=E5=B7=A1=E6=A3=80=E8=AE=A1=E5=88=92?= =?UTF-8?q?=E6=8C=89=E6=9C=BA=E6=9E=84=E6=B4=BE=E5=8F=91=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E4=BA=BA=E5=91=98=E7=BC=BA=E5=A4=B1=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/hnac/hzinfo/inspect/task/job/service/TaskJobService.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hzims-service/inspect/src/main/java/com/hnac/hzinfo/inspect/task/job/service/TaskJobService.java b/hzims-service/inspect/src/main/java/com/hnac/hzinfo/inspect/task/job/service/TaskJobService.java index 0617732..82e65be 100644 --- a/hzims-service/inspect/src/main/java/com/hnac/hzinfo/inspect/task/job/service/TaskJobService.java +++ b/hzims-service/inspect/src/main/java/com/hnac/hzinfo/inspect/task/job/service/TaskJobService.java @@ -288,7 +288,7 @@ public class TaskJobService { QueryWrapper planOrgEntityQueryWrapper = new QueryWrapper<>(); planOrgEntityQueryWrapper.lambda().eq(PlanOrgEntity::getPlanId, plan.getId()); planOrgService.list(planOrgEntityQueryWrapper).stream().forEach(entity->{ - List users = userClient.userListByDeptId(entity.getOrgId()).getData(); + List users = userClient.userList(entity.getTenantId(),entity.getOrgId()).getData(); for(User u:users){ res.add(PlanUserEntity.builder().planId(plan.getId()).userId(u.getId()).build()); } From c98ddbd28fdd8dac1cede833c5a5479751a58ada Mon Sep 17 00:00:00 2001 From: ty <1577900710@qq.com> Date: Tue, 12 Mar 2024 21:10:51 +0800 Subject: [PATCH 03/13] =?UTF-8?q?=E5=80=BC=E7=8F=AD=E6=97=A5=E5=BF=97?= =?UTF-8?q?=E5=AF=BC=E5=87=BAbug=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../operational/duty/service/impl/ImsDutyLogServiceImpl.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/duty/service/impl/ImsDutyLogServiceImpl.java b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/duty/service/impl/ImsDutyLogServiceImpl.java index f6ace80..cfe22fc 100644 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/duty/service/impl/ImsDutyLogServiceImpl.java +++ b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/duty/service/impl/ImsDutyLogServiceImpl.java @@ -14,6 +14,7 @@ import org.apache.commons.io.IOUtils; import org.springblade.core.log.exception.ServiceException; import org.springblade.core.mp.base.BaseServiceImpl; import org.springblade.core.tool.utils.Func; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import java.io.*; import java.net.HttpURLConnection; @@ -30,6 +31,8 @@ import java.util.*; @Service public class ImsDutyLogServiceImpl extends BaseServiceImpl implements IImsDutyLogService { + @Value("${hzims.duty.file-path}") + private String savePath; @Override public void exportDutyLog(String dutyId, HashMap map) { ImsDutyLogEntity res = this.baseMapper.selectOne(new LambdaQueryWrapper() {{ @@ -107,12 +110,14 @@ public class ImsDutyLogServiceImpl extends BaseServiceImpl Date: Tue, 12 Mar 2024 21:16:31 +0800 Subject: [PATCH 04/13] =?UTF-8?q?#=20=E7=AB=99=E7=82=B9=E5=BB=BA=E7=AB=99?= =?UTF-8?q?=E9=80=BB=E8=BE=91=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../operational/station/entity/StationEntity.java | 9 + .../station/controller/StationController.java | 7 + .../operational/station/mapper/StationMapper.java | 9 +- .../operational/station/mapper/StationMapper.xml | 9 + .../station/service/IStationService.java | 15 ++ .../station/service/impl/StationServiceImpl.java | 230 +++++++++++++++++---- 6 files changed, 234 insertions(+), 45 deletions(-) diff --git a/hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/station/entity/StationEntity.java b/hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/station/entity/StationEntity.java index 802d236..4d93882 100644 --- a/hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/station/entity/StationEntity.java +++ b/hzims-service-api/hzims-operational-api/src/main/java/com/hnac/hzims/operational/station/entity/StationEntity.java @@ -177,4 +177,13 @@ public class StationEntity extends TenantEntity implements Serializable { @QueryField(condition = SqlCondition.EQUAL) @ApiModelProperty("所属国家") private String refCountry; + + @ApiModelProperty("是否推送数据平台") + private Boolean isPushProject; + + @ApiModelProperty("是否推送FDP") + private Boolean isPushFdp; + + @ApiModelProperty("删除记录ID") + private Long deletedId; } diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/station/controller/StationController.java b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/station/controller/StationController.java index d5e1d1a..c57b6bf 100644 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/station/controller/StationController.java +++ b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/station/controller/StationController.java @@ -207,4 +207,11 @@ public class StationController extends BladeController { public R> accessHydropower() { return R.data(stationService.accessHydropower()); } + + @PostMapping("/instanceFdpStation") + @ApiOperationSupport(order = 100) + @ApiOperation(value = "实例化FDP站点", notes = "实例化FDP站点") + public R instanceFdpStation(@RequestBody StationEntity req) { + return R.status(stationService.instanceFdpStation(req)); + } } diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/station/mapper/StationMapper.java b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/station/mapper/StationMapper.java index 5795087..4f45e33 100644 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/station/mapper/StationMapper.java +++ b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/station/mapper/StationMapper.java @@ -1,6 +1,8 @@ package com.hnac.hzims.operational.station.mapper; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.toolkit.Constants; import com.hnac.hzims.operational.main.vo.StationCountVo; import com.hnac.hzims.operational.station.entity.StationEntity; import com.hnac.hzims.operational.station.vo.HzimsStationCountVo; @@ -276,6 +278,11 @@ public interface StationMapper extends UserDataScopeBaseMapper { List getStationCount(); - + /** + * 查询不带数据权限站点信息 + * @param wrapper wrapper + * @return 站点列表 + */ + List listWithOutAuth(@Param(Constants.WRAPPER) Wrapper wrapper); List stationVoCount(); } diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/station/mapper/StationMapper.xml b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/station/mapper/StationMapper.xml index c955341..12d48ac 100644 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/station/mapper/StationMapper.xml +++ b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/station/mapper/StationMapper.xml @@ -455,4 +455,13 @@ select date_format(create_time,'%Y') year, count(1) count from hzims_station group by year + diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/station/service/IStationService.java b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/station/service/IStationService.java index 2338e6c..00e2e35 100644 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/station/service/IStationService.java +++ b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/station/service/IStationService.java @@ -1,5 +1,6 @@ package com.hnac.hzims.operational.station.service; +import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.hnac.hzims.operational.main.vo.StationCountVo; @@ -38,6 +39,8 @@ public interface IStationService extends BaseService { */ boolean instanceProject(StationEntity req); + boolean instanceFdpStation(StationEntity req); + /** * 删除站点 * @param id 站点ID,按逗号分隔 @@ -129,4 +132,16 @@ public interface IStationService extends BaseService { boolean updateById(StationEntity req); List accessHydropower(); + + @Override + @Deprecated + boolean removeByMap(Map columnMap); + + @Override + boolean save(StationEntity entity); + + Boolean createStation(StationEntity station); + + Boolean updateStation(StationEntity station); + } diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/station/service/impl/StationServiceImpl.java b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/station/service/impl/StationServiceImpl.java index cbfd039..48de2c3 100644 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/station/service/impl/StationServiceImpl.java +++ b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/station/service/impl/StationServiceImpl.java @@ -1,11 +1,16 @@ package com.hnac.hzims.operational.station.service.impl; import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.toolkit.SqlHelper; import com.hnac.hzims.fdp.feign.IQuestionClient; +import com.hnac.hzims.hzimsweather.response.air.Station; import com.hnac.hzims.operational.OperationalConstants; import com.hnac.hzims.operational.main.constant.HomePageConstant; import com.hnac.hzims.operational.main.entity.UserDeptEntity; @@ -51,6 +56,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.Assert; +import java.io.Serializable; import java.util.*; import java.util.concurrent.ExecutionException; import java.util.concurrent.FutureTask; @@ -73,33 +79,28 @@ public class StationServiceImpl extends BaseServiceImpllambdaQuery() - .eq(StationEntity::getCode, req.getCode()).or().eq(StationEntity::getName, req.getName()); - } else { - lwq = Wrappers.lambdaQuery().ne(StationEntity::getId, req.getId()) - .and(wrapper -> wrapper.eq(StationEntity::getCode, req.getCode()).or().eq(StationEntity::getName, req.getName())); + if(Func.isEmpty(req.getId())) { + this.createStation(req); } - - List list = super.list(lwq); - Assert.isTrue(CollectionUtil.isEmpty(list), () -> { - throw new ServiceException("该站点名/编码已有对应记录,请找到相应记录做修改处理"); - }); - // 新建站点的所属机构 - Assert.isTrue(this.buildDept(req), () -> { - throw new ServiceException("创建/修改机构失败!"); - }); - Optional sort = Optional.ofNullable(this.getStationMaxOrder()); - req.setSort(sort.isPresent() ? sort.get() + 1 : 1); - this.pushStation(req); - boolean updateResult = this.saveOrUpdate(req); - Assert.isTrue(updateResult, () -> { - throw new ServiceException("创建/修改站点信息失败!"); - }); + else { + this.updateStation(req); + } +// // 新建站点的所属机构 +// Assert.isTrue(this.buildDept(req), () -> { +// throw new ServiceException("创建/修改机构失败!"); +// }); +// Optional sort = Optional.ofNullable(this.getStationMaxOrder()); +// req.setSort(sort.isPresent() ? sort.get() + 1 : 1); +// this.pushStation(req); +// boolean updateResult = this.saveOrUpdate(req); +// Assert.isTrue(updateResult, () -> { +// throw new ServiceException("创建/修改站点信息失败!"); +// }); } /** @@ -144,19 +145,22 @@ public class StationServiceImpl extends BaseServiceImpl luw = Wrappers.lambdaUpdate().set(StationEntity::getDeletedId, id).eq(StationEntity::getId, id); + this.update(luw); + return SqlHelper.retBool(getBaseMapper().deleteById(id)); + } + + @Override + public boolean removeByIds(Collection idList) { + if (CollectionUtils.isEmpty(idList)) { + return false; } - ProjectDTO projectDTO = new ProjectDTO(); - projectDTO.setName(req.getName()); - projectDTO.setSource(1); - projectDTO.setSecretKey(req.getSecretKey()); - projectDTO.setListenKind(req.getDataSource()); - projectDTO.setId(req.getCode()); - Result result = projectClient.saveOrUpdate(projectDTO); - logger.info("operational:station:buildStation:" + req.getCode(), JSON.toJSONString(result)); - return result.getCode() == ResultCode.SUCCESS.getCode() && result.isSuccess(); + idList.forEach(id -> { + LambdaUpdateWrapper luw = Wrappers.lambdaUpdate().set(StationEntity::getDeletedId, id).eq(StationEntity::getId, id); + this.update(luw); + }); + return SqlHelper.retBool(getBaseMapper().deleteBatchIds(idList)); } @Override @@ -742,16 +746,154 @@ public class StationServiceImpl extends BaseServiceImpl columnMap) { + throw new UnsupportedOperationException("该方法已被禁止使用"); + } + + @Override + public boolean instanceFdpStation(StationEntity req) { + StationPushConfigEntity config = StationPushConfigEntity.builder().stationType(req.getType()).build(); + StationPushConfigVO configVO = stationPushConfigService.getOne(BeanUtil.copy(config, StationPushConfigDTO.class)); + if (ObjectUtil.isNotEmpty(configVO) && configVO.getIsPush()) { + log.info("{}站点开始智能诊断站点推送", req.getCode()); + R pushResult = questionClient.submitStationInfo(configVO.getFdpStationType(), req.getCode(), "运维平台推送"); + if(pushResult.isSuccess()) { + LambdaUpdateWrapper luq = Wrappers.lambdaUpdate().set(StationEntity::getIsPushFdp, true).eq(StationEntity::getId, req.getId()); + return this.update(luq); + } + else { + throw new ServiceException("站点推送智能诊断失败!"); + } + } + else { + return true; + } + } + + @Override + public boolean remove(Wrapper queryWrapper) { + List removeStations = this.list(queryWrapper); + removeStations.forEach(station -> { + LambdaUpdateWrapper luw = Wrappers.lambdaUpdate().set(StationEntity::getDeletedId, station.getId()).eq(StationEntity::getId, station.getId()); + this.update(luw); + }); + return SqlHelper.retBool(getBaseMapper().delete(queryWrapper)); + } + + @Override + public boolean instanceProject(StationEntity req) { + if (Func.isEmpty(req.getSecretKey()) || Func.isEmpty(req.getDataSource())) { + return true; + } + ProjectDTO projectDTO = new ProjectDTO(); + projectDTO.setName(req.getName()); + projectDTO.setSource(1); + projectDTO.setSecretKey(req.getSecretKey()); + projectDTO.setListenKind(req.getDataSource()); + projectDTO.setId(req.getCode()); + Result result = projectClient.saveOrUpdate(projectDTO); + logger.info("operational:station:buildStation:" + req.getCode(), JSON.toJSONString(result)); + if(result.getCode() == ResultCode.SUCCESS.getCode() && result.isSuccess()) { + LambdaUpdateWrapper luq = Wrappers.lambdaUpdate().set(StationEntity::getIsPushProject, true).eq(StationEntity::getId, req.getId()); + return this.update(luq); + } + else { + throw new ServiceException("站点推送数据平台失败!"); + } + } + + @Override + public boolean updateById(StationEntity entity) { + if(Func.isNotEmpty(entity.getHigherDept())) { + StationEntity station = this.getById(entity.getId()); + Assert.isTrue(entity.getHigherDept().equals(station.getHigherDept()),() -> { + throw new ServiceException("站点的上级机构不可更改!"); + }); + } + if(Func.isNotEmpty(entity.getSignage())) { + LambdaQueryWrapper lqw = Wrappers.lambdaQuery() + .eq(StationEntity::getSignage, entity.getSignage()) + .ne(StationEntity::getId, entity.getId()); + List stations = this.getBaseMapper().listWithOutAuth(lqw); + Assert.isTrue(CollectionUtil.isEmpty(stations),() -> { + throw new ServiceException("站点两票标识平台已存在,请检查后重新填入!"); + }); + } + // 创建站点机构 + this.createStationDept(entity); + return super.updateById(entity); + } + + @Override + public boolean save(StationEntity entity) { + // 检查两票标识唯一性 + if(StringUtil.isNotBlank(entity.getSignage())) { + LambdaQueryWrapper wq = Wrappers.lambdaQuery().eq(StationEntity::getSignage, entity.getSignage()); + List stations = this.getBaseMapper().listWithOutAuth(wq); + Assert.isTrue(CollectionUtil.isEmpty(stations),() -> { + throw new ServiceException("站点两票标识平台已存在,请检查后重新填入!"); + }); + } + // 创建站点机构 + this.createStationDept(entity); + return super.save(entity); + } + /** - * 删除新建站点时绑定的数据(项目、智能诊断站点) - * - * @param idList id集合 + * 创建站点机构 + * @param entity 站点信息 */ - private void deleteStation(List idList) { - LambdaQueryWrapper lqw = Wrappers.lambdaQuery().in(StationEntity::getId, idList); - List stationEntityList = this.list(lqw); -// if(CollectionUtil.isNotEmpty(stationEntityList)) { -// stationEntityList.stream().map(StationEntity::getCode).forEach(code -> projectClient.delete()); -// } + private void createStationDept(StationEntity entity) { + //若所属机构不为空 则说明机构已建 获取所属机构 + Dept request = new Dept(); + R existDeptR = sysClient.getDeptByStation(entity.getCode(), AuthUtil.getTenantId()); + if(existDeptR.isSuccess() && Func.isNotEmpty(existDeptR.getData())) { + if(!existDeptR.getData().getParentId().equals(entity.getHigherDept())) { + throw new ServiceException("该站点编号已被其他机构使用,保存失败!"); + } + else { + entity.setRefDept(existDeptR.getData().getId()); + } + } + else { + request.setStationId(entity.getCode()); + request.setTenantId(AuthUtil.getTenantId()); + request.setFullName(entity.getName()); + request.setDeptName(entity.getName()); + request.setParentId(entity.getHigherDept()); + request.setDeptCategory(StationConstants.DeptCategoryEnum.STATION.getValue()); + request.setSort(1); + R buildResult = deptClient.createOrUpdateDept(request); + if (buildResult.isSuccess()) { + // 所属机构回传 + R deptByStation = sysClient.getDeptByStation(request.getStationId(), AuthUtil.getTenantId()); + Long deptId = Optional.ofNullable(deptByStation).map(R::getData).map(Dept::getId).orElse(null); + entity.setRefDept(deptId); + entity.setCreateDept(deptId); + } + } + } + + @Override + public Boolean createStation(StationEntity station) { + if(this.save(station)) { + // 推送数据平台以及fdp + new Thread(() -> this.instanceProject(station),"数据平台推送").start(); + new Thread(() -> this.instanceFdpStation(station),"fdp推送").start(); + return true; + } + return false; + } + + @Override + public Boolean updateStation(StationEntity station) { + if(this.updateById(station)) { + // 推送数据平台以及fdp + new Thread(() -> this.instanceProject(station),"数据平台推送").start(); + new Thread(() -> this.instanceFdpStation(station),"fdp推送").start(); + return true; + } + return false; } } From a26d5806f7051e4b6fd10d1aa5a9a8ee07d41e33 Mon Sep 17 00:00:00 2001 From: ty <1577900710@qq.com> Date: Tue, 12 Mar 2024 21:17:19 +0800 Subject: [PATCH 05/13] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=EF=BC=9A=E4=BA=A4?= =?UTF-8?q?=E6=8E=A5=E7=8F=AD=E5=80=BC=E7=8F=AD=E6=83=85=E5=86=B5=E6=97=A0?= =?UTF-8?q?=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hzims/operational/duty/service/impl/ImsDutyRecServiceImpl.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/duty/service/impl/ImsDutyRecServiceImpl.java b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/duty/service/impl/ImsDutyRecServiceImpl.java index 98fb1aa..6715144 100644 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/duty/service/impl/ImsDutyRecServiceImpl.java +++ b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/duty/service/impl/ImsDutyRecServiceImpl.java @@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.google.common.collect.Lists; import com.hnac.hzims.equipment.entity.EmInfoEntity; +import com.hnac.hzims.equipment.entity.PlanGenerationEntity; import com.hnac.hzims.message.MessageConstants; import com.hnac.hzims.message.dto.MessagePushRecordDto; import com.hnac.hzims.message.fegin.IMessageClient; @@ -417,6 +418,12 @@ public class ImsDutyRecServiceImpl extends BaseServiceImpl() {{ + eq(ImsDutyLogEntity::getDutyId, vo.getDutyId()).last(" limit 1"); + }}); + if (ObjectUtil.isNotEmpty(imsDutyLog)) { + vo.setImsDutyLogEntity(imsDutyLog); + } ImsDutyMainEntity imsDutyMainEntity = imsDutyMainMapper.selectOne(new QueryWrapper() {{ eq("PRE_DUTY_ID", vo.getDutyId()); }}); From 842e6c840108afe0177128968282c48d32950eea Mon Sep 17 00:00:00 2001 From: haungxing <1203316822@qq.com> Date: Tue, 12 Mar 2024 21:17:51 +0800 Subject: [PATCH 06/13] =?UTF-8?q?#=20=E7=AB=99=E7=82=B9=E5=BB=BA=E7=AB=99?= =?UTF-8?q?=E9=80=BB=E8=BE=91=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hzims-service/operational/src/main/resources/db/4.0.0 .sql.1 | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/hzims-service/operational/src/main/resources/db/4.0.0 .sql.1 b/hzims-service/operational/src/main/resources/db/4.0.0 .sql.1 index 5ad9b92..7bcf426 100644 --- a/hzims-service/operational/src/main/resources/db/4.0.0 .sql.1 +++ b/hzims-service/operational/src/main/resources/db/4.0.0 .sql.1 @@ -32,4 +32,9 @@ CREATE TABLE `HZIMS_OPER_CONSTRUCTION` ( PRIMARY KEY (`ID`) USING BTREE ) ENGINE = INNODB CHARACTER SET = UTF8MB4 COLLATE = UTF8MB4_GENERAL_CI ROW_FORMAT = DYNAMIC; -alter table `hzims_oper_maintenance_library` add column `duty_class_tree` VARCHAR(100) NULL COMMENT '班次树,机构/班次类型/班次'; \ No newline at end of file +alter table `hzims_oper_maintenance_library` add column `duty_class_tree` VARCHAR(100) NULL COMMENT '班次树,机构/班次类型/班次'; +alter table `hzims_station` add COLUMN `deleted_id` BIGINT(20) DEFAULT null COMMENT '删除记录ID'; +update `hzims_station` set `deleted_id` = id where `IS_DELETED` = 1; +ALTER TABLE `hzims_station` ADD CONSTRAINT index_code_deleted UNIQUE (`code`, `deleted_id`); +alter table `hzims_station` add column `is_push_project` tinyint(2) default 0 comment '是否推送数据平台'; +alter table `hzims_station` add column `is_push_fdp` tinyint(2) default 0 comment '是否推送FDP'; \ No newline at end of file From 70c6e14256238fc8bcbaf28d2886baad6a9446e7 Mon Sep 17 00:00:00 2001 From: haungxing <1203316822@qq.com> Date: Tue, 12 Mar 2024 21:18:13 +0800 Subject: [PATCH 07/13] =?UTF-8?q?#=20=E6=93=8D=E4=BD=9C=E7=A5=A8=E6=A8=A1?= =?UTF-8?q?=E6=9D=BF=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/resources/template/电气操作票.docx | Bin 49967 -> 50473 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/hzims-service/ticket/src/main/resources/template/电气操作票.docx b/hzims-service/ticket/src/main/resources/template/电气操作票.docx index 38722490fe8ca9d054cb9b6e41de0486f893f8a7..4d4b795f6613a2f4c478bf54090833ca52a6e11c 100644 GIT binary patch delta 19265 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 delta 18773 zcmbTdQ;?=ju&&*-QavB(BC9eYwQ>i zwrddcedfZ7(CT(PEEjhks}5gl?h}yj`8ArQqO*%&F^w_oAExg*JLYMYD21#sm(>HN zUj6ZUQ4cH{-WPwwV~B}iQBy5(i@J*me0IZk2<0u*v zAGn6*!b=AzoGFJMPd%QHf2`Lv*bZSCo(2>RfZ3jFlaNOakjkcTalH*FF;<-71ZDj3 zVgG9FAkmlh$C9hmJSvH1CR5R4EOC+S3gU9}xe)%ke{i}fu?`|~3eIm;bZfbGY`?98ztu4mV2JnH8*i2D2GsMCcr9Vis43HnR*?@3T6i1#j-DoTZlVFRHoc(Y==bEyh%1A9(ZG z&TO-WzaiYa*jp3zT~atdujS0AMeZgL?*Kj)03#6KIB-j;dY(A50Qfhi4`0Q*2rb}` zFkQJ&5pzIqm$ZJNI}Fjtj0PumMzZoOJ0DJW763XLz#O}$`SiC}5a+7K;+8)y-p}|3 z`bcAn*IU2r&(M1;>_te{iCM3&G_Qd)$&Cyss(zA1#T9?Iu9d6v_sKqk|DQj?d!D9= z8o0?0)EyYc0l?T%3^A-4bgH?e;<>-Z z7B*sSmNXJ_VojZ^kUD}+lsbw(j8}G=CMD1Ejbg7K{muH6Gc-njMW{+QGZA!!QUguX!gz>j{B)LL#pTo%Z(SH+dgdb)-kNK>q7M zGkf^x;CpXiU_v4bIcc6|Znin1hZVtDG2D}y*xZOOPPq0*CEN#7FQgl7kLE}-BKm_% zJ|B+c7sg#DA*Ag_#9qk36qQRSDys zxo_sFq<4_NPE-wJ;5{1M5N}6tGBAJ@LVLBYk%V9%DdbcB1a&s@UKN?;VK1eZGQm(0 z2V(Akir}ixry)+X;u}X)YXw}zo^2A*6GoFqbp}2xoxER6DxT0w2n4Fojx=!Xrm z_-7aR+%_g}pjnN6_C0HFY*F}BY3)r9z&UG-BrKE@`!}H0K8YBT5}3S65;6e-5XO`= z-}pYLZl@T?(tl`Z{;t5_a|ciGLGE}zW#DlVFpyz;EUE1kM&gIiyauM#1N~8c2aP97 z5mS92QGGX)3-TPElR;1>jrK52eTDKSQ@#+<;eLa|36|I=s{IMcs+Mc-FS}%p zJ^m6qc2A(a_b$|LU*0T7e2mc$z(X*5wI&sRad`#eA-`(DzO(C#!dzhF9Oiv7r;DL0 zgP}uedhb|M&x^8VailBrd-vZi4@&!)-P^W_@FVX<^@VOn2)xk>%0^dO#5*K*melvd zaI3{X(F2P1{AuD%hD=YXZE$>tcAJTW$}4RyDc(+oztD#(lf?r!d2J|#0Ke>59`7#; z`}=Uq2+jyyWy&hORd(<+eTynAdgtjc?`GV1EO{Vn9yuw+Fh}Ur@y~tlORJWCS5_^( zh3i@tt6N*vF8C3g(ljp|RLT->Kz6R{(4-sc4VL#w9k3B-9gNFAnHL;6`wVDo2z0>56V= z)ZlNzeAB_xhnS`=U8|?rt!u;c2HH$wZ6VHQn@txauhxhl@Is4KqDt-(1LO>KrGt>^_YTa?hLICZX%o?<+0`yJO0nJo1LFMj$FHW=YU)?7t?|UH~*7f+|{fQ za2eu@!GN`MZEI*@F-e{>O>ZyA?a$RZzne4JuaAMB2o6CNM>wVKPmcdH*Kb>7pm9S1 z0j1*r0U`f8irwvY5IL>BWpp{>)o}fEM9_U z=Cx86v~}01O$>Q69UMH?JldwM<-gjpe|Ne)Uv&L^pQL>iy6Qr1tg|2~wg94-b!XXi z+jOT-Y&#uGY#GjLs{B2)IZCc}TRO7RT03@Z=N3CR*Xi|7M7Mv>ViQ}rAt^JMca>`4 ziDajFt}og8ZamROy+5Z;xh2_eNNT8y7ku;c(0?(=o!K2p`v!G>C5OM6KxYdKo&4=vyH0L;kI_( zaHV5;UTGaR!iI;UL{w{kZr5U+>7{N;m>t3ve`l~)?s7QFp4oY=XFH7$@LU0Gv<`_a z;e>7?bp8&cGmG$Sa=mgLdEKO2*XhMmv1miW;f6@>vvar>);W>aZ=zk@${sRe$s)=Q zaFtCf<6p~c+Zf~{Fa?Z?i$W&{jY+Ve3@={*YBb~eV!4!gihP)K&?M(fL~ z6%Y%ji?vc+TMBe?v9HS*o@P9ln}P~$TUJ!w!Xofc!wO(oXn@l+bTGx-FGS{sxPgY( zCwV%L#|3VbiW+!_&9h|c&kftI zL)-I*%NlpU*?`H^c-w>Xf=K<JmHOfE`8t6lZuU9 zZtc-iTVb~+%>Bkr+Emans;>jSSHagn_QtY^4*N_cxTd8D9>k6*huU>XH^5pW70S->mkET|;vP(^+aSfCe=WCxKp zN{vj#ohTh3ezSp&L6tj5rywG|RJM@RD>$FP#{na%f&(1_Ii!Vyj>YPQ9^x6=DYbhy}gyTd^16b`mm~vHwXV)59W_inJVo z5wO8J4=1hyTOqVmrnLaoixoC|I2OJd=@esDuO{WpirW&(1Db|`JTd=XN^0oCD&#WQ zA<*zl#pFTerP8gK5|Ft2)Nec)Y|-+_DG+0{3%wu42@XO~2br5p?8o4dDHY)RsUSdSE>yg8ywv)q!Er9ioL2x}um5 z)x85<5PQ(0kq#A?|AvZF>$pi$DHKG4!$f{-M~Z@UU%s4xmJp|fBp6q$;8KV*3EfafrHOIO+w%f@y1hxndRL6t#|Xmc z)*8(e9uT9u-TehwL)-xQMVG1BF!#mr2YR;(h`%BLk@PWF8fq17gvc=Qt-KADGghc4 z2Wpn87IM7|XoM(%7S1uUbXwRR8$dgjK!z%Co-9Ac#&!))G@~W6(UoR z7e!VAYP%*Y9vbl}4w%=mT6UUzy9lWnT4m4?O4!Dj1`1j> zetKU7Nl4>U3n#2MPdY>a%!D^ZV-8ZESd@eLA%;6gcx(yUE8!`rcDso1 z@Z&>SU%&_n2v`@v0%_1OVdRV6x*}@DDhp(AV?Cvj5$ETdI;ZTY^+a4;yDGQc`FmxW zGH_1@7kMjatT$j%mA$gD1@K~XRAr3hBOWM!X$vdGX)jykL6#Kni;B_uA4< zq}m!@LS{5u!Zzm+T}}Ixnyeqg$-xY*KUdHa%OCA38H z60Om>C!(jxS)PM*hh9u6XqnGT_ado2Nwjm}qjC#U6?~kzOh<|M}HuIrtDO zxt?fZHgbjWydzsTiNkBH#(_aL<)h1S97`)Px&y$hsvFpcwSBC( zEG$SF_SbWU3{Fda^&ciYfid3E2IEcBe+x|qejX+btsca3naNhKj9HcN;_w*pG?$RB z(KE6Xbe+|%Jr;ZUJ?DGGX?+_?OgE&&YS(__2Asq+#Gs|{#=HB@uGaDv>u7h{7v#JH zE(w_53?TPboKrax(~_;shr^RNNHG2w-FC8ji0=IzS3Q_|ZW7dOdK#tb&Z%0`)YVh; zwbg@peaSAyuC)1LWv0#Xx9x>LJ*~2lC%e+qX1@6`go8}l>87i@`}5st*{7!vT5NyK zw__0bwZc)6y-9((ho$T+R7GuXE7iFu;|Q>+0l^{RhU1~Gna33ZsJhHUh4^L~&O7Kd z%g8uNG*LrKKR`?YUz_e`U@(_Ehec7?b+Y^}H-q?53h=b(-G$ojF0ASVPNSDRS5eby zex&8G$#si8$^jj_UAts;I}OLe`mEUpx?|Y>LsPYnNXYK<)6ZQpIXiOj>F4lT=K!$q zq~YP>)9N44E~{iDW%-rpJ;<{T$8Spe`ocd*4+K3xP^O*(X+eZ|>+@{3pR-%#=|ux8 z1jeUQ0>f(&%rBN=USp!3>Iy4Cyw(!R%#nB707H8h{pr?tav$}Rcxa@dufcMYoVM&< zqWn(M3#s3wX)2oQsD6`PU3nuJ9SERn<*r|`0nWtGsumcpyQU5Myq-4Mo%5N#7I;-p zqupUn#xBm`di9o3-(%aQc#BZ{hKPv6a59=A>lHpRJ{`q}33&K3IGR$)S6x`X^jLJ3cvXR;zIjDhF@pXKGf^pi{u57RizdXmq1dT?T_P{V|=t zBRn&yn?#j1Ol72~8isT>a`zU!z(D2@wg~uTEWlSGh1Fc=O_GnXYQMymP2Wwtmb#L2 zWIRn#kI_~FZ-nlkXCYhsCqFC@=+T-YXG6LTX zXwRgUE_Gc}5#X}Rj;SnrT`AVWi2SUXS%lw8Bn+A`v4#O;I6><>S^|Vw_ePtzaWyky z>U^ecytC_{p%6JcO_$?k*EABF7O_9$8k9#>-n7AbCc6s<200(XnrN3kRk}A_zK-i! zC^^*CgY?KRmxE?yA7JF>rWU5dB1Q?!F zIoy0dyl=&9eZ=|Hg#$LCVSNV#LEkLwn&X8BZ5DR2-pch-6PgYde7#cD2kGc+6N#^FH{94KSl!+I1KyV;>#Z<{K0tPTp2Z>;#cN(J`E~AQx zWdv-Puw*s^-H-Nucz^A`!L2S-l}vs}+hZ%a>Q&%z?7E{3p=hYbklvi9^kspF+X7J` zP~pbxIu^?=#?45tXZtKw55o3GIYY0#zvb{PKhT7Kn_$FzF{(eps-#4=SorI_g8I-5 z{1|E6PK+e&%LBrG?A8~cL(ZTau+j>bjkwBgVaf2I^|N+6p7Q*_`rdQZ)KbnJ70etG zZ=FY}CSXmmB}P2VL+?NrfHqO%>hJE68{-%ao`nMU6J)w~_L{nC?wlvKuEyd2CP1Ku3J;zK>hH3w=~)i; zAmm)72y=l(0+Lh*%9k2iL0log3ZJXsig6u=D3N@`?fji#0KfaWxIFcj8U&fE*tBd3t z&{^kM=lxrsrYS{uac&d+ICm@xEepAhi9e^`BKkSm>y*kV(uV|I2?Jh;!uhv=Y(#d8Gz6mBWTu(d@cXFj^qT5> zzgvCC1twO9D3-$`Y7d}M6*Ca= zv8Dl=p+@kIV1-d@6AdXWbw1GCyOn7Z4`prZgu!n^m>}v`>1|+Z1KHVgGkN9fcjy>J8{Q^AjZv$(6&s` zF8ew3K08OPSOmwix6M)TL|#%Uh$$)kKB?bO)V0H2ua#y=6KGEw2<`{45I-?#LyWP; zqz^*J$Q688e$7%o<+Yt_>)-Tt_j>;IU_7rv zjjzh6G7vLz;g|r8vJC-nK7RaF-f9C1-b8X5+D`=**E54325#Y04Iy}D`Go@VDM2Kx zkRHmrJ1}}*FT59|%3k)sM?N;jWvCxt#Y3YW7`Vph1Mgv7rnNNN1h}%XyRO+<+w!pC z_qC|wukroHs)qbHlYf4n^KJu32$lcmMtFQirPXS@)P{Cq4RAK?FbFlnzM^1gI>dDp zyxB}uusA+{P7y0G4o}RHS;(zc!I680^vp(a7#fc&WCvGYqtPHdfJJqDTy93AEQo&7 zNtcWa&o$6k@W#LY;JBr(*--%WsP2KDh&7yCECAt%2xnA}ZuLUH(yP1S+0pQ@zdhT; z)8hS8X}?wO3wU!yp&|bpTHXw)A_dHG2UEyOrd5_tKfs>f^Q2Bk^tW^lRZgd5hirRV zb>EYYdbf0BR6uM8uV9Gzo2Ij}i=w>Q;tV9)NRcl#;7}XrRVbvm9CfK%6qo~LY31L# zV~~&XuukntG`_)$MUrqvfwtpB*PVjXl@cCISvfP1fajZwE?oIb%pVD%60i-V6t^5H zYI&HVi+9T3g5G&{?Db02l0(dkRO@03@g|*D@SuZG8BTfCPzC6dNm5DzlqQ2=NyAwk zk%(+S=P(HDlz&UXA1MD)Ofga$xF1_4YzCDG5OtZ0pxr1PW1$QPQ@K>4RWbzcG52?j zn3NF71FU%S>H|2ABo%X$O|-UJg-3m)-mI@C zX13DwmuvYpJ)c46G6FTSbIjG<`27s?dcr7m+DH1XYjQ&B6fn)*58TT=(t?Yj4~V17 zHoDQnQ?pNl?*zt}^!4i;`VA$L{!+1)g-~yR0@`65WG2gTXr1un6)B?2Mn;LE!x#zV zJ2H<@QnR7P940$Wkw=3PIF|YZ1oF=&w58lFO2>Tv?UOl}=#|2f+)I(0Mk6}n%G$?g+16NGLE+u@OjFlR?W(?wK#y^Grt-(0 z_QzTi8JaW_f*>c@o?~$EmG)N-9wg)DV&-r3~s*`ceuKx zJ;C9; zz1OYRVA^>SevHID$NZ9%NQ);Y*{V&t?up7Kf|eqoqV`)zi}Qtty;tb^f}iK!gF_lV zxSEU-#9OM(+Sj0p4SDB#!vZZKQS7o~7Zc6+?7yUguZ0Na5YsXcLoS6hC;inLi-&*piQ1%E-K7>cKBP$yZ+ z(~Y8Tz3!_L^sfvsl*#&V$`#StbeUr>EUCCzbEe4W3C0`5wj*l2Dbsslt*&RI(w?&7 z1ZG+|=+`geh%UCj_W=n#->lFDiJ2RObWuw>$lx-2#y}k(-d!Dv^3anaimzB9aRKGF z^b+E1LltK2x0iQjtbaA`)6YCUp4rMXW{;9A5Q~rheGbX?GT`|!stH9Lq-W2g-6!aP zKt_4(dpBot_YSV)DS4CvXG6EG0_38mSgFw-cz+k8{@`qLO?K@DzNurb zV8T#{f#T(W>xUE#pS1HBuW>;sJb1)6T4LKzP2x%W0*v$hjK{ zQZpI4NHL$5=aUi`s%Agn>d(E(7}x5pn<{=4nCrhG`wTqA2L!`JY^dL7mDknyaZjH;@#{1M6~ILeT};O5Nf;n#{H2OAD%cF1l*8Xq zKB=tfN!~gXl?=8&p?fm%+;rmxc=LLhTwFiWetypE`F7?cCATHcBAhxnRz;V!Tkk9G z&5S&}!VG2O5Mk9O0rS78{nz&?K({?V34aVGIs3f7%|9mMo`3s*m1D4Ro~#?!>h`a` zuOJp1lRc1k!)K8TcJqKQ-)c&qhhvcvfw+R(H%gYpLV=KQgOIEc29^SA3~yiQKVNT> z;Rhv9iY6kquCBS9go72Ut=#xQ)DU*~0YIdn2GDw~+W#>V4Ok*{BQsGU#_k=)5vl>S zVj%+s(uDzkY&NW*eytb(uI9?&m!z@wVPsqSq1U%WFpEHFZOhS|Lq_`^3)|x^<9ccnVYlDoB3@v}}0m>(u=? zqYC+7I$sEl{q44_tJ}bwy{h%?{unXW!EI>cZ_N8$we<~u>f`=U*3-nGZ@Yueq4Pt4 zhT;PsVh(2pFmA9N6#lwG-R-Gsy;-973Ee)g%3G=3+VOO=d^tjGD<9ql z06=Q3a$D!t`1(?Cn*uOMbiNO>IaY7@tqBtn!WG$N(Vu4)p$vu`0ia|;#gO3=lxC}M z&=?9QxZGwco>M9%oyqc0>i8;Qjel%dGc69u;(eF9nQ7sp8n8G40V4-eQK|Go(rf2| zR@0MN2m14^pfx4&B*6cg)yz|&SW|qI3!+GZ+EnggZld|0e?{*{hGU)v=0%93mfsgxFyfv!ktcWZD=hxCP>6*s zSPE8Z5>m;vQlU1UPd1gX`~^uoI#7FZlyn@D z0`lYc5Z&rCQoxrbziV(Bsd1&9+_;-Mx!b6)St65tC>0c76pYNlZln{*T=SN`g7U9V z#06XfYmf_W;*xsp)zBm^aD&wjIWvSr)XvFjdw|*aYyY7x!?Bw(M0dT-pmjL~a2TnG zSCRU-f>13W$g_D4QCGOiN=fSdOe zS=J@b#xv6*^E4<=npMP${_d2I`13!~(k=I;FQ^zM7idx+Kj4G~mwMcPv=`+?ydqn@ zG1eKjWzR$lCL7U0MiQnZ68N)df7eO<9V~Y>(2=E ziiQ36VIhrh=R%}P10zTp@&>e=9Xfqkw*BBzI@O^Q(|!UhsW2fEzm@@1QKf~`A}w7S z8oYGS?kwN)A9n(?X7s>ZV1Co}xbVCinK{@Nqm+1SmEyv9pM?H(R$OOu{C zuKqg!_U0sqQT5vO_lE@#+FWhnOw?G}pPgWCZicq_9?zCMA`fuk@8LH_2O1`n z>(pNxxsN2bRx54%r@`Q5U||O}(Ug@ohD1z!V#z1frXH?ob{O?c%zYA#s+vJNX0FD9jk{G$?jkbd zfnH?%%u2kCMASIE+WhPcmd^KzO)v~V46$+iAfz@=pK^KUo+WJjv9Ci^IL$WCm`aur%C}MGy|KAi;#TW3u81(;vf|jq>lfqNLh5b<)-y>Ta|d0(W3hQ(Bk5NH1eaUru5fhSLnv6~ zTb%+x-;dci7K-d!-@F!|tofJP_^{VA5v!`uRhehn;Cvg_H6l4pQd(=6b^iy@t!IDo zh-87R2;~KUuzu^t;K9DM?l!_XBkl0l%T+WQ-^eneL&~ER#zxjCHN|tcQ8DcsrsVr(E9m zaau2IAL%4}mGxEk{>oXvM3&u$<*KS4XStT@&_Mf~R+xwvMYjg-I~EH}+}wIY=-AGf zkH@`r>nP?DS&gx{qy zl|`}-SpBvl+|S9T9S!hUlN0nZD^=Eix^zn>#@b`FTv^03Z){t=ykUS`g_kTjXYA>; z(n>TmGz08ru>1h1*w}#YY<0`+w|15J!QNS9x~qX_ag<0HpFU7tC^=ShDGaAx07PHFp+}>Tg$0Qiv_A+ys9!h_4Q`6moUj36zS8l z*C)1(k~BKhl5(Y#E<^MrZpjBA`QaBP463Gg`fgBC!)D%IV9EPe2$z?=W5h#2owBk*O zsvo355TJWK1=cMOWf#`|nvr*c;4clPn*6C(zXveux14~9SMR@AUW@_;%ZvY&`_Xlf zv{gF-cE*Xiv4=93D(v~RO0;&z5MxhLfZS)#UVU5r*Ow5Ue^3)*ngi9->*(*4ph!iSyyeuQBF;zj+I;e-Zt@d}Pe%Gff=LM8%@4UQtl-qy8m-^oq zQ3@vHuDj)J%nN7?y4VqwfL%{f?PSEjiC`GzW_;`^F;1UF6zMU(`o%zy@NQB7nEA7Y zc_yCueh}qv$(1gPLC)+|LH@w`I`(D?$D-{MQCAzK5+*rU*QcME$r5l4?C=PHd}S|e z1l;#+cRW$RQUHCbyeSm+lR=un`xB?J%*eFRF6N=TKf<(uqNexN9O15>oj+39i9XM> zA4?+iTJ*hCwmaS}ceB%z>kt*d;#ks0()>`0P^E(0(mIjE>G`|*Tx+1eg?JRD6Un-VTH`@Vq`<7aGQN1idy~` zu8`&oo*j_Rx+dnUboZ(Xk#GwO{qZ#Aed%gQ=7q9?Lt&9(vOqf!{qJzVr=`D2T$M== zf*|}#A$G46=S{F4lGnWPV_+kJ!khRvr;Hd-vsBI3XE~ST!q^e`Pe1<$Y8PFFO`|_; z#id4Hx^8Hut7_P80q@e9aRQvfzdJrf3P=@4&<99pOZUMOM#Iot<->p8F*@eU4Ug*` zl&1_2DT*L6=R{-B%zo_ysNam1Bpy%|N$L87oBh&+h^>kpgqD6&6pC@fxbkVmfljuG zBJ#JJEBvMn?;lqbZ-h{vFnvKkeSj9;llZ_1C1!>dMbDmp}kC&Y?h zm*0)!vk`O@QINQ!AsG%!P?ESWi5$je{+p4Mzym{(6NC0vZBPlIW~@(@jzZYL;40|{ zGYq$}xaD{nq{pTwRU%;L@U?PG6?(Z{IDnw4_vIO(>QUWuM{4W@&U3 zVwce!8pH^5Ff7Y*_#6_PRnl~zg_tbE$Urn{j(BG1sXsVy$l0_!_*1RG*hGQS4ln%b zOrhNOp?S3sl#>jAq6_KCYpg@C^w1G_X%!ep8`*mU^?v}_*_dxo@UN+zrIQ+sCSjUL zL80dxf06}`Dq4jkbRXQ>!hPo8b>z&2-mBRI#iZ;V zJ*o=N(@3c*c|P@UG9(#1f8$Uh(1I^i&&X~dufhNnXY&tFh{>MgC&F1!&z4kl zztI)2BY+^cqXMy>4M@1VN?bg!*oAhdeRo=Gg(8Y<(*<_qinTx&gk(@ieOevl@9wvEW5W6RV8N%is z;baxLDm+~YU-I=!91%ZQ(H+si%U`gA6a>oE_Z4S?Th)N?7bcpmQ&1Gmx;Z3wh%`Qs zPXE267!I)aLI81jbXuZr_z?ulp-W$+2K<9a%iG#e;`#S*s??}5C~a#so>gbI$eNu%C)t;oAyYjA=`+vHp*%qo})UD!`@(I0N;L* zkVRicPz8wYKccbc{e8K5hq*#ux5C}C3WDsNRd_G(oFVUhRQ~Iba`OsX3>^r?;V=W| z?^MwOoNNxF`SrUbqRnK@WSh?f!AHEbU0`>-Mmn-3XWk{Es0V>Wa&1na-0k8@7IqZ6Xu&Jrciv@02Anm#8Qmj3TMIuk1}#WG12HL0SR0)l5&!@+sj0d zjK~??X$V`Ig~Us1T5)NROhx`e;m{CA!)gpe9qOU>a7W|=rxX%-KVT+$1r*T*gwSx5 z1Cmj48OU{VJfFkAxK}7`ilQ(Bo<=%k+mhW~4b;Q!{ieVI2LJBHBo4+71KO2F+Zk`d zlXq392b#$$7TYZ(EhMRgLOlO!iIo4LFVGe03U-SKFF;9v7B)yj^JqFgzL(whxefXk z8*?3r9fnz#QUI02(76zii^y_0H0yKyE%Fl2enyV0qTQALO;zci>!WB*lzRdY1J`Wc zg=;5|$%+x`19Smd5%`QGz0DJ+#|#S zF3$YC2>gFm%mF4D8GG;w<;yK_imC`I85vqkWJP42&MAw}+mr6}8PIDcbBSfcl_!kf+vt*BN@Mis^`SSvi zaJkKXZ8f)d9ngDV%?4bDUW8;{z)4V64UlVYw5qaTwymtStBkL?4<)I1*V(LD;Kbd? zjIghMhzR=}4t=skccVR4LynoknTu?Sz%_SgX5Pg5SET!j@i|lY@Z=}|c5n!;Xpz(?dY4G>$@(unPBY}{YHw6vs>6T4f2lTDe2@p~)+2rMt7bl_WwA|bw zf6*lPci;7VIl#6s_&WyT-g5*4;>$%XZw_4fTJnjl+*?~OrC*XJ)*>26iUvxF?v8(_ z<{fH9#ZP+lFSDFb=HeD3b(c=j} zedKTeq}nC$Y1yn0z374_Kr>nuCK4)clR+iQwePg|hY)^c>w@7D5L0JGShsQFCtH8x6rz!v`b{E~gHzRf zl`8Eg60RbxoS*}W3+76B%x=f?G4QrNN7wnQh+U+;>0s+7<_l+n!V886HHphYMvSuw z!cdb`dV(Bjr-xaEXG1GNUEIUP!kW#V?*7yuUV;R?<9lS~dKC3zJL&yc`eX77EUQ`_ z&}wFnPW*-oE|nsHGnOKaN-uv`*>WG662x)5m+Ygl z#JA(YsmSfY^J@NU{iyD$tB>-p3E2K0iXzz+rzGU?gK$3(N0oBOh3NYbFuu3+JEQ>4 zT2^ADFoEm?xvv8MeKNENVL$?>0x@(j23NQvIJqz!PCROGt4u>o=6rh(_M@t3>0@91G5Si131 z>UxjIWGmnL+yeA|r1(Bre}v85u`JEJQOSbqQeWhrl`j;Q6oqnEl@s-i6f=H0o>^%3 z_R1-T3ad(_{*d z$C6eU3}yYHi57C@M&BXc=kSjSWzm?{x9#<>K!HOHDghYP8kRct8^$+Y7Q{A>^zoj8 zds+5l(s2`E3`y)7(O>HL4YSLWD`8QM97S$J89(Ke zOXPh}*aP@3f1dIDIJ$Ztk^gCOb2}NCdY=)$mVaIhd&Z2rd@2LO(tHmjZGC}m8Q=0f zH6gj09S*67Vsu)9{%gPY3Lg2I=E315!BEp7D zpWxTg0}jQc&*aHSHxbf%PIJ;I{(52ltHIIzW3W8PN4sR3%pjjF9rK5Ttb9zS9RTo> z&~umK`;35oV9%fYjHFfq6#++BY=&(lUOJ0Y<@=qU9T?;W6N)rtkdnpt$BVj+*9s9cjlh?zHc6S z-#}n3Mrp!WnsWPrE^BBs;g;98VejcipB=wHj%fX2R!Z}VD)7BirFS*)qs+VJ@&D>U zhCbuRK>F-AOJ}qF%!70Vb8TfiDbZO3WW3{NB_ELngj1eUy1`#?96OV9iLp&>U20;i zA@MaKF*QBV{n+>+m1_8+Z~0-#gcs%|OFWl;7?z@bJgvHfm%jC(AaXP|uMV$vL}531pmQ>Bnj~F#g`1@>cw!Sv4n$Zz z@}Lxo$f;-Cbs_R+?6A$W#e+4hsPb~n6_Nh`cr;doL9z8qj%d&8qPsKB5`@512cB$PTV~qo2ZRgSEhKGR_K%byoYwG z^)2DGFk$BKjm2CI&AI`iTg>VBRd9>g5M>3bC>pc%S&Dch`(zWo+$b?YD^@-e2V8eF z0zJ1d62U!Uqr(IXg$I}xzO{?=&75j2Zqbd^)9GAZk3W?4h4T{3&C%28n z&6ro}_*c@$jNz*)v^4`bTBXlFE{kJREq~fDgo?hmxDJViI{A)DLtEd8l*Mer|2$Tvt|i?rOGyt6u!L8BFEbjl+vGx2A%yES7vCK|MTi+ zgc4FIWi#8>FAK8CpK{$_?WC59VNYapY-AM!sf|X=`J+>vrAvD$*`3RzQKrrL2$%CY zVpiYJ$WyOA;Du|iZ^Ro<=ZAIA>f~d4i%}xU8P{l((c(KHEO)h94H@ZTZuL5XbCI7} zqNhlrRNt!n{^e20Kx(B<4rlO7cSq$b?1p5;PVKmUjb(#*8z%aAo5TL}ZX<{TwR;B2 zgp1Xr(u*ms7Rc@ai>*lEx}tbXVnUa2UF5@e3yzxTCUjFAekKNtX9r2#kCj?is!W|u z?Q~vyYn`2iLEloCqYftX?cU-8+jiUfX+%5vvc>PobWyqtx8_pV_*oVnX}K!W z{%pxrrts$KYz{y0VC-b}<*~pexe!$RPUjoSB=@vbR*)f1XPb3(5ZnJm)rl@~!H6Q{ zABR!5G$7h4H}UIcg_Q-pHut+!oG3+RkhOq_U(c|EQm0$EK{oB^m&sRA=4m@g5&%Cv z&b&4~er^%J%;-3|*GUL!-e7kvR`RdT9L?yCew8*VI%Vv4LCPoP*qzi%dnTg% zUfj;%|3T~^OxzhCGnLrcN&5U$0D}l+yItF=}#|TZJS4H%1!xEW<_=8)l5U*y3$miYV zo-UrA6y1i3dziVglBX`7(F^Omo2XwAwUylC3%RY6U%$kC8z0-C$w&K`3}L(GoVW6x zW!{P;hpjot{pQSd{YYvQN=Ia%mzU&e#i}F?_lHEOC zBb5nO*=$~U`aw-~wyD$^eWHKDQC;d&p^~EOpk+Y+i_F81(wN93@6pnR6R6$uDlL_=H39->n{!d zjN?fw2b@>?rCV=7v^iFE7wC78*ijLuz{~1KE#zK38cz?XTL%kiU5NE>bgD zb;j!)K9-=mnhaHGl}T11Y^G z5S@0wxPh}y1&NzYq9QKf0;_ ptk_DZA387~kocaHzy7@ED3HW90sjuL*vG&^zz$nQIJ$e!`#*C>Lm>bF From 9b9d9def67a238e104d51dd0f3df65112945c4d6 Mon Sep 17 00:00:00 2001 From: haungxing <1203316822@qq.com> Date: Tue, 12 Mar 2024 21:18:48 +0800 Subject: [PATCH 08/13] =?UTF-8?q?#=20=E5=B7=A1=E6=A3=80=E5=AF=B9=E8=B1=A1?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E8=AE=BE=E5=A4=87=E7=BC=96=E5=8F=B7=E5=AD=97?= =?UTF-8?q?=E6=AE=B5=E9=95=BF=E5=BA=A6=E5=8A=A0=E9=95=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hzims-service/inspect/src/main/resources/db/2.0.0.sql.1 | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/hzims-service/inspect/src/main/resources/db/2.0.0.sql.1 b/hzims-service/inspect/src/main/resources/db/2.0.0.sql.1 index 11f6355..dc27925 100644 --- a/hzims-service/inspect/src/main/resources/db/2.0.0.sql.1 +++ b/hzims-service/inspect/src/main/resources/db/2.0.0.sql.1 @@ -10,4 +10,5 @@ alter table `hz_st_ex_task` add column `video_url` varchar(255) default null com alter table `hz_st_camera_info` add column `em_code` varchar(50) default null comment '设备编号'; alter table `hz_st_robot` add column `code` varchar(50) default null comment '机器人编号'; alter table `hz_st_robot` add column `station_code` varchar(50) default null comment '站点编号'; -alter table `hz_st_robot` add column `is_device_instance` tinyint(2) default 0 comment '是否绑定设备实例'; \ No newline at end of file +alter table `hz_st_robot` add column `is_device_instance` tinyint(2) default 0 comment '是否绑定设备实例'; +alter table `hz_st_re_object` change COLUMN `EM_CODE` `EM_CODE` VARCHAR(50) COMMENT '设备编号'; \ No newline at end of file From e8f12a910740261f1db6eae27e08a17caf6dc998 Mon Sep 17 00:00:00 2001 From: ty <1577900710@qq.com> Date: Wed, 13 Mar 2024 11:09:09 +0800 Subject: [PATCH 09/13] =?UTF-8?q?=E8=B0=83=E6=95=B4=E7=BC=BA=E9=99=B7?= =?UTF-8?q?=E6=9C=88=E6=8A=A5=E7=BB=9F=E8=AE=A1=E5=AF=BC=E5=87=BA=E9=A1=BA?= =?UTF-8?q?=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../operational/defect/service/impl/OperPhenomenonServiceImpl.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/defect/service/impl/OperPhenomenonServiceImpl.java b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/defect/service/impl/OperPhenomenonServiceImpl.java index 4032dff..bf8224d 100644 --- a/hzims-service/operational/src/main/java/com/hnac/hzims/operational/defect/service/impl/OperPhenomenonServiceImpl.java +++ b/hzims-service/operational/src/main/java/com/hnac/hzims/operational/defect/service/impl/OperPhenomenonServiceImpl.java @@ -609,9 +609,6 @@ public class OperPhenomenonServiceImpl extends BaseServiceImpl res = new ArrayList<>(); if (CollectionUtil.isNotEmpty(operPhenomenonEntities)) { - CheckVoteChartVo all = getCheckVoteChartVo(operPhenomenonEntities); - all.setName("总计"); - res.add(all); Map> collect = Optional.ofNullable(operPhenomenonEntities).orElse(new ArrayList<>()).stream().collect(Collectors.groupingBy(OperPhenomenonEntity::getCreateDept)); for (Map.Entry> longListEntry : collect.entrySet()) { CheckVoteChartVo chartVo= getCheckVoteChartVo(longListEntry.getValue()); @@ -619,6 +616,9 @@ public class OperPhenomenonServiceImpl extends BaseServiceImpl Date: Wed, 13 Mar 2024 17:07:30 +0800 Subject: [PATCH 10/13] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=EF=BC=9A=E6=A3=80?= =?UTF-8?q?=E6=9F=A5=E9=A1=B9=E6=9B=B4=E6=96=B0=E5=A4=B1=E8=B4=A5bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../safeproduct/service/impl/CarCheckRecordServiceImpl.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/CarCheckRecordServiceImpl.java b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/CarCheckRecordServiceImpl.java index 12819bf..6c55284 100644 --- a/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/CarCheckRecordServiceImpl.java +++ b/hzims-service/safeproduct/src/main/java/com/hnac/hzims/safeproduct/service/impl/CarCheckRecordServiceImpl.java @@ -162,11 +162,17 @@ public class CarCheckRecordServiceImpl extends ServiceImpl itemList = carCheckRecordDTO.getItemList(); - boolean updateItem = carCheckItemService.updateBatchById(itemList); - // 若更新检查项成功,则更新车检记录 - if (updateItem) { + 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); From 775d6ab71ab0a89e8db4e96477e47ab086316950 Mon Sep 17 00:00:00 2001 From: ty <1577900710@qq.com> Date: Wed, 13 Mar 2024 18:37:32 +0800 Subject: [PATCH 11/13] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E8=AF=8A=E6=96=AD?= =?UTF-8?q?=E5=A4=B1=E8=B4=A5=E5=8E=BB=E9=99=A4=E6=95=85=E9=9A=9C=E5=BF=85?= =?UTF-8?q?=E9=80=89=E9=A1=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/hnac/hzims/fdp/service/impl/FdpTaskServiceImpl.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/hzims-service/equipment/src/main/java/com/hnac/hzims/fdp/service/impl/FdpTaskServiceImpl.java b/hzims-service/equipment/src/main/java/com/hnac/hzims/fdp/service/impl/FdpTaskServiceImpl.java index 0e993d1..957d210 100644 --- a/hzims-service/equipment/src/main/java/com/hnac/hzims/fdp/service/impl/FdpTaskServiceImpl.java +++ b/hzims-service/equipment/src/main/java/com/hnac/hzims/fdp/service/impl/FdpTaskServiceImpl.java @@ -234,11 +234,12 @@ public class FdpTaskServiceImpl extends BaseServiceImpl Date: Thu, 14 Mar 2024 12:01:44 +0800 Subject: [PATCH 12/13] =?UTF-8?q?=E5=8D=AB=E7=94=9F=E6=A3=80=E6=9F=A5?= =?UTF-8?q?=E9=A1=B9-=E6=A3=80=E6=9F=A5=E4=BA=BA=E5=AD=97=E6=AE=B5?= =?UTF-8?q?=E9=95=BF=E5=BA=A6=E5=A2=9E=E5=8A=A0=E5=88=B0100?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/hnac/hzims/safeproduct/entity/HygieneRecordEntity.java | 2 +- hzims-service/safeproduct/src/main/resources/db/2.0.0.sql.1 | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/entity/HygieneRecordEntity.java b/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/entity/HygieneRecordEntity.java index 933ecb9..7e294a8 100644 --- a/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/entity/HygieneRecordEntity.java +++ b/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/entity/HygieneRecordEntity.java @@ -39,7 +39,7 @@ public class HygieneRecordEntity extends BaseEntity { @ApiModelProperty("实际结束时间") private Date actualEndTime; - @Size(max = 20, message = "检查人字段长度不能超过20") + @Size(max = 100, message = "检查人字段长度不能超过20") @ApiModelProperty("检查人") private String checkUser; diff --git a/hzims-service/safeproduct/src/main/resources/db/2.0.0.sql.1 b/hzims-service/safeproduct/src/main/resources/db/2.0.0.sql.1 index 778d870..d54fb2a 100644 --- a/hzims-service/safeproduct/src/main/resources/db/2.0.0.sql.1 +++ b/hzims-service/safeproduct/src/main/resources/db/2.0.0.sql.1 @@ -222,7 +222,7 @@ CREATE TABLE `HZIMS_HYGIENE_RECORD` ( `ACTUAL_START_TIME` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '实际开始时间', `ACTUAL_END_TIME` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '实际结束时间', `CHECK_TIME` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '检查时间', - `CHECK_USER` VARCHAR(20) NOT NULL DEFAULT '' COMMENT '检查人', + `CHECK_USER` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '检查人', `HYGIENE_ZONE_IDS` VARCHAR(1000) NOT NULL COMMENT '卫生自查区域ID', `CHECK_RESULT` MEDIUMTEXT NOT NULL COMMENT '检查结果', `COMPREHENSIVE_SCORE` VARCHAR(500) NOT NULL COMMENT '综合评分', From 713ccecfce20de7695749b6ef4f727bd7fe61917 Mon Sep 17 00:00:00 2001 From: ty <1577900710@qq.com> Date: Thu, 14 Mar 2024 12:01:50 +0800 Subject: [PATCH 13/13] =?UTF-8?q?=E5=8D=AB=E7=94=9F=E6=A3=80=E6=9F=A5?= =?UTF-8?q?=E9=A1=B9-=E6=A3=80=E6=9F=A5=E4=BA=BA=E5=AD=97=E6=AE=B5?= =?UTF-8?q?=E9=95=BF=E5=BA=A6=E5=A2=9E=E5=8A=A0=E5=88=B0100?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/hnac/hzims/safeproduct/entity/HygieneRecordEntity.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/entity/HygieneRecordEntity.java b/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/entity/HygieneRecordEntity.java index 7e294a8..493f646 100644 --- a/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/entity/HygieneRecordEntity.java +++ b/hzims-service-api/safeproduct-api/src/main/java/com/hnac/hzims/safeproduct/entity/HygieneRecordEntity.java @@ -39,7 +39,7 @@ public class HygieneRecordEntity extends BaseEntity { @ApiModelProperty("实际结束时间") private Date actualEndTime; - @Size(max = 100, message = "检查人字段长度不能超过20") + @Size(max = 100, message = "检查人字段长度不能超过100") @ApiModelProperty("检查人") private String checkUser;