| | |
| | | package com.moral.api.service.impl; |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.moral.api.config.mybatis.wrapper.NullFilterWrapper; |
| | | import com.moral.api.entity.User; |
| | |
| | | import com.moral.api.mapper.VersionSensorUnitMapper; |
| | | import com.moral.api.pojo.dto.version.VersionDTO; |
| | | import com.moral.api.pojo.dto.version.VersionQueryDTO; |
| | | import com.moral.api.pojo.form.version.VersionQueryForm; |
| | | import com.moral.api.pojo.form.version.*; |
| | | import com.moral.api.service.VersionService; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.moral.constant.Constants; |
| | | import com.moral.constant.ResponseCodeEnum; |
| | | import com.moral.util.ConvertUtils; |
| | | import org.apache.tomcat.websocket.WsRemoteEndpointAsync; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | import org.springframework.util.ObjectUtils; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.*; |
| | | |
| | | /** |
| | | * <p> |
| | |
| | | Date updateEndTime = form.getUpdateEndTime(); |
| | | String order = form.getOrder(); |
| | | String orderType = form.getOrderType(); |
| | | Integer isDelete = form.getIsDelete(); |
| | | //组装查询条件 |
| | | Page<Version> queryPage = new Page<>(page, size); |
| | | NullFilterWrapper<Version> wrapper = new NullFilterWrapper<>(); |
| | |
| | | else |
| | | wrapper.orderByDesc(ConvertUtils.toLine(order)); |
| | | } |
| | | //逻辑删除条件构造 |
| | | if (!ObjectUtils.isEmpty(isDelete)) |
| | | wrapper.eq("is_delete", isDelete); |
| | | else |
| | | wrapper.eq("is_delete", Constants.NOT_DELETE); |
| | | //查询结果 |
| | | Page<Version> versionsPage = versionMapper.selectPage(queryPage, wrapper); |
| | | List<Version> versions = versionsPage.getRecords(); |
| | | //查询版本对应的因子和单位 |
| | | List<Integer> versionsIds = new ArrayList<>(); |
| | | versions.forEach(value -> versionsIds.add(value.getId())); |
| | | List<Version> result = new ArrayList<>(); |
| | | List<Version> queryResult = new ArrayList<>(); |
| | | if (!ObjectUtils.isEmpty(versionsIds)) { |
| | | result = versionMapper.queryVersionsAndSensorUnitByIds(versionsIds); |
| | | queryResult = versionMapper.queryVersionsAndSensorUnitByIds(versionsIds); |
| | | } |
| | | //封装返回数据 |
| | | List<VersionDTO> dtos = new ArrayList<>(); |
| | | result.forEach(value -> dtos.add(new VersionDTO(value))); |
| | | queryResult.forEach(value -> dtos.add(new VersionDTO(value))); |
| | | dto.setVersionDTOS(dtos); |
| | | dto.setCurrent(versionsPage.getCurrent()); |
| | | dto.setPages(versionsPage.getPages()); |
| | |
| | | dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg()); |
| | | return dto; |
| | | } |
| | | |
| | | @Override |
| | | @Transactional |
| | | public VersionDTO update(VersionUpdateForm form) { |
| | | //创建返回对象 |
| | | VersionDTO dto = new VersionDTO(); |
| | | //取参 |
| | | Version version = form.formConvertEntity(); |
| | | //查找要更新的version 用于插入日志 |
| | | QueryWrapper<Version> oldVersionWrapper = new QueryWrapper<>(); |
| | | Version oldVersion = new Version(); |
| | | oldVersion.setId(version.getId()); |
| | | oldVersion.setIsDelete(Constants.NOT_DELETE); |
| | | oldVersionWrapper.setEntity(oldVersion); |
| | | oldVersion = versionMapper.selectOne(oldVersionWrapper); |
| | | if (ObjectUtils.isEmpty(oldVersion)) { |
| | | dto.setCode(ResponseCodeEnum.VERSION_NOT_EXIST.getCode()); |
| | | dto.setMsg(ResponseCodeEnum.VERSION_NOT_EXIST.getMsg()); |
| | | return dto; |
| | | } |
| | | |
| | | //更新 |
| | | versionMapper.updateById(version); |
| | | |
| | | //封装返回结果 |
| | | dto.setCode(ResponseCodeEnum.SUCCESS.getCode()); |
| | | dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg()); |
| | | |
| | | return dto; |
| | | } |
| | | |
| | | @Override |
| | | @Transactional |
| | | public VersionDTO insert(VersionInsertForm form) { |
| | | //创建返回对象 |
| | | VersionDTO dto = new VersionDTO(); |
| | | //取参 |
| | | Version version = form.formConvertEntity(); |
| | | //判断型号名称是否已经存在 |
| | | Version existVersion = new Version(); |
| | | existVersion.setName(version.getName()); |
| | | existVersion.setIsDelete(Constants.NOT_DELETE); |
| | | QueryWrapper<Version> wrapper = new QueryWrapper<>(); |
| | | wrapper.setEntity(existVersion); |
| | | Version existVersionResult = versionMapper.selectOne(wrapper); |
| | | if(!ObjectUtils.isEmpty(existVersionResult)){ |
| | | dto.setCode(ResponseCodeEnum.VERSION_EXIST.getCode()); |
| | | dto.setMsg(ResponseCodeEnum.VERSION_EXIST.getMsg()); |
| | | return dto; |
| | | } |
| | | //插入 |
| | | versionMapper.insert(version); |
| | | //封装返回结果 |
| | | dto.setCode(ResponseCodeEnum.SUCCESS.getCode()); |
| | | dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg()); |
| | | return dto; |
| | | } |
| | | |
| | | @Override |
| | | @Transactional |
| | | public VersionDTO delete(VersionDeleteForm form) { |
| | | //创建返回对象 |
| | | VersionDTO dto = new VersionDTO(); |
| | | //取参 |
| | | Integer id = form.getId(); |
| | | //查询要删除的版本用于记录日志 |
| | | Version oldVersion = versionMapper.selectById(id); |
| | | //执行删除 |
| | | Version deleteVersion = new Version(); |
| | | deleteVersion.setId(oldVersion.getId()); |
| | | deleteVersion.setIsDelete(Constants.DELETE); |
| | | versionMapper.updateById(deleteVersion); |
| | | //删除型号和因子单位对应表 |
| | | UpdateWrapper deleteSensorUnitWrapper = new UpdateWrapper(); |
| | | deleteSensorUnitWrapper.eq("version_id",id); |
| | | deleteSensorUnitWrapper.set("is_delete",Constants.DELETE); |
| | | versionSensorUnitMapper.update(null,deleteSensorUnitWrapper); |
| | | //封装返回结果 |
| | | dto.setCode(ResponseCodeEnum.SUCCESS.getCode()); |
| | | dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg()); |
| | | return dto; |
| | | } |
| | | |
| | | @Override |
| | | @Transactional |
| | | public VersionDTO updateSensorUnits(VersionSensorUnitForm form) { |
| | | //创建返回对象 |
| | | VersionDTO dto = new VersionDTO(); |
| | | //取参 |
| | | List<VersionSensorUnit> sensorUnits = form.getSensorUnits(); |
| | | Integer versionId = form.getVersionId(); |
| | | //删除之前分配的单位和因子 |
| | | UpdateWrapper deleteWrapper = new UpdateWrapper(); |
| | | deleteWrapper.eq("version_id",versionId); |
| | | deleteWrapper.set("is_delete",Constants.DELETE); |
| | | versionSensorUnitMapper.update(null,deleteWrapper); |
| | | //添加新分配的单位和因子 |
| | | for (VersionSensorUnit sensorUnit : sensorUnits) { |
| | | sensorUnit.setVersionId(versionId); |
| | | versionSensorUnitMapper.insert(sensorUnit); |
| | | } |
| | | //封装返回结果 |
| | | dto.setCode(ResponseCodeEnum.SUCCESS.getCode()); |
| | | dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg()); |
| | | return dto; |
| | | } |
| | | } |