Commit 5f365af6 authored by 高建强's avatar 高建强

item:值班新增详情分页接口

parent 1fdc9dfd
......@@ -7,6 +7,7 @@ import com.yeejoin.amos.boot.module.common.api.dto.DynamicFormInstanceDto;
import com.yeejoin.amos.boot.module.common.api.entity.DynamicFormInstance;
import org.apache.ibatis.annotations.Param;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
......@@ -139,6 +140,8 @@ public interface DynamicFormInstanceMapper extends BaseMapper<DynamicFormInstanc
Map<String, Object> getCurentCarIsUserPhone(long carId);
List<Map<String, Object>> getOrgPersonTelphone(List<Map<String, Object>> companyIds);
List<Map<String, Object>> personInfoList(String groupCode, HashSet<String> userIdSet);
}
......@@ -23,6 +23,18 @@ public interface IDutyCommonService {
IPage<Map<String, Object>> pageList(int current, int size, String beginDate, String endDate) throws ParseException;
/**
* 分页详情查询
*
* @param current
* @param size
* @param beginDate
* @param endDate 日期
* @return
* @throws ParseException
*/
IPage<Map<String, Object>> pageListDetail(int current, int size, String beginDate, String endDate) throws ParseException;
/**
* 值班明细
*
* @param beginDate 开始日期
......
......@@ -572,5 +572,27 @@ FROM
WHERE
dd.administrativePositionCode IS NOT NULL
</select>
<select id="personInfoList" resultType="java.util.Map">
SELECT
i.instance_id AS userId,
MAX( CASE WHEN i.field_code = 'positionType' THEN IFNULL(i.field_value,'') END ) AS positionType,
MAX( CASE WHEN i.field_code = 'personImg' THEN IFNULL(i.field_value,'') END ) AS personImg,
MAX( CASE WHEN i.field_code = 'telephone' THEN IFNULL(i.field_value,'') END ) AS telephone
FROM
`cb_dynamic_form_instance` i
<where>
<if test="groupCode != null and groupCode != ''">
group_code = #{groupCode}
</if>
<if test="userIdSet != null and userIdSet.size() >0">
AND i.instance_id IN
<foreach collection="userIdSet" item="item" index="index" open="(" close=")" separator=",">
#{item}
</foreach>
</if>
</where>
GROUP BY
i.instance_id
</select>
</mapper>
......@@ -7,6 +7,8 @@ import com.yeejoin.amos.boot.module.common.api.service.IDutyPersonService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.time.DateFormatUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.typroject.tyboot.core.foundation.enumeration.UserType;
......@@ -18,6 +20,7 @@ import org.typroject.tyboot.core.restful.utils.ResponseModel;
import javax.servlet.http.HttpServletResponse;
import java.text.ParseException;
import java.util.Date;
import java.util.List;
import java.util.Map;
......@@ -52,6 +55,22 @@ public class DutyPersonController extends BaseController {
return ResponseHelper.buildResponse(iDutyPersonService.pageList(current, size, beginDate, endDate));
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/page-list-detail")
@ApiOperation(httpMethod = "GET", value = "值班列表详情分页", notes = "值班列表详情分页")
public ResponseModel<IPage<Map<String, Object>>> pageListDetail(
@ApiParam(value = "开始日期") @RequestParam(required = false) String beginDate,
@ApiParam(value = "结束日期") @RequestParam(required = false) String endDate,
@ApiParam(value = "当前页", required = true) @RequestParam(value = "current") int current,
@ApiParam(value = "页面大小", required = true) @RequestParam(value = "size") int size) throws ParseException {
if (StringUtils.isBlank(beginDate) && StringUtils.isBlank(endDate)) {
String date = DateFormatUtils.format(new Date(), "yyyy-MM-dd");
beginDate = date;
endDate = date;
}
return ResponseHelper.buildResponse(iDutyPersonService.pageListDetail(current, size, beginDate, endDate));
}
/**
* 值班列表视图--不分页
*
......
......@@ -107,6 +107,36 @@ public class DutyCommonServiceImpl implements IDutyCommonService {
return iPage;
}
@Override
public IPage<Map<String, Object>> pageListDetail(int current, int size, String beginDate, String endDate)
throws ParseException {
// 1.已column为准 进行返回
String groupCode = this.getGroupCode();
// 不存在值班数据则不查找 修改sql 方法去除 by kongfm 2021-09-14
IPage<Map<String, Object>> iPage = dynamicFormInstanceService.pageListNew(current, size, groupCode, beginDate, endDate);
List<Map<String, Object>> records = iPage.getRecords();
HashSet<String> userIdSet = new HashSet<>();
if (!CollectionUtils.isEmpty(records)) {
records.forEach(x -> {
userIdSet.add(x.get("userId").toString());
});
}
// 获取人员详细信息
List<Map<String, Object>> personInfoList = dynamicFormInstanceService.personInfoList(DynamicGroupCode.JCS_PERSON.getCode(), userIdSet);
if (!CollectionUtils.isEmpty(personInfoList)) {
Map<String, List<Map<String, Object>>> listMap = personInfoList.stream().collect(Collectors.groupingBy((Map m) -> String.valueOf(m.get("userId"))));
records.forEach(x -> {
String userId = x.get("userId").toString();
List<Map<String, Object>> list = listMap.get(userId);
if (!CollectionUtils.isEmpty(list)) {
list.forEach(x::putAll);
}
});
iPage.setRecords(records);
}
return iPage;
}
private void fillDutyShiftData(String beginDate, String endDate, Map<String, Object> m) throws ParseException {
// 获取值班的实例id
String instanceId = m.get("instanceId").toString();
......
package com.yeejoin.amos.boot.module.common.biz.service.impl;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.*;
import java.util.stream.Collectors;
import javax.servlet.http.HttpServletRequest;
......@@ -158,6 +155,10 @@ public class DynamicFormInstanceServiceImpl extends BaseService<DynamicFormInsta
return this.getBaseMapper().pageListNew(page, RequestContext.getAppKey(), fieldCodes, groupCode, params, beginDate, endDate);
}
public List<Map<String, Object>> personInfoList(String groupCode, HashSet<String> userIdSet) {
return this.getBaseMapper().personInfoList(groupCode, userIdSet);
}
public IPage<Map<String, Object>> pageList(int current, int size, String groupCode, Map<String, String> params) {
List<DynamicFormColumn> columns = dynamicFormColumnService.list(new LambdaQueryWrapper<DynamicFormColumn>().eq(DynamicFormColumn::getGroupCode, groupCode));
Map<String, Object> fieldCodes = Bean.listToMap(columns, "fieldCode", "queryStrategy", DynamicFormColumn.class);
......
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