Commit eacb80da authored by xinglei's avatar xinglei

*)新增装备feign

parent 5ffc2849
package com.yeejoin.amos.boot.module.jcs.api.client;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.module.jcs.api.dto.EquipSpecificDto;
import com.yeejoin.amos.boot.module.jcs.api.dto.EquipmentOnCarDto;
import com.yeejoin.amos.component.feign.config.InnerInvokException;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
import java.util.List;
import java.util.Map;
/**
* 装备服务feign
*
* @author Dell
*/
@FeignClient(name = "AMOS-EQUIPMANAGE", path = "equip", configuration = {MultipartSupportConfig.class})
public interface EquipFeignClient {
/**
* 获取未列装人员装备列表数据
*
* @return
*/
@RequestMapping(value = "/equipSpecific/getAirEquipSpecificPage", method = RequestMethod.POST)
ResponseModel<Page<EquipmentOnCarDto>> getAirEquipSpecificPage(@RequestBody EquipSpecificDto var1) throws InnerInvokException;
/**
* 人员装备列装
*
* @return
*/
@RequestMapping(value = "/stock-detail/airport/person/bind", method = RequestMethod.POST)
ResponseModel<List<Object>> stockBindEquip(@RequestBody List<Long> ids) throws InnerInvokException;
/**
* 人员装备退装
*
* @return
*/
@RequestMapping(value = "/scrap/airport/person", method = RequestMethod.POST)
ResponseModel<Object> scrapEquip(@RequestBody String id) throws InnerInvokException;
/**
* 人员装备回库
*
* @return
*/
@RequestMapping(value = "/stock-detail/airport/person", method = RequestMethod.POST)
ResponseModel<Object> stockEquip(@RequestBody Map<String, Object> map) throws InnerInvokException;
/**
* 装备详情
*
* @return
*/
@RequestMapping(value = "/equipSpecific/getAirEquipSpecificDetail", method = RequestMethod.GET)
ResponseModel<Object> getAirEquipSpecificDetail(@RequestParam Long stockDetailId) throws InnerInvokException;
}
package com.yeejoin.amos.boot.module.jcs.api.client;
import feign.codec.Encoder;
import feign.form.spring.SpringFormEncoder;
import org.springframework.beans.factory.ObjectFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.http.HttpMessageConverters;
import org.springframework.cloud.openfeign.support.SpringEncoder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* @Author: xl
* @Description:
* @Date: 2020/3/30 16:26
*/
@Configuration
public class MultipartSupportConfig {
@Autowired
private ObjectFactory<HttpMessageConverters> messageConverters;
@Bean
public Encoder feignFormEncoder() {
return new SpringFormEncoder(new SpringEncoder(messageConverters));
}
}
package com.yeejoin.amos.boot.module.jcs.api.dto;
import com.yeejoin.amos.boot.biz.common.entity.BaseEntity;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.Data;
/**
* @Author: xl
* @Description: 装备分页查询
* @Date: 2021/6/23 11:29
*/
@Data
public class EquipSpecificDto extends BaseEntity {
private static final long serialVersionUID = 1L;
/**
* 名称
*/
private String like;
/**
* 状态,默认查询未列装数据
*/
private Integer status = 1;
/**
* 装备分类code(人员装备【10000000】)
*/
private String categoryCode = "10000000";
/**
* 队伍ID
*/
private Long teamId;
/**
* 分页
*/
private Page page;
}
package com.yeejoin.amos.boot.module.jcs.api.dto;
import lombok.Data;
import java.util.Date;
/**
* @Author: xl
* @Description: 装备返回实例
* @Date: 2021/6/23 11:29
*/
@Data
public class EquipmentOnCarDto {
/**
* 车辆ID
*/
private Long carId;
/**
* 设备模板ID
*/
private Long equipmentDetailId;
/**
* 库存详情id
*/
private Long stockDetailId;
/**
* 库存数量
*/
private Double amount;
/**
* 设备实例ID
*/
private Long equipmentSpecificId;
/**
* 设备名称
*/
private String equipmentSpecificName;
/**
* 设备编码
*/
private String equipmentSpecificCode;
/**
* 装备类型
*/
private String equipmentName;
/**
* 状态
*/
private String status;
private String area;
private Long warehouseId;
private Long warehouseStructureId;
private Long equipmentOnCarId;
/**
* 创建日期
*/
private Date createDate;
private String equipDefinitionName;
}
package com.yeejoin.amos.boot.module.jcs.api.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* 装备操作枚举
*
* @author DELL
*/
@Getter
@AllArgsConstructor
public enum EquipTypeEnum {
/**
* 退库,回库
*/
退装("scrap", "退装"),
回库("stock", "回库");
private String key;
private String name;
public String getKey() {
return key;
}
public void setKey(String key) {
this.key = key;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
package com.yeejoin.amos.boot.module.jcs.api.service; package com.yeejoin.amos.boot.module.jcs.api.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.yeejoin.amos.boot.module.jcs.api.dto.EquipSpecificDto;
import com.yeejoin.amos.boot.module.jcs.api.dto.EquipmentOnCarDto;
import com.yeejoin.amos.boot.module.jcs.api.entity.FirefightersJacket; import com.yeejoin.amos.boot.module.jcs.api.entity.FirefightersJacket;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
import java.util.List;
/** /**
* 消防人员配装记录 服务类 * 消防人员配装记录 服务类
...@@ -11,4 +17,11 @@ import com.yeejoin.amos.boot.module.jcs.api.entity.FirefightersJacket; ...@@ -11,4 +17,11 @@ import com.yeejoin.amos.boot.module.jcs.api.entity.FirefightersJacket;
*/ */
public interface IFirefightersJacketService extends IService<FirefightersJacket> { public interface IFirefightersJacketService extends IService<FirefightersJacket> {
ResponseModel<Page<EquipmentOnCarDto>> getAirEquipSpecificPage(EquipSpecificDto equipSpecificDto, int current, int size);
boolean saveOrUpdateBatch(Long firefightersId, List<EquipmentOnCarDto> equipmentOnCarDtos);
boolean update(String type, FirefightersJacket firefightersJacket);
ResponseModel<Object> getEquipByStockDetailId(Long stockDetailId);
} }
package com.yeejoin.amos.boot.module.jcs.biz.controller; package com.yeejoin.amos.boot.module.jcs.biz.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.biz.common.controller.BaseController; import com.yeejoin.amos.boot.biz.common.controller.BaseController;
import com.yeejoin.amos.boot.biz.common.utils.NameUtils; import com.yeejoin.amos.boot.biz.common.utils.NameUtils;
import com.yeejoin.amos.boot.module.jcs.api.dto.EquipSpecificDto;
import com.yeejoin.amos.boot.module.jcs.api.dto.EquipmentOnCarDto;
import com.yeejoin.amos.boot.module.jcs.api.entity.FirefightersJacket; import com.yeejoin.amos.boot.module.jcs.api.entity.FirefightersJacket;
import com.yeejoin.amos.boot.module.jcs.api.service.IFirefightersJacketService; import com.yeejoin.amos.boot.module.jcs.api.service.IFirefightersJacketService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.typroject.tyboot.core.foundation.enumeration.UserType; import org.typroject.tyboot.core.foundation.enumeration.UserType;
import org.typroject.tyboot.core.restful.doc.TycloudOperation; import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.restful.exception.instance.BadRequest;
import org.typroject.tyboot.core.restful.utils.ResponseHelper; import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel; import org.typroject.tyboot.core.restful.utils.ResponseModel;
...@@ -44,26 +47,31 @@ public class FirefightersJacketController extends BaseController { ...@@ -44,26 +47,31 @@ public class FirefightersJacketController extends BaseController {
* @return * @return
*/ */
@TycloudOperation(needAuth = true, ApiLevel = UserType.AGENCY) @TycloudOperation(needAuth = true, ApiLevel = UserType.AGENCY)
@RequestMapping(value = "/save", method = RequestMethod.POST) @RequestMapping(value = "/save/{firefightersId}", method = RequestMethod.POST)
@ApiOperation(httpMethod = "POST", value = "新增消防人员配装记录", notes = "新增消防人员配装记录") @ApiOperation(httpMethod = "POST", value = "新增消防人员配装记录", notes = "新增消防人员配装记录")
@Transactional @Transactional
public ResponseModel<Object> saveFirefightersJacket(HttpServletRequest request, public ResponseModel<Object> saveFirefightersJacket(@ApiParam(value = "消防队员ID", required = true) @PathVariable Long firefightersId, @RequestBody List<EquipmentOnCarDto> equipmentOnCarDtos) {
@RequestBody List<FirefightersJacket> firefightersJacket) { boolean flag = iFirefightersJacketService.saveOrUpdateBatch(firefightersId, equipmentOnCarDtos);
iFirefightersJacketService.saveOrUpdateBatch(firefightersJacket); if (!flag) {
throw new BadRequest("保存失败.");
}
return ResponseHelper.buildResponse(null); return ResponseHelper.buildResponse(null);
} }
/** /**
* 根据id删除 * 删除数据(退装|回库)
* *
* @param id * @param
* @return * @return
*/ */
@TycloudOperation(needAuth = true, ApiLevel = UserType.AGENCY) @TycloudOperation(needAuth = true, ApiLevel = UserType.AGENCY)
@RequestMapping(value = "/{id}", method = RequestMethod.DELETE) @RequestMapping(value = "/{type}", method = RequestMethod.DELETE)
@ApiOperation(httpMethod = "DELETE", value = "根据id删除", notes = "根据id删除") @ApiOperation(httpMethod = "DELETE", value = "删除数据", notes = "删除数据")
public ResponseModel<Object> deleteById(HttpServletRequest request, @PathVariable Long id) { public ResponseModel<Object> deleteById(@PathVariable String type, @RequestBody FirefightersJacket firefightersJacket) {
iFirefightersJacketService.update(new UpdateWrapper<FirefightersJacket>().eq("sequence_nbr", id).set("is_delete", 1)); boolean flag = iFirefightersJacketService.update(type, firefightersJacket);
if (!flag) {
throw new BadRequest("删除失败.");
}
return ResponseHelper.buildResponse(null); return ResponseHelper.buildResponse(null);
} }
...@@ -109,6 +117,7 @@ public class FirefightersJacketController extends BaseController { ...@@ -109,6 +117,7 @@ public class FirefightersJacketController extends BaseController {
Page<FirefightersJacket> pageBean; Page<FirefightersJacket> pageBean;
QueryWrapper<FirefightersJacket> firefightersJacketQueryWrapper = new QueryWrapper<>(); QueryWrapper<FirefightersJacket> firefightersJacketQueryWrapper = new QueryWrapper<>();
firefightersJacketQueryWrapper.eq("is_delete", 0);
Class<? extends FirefightersJacket> aClass = firefightersJacket.getClass(); Class<? extends FirefightersJacket> aClass = firefightersJacket.getClass();
Arrays.stream(aClass.getDeclaredFields()).forEach(field -> { Arrays.stream(aClass.getDeclaredFields()).forEach(field -> {
try { try {
...@@ -129,7 +138,7 @@ public class FirefightersJacketController extends BaseController { ...@@ -129,7 +138,7 @@ public class FirefightersJacketController extends BaseController {
} else if (type.equals(Date.class)) { } else if (type.equals(Date.class)) {
Date fileValue = (Date) field.get(firefightersJacket); Date fileValue = (Date) field.get(firefightersJacket);
firefightersJacketQueryWrapper.eq(name, fileValue); firefightersJacketQueryWrapper.eq(name, fileValue);
}else { } else {
String fileValue = (String) field.get(firefightersJacket); String fileValue = (String) field.get(firefightersJacket);
firefightersJacketQueryWrapper.eq(name, fileValue); firefightersJacketQueryWrapper.eq(name, fileValue);
} }
...@@ -147,6 +156,26 @@ public class FirefightersJacketController extends BaseController { ...@@ -147,6 +156,26 @@ public class FirefightersJacketController extends BaseController {
page = iFirefightersJacketService.page(pageBean, firefightersJacketQueryWrapper); page = iFirefightersJacketService.page(pageBean, firefightersJacketQueryWrapper);
return ResponseHelper.buildResponse(page); return ResponseHelper.buildResponse(page);
}
/**
* 分页查询设备列表(调用装备接口)
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(value = "人员装备列表")
@RequestMapping(value = "/airEquipSpecificPage", method = RequestMethod.GET)
public ResponseModel<Page<EquipmentOnCarDto>> getAirEquipSpecificPage(int current, int size,
EquipSpecificDto equipSpecificDto) throws Exception {
return iFirefightersJacketService.getAirEquipSpecificPage(equipSpecificDto, current, size);
}
/**
* 查询设备详情(调用装备接口)
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(value = "人员装备详情")
@RequestMapping(value = "/getEquipByStockDetailId/{stockDetailId}", method = RequestMethod.GET)
public ResponseModel<Object> getEquipByStockDetailId(@PathVariable Long stockDetailId) throws Exception {
return iFirefightersJacketService.getEquipByStockDetailId(stockDetailId);
} }
} }
package com.yeejoin.amos.boot.module.jcs.biz.service.impl; package com.yeejoin.amos.boot.module.jcs.biz.service.impl;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.biz.common.utils.DateUtils;
import com.yeejoin.amos.boot.module.jcs.api.client.EquipFeignClient;
import com.yeejoin.amos.boot.module.jcs.api.dto.EquipSpecificDto;
import com.yeejoin.amos.boot.module.jcs.api.dto.EquipmentOnCarDto;
import com.yeejoin.amos.boot.module.jcs.api.dto.FirefightersJacketDto; import com.yeejoin.amos.boot.module.jcs.api.dto.FirefightersJacketDto;
import com.yeejoin.amos.boot.module.jcs.api.entity.FirefightersJacket; import com.yeejoin.amos.boot.module.jcs.api.entity.FirefightersJacket;
import com.yeejoin.amos.boot.module.jcs.api.enums.EquipTypeEnum;
import com.yeejoin.amos.boot.module.jcs.api.mapper.FirefightersJacketMapper; import com.yeejoin.amos.boot.module.jcs.api.mapper.FirefightersJacketMapper;
import com.yeejoin.amos.boot.module.jcs.api.service.IFirefightersJacketService; import com.yeejoin.amos.boot.module.jcs.api.service.IFirefightersJacketService;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import org.typroject.tyboot.core.rdbms.service.BaseService; import org.typroject.tyboot.core.rdbms.service.BaseService;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/** /**
* 消防人员配装记录 服务实现类 * 消防人员配装记录 服务实现类
* *
* @author tb * @author tb
* @date 2021-06-07 * @date 2021-06-07
*/ */
@Service @Service
public class FirefightersJacketServiceImpl extends BaseService<FirefightersJacketDto,FirefightersJacket,FirefightersJacketMapper> implements IFirefightersJacketService { public class FirefightersJacketServiceImpl extends BaseService<FirefightersJacketDto, FirefightersJacket, FirefightersJacketMapper> implements IFirefightersJacketService {
@Autowired
private EquipFeignClient equipFeignClient;
@Override
public ResponseModel<Page<EquipmentOnCarDto>> getAirEquipSpecificPage(EquipSpecificDto equipSpecificDto, int current, int size) {
Page page = new Page(current, size);
equipSpecificDto.setPage(page);
ResponseModel<Page<EquipmentOnCarDto>> airEquipSpecificPage = equipFeignClient.getAirEquipSpecificPage(equipSpecificDto);
return airEquipSpecificPage;
}
@Override
public boolean saveOrUpdateBatch(Long firefightersId, List<EquipmentOnCarDto> equipmentOnCarDtos) {
List<Long> ids = equipmentOnCarDtos.stream().map(EquipmentOnCarDto::getStockDetailId).collect(Collectors.toList());
List<Object> result = equipFeignClient.stockBindEquip(ids).getResult();
if (result.size() > 0) {
List<FirefightersJacket> firefightersJackets = new ArrayList<>();
equipmentOnCarDtos.forEach(x -> {
FirefightersJacket firefightersJacket = new FirefightersJacket();
BeanUtils.copyProperties(x, firefightersJacket);
firefightersJacket.setEquipmentDetailId(x.getEquipmentSpecificId());
firefightersJacket.setEquipmentDetailName(x.getEquipmentSpecificName());
firefightersJacket.setEquipmentTypeName(x.getEquipDefinitionName());
firefightersJacket.setAllotmentTime(DateUtils.getDateNow());
firefightersJacket.setFirefightersId(firefightersId);
firefightersJackets.add(firefightersJacket);
});
saveOrUpdateBatch(firefightersJackets);
return true;
}
return false;
}
@Override
public boolean update(String type, FirefightersJacket firefightersJacket) {
ResponseModel<Object> objectResponseModel = null;
if (EquipTypeEnum.退装.getKey().equals(type)) {
objectResponseModel = equipFeignClient.scrapEquip(String.valueOf(firefightersJacket.getStockDetailId()));
} else if (EquipTypeEnum.回库.getKey().equals(type)) {
Map<String, Object> map = new HashMap<>();
map.put("stockDetailId", firefightersJacket.getStockDetailId());
objectResponseModel = equipFeignClient.stockEquip(map);
}
if (ValidationUtil.isEmpty(objectResponseModel)){
return false;
}
update(new UpdateWrapper<FirefightersJacket>().eq("sequence_nbr", firefightersJacket.getSequenceNbr()).set("is_delete", 1));
return true;
}
@Override
public ResponseModel<Object> getEquipByStockDetailId(Long stockDetailId) {
return equipFeignClient.getAirEquipSpecificDetail(stockDetailId);
}
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment