Commit df4bdd4e authored by tangwei's avatar tangwei

微型消防站配装

parent c5640cfd
package com.yeejoin.amos.boot.module.common.api.dto;
import com.yeejoin.amos.boot.biz.common.dto.BaseDto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
/**
* 消防人员配装记录
*
* @author tb
* @date 2021-06-07
*/
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel(value="FirefightersJacketDto", description="消防人员配装记录")
public class FirestationJacketDto extends BaseDto {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "消防队员")
private Long firefightersId;
@ApiModelProperty(value = "装备id")
private Long equipmentDetailId;
@ApiModelProperty(value = "装备数量")
private Double amount;
@ApiModelProperty(value = "装备计量单位")
private String unit;
@ApiModelProperty(value = "装备名称")
private String equipmentDetailName;
@ApiModelProperty(value = "装备分类名称")
private String equipmentTypeName;
@ApiModelProperty(value = "配发日期")
private Date allotmentTime;
@ApiModelProperty(value = "更新时间")
private Date updateTime;
@ApiModelProperty(value = "操作人名称")
private String recUserName;
}
package com.yeejoin.amos.boot.module.common.api.entity;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yeejoin.amos.boot.biz.common.entity.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
/**
* 消防人员配装记录
*
* @author tb
* @date 2021-06-07
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("jc_firestation_jacket")
@ApiModel(value="FirestationJacket", description="微型消防站配装记录")
public class FirestationJacket extends BaseEntity {
/**
*
*/
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "消防队员")
private Long firefightersId;
@ApiModelProperty(value = "装备id")
private Long equipmentDetailId;
@ApiModelProperty(value = "装备数量")
private Double amount;
@ApiModelProperty(value = "装备计量单位")
private String unit;
@ApiModelProperty(value = "装备库存明细id")
private Long stockDetailId;
@ApiModelProperty(value = "装备名称")
private String equipmentDetailName;
@ApiModelProperty(value = "装备分类名称")
private String equipmentTypeName;
@ApiModelProperty(value = "配发日期")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@TableField(fill=FieldFill.INSERT_UPDATE)
private Date allotmentTime;
@ApiModelProperty(value = "更新时间")
@TableField(fill=FieldFill.UPDATE)
private Date updateTime;
}
package com.yeejoin.amos.boot.module.common.api.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yeejoin.amos.boot.module.common.api.entity.FirestationJacket;
/**
* 消防人员配装记录 Mapper 接口
*
* @author tb
* @date 2021-06-07
*/
public interface FirestationJacketMapper extends BaseMapper<FirestationJacket> {
}
......@@ -31,6 +31,8 @@ public class EquipSpecificDto extends BaseEntity {
* 队伍ID
*/
private Long teamId;
//单位id
private Long agencyId;
/**
* 分页
*/
......
package com.yeejoin.amos.boot.module.jcs.api.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.module.common.api.entity.FirefightersJacket;
import com.yeejoin.amos.boot.module.common.api.entity.FirestationJacket;
import com.yeejoin.amos.boot.module.jcs.api.dto.EquipSpecificDto;
import com.yeejoin.amos.boot.module.jcs.api.dto.EquipmentOnCarDto;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
import java.util.List;
/**
* 消防人员配装记录 服务类
*
* @author tb
* @date 2021-06-07
*/
public interface IFirestationJacketService {
ResponseModel<Page<Object>> getAirEquipSpecificPage(EquipSpecificDto equipSpecificDto, int current, int size);
boolean saveOrUpdateBatch(Long firefightersId, List<EquipmentOnCarDto> equipmentOnCarDtos);
boolean update(String type, FirestationJacket firestationJacket);
ResponseModel<Object> getEquipByStockDetailId(Long stockDetailId);
}
package com.yeejoin.amos.boot.module.jcs.biz.controller;
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.yeejoin.amos.boot.biz.common.controller.BaseController;
import com.yeejoin.amos.boot.biz.common.utils.NameUtils;
import com.yeejoin.amos.boot.module.common.api.entity.FirestationJacket;
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.biz.service.impl.FirestationJacketServiceImpl;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import org.typroject.tyboot.core.foundation.enumeration.UserType;
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.ResponseModel;
import javax.servlet.http.HttpServletRequest;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
/**
* 消防人员配装记录
*
* @author tb
* @date 2021-06-07
*/
@RestController
@Api(tags = "消防人员配装记录Api")
@RequestMapping(value = "/firestation-jacket")
public class FirestationJacketController extends BaseController {
@Autowired
FirestationJacketServiceImpl iFirestationJacketService;
/**
* 新增消防人员配装记录
*
* @return
*/
@TycloudOperation(needAuth = true, ApiLevel = UserType.AGENCY)
@RequestMapping(value = "/save/{firestationId}", method = RequestMethod.POST)
@ApiOperation(httpMethod = "POST", value = "新增消防人员配装记录", notes = "新增消防人员配装记录")
@Transactional
public ResponseModel<Object> saveFirestationJacket(@ApiParam(value = "消防队员ID", required = true) @PathVariable Long firestationId, @RequestBody List<EquipmentOnCarDto> equipmentOnCarDtos) {
boolean flag = iFirestationJacketService.saveOrUpdateBatch(firestationId, equipmentOnCarDtos);
if (!flag) {
throw new BadRequest("保存失败.");
}
return ResponseHelper.buildResponse(null);
}
/**
* 删除数据(退装|回库)
*
* @param
* @return
*/
@TycloudOperation(needAuth = true, ApiLevel = UserType.AGENCY)
@RequestMapping(value = "/{type}", method = RequestMethod.DELETE)
@ApiOperation(httpMethod = "DELETE", value = "删除数据", notes = "删除数据")
public ResponseModel<Object> deleteById(@PathVariable String type, @RequestBody FirestationJacket firestationJacket) {
boolean flag = iFirestationJacketService.update(type, firestationJacket);
if (!flag) {
throw new BadRequest("删除失败.");
}
return ResponseHelper.buildResponse(null);
}
/**
* 修改消防人员配装记录
*
* @return
*/
@TycloudOperation(needAuth = true, ApiLevel = UserType.AGENCY)
@RequestMapping(value = "/updateById", method = RequestMethod.PUT)
@ApiOperation(httpMethod = "PUT", value = "修改消防人员配装记录", notes = "修改消防人员配装记录")
public ResponseModel<FirestationJacket> updateByIdFirestationJacket(HttpServletRequest request,
@RequestBody FirestationJacket firestationJacket) {
iFirestationJacketService.updateById(firestationJacket);
return ResponseHelper.buildResponse(firestationJacket);
}
/**
* 根据id查询
*
* @param id
* @return
*/
@TycloudOperation(needAuth = true, ApiLevel = UserType.AGENCY)
@RequestMapping(value = "/{id}", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "根据id查询", notes = "根据id查询")
public ResponseModel<FirestationJacket> selectById(HttpServletRequest request, @PathVariable Long id) {
QueryWrapper<FirestationJacket> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("firestation_id", id);
FirestationJacket firestationJacket = iFirestationJacketService.getOne(queryWrapper);
return ResponseHelper.buildResponse(firestationJacket);
}
/**
* 列表分页查询
*
* @return
*/
@TycloudOperation(needAuth = true, ApiLevel = UserType.AGENCY)
@RequestMapping(value = "/list", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "列表分页查询", notes = "列表分页查询")
public ResponseModel<IPage<FirestationJacket>> listPage(String pageNum, String pageSize, FirestationJacket firestationJacket) {
Page<FirestationJacket> pageBean;
QueryWrapper<FirestationJacket> firestationJacketQueryWrapper = new QueryWrapper<>();
firestationJacketQueryWrapper.eq("is_delete", 0);
Class<? extends FirestationJacket> aClass = firestationJacket.getClass();
Arrays.stream(aClass.getDeclaredFields()).forEach(field -> {
try {
field.setAccessible(true);
Object o = field.get(firestationJacket);
if (o != null) {
Class<?> type = field.getType();
String name = NameUtils.camel2Underline(field.getName());
if (type.equals(Integer.class)) {
Integer fileValue = (Integer) field.get(firestationJacket);
firestationJacketQueryWrapper.eq(name, fileValue);
} else if (type.equals(Long.class)) {
Long fileValue = (Long) field.get(firestationJacket);
firestationJacketQueryWrapper.eq(name, fileValue);
} else if (type.equals(String.class)) {
if("EQUIPMENT_DETAIL_NAME".equals(name)){
String fileValue = (String) field.get(firestationJacket);
firestationJacketQueryWrapper.like(name, fileValue);
}else {
String fileValue = (String) field.get(firestationJacket);
firestationJacketQueryWrapper.eq(name, fileValue);
}
} else if (type.equals(Date.class)) {
Date fileValue = (Date) field.get(firestationJacket);
firestationJacketQueryWrapper.eq(name, fileValue);
} else {
if(!name.equals(NameUtils.camel2Underline("serialVersionUID"))) {
String fileValue = (String) field.get(firestationJacket);
firestationJacketQueryWrapper.eq(name, fileValue);
}
}
}
} catch (Exception e) {
throw new RuntimeException("系统异常");
}
});
IPage<FirestationJacket> page;
if (StringUtils.isBlank(pageNum) || StringUtils.isBlank(pageSize)) {
pageBean = new Page<>(0, Long.MAX_VALUE);
} else {
pageBean = new Page<>(Integer.parseInt(pageNum), Integer.parseInt(pageSize));
}
page = iFirestationJacketService.page(pageBean, firestationJacketQueryWrapper);
return ResponseHelper.buildResponse(page);
}
/**
* 分页查询设备列表(调用装备接口)
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(value = "人员装备列表")
@RequestMapping(value = "/airEquipSpecificPage", method = RequestMethod.GET)
public ResponseModel<Page<Object>> getAirEquipSpecificPage(int current, int size,
EquipSpecificDto equipSpecificDto) throws Exception {
return iFirestationJacketService.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 iFirestationJacketService.getEquipByStockDetailId(stockDetailId);
}
}
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.common.api.dto.FirefightersJacketDto;
import com.yeejoin.amos.boot.module.common.api.dto.FirestationJacketDto;
import com.yeejoin.amos.boot.module.common.api.entity.FirefightersJacket;
import com.yeejoin.amos.boot.module.common.api.entity.FirestationJacket;
import com.yeejoin.amos.boot.module.common.api.feign.EquipFeignClient;
import com.yeejoin.amos.boot.module.common.api.mapper.FirefightersJacketMapper;
import com.yeejoin.amos.boot.module.common.api.mapper.FirestationJacketMapper;
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.enums.EquipTypeEnum;
import com.yeejoin.amos.boot.module.jcs.api.service.IFirefightersJacketService;
import com.yeejoin.amos.boot.module.jcs.api.service.IFirestationJacketService;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
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.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
* @date 2021-06-07
*/
@Service
public class FirestationJacketServiceImpl extends BaseService<FirestationJacketDto, FirestationJacket, FirestationJacketMapper> implements IFirestationJacketService {
@Autowired
private EquipFeignClient equipFeignClient;
@Override
public ResponseModel<Page<Object>> getAirEquipSpecificPage(EquipSpecificDto equipSpecificDto, int current, int size) {
Page page = new Page(current, size);
equipSpecificDto.setPage(page);
ResponseModel<Page<Object>> 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<FirestationJacket> firefightersJackets = new ArrayList<>();
equipmentOnCarDtos.forEach(x -> {
FirestationJacket firefightersJacket = new FirestationJacket();
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, FirestationJacket firestationJacket) {
ResponseModel<Object> objectResponseModel = null;
if (EquipTypeEnum.退装.getKey().equals(type)) {
objectResponseModel = equipFeignClient.scrapEquip(String.valueOf(firestationJacket.getStockDetailId()));
} else if (EquipTypeEnum.回库.getKey().equals(type)) {
Map<String, Object> map = new HashMap<>();
map.put("stockDetailId", firestationJacket.getStockDetailId());
objectResponseModel = equipFeignClient.stockEquip(map);
}
if (ValidationUtil.isEmpty(objectResponseModel)){
return false;
}
update(new UpdateWrapper<FirestationJacket>().eq("sequence_nbr", firestationJacket.getSequenceNbr()).set("is_delete", 1));
return true;
}
@Override
public ResponseModel<Object> getEquipByStockDetailId(Long stockDetailId) {
return equipFeignClient.getAirEquipSpecificDetail(stockDetailId);
}
}
......@@ -1159,4 +1159,36 @@
</changeSet>
<changeSet author="tw" id="2021-09-23-0001">
<preConditions onFail="MARK_RAN">
<not>
<tableExists tableName="jc_firestation_jacket"/>
</not>
</preConditions>
<comment>create table jc_firestation_jacket</comment>
<sql>
CREATE TABLE `jc_firestation_jacket` (
`sequence_nbr` bigint(19) NOT NULL COMMENT 'id',
`firefighters_id` bigint(19) NULL DEFAULT NULL COMMENT '微型消防站id',
`equipment_detail_id` bigint(19) NULL DEFAULT NULL COMMENT '装备id',
`amount` double(10, 0) NULL DEFAULT NULL COMMENT '装备数量',
`unit` varchar(25) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '装备计量单位',
`equipment_detail_name` varchar(25) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '装备名称',
`equipment_type_name` varchar(25) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '装备分类名称',
`allotment_time` date NULL DEFAULT NULL COMMENT '配发日期',
`update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间',
`rec_user_name` varchar(15) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '操作人名称',
`rec_user_id` varchar(19) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '操作人员',
`rec_date` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
`is_delete` bit(1) NULL DEFAULT b'0' COMMENT '是否删除',
`stock_detail_id` bigint(19) NULL DEFAULT NULL COMMENT '装备库存明细id',
PRIMARY KEY (`sequence_nbr`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '消防人员配装记录' ROW_FORMAT = Dynamic;
</sql>
</changeSet>
</databaseChangeLog>
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