Commit 92fdfc42 authored by KeYong's avatar KeYong

人员信息卡接口

parent 594121c9
......@@ -5,6 +5,9 @@ import com.yeejoin.amos.boot.module.jcs.api.dto.SignDto;
import com.yeejoin.amos.boot.module.jcs.api.dto.SinStaticDto;
import com.yeejoin.amos.boot.module.jcs.api.entity.Sign;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import java.util.Map;
/**
* 打卡记录 Mapper 接口
......@@ -20,4 +23,6 @@ public interface SignMapper extends BaseMapper<Sign> {
IPage<SinStaticDto> queryStaticForPage(IPage<?> page, SinStaticDto dto);
int queryPersonNum(String bizOgrCode);
// Map<String, Object> getSignStatistic(@Param("bizOrgCode") String bizOgrCode, @Param("userId") String userId);
}
......@@ -3,6 +3,8 @@ package com.yeejoin.amos.boot.module.jcs.api.service;
import com.yeejoin.amos.boot.module.jcs.api.dto.SignDto;
import java.util.Map;
/**
* 打卡记录接口类
*
......@@ -14,4 +16,6 @@ public interface ISignService {
Boolean hasSign(String type,String date,String userId);
Boolean saveSign(SignDto dot);
Map<String, Object> getSignStatistic(String userId, String bizOrgCode);
}
......@@ -78,6 +78,9 @@
<select id="queryPersonNum" resultType="java.lang.Integer">
select count(*) from cb_firefighters where biz_org_code like CONCAT('%',#{bizOgrCode}, '%') AND people_type = '1601'
AND is_delete = 0 AND now() > rec_date
</select>
<!-- <select id="getSignStatistic" resultType="Map">-->
<!-- </select>-->
</mapper>
......@@ -3,6 +3,7 @@ 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.yeejoin.amos.boot.biz.common.utils.DateUtils;
import com.yeejoin.amos.boot.module.common.api.core.framework.PersonIdentify;
import com.yeejoin.amos.boot.module.common.api.dto.FormValue;
import com.yeejoin.amos.boot.module.common.api.dto.OrgPersonFormDto;
import com.yeejoin.amos.boot.module.common.api.entity.OrgUsr;
......@@ -17,6 +18,7 @@ import com.yeejoin.amos.boot.biz.common.controller.BaseController;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import com.yeejoin.amos.boot.module.jcs.biz.service.impl.SignServiceImpl;
......@@ -125,7 +127,36 @@ public class SignController extends BaseController {
Page<SignDto> page = new Page<SignDto>();
page.setCurrent(dto.getCurrent());
page.setSize(dto.getSize());
return ResponseHelper.buildResponse(signServiceImpl.queryForSignPageByMapper(page, dto));
IPage<SignDto> page1 = signServiceImpl.queryForSignPageByMapper(page, dto);
if (0 < page1.getRecords().size()) {
for(SignDto d : page1.getRecords()){
QueryWrapper<OrgUsr> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("sequence_nbr",d.getSignUserId());
queryWrapper.eq("is_delete",0);
OrgUsr orgUsr = iOrgUsrService.getOne(queryWrapper);
try {
OrgPersonFormDto orgPersonFormDto = iOrgUsrService.selectPersonById(orgUsr.getSequenceNbr());
List<FormValue> personImg = orgPersonFormDto.getDynamicFormAlert().stream().filter(e -> e.getKey().equals("personImg")).collect(Collectors.toList());
d.setPersonPhotos(personImg.get(0).getValue());
} catch (Exception e) {
e.printStackTrace();
}
}
}
return ResponseHelper.buildResponse(page1);
}
/**
* 人员信息卡统计打卡
*
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "GET",value = "人员信息卡统计打卡", notes = "人员信息卡统计打卡")
@GetMapping(value = "/statistic")
public ResponseModel<Map<String, Object>> getSignStatistic(@RequestParam(value = "userId" , required = false) String userId,
@RequestParam(value = "bizOrgCode" , required = false) String bizOrgCode) {
return ResponseHelper.buildResponse(signServiceImpl.getSignStatistic(userId, bizOrgCode));
}
/**
......
......@@ -111,6 +111,16 @@ public class SignServiceImpl extends BaseService<SignDto,Sign,SignMapper> implem
}
@Override
public Map<String, Object> getSignStatistic(String userId, String bizOrgCode) {
// 人员缺卡统计暂无法统计,只知道person_of_day需要打卡总人数,但是打一次卡和哪些人打卡无法获取,此处返回了默认值
// this.baseMapper.getSignStatistic(bizOrgCode, userId);
Map<String, Object> map = new HashMap<>();
map.put("totalNum", 50);
map.put("loss", 4);
return map;
}
@Override
public Boolean saveSign(SignDto dot) {
Sign sign = new Sign();
Map<String,Object> bizOrgCodeAndBizOrgName = iFirefightersService.getCompanyName(dot.getBizOrgCode());
......
......@@ -916,4 +916,35 @@ public class CheckController extends AbstractBaseController {
return CommonResponseUtil.failure(e.getMessage());
}
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@RequestMapping(value = "/people/statistic", method = RequestMethod.GET, produces = "application/json;charset=UTF-8")
public CommonResponse getPeopleStatistic(
@RequestParam(required = false) String bizOrgCode,
@RequestParam(required = false) String userId) {
try {
return CommonResponseUtil.success(checkService.getPeopleStatistic(bizOrgCode, userId));
} catch (Exception e) {
return CommonResponseUtil.failure(e.getMessage());
}
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@RequestMapping(value = "/people/page", method = RequestMethod.POST, produces = "application/json;charset=UTF-8")
public CommonResponse getPeoplePatrolPage(
@RequestBody(required = false) CheckInfoPageParam param,
CommonPageable commonPageable) {
ReginParams reginParams = getSelectedOrgInfo();
param.setOrderBy("checkDate desc");
param.setBizOrgCode(ObjectUtils.isEmpty(param.getBizOrgCode()) ?
"3".equals(param.getIsOK()) ? null : reginParams.getPersonIdentity().getBizOrgCode()
: param.getBizOrgCode());
if(commonPageable !=null){
param.setPageNumber(commonPageable.getPageNumber()-1);
param.setPageSize(commonPageable.getPageSize());
}
Page<CheckInfoVo> list = checkService.getPeoplePatrolPage(param);
return CommonResponseUtil.success(list);
}
}
......@@ -278,4 +278,10 @@ public interface CheckMapper extends BaseMapper {
List<Map<String, Object>> selectCheckById(@Param(value = "taskId") Long taskId, @Param(value = "pointId") Long pointId);
List<Map<String, Object>> queryCheckInputItemsByCheckId(@Param(value="checkId") long checkId);
Map<String, Object> getPeopleStatistic(@Param(value = "bizOrgCode") String bizOrgCode, @Param(value = "userId") String userId);
long getPeoplePageCount(CheckInfoPageParam param);
List<CheckInfoVo> getPeopleCheckPage(CheckInfoPageParam param);
}
package com.yeejoin.amos.patrol.business.service.impl;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.google.common.base.Joiner;
......@@ -20,6 +21,7 @@ import com.yeejoin.amos.patrol.business.dao.repository.*;
import com.yeejoin.amos.patrol.business.dto.CheckDto;
import com.yeejoin.amos.patrol.business.entity.mybatis.*;
import com.yeejoin.amos.patrol.business.feign.EquipFeign;
import com.yeejoin.amos.patrol.business.feign.IdxFeign;
import com.yeejoin.amos.patrol.business.feign.JcsFeignClient;
import com.yeejoin.amos.patrol.business.param.*;
import com.yeejoin.amos.patrol.business.service.intfc.ICheckService;
......@@ -30,6 +32,7 @@ import com.yeejoin.amos.patrol.business.util.CheckDetailInputPageParam;
import com.yeejoin.amos.patrol.business.util.Toke;
import com.yeejoin.amos.patrol.business.vo.CheckAnalysisVo;
import com.yeejoin.amos.patrol.business.vo.CheckInfoVo;
import com.yeejoin.amos.patrol.business.vo.DefectVo;
import com.yeejoin.amos.patrol.common.enums.CheckStatusEnum;
import com.yeejoin.amos.patrol.common.enums.PointLevelEnum;
import com.yeejoin.amos.patrol.common.enums.PointStatusEnum;
......@@ -110,6 +113,9 @@ public class CheckServiceImpl implements ICheckService {
@Autowired
private CheckInputMapper checkInputMapper;
@Autowired
private IdxFeign idxFeign;
public static final Logger log = LoggerFactory.getLogger(CheckServiceImpl.class);
@Override
......@@ -162,6 +168,37 @@ public class CheckServiceImpl implements ICheckService {
return new PageImpl<>(content, param, total);
}
public Page<CheckInfoVo> getPeoplePatrolPage(CheckInfoPageParam param) {
long total = checkMapper.getPeoplePageCount(param);
List<CheckInfoVo> content = Lists.newArrayList();
if (total == 0) {
return new PageImpl<>(content, param, total);
}
content = checkMapper.getPeopleCheckPage(param);
for (CheckInfoVo infoVo : content) {
String checkId = planTaskMapper.getCheckIdByDetailId(infoVo.getId());
FeignClientResult responseModel = new FeignClientResult();
List result = new ArrayList();
try {
responseModel = idxFeign.queryDefectByCodes(new ArrayList<>(), checkId);
result = (List) responseModel.getResult();
} catch (Exception e) {
e.printStackTrace();
}
List<DefectVo> res = new ArrayList();
if (result != null && 0 < result.size()) {
for(Object object : result) {
DefectVo vo = JSON.parseObject(JSON.toJSONString(object), DefectVo.class);
res.add(vo);
}
infoVo.setError(ObjectUtils.isEmpty(res.get(0)) ? "" : res.get(0).getDefectDescribe());
infoVo.setProblemNum(ObjectUtils.isEmpty(res.get(0)) ? "" : res.get(0).getDefectNum());
infoVo.setHandleStatus(ObjectUtils.isEmpty(res.get(0)) ? "" : String.valueOf(res.get(0).getDefectStatus()));
}
}
return new PageImpl<>(content, param, total);
}
@Override
@Transactional
public void saveCheckImg(List<CheckShot> imgList) {
......@@ -2004,4 +2041,9 @@ public class CheckServiceImpl implements ICheckService {
public List<Long> getPlanCheckDataCount(HashMap<String, Object> param) {
return checkMapper.getPlanCheckDataCount(param);
}
@Override
public Map<String, Object> getPeopleStatistic(String bizOrgCode, String userId){
return checkMapper.getPeopleStatistic(bizOrgCode, userId);
}
}
......@@ -262,4 +262,8 @@ public interface ICheckService {
List<HashMap<String,Object>> getEquipByCheckId(CheckDetailInputPageParam param);
Page<CheckInfoVo> getCheckInfoNew(String toke,String product,String appKey,CheckInfoPageParam param);
Page<CheckInfoVo> getPeoplePatrolPage(CheckInfoPageParam param);
Map<String, Object> getPeopleStatistic(String bizOrgCode, String userId);
}
......@@ -47,6 +47,26 @@ public class CheckInfoVo {
private String bizOrgName;
private String problemNum;
private String handleStatus;
public String getProblemNum() {
return problemNum;
}
public String getHandleStatus() {
return handleStatus;
}
public void setProblemNum(String problemNum) {
this.problemNum = problemNum;
}
public void setHandleStatus(String handleStatus) {
this.handleStatus = handleStatus;
}
public void setBizOrgName(String bizOrgName) {
this.bizOrgName = bizOrgName;
}
......
......@@ -332,6 +332,57 @@
</choose>
</select>
<select id="getPeoplePageCount" resultMap="long">
SELECT
count(1)
FROM
`p_check` `a`
<trim prefix="WHERE" prefixOverrides="AND ">
<if test="userId!=null and userId!=''">and find_in_set(#{userId}, a.user_id) > 0</if>
<if test="bizOrgCode != null and bizOrgCode != ''">
and a.org_code LIKE CONCAT(#{bizOrgCode},'%')
</if>
</trim>
<choose>
<when test="pageSize==-1"></when>
<when test="pageSize!=-1">limit #{offset},#{pageSize}</when>
</choose>
</select>
<select id="getPeopleCheckPage" resultMap="checkInfoMap">
SELECT
a.id,
a.user_id,
date_format(
`a`.`check_time`,
'%Y-%m-%d %H:%i:%s'
) AS `checkDate`,
(
CASE
WHEN `a`.`is_ok` = 1
THEN '合格'
WHEN `a`.`is_ok` = 2
THEN '不合格'
WHEN `a`.`is_ok` = 3
THEN '漏检'
END
) as is_ok,
b.biz_org_name AS bizOrgName
FROM
`p_check` `a`
<trim prefix="WHERE" prefixOverrides="AND ">
<if test="userId!=null and userId!=''">and find_in_set(#{userId}, a.user_id) > 0</if>
<if test="bizOrgCode != null and bizOrgCode != ''">
and a.org_code LIKE CONCAT(#{bizOrgCode},'%')
</if>
</trim>
order by ${orderBy}
<choose>
<when test="pageSize==-1"></when>
<when test="pageSize!=-1">limit #{offset},#{pageSize}</when>
</choose>
</select>
<select id="queryUnqualifiedInputItem" resultType="Map" parameterType="int">
SELECT
ii.name,
......@@ -2207,4 +2258,19 @@
ORDER BY
ci.order_no
</select>
<select id="getPeopleStatistic" resultType="Map">
SELECT
count(1) AS total
FROM
p_check pc
<where>
<if test="bizOrgCode !=null and bizOrgCode!='' ">
pc.org_code like CONCAT(#{bizOrgCode},'%')
</if>
<if test="bizOrgCode !=null and bizOrgCode!='' ">
AND pc.user_id = #{userId}
</if>
</where>
</select>
</mapper>
\ No newline at end of file
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