Commit 7287bb4f authored by 刘林's avatar 刘林

fix(jg):验收添加排序功能

parent b83d0441
......@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yeejoin.amos.boot.module.elevator.api.dto.RescueStationDto;
import com.yeejoin.amos.boot.module.elevator.api.entity.RescueStation;
import com.yeejoin.amos.boot.module.elevator.api.vo.SortVo;
import org.apache.ibatis.annotations.Param;
import java.util.List;
......@@ -27,7 +28,7 @@ public interface RescueStationMapper extends BaseMapper<RescueStation> {
List<RescueStationDto> selectExportData(@Param("ids") List<String> ids);
IPage<RescueStation> getRescueStationList(@Param("page") IPage<RescueStation> page,@Param("dto") RescueStationDto dto);
IPage<RescueStation> getRescueStationList(@Param("page") IPage<RescueStation> page,@Param("dto") RescueStationDto dto,@Param("sort") SortVo sortMap);
Map<String, Object> getDetailById(@Param("id") Long id);
}
......@@ -31,7 +31,7 @@ public interface IRescueStationService extends IService<RescueStation> {
List<RescueStationDto> selectExportData(String exportId);
IPage<RescueStation> getRescueStationList(IPage<RescueStation> page, RescueStationDto rescueStationDto);
IPage<RescueStation> getRescueStationList(IPage<RescueStation> page, RescueStationDto rescueStationDto, String sort);
ResponseModel<Object> expertDataImport(MultipartFile file, AgencyUserModel userModel);
}
package com.yeejoin.amos.boot.module.elevator.api.vo;
import lombok.Builder;
import lombok.Data;
/**
* @description: 排序对象
**/
@Data
@Builder
public class SortVo {
String field;
String sortType;
}
......@@ -66,7 +66,6 @@
tcb_rescue_station trs
LEFT JOIN tz_base_enterprise_info ibei ON ibei.sequence_nbr = trs.affiliated_unit_id
WHERE
trs.is_delete = 'false'
<if test="dto.orgCode != '50*18667'">
and ibei.supervise_org_code like concat(#{dto.orgCode},'%')
......@@ -92,7 +91,11 @@
<if test="dto.rescueLeaderPhone != null and dto.rescueLeaderPhone != ''">
and trs.rescue_leader_phone = #{dto.rescueLeaderPhone}
</if>
order by rec_date desc
order by
<if test="sort != null">
trs.${sort.field} ${sort.sortType},
</if>
rec_date desc
</select>
<select id="getDetailById" resultType="java.util.Map">
select sequence_nbr as sequenceNbr,
......
......@@ -247,6 +247,7 @@ public class RescueStationController extends BaseController {
@RequestMapping(value = "/query_rescue_station_list", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "分页查询救援站信息", notes = "分页查询救援站信息")
public ResponseModel<IPage<RescueStationDto>> queryRescueStationList(String pageNum, String pageSize,
@RequestParam(value = "sort", required = false) String sort,
RescueStationDto rescueStationDto) {
RescueStation rescueStation = BeanDtoVoUtils.convert(rescueStationDto, RescueStation.class);
List<CompanyModel> companyModels = FeignUtil.remoteCall(() -> Privilege.companyClient.queryListByChild(RequestContext.getExeUserId()));
......@@ -262,7 +263,7 @@ public class RescueStationController extends BaseController {
page.setSize(Integer.parseInt(pageSize));
page.setCurrent(Integer.parseInt(pageNum));
}
page = iRescueStationService.getRescueStationList(page,rescueStationDto);
page = iRescueStationService.getRescueStationList(page, rescueStationDto, sort);
IPage<RescueStationDto> rescueStationDtoIPage = ObjectUtils.isEmpty(page)? new Page<>(): BeanDtoVoUtils.iPageVoStream(page, RescueStationDto.class);
return ResponseHelper.buildResponse(rescueStationDtoIPage);
}
......
......@@ -15,6 +15,7 @@ import com.yeejoin.amos.boot.module.elevator.api.entity.RescueStation;
import com.yeejoin.amos.boot.module.elevator.api.mapper.RescueStationMapper;
import com.yeejoin.amos.boot.module.elevator.api.service.IRescueStationService;
import com.yeejoin.amos.boot.module.elevator.api.vo.RescueStationImportVo;
import com.yeejoin.amos.boot.module.elevator.api.vo.SortVo;
import com.yeejoin.amos.boot.module.elevator.biz.utils.BeanDtoVoUtils;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
import com.yeejoin.amos.feign.systemctl.Systemctl;
......@@ -50,7 +51,6 @@ public class RescueStationServiceImpl extends BaseService<RescueStationDto, Resc
IRescueStationService iRescueStationService;
@Autowired
TzBaseEnterpriseInfoServiceImpl baseEnterpriseInfoService;
private final String excelErrorStr = "Excel 第[%s]行:%s";
@Override
......@@ -69,11 +69,53 @@ public class RescueStationServiceImpl extends BaseService<RescueStationDto, Resc
}
@Override
public IPage<RescueStation> getRescueStationList(IPage<RescueStation> page,RescueStationDto dto) {
return rescueStationMapper.getRescueStationList(page,dto);
public IPage<RescueStation> getRescueStationList(IPage<RescueStation> page,RescueStationDto dto,String sort) {
SortVo sortMap = this.sortFieldConversion(sort);
return rescueStationMapper.getRescueStationList(page,dto,sortMap);
}
/**
* 排序 :页面列表排序功能支持,将 "字段,ascend" 或 "字段,descend" 转化为对应JSONObject
*
* @param sort "字段,ascend" 或 "字段,descend"
* @return JSONObject
*/
public SortVo sortFieldConversion(String sort) {
Optional<String> optionalSort = Optional.ofNullable(sort);
Optional<SortVo> optionalSortMap = optionalSort.filter(s -> !s.isEmpty())
.map(s -> {
String[] sortParts = s.split(",");
if (sortParts.length == 2) {
String field = sortParts[0];
String sortSituation = sortParts[1].contains("asc") ? "ASC" : "DESC";
return SortVo.builder()
.field(convertToUnderline(field))
.sortType(sortSituation)
.build();
}
return null;
});
return optionalSortMap.orElse(null);
}
/**
* 驼峰转下划线
*
* @param str
* @return
*/
public static String convertToUnderline(String str) {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
if (Character.isUpperCase(c)) {
sb.append("_").append(Character.toLowerCase(c));
} else {
sb.append(c);
}
}
return sb.toString();
}
@Transactional(rollbackFor = Exception.class)
@Override
......
......@@ -3,6 +3,7 @@ package com.yeejoin.amos.boot.module.jyjc.api.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.module.common.api.dto.DPFilterParamDto;
import com.yeejoin.amos.boot.module.jg.api.vo.SortVo;
import com.yeejoin.amos.boot.module.jyjc.api.dto.InspectionTimelinesDto;
import com.yeejoin.amos.boot.module.jyjc.api.entity.JyjcInspectionResult;
import com.yeejoin.amos.boot.module.jyjc.api.model.JyjcInspectionResultModel;
......@@ -22,7 +23,7 @@ public interface JyjcInspectionResultMapper extends BaseMapper<JyjcInspectionRes
Page<JyjcInspectionResultModel> selectJyjcInspectionResultpPage(@Param("page") Page<JyjcInspectionResultModel> page, @Param("jyjcInspectionResultModel") JyjcInspectionResultModel jyjcInspectionResultModel);
Page<JyjcInspectionResultModel> selectForPage(@Param("page") Page<JyjcInspectionResultModel> page, @Param("jyjcInspectionResultModel") JyjcInspectionResultModel jyjcInspectionResultModel,@Param("identity") String identity);
Page<JyjcInspectionResultModel> selectForPage(@Param("page") Page<JyjcInspectionResultModel> page, @Param("jyjcInspectionResultModel") JyjcInspectionResultModel jyjcInspectionResultModel, @Param("identity") String identity, @Param("sort") SortVo sortMap);
List<InspectionTimelinesDto> queryInspectionTimelinessTopXX(@Param("top") String top, @Param("orgCode") String orgCode, @Param("dto") DPFilterParamDto dpFilterParamDto);
......
......@@ -294,7 +294,11 @@
</choose>
</where>
)
ORDER BY sequence_nbr DESC
ORDER BY
<if test="sort != null">
res.${sort.field} ${sort.sortType},
</if>
sequence_nbr DESC
</select>
<select id="queryInspectionTimelinessTopXX" resultType="com.yeejoin.amos.boot.module.jyjc.api.dto.InspectionTimelinesDto">
select
......
......@@ -144,13 +144,13 @@ public class JyjcInspectionResultController extends BaseController {
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping(value = "/page")
@ApiOperation(httpMethod = "POST", value = "列表页面(检验检测单位、使用单位共用)", notes = "列表页面(检验检测单位、使用单位共用)")
public ResponseModel<Page<JyjcInspectionResultModel>> pageList(
@RequestParam int current, @RequestParam int size,
public ResponseModel<Page<JyjcInspectionResultModel>> pageList(@RequestParam int current, @RequestParam int size,
@RequestParam(value = "sort", required = false) String sort,
@RequestBody JyjcInspectionResultModel model) {
Page<JyjcInspectionResultModel> page = new Page<>();
page.setCurrent(current);
page.setSize(size);
return ResponseHelper.buildResponse(jyjcInspectionResultServiceImpl.queryForPageList(page, model));
return ResponseHelper.buildResponse(jyjcInspectionResultServiceImpl.queryForPageList(page, model, sort));
}
......
......@@ -8,6 +8,7 @@ import com.yeejoin.amos.boot.biz.common.bo.ReginParams;
import com.yeejoin.amos.boot.biz.common.entity.BaseEntity;
import com.yeejoin.amos.boot.biz.common.utils.RedisKey;
import com.yeejoin.amos.boot.biz.common.utils.RedisUtils;
import com.yeejoin.amos.boot.module.jg.api.vo.SortVo;
import com.yeejoin.amos.boot.module.jyjc.api.enums.OpenBizTypeEnum;
import com.yeejoin.amos.boot.module.jyjc.api.mapper.JyjcBaseMapper;
import com.yeejoin.amos.boot.module.jyjc.api.model.InstanceRuntimeData;
......@@ -29,6 +30,7 @@ import org.typroject.tyboot.core.foundation.context.RequestContext;
import org.typroject.tyboot.core.restful.exception.instance.BadRequest;
import java.util.List;
import java.util.Optional;
/**
* @author Administrator
......@@ -208,4 +210,46 @@ public class CommonServiceImpl {
return result.getResult();
}
/**
* 排序 :页面列表排序功能支持,将 "字段,ascend" 或 "字段,descend" 转化为对应JSONObject
*
* @param sort "字段,ascend" 或 "字段,descend"
* @return JSONObject
*/
public SortVo sortFieldConversion(String sort) {
Optional<String> optionalSort = Optional.ofNullable(sort);
Optional<SortVo> optionalSortMap = optionalSort.filter(s -> !s.isEmpty())
.map(s -> {
String[] sortParts = s.split(",");
if (sortParts.length == 2) {
String field = sortParts[0];
String sortSituation = sortParts[1].contains("asc") ? "ASC" : "DESC";
return SortVo.builder()
.field(convertToUnderline(field))
.sortType(sortSituation)
.build();
}
return null;
});
return optionalSortMap.orElse(null);
}
/**
* 驼峰转下划线
*
* @param str
* @return
*/
public static String convertToUnderline(String str) {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
if (Character.isUpperCase(c)) {
sb.append("_").append(Character.toLowerCase(c));
} else {
sb.append(c);
}
}
return sb.toString();
}
}
......@@ -21,6 +21,7 @@ import com.yeejoin.amos.boot.module.common.api.dao.ESEquipmentCategory;
import com.yeejoin.amos.boot.module.common.api.dto.ESEquipmentCategoryDto;
import com.yeejoin.amos.boot.module.jg.api.dto.DynamicColumnDto;
import com.yeejoin.amos.boot.module.jg.api.mapper.CommonMapper;
import com.yeejoin.amos.boot.module.jg.api.vo.SortVo;
import com.yeejoin.amos.boot.module.jyjc.api.common.StringUtil;
import com.yeejoin.amos.boot.module.jyjc.api.entity.JyjcInspectionApplication;
import com.yeejoin.amos.boot.module.jyjc.api.entity.JyjcInspectionResult;
......@@ -168,16 +169,17 @@ public class JyjcInspectionResultServiceImpl extends BaseService<JyjcInspectionR
return resultPage;
}
public Page<JyjcInspectionResultModel> queryForPageList(Page<JyjcInspectionResultModel> page, JyjcInspectionResultModel model) {
public Page<JyjcInspectionResultModel> queryForPageList(Page<JyjcInspectionResultModel> page, JyjcInspectionResultModel model, String sort) {
ReginParams reginParams = JSON.parseObject(redisUtils.get(RedisKey.buildReginKey(RequestContext.getExeUserId(),
RequestContext.getToken())).toString(), ReginParams.class);
SortVo sortMap = commonService.sortFieldConversion(sort);
if (ObjectUtils.isEmpty(model)) {
model = new JyjcInspectionResultModel();
}
// 判断当前登录人身份(报检机构、接收机构、即时报检又是接收机构、都不是(不存在此情况))
String identity = this.getCompanyIdentityByType(reginParams.getCompany().getCompanyType());
model.setCompanyCode(reginParams.getCompany().getCompanyCode());
Page<JyjcInspectionResultModel> resultPage = resultMapper.selectForPage(page, model, identity);
Page<JyjcInspectionResultModel> resultPage = resultMapper.selectForPage(page, model, identity, sortMap);
resultPage.getRecords().forEach(v -> {
if (ResultStatusEnum.NO_RESULT.getCode().equals(v.getResultStatus())) {
v.setResultStatusName(ResultStatusEnum.NO_RESULT.getName());
......
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