提交 ab7fec26 作者: 17607474349

feat:

1、定位标签卡相关操作
上级 5b8c6aac
......@@ -4,6 +4,7 @@ package com.yiring.app.excel.location;
import com.github.liaochong.myexcel.core.annotation.ExcelColumn;
import com.yiring.app.domain.location.LocationTag;
import java.io.Serializable;
import java.time.LocalDateTime;
import lombok.*;
import lombok.experimental.FieldDefaults;
......@@ -29,11 +30,21 @@ public class LocationTagImportExcel implements Serializable {
@ExcelColumn(index = 1)
String type;
// 设备编码
// 实体类型
@ExcelColumn(index = 2)
String entityType;
// 设备编码
@ExcelColumn(index = 3)
String imei;
public LocationTag transform() {
return LocationTag.builder().code(this.code).type(LocationTag.Type.valueOf(this.type)).imei(this.imei).build();
return LocationTag
.builder()
.code(this.code)
.type(LocationTag.Type.valueOf(this.type))
.imei(this.imei)
.createTime(LocalDateTime.now())
.build();
}
}
......@@ -5,6 +5,7 @@ import com.yiring.app.domain.location.LocationTag;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.time.LocalDateTime;
import lombok.*;
import lombok.experimental.FieldDefaults;
......@@ -34,6 +35,12 @@ public class LocationTagAddParam implements Serializable {
String imei;
public LocationTag transform() {
return LocationTag.builder().code(this.code).type(this.type).imei(this.imei).build();
return LocationTag
.builder()
.code(this.code)
.type(this.type)
.imei(this.imei)
.createTime(LocalDateTime.now())
.build();
}
}
/* (C) 2022 YiRing, Inc. */
package com.yiring.app.param.location;
import com.yiring.auth.domain.user.User;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
......@@ -25,10 +24,11 @@ public class LocationTagDeleteParam implements Serializable {
private static final long serialVersionUID = 2404060244461070885L;
@ApiModelProperty(value = "id", example = "145235231", required = true)
@NotNull(message = "id 不能为空")
Long id;
@ApiModelProperty(value = "ids", example = "145235231,145235232", required = true)
@NotNull(message = "ids 不能为空")
Long[] ids;
@ApiModelProperty(value = "人员", example = "1")
User user;
@ApiModelProperty(value = "codes", example = "BTT99999998,BTT99999999", required = true)
@NotNull(message = "codes 不能为空")
String[] codes;
}
......@@ -3,9 +3,12 @@ package com.yiring.app.param.location.zy;
import cn.hutool.core.util.StrUtil;
import com.yiring.app.domain.location.LocationTag;
import com.yiring.app.excel.location.LocationTagImportExcel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.List;
import java.util.stream.Collectors;
import lombok.*;
import lombok.experimental.FieldDefaults;
......@@ -39,6 +42,9 @@ public class ZyLocationTagAddParam implements Serializable {
public static ZyLocationTagAddParam transform(LocationTag locationTag, Integer orgId) {
String entityType = StrUtil.equals(locationTag.getType().name(), "BTT02") ? "car" : "staff";
if (StrUtil.equals(locationTag.getType().name(), "BTT11")) {
locationTag.setType(LocationTag.Type.BTT01);
}
return ZyLocationTagAddParam
.builder()
.orgId(orgId)
......@@ -47,4 +53,26 @@ public class ZyLocationTagAddParam implements Serializable {
.entityType(entityType)
.build();
}
public static List<ZyLocationTagAddParam> transforms(
List<LocationTagImportExcel> locationTagImportExcels,
Integer orgId
) {
return locationTagImportExcels
.stream()
.map(locationTagImportExcel -> {
String entityType = StrUtil.equals(locationTagImportExcel.getType(), "BTT02") ? "car" : "staff";
if (StrUtil.equals(locationTagImportExcel.getType(), "BTT11")) {
locationTagImportExcel.setType(LocationTag.Type.BTT01.name());
}
return ZyLocationTagAddParam
.builder()
.entityType(entityType)
.orgId(orgId)
.tagId(locationTagImportExcel.getCode())
.types(LocationTag.Type.valueOf(locationTagImportExcel.getType()))
.build();
})
.collect(Collectors.toList());
}
}
......@@ -4,10 +4,8 @@ package com.yiring.app.service.location;
import com.yiring.app.param.location.LocationTagAddParam;
import com.yiring.app.param.location.LocationTagDeleteParam;
import com.yiring.app.param.location.LocationTagFindParam;
import com.yiring.app.param.location.LocationTagModifyParam;
import com.yiring.app.vo.location.LocationTagVo;
import com.yiring.common.core.Result;
import com.yiring.common.param.IdParam;
import com.yiring.common.vo.PageVo;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.multipart.MultipartFile;
......@@ -52,11 +50,10 @@ public interface LocationTagService {
* @return Result<String>
*/
Result<String> importLocationTagInfo(MultipartFile file);
/**
* 修改定位标签
* @param param 入参
* @return Result<String>
*/
Result<String> modifyLocationTag(LocationTagModifyParam param, IdParam idParam);
// Result<String> modifyLocationTag(LocationTagModifyParam param, IdParam idParam);
}
......@@ -2,6 +2,7 @@
package com.yiring.app.service.location.impl;
import cn.hutool.core.collection.ListUtil;
import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.github.liaochong.myexcel.core.DefaultStreamExcelBuilder;
......@@ -13,25 +14,19 @@ import com.yiring.app.excel.location.LocationTagImportExcel;
import com.yiring.app.param.location.LocationTagAddParam;
import com.yiring.app.param.location.LocationTagDeleteParam;
import com.yiring.app.param.location.LocationTagFindParam;
import com.yiring.app.param.location.LocationTagModifyParam;
import com.yiring.app.param.location.zy.ZyLocationTagAddParam;
import com.yiring.app.service.location.LocationTagService;
import com.yiring.app.vo.location.LocationTagVo;
import com.yiring.auth.service.zy.ZyHttpService;
import com.yiring.common.core.Result;
import com.yiring.common.core.Status;
import com.yiring.common.param.IdParam;
import com.yiring.common.vo.PageVo;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.Serializable;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import java.util.*;
import java.util.concurrent.Executors;
import java.util.stream.Collectors;
import javax.annotation.Resource;
......@@ -70,20 +65,10 @@ public class LocationTagServiceImpl implements LocationTagService {
public Result<String> addLocationTag(LocationTagAddParam param) {
if (hasLocationTagInfoByCode(param.getCode())) return Result.no(Status.BAD_REQUEST, "编号已存在");
LocationTag locationTag = param.transform();
locationTagRepository.save(locationTag);
ZyLocationTagAddParam zyLocationTagAddParam = ZyLocationTagAddParam.transform(locationTag, FACTORY_ID);
List<ZyLocationTagAddParam> of = ListUtil.of(zyLocationTagAddParam);
try {
Result<Serializable> result = zyHttpService.post("/positionApi/api/tag/saveTag", of, 3000).get();
if (result.getStatus() != 200) throw new InterruptedException(
result.getStatus() + " : " + result.getMessage()
);
} catch (Exception e) {
log.error("线程执行异常: " + e.getMessage());
throw new RuntimeException(e.getMessage());
// return Result.no(Status.INTERNAL_SERVER_ERROR, "新增定位标签失败");
}
zyHttpService.post("/positionApi/api/tag/saveTag", of, 3000);
locationTagRepository.save(locationTag);
return Result.ok();
}
......@@ -93,7 +78,7 @@ public class LocationTagServiceImpl implements LocationTagService {
Sort sort = Sort.by(Sort.Order.desc(LocationTag.Fields.createTime));
if (Objects.nonNull(param.getPageNo()) && Objects.nonNull(param.getPageSize())) {
if (ObjectUtil.isNotEmpty(param.getPageNo()) && ObjectUtil.isNotEmpty(param.getPageSize())) {
//分页
Pageable pageable = PageRequest.of(param.getPageNo() - 1, param.getPageSize());
Page<LocationTag> locationTags = locationTagRepository.findAll(specification, pageable);
......@@ -110,8 +95,12 @@ public class LocationTagServiceImpl implements LocationTagService {
@Override
public Result<String> deleteLocationTag(LocationTagDeleteParam param) {
if (ObjectUtil.isNotEmpty(param.getUser())) return Result.no(Status.BAD_REQUEST, "请先解绑人员");
locationTagRepository.deleteById(param.getId());
if (ObjectUtil.isEmpty(param)) return Result.no(Status.EXPECTATION_FAILED);
Map<Object, Object> map = MapUtil.createMap(HashMap.class);
map.put("tagIds", param.getCodes());
map.put("orgId", FACTORY_ID);
zyHttpService.delete("/positionApi/api/tag/delete", map, 3000);
locationTagRepository.deleteAllById(ListUtil.toList(param.getIds()));
return Result.ok();
}
......@@ -168,41 +157,16 @@ public class LocationTagServiceImpl implements LocationTagService {
List<LocationTag> locationTags = locationTagImportExcels
.stream()
.filter(locationTagImportExcel -> !hasLocationTagInfoByCode(locationTagImportExcel.getCode()))
.map(LocationTagImportExcel::transform)
.collect(Collectors.toList());
locationTags.forEach(locationTag -> {
locationTagRepository
.findOne((root, cq, cb) -> {
List<Predicate> predicates = new ArrayList<>();
if (StrUtil.isNotEmpty(locationTag.getCode())) {
predicates.add(cb.equal(root.get(LocationTag.Fields.code), locationTag.getCode()));
}
return cq.where(predicates.toArray(new Predicate[0])).getRestriction();
})
.ifPresent(temp -> locationTag.setId(temp.getId()));
locationTagRepository.save(locationTag);
});
return Result.ok();
}
@Override
public Result<String> modifyLocationTag(LocationTagModifyParam param, IdParam idParam) {
Optional<LocationTag> locationTagOptional = locationTagRepository.findById(idParam.getId());
if (locationTagOptional.isEmpty()) return Result.no(Status.BAD_REQUEST, "被修改的数据不存在");
LocationTag locationTag = locationTagOptional.get();
if (!StrUtil.equals(locationTag.getCode(), param.getCode())) {
if (hasLocationTagInfoByCode(param.getCode())) return Result.no(Status.BAD_REQUEST, "编号已存在");
}
locationTag = param.transform();
locationTag.setId(idParam.getId());
locationTagRepository.save(locationTag);
List<ZyLocationTagAddParam> zyLocationTagAddParams = ZyLocationTagAddParam.transforms(
locationTagImportExcels,
FACTORY_ID
);
zyHttpService.post("/positionApi/api/tag/saveTag", zyLocationTagAddParams, 3000);
locationTagRepository.saveAll(locationTags);
return Result.ok();
}
......
......@@ -4,11 +4,9 @@ package com.yiring.app.web;
import com.yiring.app.param.location.LocationTagAddParam;
import com.yiring.app.param.location.LocationTagDeleteParam;
import com.yiring.app.param.location.LocationTagFindParam;
import com.yiring.app.param.location.LocationTagModifyParam;
import com.yiring.app.service.location.LocationTagService;
import com.yiring.app.vo.location.LocationTagVo;
import com.yiring.common.core.Result;
import com.yiring.common.param.IdParam;
import com.yiring.common.vo.PageVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
......@@ -65,10 +63,9 @@ public class LocationTagController {
public Result<String> importLocationTagInfo(@RequestParam("file") MultipartFile file) {
return locationTagService.importLocationTagInfo(file);
}
@ApiOperation("修改定位标签")
/* @ApiOperation("修改定位标签")
@PutMapping("modifyLocationTag")
public Result<String> modifyLocationTag(@Valid LocationTagModifyParam param, IdParam idParam) {
return locationTagService.modifyLocationTag(param, idParam);
}
}*/
}
......@@ -2,6 +2,7 @@
package com.yiring.auth.domain.post;
import java.io.Serializable;
import java.time.LocalDateTime;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
......@@ -47,6 +48,12 @@ public class Post implements Serializable {
@Comment("描述")
String describe;
@Comment("创建时间")
LocalDateTime createTime;
@Comment("更新时间")
LocalDateTime updateTime;
@Comment("是否启用")
Boolean enable;
}
......@@ -19,6 +19,7 @@ import com.yiring.common.vo.PageVo;
import java.io.OutputStream;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Optional;
import java.util.concurrent.Executors;
......@@ -52,6 +53,7 @@ public class PostServiceImpl implements PostService {
public Result<String> addPost(PostParam postParam) {
if (hasPostInfo(postParam.getName())) return Result.no(Status.BAD_REQUEST, "职位已存在");
Post post = postParam.transform();
post.setCreateTime(LocalDateTime.now());
postRepository.save(post);
return Result.ok();
}
......@@ -68,6 +70,7 @@ public class PostServiceImpl implements PostService {
}
post = postParam.transform();
post.setUpdateTime(LocalDateTime.now());
post.setId(idParam.getId());
postRepository.save(post);
return Result.ok();
......@@ -84,7 +87,7 @@ public class PostServiceImpl implements PostService {
public Result<PageVo<PostVo>> findPostPage(PostFindParam param) {
Specification<Post> specification = getPostPageSpecification(param);
if (ObjectUtil.isEmpty(param.getPageSize()) && ObjectUtil.isEmpty(param.getPageNo())) {
if (ObjectUtil.isNotEmpty(param.getPageSize()) && ObjectUtil.isNotEmpty(param.getPageNo())) {
//分页
Pageable pageable = PageRequest.of(param.getPageNo() - 1, param.getPageSize());
Page<Post> page = postRepository.findAll(specification, pageable);
......
......@@ -91,7 +91,7 @@ public class ZyHttpServiceImpl implements ZyHttpService {
String body = HttpRequest
.delete(URL_PREFIX + urlString)
.header(Header.AUTHORIZATION, TOKEN_TYPE + token)
.header(Header.CONTENT_TYPE, "application/json")
.header(Header.CONTENT_TYPE, "application/x-www-form-urlencoded")
.body(json)
.timeout(timeout)
.execute()
......
......@@ -7,6 +7,7 @@ import com.yiring.auth.domain.post.Post;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List;
import java.util.stream.Collectors;
import lombok.*;
......@@ -38,6 +39,12 @@ public class PostVo implements Serializable {
@ApiModelProperty(value = "描述", example = "描述")
String describe;
@ApiModelProperty(value = "创建时间", example = "创建时间")
LocalDateTime createTime;
@ApiModelProperty(value = "更新时间", example = "更新时间")
LocalDateTime updateTime;
@ApiModelProperty(value = "是否启用", example = "true")
Boolean enable;
......@@ -48,6 +55,8 @@ public class PostVo implements Serializable {
.name(post.getName())
.describe(post.getDescribe())
.enable(post.getEnable())
.createTime(post.getCreateTime())
.updateTime(post.getUpdateTime())
.build();
}
......@@ -61,6 +70,8 @@ public class PostVo implements Serializable {
.name(post.getName())
.describe(post.getDescribe())
.enable(post.getEnable())
.createTime(post.getCreateTime())
.updateTime(post.getUpdateTime())
.build()
)
.collect(Collectors.toList());
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论