提交
This commit is contained in:
@ -29,4 +29,6 @@ public class TbZdyFgrwDkDto {
|
||||
|
||||
@ApiModelProperty(value = "打卡图片")
|
||||
private String dktp;
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -16,7 +16,7 @@ import java.io.Serializable;
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@Accessors(chain = true)
|
||||
@TableName("tb_zdy_fgrwlq")
|
||||
@TableName("tb_zdy_fgrwlq")
|
||||
@ApiModel(value = "TbZdyFgrwlq 对象", description = "巡逻方格任务领取")
|
||||
public class TbZdyFgrwlq extends BaseEntity implements Serializable, Cloneable {
|
||||
|
||||
@ -29,6 +29,9 @@ public class TbZdyFgrwlq extends BaseEntity implements Serializable, Cloneable {
|
||||
@ApiModelProperty(value = "方格任务id")
|
||||
private String fgrwid;
|
||||
|
||||
@ApiModelProperty(value = "报备id")
|
||||
private String bbid;
|
||||
|
||||
@ApiModelProperty(value = "方格任务状态D_BZ_QWRWZT 01领取 02已领取 03已完成")
|
||||
private String fgrwzt;
|
||||
|
||||
|
||||
@ -42,7 +42,7 @@ public class TbZdyFgrwlqdk extends BaseEntity implements Serializable, Cloneable
|
||||
@ApiModelProperty(value = "打卡人身份证号")
|
||||
private String darsfzh;
|
||||
|
||||
@ApiModelProperty(value = "打卡秃瓢")
|
||||
@ApiModelProperty(value = "打卡图片")
|
||||
private String dktp;
|
||||
|
||||
@ApiModelProperty(value = "打卡时间")
|
||||
@ -73,4 +73,18 @@ public class TbZdyFgrwlqdk extends BaseEntity implements Serializable, Cloneable
|
||||
@ApiModelProperty(value = "所属市公安局代码")
|
||||
private String sssgajdm;
|
||||
|
||||
@ApiModelProperty(value = "离开图片")
|
||||
private String lktp;
|
||||
|
||||
@ApiModelProperty(value = "离开时间")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date lksj;
|
||||
|
||||
@ApiModelProperty(value = "离开经度")
|
||||
private BigDecimal lkjd;
|
||||
|
||||
@ApiModelProperty(value = "离开纬度")
|
||||
private BigDecimal lkwd;
|
||||
|
||||
}
|
||||
|
||||
@ -35,4 +35,7 @@ public class TbZdyFgrwQuery extends BasePage {
|
||||
|
||||
@ApiModelProperty(value = "任务领取人id")
|
||||
private String fgrwlqrid;
|
||||
|
||||
@ApiModelProperty(value = "报备id")
|
||||
private String bbid;
|
||||
}
|
||||
|
||||
@ -6,7 +6,6 @@ import com.google.common.collect.Maps;
|
||||
import com.mosty.base.model.dto.wzzx.LocationConvertDTO;
|
||||
import com.mosty.base.model.dto.wzzx.LocationInfo;
|
||||
import com.mosty.base.model.entity.wzzx.TbWzSswz;
|
||||
import com.mosty.base.utils.CoordinateTransform;
|
||||
import com.mosty.base.utils.CoordinateUtils;
|
||||
import com.mosty.base.utils.DateUtils;
|
||||
import com.mosty.common.base.domain.BaseController;
|
||||
@ -101,29 +100,22 @@ public class LocationInfoController extends BaseController {
|
||||
locationInfo.setSourceName("移动设备");
|
||||
locationInfo.setSourceCode("02");
|
||||
// Long startTime = System.currentTimeMillis();
|
||||
// 入库之前将坐标进行转换
|
||||
// 保存原始坐标
|
||||
locationInfo.setSourceLat(locationInfo.getLat());
|
||||
locationInfo.setSourceLng(locationInfo.getLng());
|
||||
// double[] transfromPonint = CoordinateTransform.transformGCJ02ToWGS84(locationInfo.getLng(),
|
||||
// locationInfo.getLat());
|
||||
// // 只保留8位小数
|
||||
// BigDecimal reLngBd = BigDecimal.valueOf(transfromPonint[0]);
|
||||
// double reLngDouble = reLngBd.setScale(8, BigDecimal.ROUND_HALF_UP).doubleValue();
|
||||
// locationInfo.setLng(reLngDouble);
|
||||
// // 只保留8位小数
|
||||
// BigDecimal reLatBd = BigDecimal.valueOf(transfromPonint[1]);
|
||||
// double reLatDouble = reLatBd.setScale(8, BigDecimal.ROUND_HALF_UP).doubleValue();
|
||||
// locationInfo.setLat(reLatDouble);
|
||||
//上传坐标转行
|
||||
// 只保留8位小数
|
||||
BigDecimal reLngBd = BigDecimal.valueOf(locationInfo.getLng());
|
||||
double reLngDouble = reLngBd.setScale(8, BigDecimal.ROUND_HALF_UP).doubleValue();
|
||||
locationInfo.setLng(reLngDouble);
|
||||
BigDecimal reLatBd = BigDecimal.valueOf(locationInfo.getLat());
|
||||
double reLatDouble = reLatBd.setScale(8, BigDecimal.ROUND_HALF_UP).doubleValue();
|
||||
locationInfo.setLat(reLatDouble);
|
||||
// 上次坐标精度处理
|
||||
if (locationInfo.getLastLng() != null && locationInfo.getLastLat() != null) {
|
||||
double[] lastTransfromPonint = CoordinateTransform.transformGCJ02ToWGS84(locationInfo.getLastLng(),
|
||||
locationInfo.getLastLat());
|
||||
// 只保留8位小数
|
||||
BigDecimal lastReLngBd = BigDecimal.valueOf(lastTransfromPonint[0]);
|
||||
BigDecimal lastReLngBd = BigDecimal.valueOf(locationInfo.getLastLng());
|
||||
double lastReLngDouble = lastReLngBd.setScale(8, BigDecimal.ROUND_HALF_UP).doubleValue();
|
||||
locationInfo.setLastLng(lastReLngDouble);
|
||||
// 只保留8位小数
|
||||
BigDecimal lastReLatBd = BigDecimal.valueOf(lastTransfromPonint[1]);
|
||||
BigDecimal lastReLatBd = BigDecimal.valueOf(locationInfo.getLastLat());
|
||||
double lastReLatDouble = lastReLatBd.setScale(8, BigDecimal.ROUND_HALF_UP).doubleValue();
|
||||
locationInfo.setLastLat(lastReLatDouble);
|
||||
}
|
||||
@ -132,7 +124,6 @@ public class LocationInfoController extends BaseController {
|
||||
}
|
||||
//实时存储位置
|
||||
locationInfoService.locationReceive(locationInfo);
|
||||
Long endTime = System.currentTimeMillis();
|
||||
locationInfo.setLastLat(locationInfo.getLat());
|
||||
locationInfo.setLastLng(locationInfo.getLng());
|
||||
return ResponseResult.success("添加成功", locationInfo);
|
||||
|
||||
@ -57,8 +57,6 @@ public class LocationInfoServiceImpl extends ServiceImpl<TbWzXfwzMapper, TbWzXfw
|
||||
long sswzTime = 0;
|
||||
long lswzTime = 0;
|
||||
long xfbbTime = 0;
|
||||
|
||||
|
||||
//经度、纬度为空不接收数据
|
||||
try {
|
||||
if (locationInfo.getLng() == null && locationInfo.getLat() == null) {
|
||||
@ -301,9 +299,9 @@ public class LocationInfoServiceImpl extends ServiceImpl<TbWzXfwzMapper, TbWzXfw
|
||||
}
|
||||
String redisKey = Constant.WZ_XFWZ + locationInfo.getBbid();
|
||||
//直接去redis存在问题 20240307
|
||||
TbWzXfwz xfwz = redisService.getCacheObject(redisKey);
|
||||
// TbWzXfwz xfwz = redisService.getCacheObject(redisKey);
|
||||
Integer lc = 0;
|
||||
// TbWzXfwz xfwz = this.baseMapper.queryByBbid(locationInfo.getBbid());
|
||||
TbWzXfwz xfwz = this.baseMapper.queryByBbid(locationInfo.getBbid());
|
||||
if (ObjectUtils.isEmpty(xfwz)) {
|
||||
xfwz = new TbWzXfwz();
|
||||
}
|
||||
|
||||
@ -57,6 +57,7 @@ public class TbWzLswzServiceImpl extends ServiceImpl<TbWzSswzMapper, TbWzSswz> i
|
||||
if (StringUtils.isNotBlank(locationInfo.getUserId())) {
|
||||
sjly = sjly + "-" + locationInfo.getUserId();
|
||||
}
|
||||
lswz.setId(UUIDGenerator.getUUID());
|
||||
lswz.setSjly(sjly);
|
||||
lswz.setSjlydm("02");
|
||||
lswz.setYwid(locationInfo.getBbid());
|
||||
|
||||
@ -4,8 +4,11 @@ package com.mosty.yjzl.controller;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.mosty.base.model.dto.yjzl.TbZdyFgrwDkDto;
|
||||
import com.mosty.base.model.dto.yjzl.TbZdyFgrwDto;
|
||||
import com.mosty.base.model.dto.yjzl.TbZdyFgrwLkDto;
|
||||
import com.mosty.base.model.query.yjzl.TbZdyFgrwlqdkQuery;
|
||||
import com.mosty.base.model.query.yjzl.TbZdyFgrwQuery;
|
||||
import com.mosty.base.model.query.yjzl.TbZdyFgrwlqQuery;
|
||||
import com.mosty.base.model.vo.yjzl.TbZdyFgrwlqdkVO;
|
||||
import com.mosty.base.model.vo.yjzl.TbZdyFgrwVO;
|
||||
import com.mosty.common.base.domain.ResponseResult;
|
||||
import com.mosty.common.token.JwtSysUser;
|
||||
@ -88,4 +91,25 @@ public class TbZdyFgrwController {
|
||||
public ResponseResult<Boolean> zdyRwdk(@RequestBody TbZdyFgrwDkDto dto) {
|
||||
return ResponseResult.success(tbZdyFgrwService.zdyRwdk(dto));
|
||||
}
|
||||
|
||||
@ApiOperation(value = "自定义任务离开打卡")
|
||||
@PostMapping("/zdyLkdk")
|
||||
@JwtSysUser
|
||||
public ResponseResult<Boolean> zdyLkdk(@RequestBody TbZdyFgrwLkDto dto) {
|
||||
return ResponseResult.success(tbZdyFgrwService.zdyLkdk(dto));
|
||||
}
|
||||
|
||||
@ApiOperation(value = "打卡记录分页查询")
|
||||
@GetMapping("/selectDkList")
|
||||
@JwtSysUser
|
||||
public ResponseResult<IPage<TbZdyFgrwlqdkVO>> selectDkList(TbZdyFgrwlqdkQuery query) {
|
||||
return ResponseResult.success(tbZdyFgrwService.selectDkList(query));
|
||||
}
|
||||
|
||||
@ApiOperation(value = "根据报备ID查询任务详情列表")
|
||||
@GetMapping("/getFgrwListByBbid")
|
||||
@JwtSysUser
|
||||
public ResponseResult<List<TbZdyFgrwVO>> getFgrwListByBbid(TbZdyFgrwQuery query) {
|
||||
return ResponseResult.success(tbZdyFgrwService.getFgrwListByBbid(query));
|
||||
}
|
||||
}
|
||||
|
||||
@ -8,12 +8,19 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
|
||||
import com.mosty.base.model.dto.yjzl.TbZdyFgrwDkDto;
|
||||
import com.mosty.base.model.dto.yjzl.TbZdyFgrwDto;
|
||||
import com.mosty.base.model.dto.yjzl.TbZdyFgrwLkDto;
|
||||
import com.mosty.base.model.entity.qwzx.TbQwXfbb;
|
||||
import com.mosty.base.model.entity.yjzl.zddw.*;
|
||||
import com.mosty.base.model.entity.yjzl.zddw.TbZdyFgbxd;
|
||||
import com.mosty.base.model.entity.yjzl.zddw.TbZdyFgrw;
|
||||
import com.mosty.base.model.entity.yjzl.zddw.TbZdyFgrwlq;
|
||||
import com.mosty.base.model.entity.yjzl.zddw.TbZdyFgrwlqdk;
|
||||
import com.mosty.base.model.entity.yjzl.zddw.TbZdxlFgdw;
|
||||
import com.mosty.base.model.query.yjzl.TbZdyFgrwlqdkQuery;
|
||||
import com.mosty.base.model.query.yjzl.TbZdyFgrwQuery;
|
||||
import com.mosty.base.model.query.yjzl.TbZdyFgrwlqQuery;
|
||||
import com.mosty.base.model.vo.base.DeptInfoVo;
|
||||
import com.mosty.base.model.vo.yjzl.TbZdxlFgdwVO;
|
||||
import com.mosty.base.model.vo.yjzl.TbZdyFgrwlqdkVO;
|
||||
import com.mosty.base.model.vo.yjzl.TbZdyFgrwVO;
|
||||
import com.mosty.base.utils.*;
|
||||
import com.mosty.common.base.exception.BusinessException;
|
||||
@ -43,27 +50,28 @@ public class TbZdyFgrwServiceImpl extends ServiceImpl<TbZdyFgrwMapper, TbZdyFgrw
|
||||
private final TbZdxlFgdwMapper tbZdxlFgdwMapper;
|
||||
private final TbZdyFgrwlqdkMapper tbZdyFgrwlqdkMapper;
|
||||
private final TbQwzxAdaptRemoteService tbQwzxAdaptRemoteService;
|
||||
|
||||
@Override
|
||||
public Boolean addTbZdyrw(TbZdyFgrwDto dto) {
|
||||
UserInfo user = UserInfoManager.get();
|
||||
TbZdyFgrw fgrw = new TbZdyFgrw();
|
||||
BeanUtils.copyProperties(dto,fgrw);
|
||||
BeanUtils.copyProperties(dto, fgrw);
|
||||
fgrw.setId(UUIDGenerator.getUUID());
|
||||
fgrw.setFgrwzt("01");
|
||||
if(Objects.isNull(dto.getXfrq())){
|
||||
if (Objects.isNull(dto.getXfrq())) {
|
||||
fgrw.setXfrq(new Date());
|
||||
}
|
||||
TbZdxlFgdw tbZdxlFgdw = this.tbZdxlFgdwMapper.selectById(dto.getFgId());
|
||||
if(Objects.nonNull(tbZdxlFgdw)){
|
||||
if (Objects.nonNull(tbZdxlFgdw)) {
|
||||
fgrw.setFgmc(tbZdxlFgdw.getMc1());
|
||||
fgrw.setXfbm(tbZdxlFgdw.getSsbm());
|
||||
fgrw.setXfbmdm(tbZdxlFgdw.getSsbmdm());
|
||||
}
|
||||
if(StringUtils.isEmpty(dto.getSsbmdm())){
|
||||
if (StringUtils.isEmpty(dto.getSsbmdm())) {
|
||||
dto.setSsbmdm(user.getDeptCode());
|
||||
}
|
||||
DeptInfoVo dept = this.tbBaseAdaptRemoteService.getOrgByOrgcode(dto.getSsbmdm());
|
||||
if(Objects.nonNull(dept)){
|
||||
if (Objects.nonNull(dept)) {
|
||||
fgrw.setSsbm(dept.getDeptname());
|
||||
fgrw.setSsbmdm(dept.getDeptcode());
|
||||
fgrw.setSsxgajdm(dept.getFxjcode());
|
||||
@ -72,10 +80,10 @@ public class TbZdyFgrwServiceImpl extends ServiceImpl<TbZdyFgrwMapper, TbZdyFgrw
|
||||
fgrw.setSssgajdm(dept.getDszcode());
|
||||
}
|
||||
this.baseMapper.insert(fgrw);
|
||||
if(!CollectionUtils.isEmpty(dto.getDtoList())){
|
||||
if (!CollectionUtils.isEmpty(dto.getDtoList())) {
|
||||
dto.getDtoList().forEach(tbZdyFgbxdDto -> {
|
||||
TbZdyFgbxd bxd = new TbZdyFgbxd();
|
||||
BeanUtils.copyProperties(tbZdyFgbxdDto,bxd);
|
||||
BeanUtils.copyProperties(tbZdyFgbxdDto, bxd);
|
||||
bxd.setId(UUIDGenerator.getUUID());
|
||||
bxd.setFgrwid(fgrw.getId());
|
||||
this.tbZdyFgbxdMapper.insert(bxd);
|
||||
@ -88,21 +96,21 @@ public class TbZdyFgrwServiceImpl extends ServiceImpl<TbZdyFgrwMapper, TbZdyFgrw
|
||||
public Boolean editTbZdyrw(TbZdyFgrwDto dto) {
|
||||
UserInfo user = UserInfoManager.get();
|
||||
TbZdyFgrw fgrw = new TbZdyFgrw();
|
||||
BeanUtils.copyProperties(dto,fgrw);
|
||||
if(Objects.isNull(dto.getXfrq())){
|
||||
BeanUtils.copyProperties(dto, fgrw);
|
||||
if (Objects.isNull(dto.getXfrq())) {
|
||||
fgrw.setXfrq(new Date());
|
||||
}
|
||||
TbZdxlFgdw tbZdxlFgdw = this.tbZdxlFgdwMapper.selectById(dto.getFgId());
|
||||
if(Objects.nonNull(tbZdxlFgdw)){
|
||||
if (Objects.nonNull(tbZdxlFgdw)) {
|
||||
fgrw.setFgmc(tbZdxlFgdw.getMc1());
|
||||
fgrw.setXfbm(tbZdxlFgdw.getSsbm());
|
||||
fgrw.setXfbmdm(tbZdxlFgdw.getSsbmdm());
|
||||
}
|
||||
if(StringUtils.isEmpty(dto.getSsbmdm())){
|
||||
if (StringUtils.isEmpty(dto.getSsbmdm())) {
|
||||
dto.setSsbmdm(user.getDeptCode());
|
||||
}
|
||||
DeptInfoVo dept = this.tbBaseAdaptRemoteService.getOrgByOrgcode(dto.getSsbmdm());
|
||||
if(Objects.nonNull(dept)){
|
||||
if (Objects.nonNull(dept)) {
|
||||
fgrw.setSsbm(dept.getDeptname());
|
||||
fgrw.setSsbmdm(dept.getDeptcode());
|
||||
fgrw.setSsxgajdm(dept.getFxjcode());
|
||||
@ -113,12 +121,12 @@ public class TbZdyFgrwServiceImpl extends ServiceImpl<TbZdyFgrwMapper, TbZdyFgrw
|
||||
this.baseMapper.updateById(fgrw);
|
||||
this.tbZdyFgbxdMapper.delete(
|
||||
new LambdaQueryWrapper<TbZdyFgbxd>()
|
||||
.eq(TbZdyFgbxd::getFgrwid,fgrw.getId())
|
||||
.eq(TbZdyFgbxd::getFgrwid, fgrw.getId())
|
||||
);
|
||||
if(!CollectionUtils.isEmpty(dto.getDtoList())){
|
||||
if (!CollectionUtils.isEmpty(dto.getDtoList())) {
|
||||
dto.getDtoList().forEach(tbZdyFgbxdDto -> {
|
||||
TbZdyFgbxd bxd = new TbZdyFgbxd();
|
||||
BeanUtils.copyProperties(tbZdyFgbxdDto,bxd);
|
||||
BeanUtils.copyProperties(tbZdyFgbxdDto, bxd);
|
||||
bxd.setId(UUIDGenerator.getUUID());
|
||||
bxd.setFgrwid(fgrw.getId());
|
||||
this.tbZdyFgbxdMapper.insert(bxd);
|
||||
@ -137,27 +145,27 @@ public class TbZdyFgrwServiceImpl extends ServiceImpl<TbZdyFgrwMapper, TbZdyFgrw
|
||||
UserInfo userInfo = UserInfoManager.get();
|
||||
query.setSsbmdm(this.tbBaseAdaptRemoteService.getSsbm(query.getSsbmdm(), null));
|
||||
IPage<TbZdyFgrw> page = this.baseMapper.selectPage(
|
||||
new Page<>(query.getPageCurrent(),query.getPageSize()),
|
||||
new Page<>(query.getPageCurrent(), query.getPageSize()),
|
||||
new LambdaQueryWrapper<TbZdyFgrw>()
|
||||
.like(StringUtils.isNotEmpty(query.getFgRwmc()),TbZdyFgrw::getFgRwmc,query.getFgRwmc())
|
||||
.likeRight(StringUtils.isNotEmpty(query.getSsbmdm()),TbZdyFgrw::getSsbmdm,query.getSsbmdm())
|
||||
.eq(StringUtils.isNotEmpty(query.getXfbmdm()),TbZdyFgrw::getXfbmdm,query.getXfbmdm())
|
||||
.eq(StringUtils.isNotEmpty(query.getFgrwzt()),TbZdyFgrw::getFgrwzt,query.getFgrwzt())
|
||||
.orderByDesc(TbZdyFgrw::getXfrq)
|
||||
.like(StringUtils.isNotEmpty(query.getFgRwmc()), TbZdyFgrw::getFgRwmc, query.getFgRwmc())
|
||||
.likeRight(StringUtils.isNotEmpty(query.getSsbmdm()), TbZdyFgrw::getSsbmdm, query.getSsbmdm())
|
||||
.eq(StringUtils.isNotEmpty(query.getXfbmdm()), TbZdyFgrw::getXfbmdm, query.getXfbmdm())
|
||||
.eq(StringUtils.isNotEmpty(query.getFgrwzt()), TbZdyFgrw::getFgrwzt, query.getFgrwzt())
|
||||
.orderByDesc(TbZdyFgrw::getXtCjsj)
|
||||
);
|
||||
List<TbZdyFgrwVO> voList = new ArrayList<>();
|
||||
if(!CollectionUtils.isEmpty(page.getRecords())){
|
||||
if (!CollectionUtils.isEmpty(page.getRecords())) {
|
||||
page.getRecords().forEach(tbZdyFgrw -> {
|
||||
TbZdyFgrwlq rwlq = this.tbZdyFgrwlqMapper.selectOne(
|
||||
new LambdaQueryWrapper<TbZdyFgrwlq>()
|
||||
.eq(TbZdyFgrwlq::getFgrwid,tbZdyFgrw.getId())
|
||||
.eq(TbZdyFgrwlq::getFgrwlqrid,userInfo.getUserId())
|
||||
.eq(TbZdyFgrwlq::getFgrwid, tbZdyFgrw.getId())
|
||||
// .eq(TbZdyFgrwlq::getFgrwlqrid,userInfo.getUserId())
|
||||
.last(" limit 1 ")
|
||||
);
|
||||
TbZdyFgrwVO vo = new TbZdyFgrwVO();
|
||||
BeanUtils.copyProperties(tbZdyFgrw,vo);
|
||||
BeanUtils.copyProperties(tbZdyFgrw, vo);
|
||||
vo.setFgrwzt(tbZdyFgrw.getFgrwzt());
|
||||
if(Objects.nonNull(rwlq)){
|
||||
if (Objects.nonNull(rwlq)) {
|
||||
vo.setFgrwlqr(rwlq.getFgrwlqr());
|
||||
vo.setFgrwlqrid(rwlq.getFgrwlqrid());
|
||||
vo.setFgrwlqrsfzh(rwlq.getFgrwlqrsfzh());
|
||||
@ -166,7 +174,7 @@ public class TbZdyFgrwServiceImpl extends ServiceImpl<TbZdyFgrwMapper, TbZdyFgrw
|
||||
voList.add(vo);
|
||||
});
|
||||
}
|
||||
IPage<TbZdyFgrwVO> pageVo = new Page<>(page.getCurrent(),page.getSize());
|
||||
IPage<TbZdyFgrwVO> pageVo = new Page<>(page.getCurrent(), page.getSize());
|
||||
pageVo.setTotal(page.getTotal());
|
||||
pageVo.setRecords(voList);
|
||||
return pageVo;
|
||||
@ -185,35 +193,37 @@ public class TbZdyFgrwServiceImpl extends ServiceImpl<TbZdyFgrwMapper, TbZdyFgrw
|
||||
// );
|
||||
// List<String> ids = mylqs.stream().map(TbZdyFgrwlq::getFgrwid).collect(Collectors.toList());
|
||||
//今日待领取任务
|
||||
IPage<TbZdyFgrw> page = this.baseMapper.selectPage(
|
||||
new Page<>(query.getPageCurrent(),query.getPageSize()),
|
||||
new LambdaQueryWrapper<TbZdyFgrw>()
|
||||
.like(StringUtils.isNotEmpty(query.getFgRwmc()),TbZdyFgrw::getFgRwmc,query.getFgRwmc())
|
||||
.likeRight(StringUtils.isNotEmpty(query.getSsbmdm()),TbZdyFgrw::getSsbmdm,query.getSsbmdm())
|
||||
.eq(StringUtils.isNotEmpty(query.getXfbmdm()),TbZdyFgrw::getXfbmdm,query.getXfbmdm())
|
||||
.eq(TbZdyFgrw::getXfrq,DateUtils.getNowDate())
|
||||
.eq(TbZdyFgrw::getFgrwzt,"01")
|
||||
// .notIn(!CollectionUtils.isEmpty(ids),TbZdyFgrw::getId,ids)
|
||||
.orderByDesc(TbZdyFgrw::getXfrq)
|
||||
);
|
||||
IPage<TbZdyFgrw> page = new Page<>();
|
||||
//历史任务(自己已领取任务)
|
||||
if("02".equals(query.getAppRwlx())){
|
||||
IPage<TbZdyFgrw> pageDto = PageUtils.buildPage(query.getPageSize(),query.getPageCurrent());
|
||||
page = this.baseMapper.getLqfgrw(pageDto,query);
|
||||
if ("02".equals(query.getAppRwlx())) {
|
||||
IPage<TbZdyFgrw> pageDto = PageUtils.buildPage(query.getPageSize(), query.getPageCurrent());
|
||||
page = this.baseMapper.getLqfgrw(pageDto, query);
|
||||
} else {
|
||||
page = this.baseMapper.selectPage(
|
||||
new Page<>(query.getPageCurrent(), query.getPageSize()),
|
||||
new LambdaQueryWrapper<TbZdyFgrw>()
|
||||
.like(StringUtils.isNotEmpty(query.getFgRwmc()), TbZdyFgrw::getFgRwmc, query.getFgRwmc())
|
||||
.likeRight(StringUtils.isNotEmpty(query.getSsbmdm()), TbZdyFgrw::getSsbmdm, query.getSsbmdm())
|
||||
.eq(StringUtils.isNotEmpty(query.getXfbmdm()), TbZdyFgrw::getXfbmdm, query.getXfbmdm())
|
||||
.eq(TbZdyFgrw::getXfrq, DateUtils.getNowDate())
|
||||
.eq(TbZdyFgrw::getFgrwzt, "01")
|
||||
// .notIn(!CollectionUtils.isEmpty(ids),TbZdyFgrw::getId,ids)
|
||||
.orderByDesc(TbZdyFgrw::getXtCjsj)
|
||||
);
|
||||
}
|
||||
List<TbZdyFgrwVO> voList = new ArrayList<>();
|
||||
if(!CollectionUtils.isEmpty(page.getRecords())){
|
||||
if (!CollectionUtils.isEmpty(page.getRecords())) {
|
||||
page.getRecords().forEach(tbZdyFgrw -> {
|
||||
TbZdyFgrwlq rwlq = this.tbZdyFgrwlqMapper.selectOne(
|
||||
new LambdaQueryWrapper<TbZdyFgrwlq>()
|
||||
.eq(TbZdyFgrwlq::getFgrwid,tbZdyFgrw.getId())
|
||||
.eq(TbZdyFgrwlq::getFgrwlqrid,userInfo.getUserId())
|
||||
.eq(TbZdyFgrwlq::getFgrwid, tbZdyFgrw.getId())
|
||||
.eq(TbZdyFgrwlq::getFgrwlqrid, userInfo.getUserId())
|
||||
.last(" limit 1 ")
|
||||
);
|
||||
TbZdyFgrwVO vo = new TbZdyFgrwVO();
|
||||
BeanUtils.copyProperties(tbZdyFgrw,vo);
|
||||
BeanUtils.copyProperties(tbZdyFgrw, vo);
|
||||
vo.setFgrwzt("01");
|
||||
if(Objects.nonNull(rwlq)){
|
||||
if (Objects.nonNull(rwlq)) {
|
||||
vo.setFgrwlqr(rwlq.getFgrwlqr());
|
||||
vo.setFgrwlqrid(rwlq.getFgrwlqrid());
|
||||
vo.setFgrwlqrsfzh(rwlq.getFgrwlqrsfzh());
|
||||
@ -222,7 +232,7 @@ public class TbZdyFgrwServiceImpl extends ServiceImpl<TbZdyFgrwMapper, TbZdyFgrw
|
||||
voList.add(vo);
|
||||
});
|
||||
}
|
||||
IPage<TbZdyFgrwVO> pageVo = new Page<>(page.getCurrent(),page.getSize());
|
||||
IPage<TbZdyFgrwVO> pageVo = new Page<>(page.getCurrent(), page.getSize());
|
||||
pageVo.setTotal(page.getTotal());
|
||||
pageVo.setRecords(voList);
|
||||
return pageVo;
|
||||
@ -233,15 +243,15 @@ public class TbZdyFgrwServiceImpl extends ServiceImpl<TbZdyFgrwMapper, TbZdyFgrw
|
||||
TbZdyFgrwVO vo = new TbZdyFgrwVO();
|
||||
UserInfo userInfo = UserInfoManager.get();
|
||||
TbZdyFgrw tbZdyFgrw = this.baseMapper.selectById(query.getFgrwid());
|
||||
if(Objects.isNull(tbZdyFgrw)) throw new BusinessException("方格任务不存在!");
|
||||
BeanUtils.copyProperties(tbZdyFgrw,vo);
|
||||
if (Objects.isNull(tbZdyFgrw)) throw new BusinessException("方格任务不存在!");
|
||||
BeanUtils.copyProperties(tbZdyFgrw, vo);
|
||||
TbZdyFgrwlq rwlq = this.tbZdyFgrwlqMapper.selectOne(
|
||||
new LambdaQueryWrapper<TbZdyFgrwlq>()
|
||||
.eq(TbZdyFgrwlq::getFgrwid,tbZdyFgrw.getId())
|
||||
.eq(TbZdyFgrwlq::getFgrwlqrid,userInfo.getUserId())
|
||||
.eq(TbZdyFgrwlq::getFgrwid, tbZdyFgrw.getId())
|
||||
.eq(TbZdyFgrwlq::getFgrwlqrid, userInfo.getUserId())
|
||||
.last(" limit 1 ")
|
||||
);
|
||||
if(Objects.nonNull(rwlq)){
|
||||
if (Objects.nonNull(rwlq)) {
|
||||
vo.setFgrwlqr(rwlq.getFgrwlqr());
|
||||
vo.setFgrwlqrid(rwlq.getFgrwlqrid());
|
||||
vo.setFgrwlqrsfzh(rwlq.getFgrwlqrsfzh());
|
||||
@ -249,39 +259,46 @@ public class TbZdyFgrwServiceImpl extends ServiceImpl<TbZdyFgrwMapper, TbZdyFgrw
|
||||
}
|
||||
List<TbZdyFgbxd> bxds = this.tbZdyFgbxdMapper.selectList(
|
||||
new LambdaQueryWrapper<TbZdyFgbxd>()
|
||||
.eq(TbZdyFgbxd::getFgrwid,query.getFgrwid())
|
||||
.eq(TbZdyFgbxd::getFgrwid, query.getFgrwid())
|
||||
);
|
||||
if(!CollectionUtils.isEmpty(bxds)){
|
||||
List<Map<String,Object>> bxddks = new ArrayList<>();
|
||||
bxds.forEach( bxd ->{
|
||||
if (!CollectionUtils.isEmpty(bxds)) {
|
||||
List<Map<String, Object>> bxddks = new ArrayList<>();
|
||||
bxds.forEach(bxd -> {
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
map.put("bxdMc",bxd.getBxdMc());
|
||||
map.put("bxdMc", bxd.getBxdMc());
|
||||
TbZdyFgrwlqdk dk = this.tbZdyFgrwlqdkMapper.selectOne(
|
||||
new LambdaQueryWrapper<TbZdyFgrwlqdk>()
|
||||
.eq(TbZdyFgrwlqdk::getFgbxdid,bxd.getId())
|
||||
.eq(TbZdyFgrwlqdk::getFgrwid,tbZdyFgrw.getId())
|
||||
.eq(TbZdyFgrwlqdk::getDkrid,userInfo.getUserId().toString())
|
||||
.eq(TbZdyFgrwlqdk::getFgbxdid, bxd.getId())
|
||||
.eq(TbZdyFgrwlqdk::getFgrwid, tbZdyFgrw.getId())
|
||||
// .eq(TbZdyFgrwlqdk::getDkrid,userInfo.getUserId().toString())
|
||||
.orderByDesc(TbZdyFgrwlqdk::getDksj)
|
||||
.last(" limit 1 ")
|
||||
);
|
||||
if(Objects.nonNull(dk)){
|
||||
map.put("fgrwid",bxd.getFgrwid());
|
||||
map.put("bxdid",bxd.getId());
|
||||
map.put("bxdMc",bxd.getBxdMc());
|
||||
map.put("jd",bxd.getJd());
|
||||
map.put("wd",bxd.getWd());
|
||||
map.put("dkzt","已打卡");
|
||||
map.put("dksj",dk.getDksj());
|
||||
map.put("dktp",dk.getDktp());
|
||||
}else {
|
||||
map.put("fgrwid",bxd.getFgrwid());
|
||||
map.put("bxdid",bxd.getId());
|
||||
map.put("bxdMc",bxd.getBxdMc());
|
||||
map.put("jd",bxd.getJd());
|
||||
map.put("wd",bxd.getWd());
|
||||
map.put("dkzt","未打卡");
|
||||
map.put("dksj","");
|
||||
map.put("dktp","");
|
||||
if (Objects.nonNull(dk)) {
|
||||
map.put("fgrwid", bxd.getFgrwid());
|
||||
map.put("bxdid", bxd.getId());
|
||||
map.put("bxdMc", bxd.getBxdMc());
|
||||
map.put("jd", bxd.getJd());
|
||||
map.put("wd", bxd.getWd());
|
||||
map.put("dkzt", "已打卡");
|
||||
map.put("dksj", dk.getDksj());
|
||||
map.put("dkr", dk.getDkr());
|
||||
map.put("dktp", dk.getDktp());
|
||||
map.put("id", dk.getId());
|
||||
map.put("lktp", dk.getLktp());
|
||||
map.put("lksj", dk.getLksj());
|
||||
map.put("lkjd", dk.getLkjd());
|
||||
map.put("lkwd", dk.getLkwd());
|
||||
|
||||
} else {
|
||||
map.put("fgrwid", bxd.getFgrwid());
|
||||
map.put("bxdid", bxd.getId());
|
||||
map.put("bxdMc", bxd.getBxdMc());
|
||||
map.put("jd", bxd.getJd());
|
||||
map.put("wd", bxd.getWd());
|
||||
map.put("dkzt", "未打卡");
|
||||
map.put("dksj", "");
|
||||
map.put("dktp", "");
|
||||
}
|
||||
bxddks.add(map);
|
||||
});
|
||||
@ -293,8 +310,8 @@ public class TbZdyFgrwServiceImpl extends ServiceImpl<TbZdyFgrwMapper, TbZdyFgrw
|
||||
return vo;
|
||||
}
|
||||
|
||||
private TbZdxlFgdwVO buildAllInfoByEntity(TbZdxlFgdw entity){
|
||||
if(ObjectUtils.isEmpty(entity)){
|
||||
private TbZdxlFgdwVO buildAllInfoByEntity(TbZdxlFgdw entity) {
|
||||
if (ObjectUtils.isEmpty(entity)) {
|
||||
return null;
|
||||
}
|
||||
TbZdxlFgdwVO resultVO = BeanUtil.copyProperties(entity, TbZdxlFgdwVO.class);
|
||||
@ -312,21 +329,23 @@ public class TbZdyFgrwServiceImpl extends ServiceImpl<TbZdyFgrwMapper, TbZdyFgrw
|
||||
@Override
|
||||
public Boolean getLqrw(TbZdyFgrwlqQuery query) {
|
||||
UserInfo userInfo = UserInfoManager.get();
|
||||
TbQwXfbb tbQwXfbb = this.baseMapper.selectXfbbByFzrSfzh(userInfo.getIdEntityCard(),DateUtils.getNowDate());
|
||||
if(Objects.isNull(tbQwXfbb)) throw new BusinessException("请先报备,再领取!");
|
||||
TbQwXfbb tbQwXfbb = this.baseMapper.selectXfbbByFzrSfzh(userInfo.getIdEntityCard(), DateUtils.getNowDate());
|
||||
if (Objects.isNull(tbQwXfbb)) throw new BusinessException("请先报备,再领取!");
|
||||
|
||||
TbZdyFgrw fgrw = this.baseMapper.selectById(query.getFgrwid());
|
||||
if(Objects.isNull(fgrw)) throw new BusinessException("方格任务不存在!");
|
||||
if (Objects.isNull(fgrw)) throw new BusinessException("方格任务不存在!");
|
||||
fgrw.setFgrwzt("02");
|
||||
this.baseMapper.updateById(fgrw);
|
||||
int num = this.tbZdyFgrwlqMapper.selectCount(
|
||||
new LambdaQueryWrapper<TbZdyFgrwlq>()
|
||||
.eq(TbZdyFgrwlq::getFgrwlqrid,userInfo.getUserId().toString())
|
||||
.eq(TbZdyFgrwlq::getFgrwid,query.getFgrwid())
|
||||
.eq(TbZdyFgrwlq::getFgrwlqrid, userInfo.getUserId().toString())
|
||||
.eq(TbZdyFgrwlq::getFgrwid, query.getFgrwid())
|
||||
);
|
||||
if(num>1) throw new BusinessException("方格任务已领取,请勿重复领取!");
|
||||
if (num > 1) throw new BusinessException("方格任务已领取,请勿重复领取!");
|
||||
TbZdyFgrwlq rwlq = new TbZdyFgrwlq();
|
||||
rwlq.setId(UUIDGenerator.getUUID());
|
||||
rwlq.setFgrwzt("02");
|
||||
rwlq.setBbid(tbQwXfbb.getId());
|
||||
rwlq.setFgrwid(query.getFgrwid());
|
||||
rwlq.setFgrwlqrid(userInfo.getUserId().toString());
|
||||
rwlq.setFgrwlqrsfzh(userInfo.getIdEntityCard());
|
||||
@ -343,58 +362,63 @@ public class TbZdyFgrwServiceImpl extends ServiceImpl<TbZdyFgrwMapper, TbZdyFgrw
|
||||
TbZdyFgrw fgrw = this.baseMapper.selectById(query.getFgrwid());
|
||||
List<TbZdyFgbxd> bxds = this.tbZdyFgbxdMapper.selectList(
|
||||
new LambdaQueryWrapper<TbZdyFgbxd>()
|
||||
.eq(TbZdyFgbxd::getFgrwid,query.getFgrwid())
|
||||
.eq(TbZdyFgbxd::getFgrwid, query.getFgrwid())
|
||||
);
|
||||
TbZdxlFgdw tbZdxlFgdw = this.tbZdxlFgdwMapper.selectById(fgrw.getFgId());
|
||||
TbZdxlFgdwVO fgdwVO = buildAllInfoByEntity(tbZdxlFgdw);
|
||||
res.put("fgdwVO",fgdwVO);
|
||||
res.put("fgrw",fgrw);
|
||||
List<Map<String,Object>> maps = new ArrayList<>();
|
||||
if(!CollectionUtils.isEmpty(bxds)){
|
||||
bxds.forEach( bxd ->{
|
||||
res.put("fgdwVO", fgdwVO);
|
||||
res.put("fgrw", fgrw);
|
||||
List<Map<String, Object>> maps = new ArrayList<>();
|
||||
if (!CollectionUtils.isEmpty(bxds)) {
|
||||
bxds.forEach(bxd -> {
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
map.put("bxdMc",bxd.getBxdMc());
|
||||
map.put("bxdMc", bxd.getBxdMc());
|
||||
TbZdyFgrwlqdk dk = this.tbZdyFgrwlqdkMapper.selectOne(
|
||||
new LambdaQueryWrapper<TbZdyFgrwlqdk>()
|
||||
.eq(TbZdyFgrwlqdk::getFgbxdid,bxd.getId())
|
||||
.eq(TbZdyFgrwlqdk::getFgrwid,fgrw.getId())
|
||||
.eq(TbZdyFgrwlqdk::getDkrid,user.getUserId().toString())
|
||||
.eq(TbZdyFgrwlqdk::getFgbxdid, bxd.getId())
|
||||
.eq(TbZdyFgrwlqdk::getFgrwid, fgrw.getId())
|
||||
.eq(TbZdyFgrwlqdk::getDkrid, user.getUserId().toString())
|
||||
.orderByDesc(TbZdyFgrwlqdk::getDksj)
|
||||
.last(" limit 1 ")
|
||||
);
|
||||
if(Objects.nonNull(dk)){
|
||||
map.put("fgrwid",bxd.getFgrwid());
|
||||
map.put("bxdid",bxd.getId());
|
||||
map.put("jd",bxd.getJd());
|
||||
map.put("wd",bxd.getWd());
|
||||
map.put("dkzt","已打卡");
|
||||
map.put("dksj",dk.getDksj());
|
||||
map.put("dktp",dk.getDktp());
|
||||
}else {
|
||||
map.put("fgrwid",bxd.getFgrwid());
|
||||
map.put("bxdid",bxd.getId());
|
||||
map.put("jd",bxd.getJd());
|
||||
map.put("wd",bxd.getWd());
|
||||
map.put("dkzt","未打卡");
|
||||
map.put("dksj","");
|
||||
map.put("dktp","");
|
||||
if (Objects.nonNull(dk)) {
|
||||
map.put("fgrwid", bxd.getFgrwid());
|
||||
map.put("bxdid", bxd.getId());
|
||||
map.put("jd", bxd.getJd());
|
||||
map.put("wd", bxd.getWd());
|
||||
map.put("dkzt", "已打卡");
|
||||
map.put("dksj", dk.getDksj());
|
||||
map.put("dktp", dk.getDktp());
|
||||
map.put("id", dk.getId());
|
||||
map.put("lktp", dk.getLktp());
|
||||
map.put("lksj", dk.getLksj());
|
||||
map.put("lkjd", dk.getLkjd());
|
||||
map.put("lkwd", dk.getLkwd());
|
||||
} else {
|
||||
map.put("fgrwid", bxd.getFgrwid());
|
||||
map.put("bxdid", bxd.getId());
|
||||
map.put("jd", bxd.getJd());
|
||||
map.put("wd", bxd.getWd());
|
||||
map.put("dkzt", "未打卡");
|
||||
map.put("dksj", "");
|
||||
map.put("dktp", "");
|
||||
}
|
||||
maps.add(map);
|
||||
});
|
||||
}
|
||||
res.put("bxds",maps);
|
||||
res.put("bxds", maps);
|
||||
//最新打卡时间
|
||||
TbZdyFgrwlqdk zxdk = this.tbZdyFgrwlqdkMapper.selectOne(
|
||||
new LambdaQueryWrapper<TbZdyFgrwlqdk>()
|
||||
.eq(TbZdyFgrwlqdk::getFgrwid,fgrw.getId())
|
||||
.eq(TbZdyFgrwlqdk::getDkrid,user.getUserId().toString())
|
||||
.eq(TbZdyFgrwlqdk::getFgrwid, fgrw.getId())
|
||||
.eq(TbZdyFgrwlqdk::getDkrid, user.getUserId().toString())
|
||||
.orderByDesc(TbZdyFgrwlqdk::getDksj)
|
||||
.last(" limit 1 ")
|
||||
);
|
||||
if(Objects.nonNull(zxdk)){
|
||||
res.put("zxdksj",zxdk.getDksj());
|
||||
}else{
|
||||
res.put("zxdksj","");
|
||||
if (Objects.nonNull(zxdk)) {
|
||||
res.put("zxdksj", zxdk.getDksj());
|
||||
} else {
|
||||
res.put("zxdksj", "");
|
||||
}
|
||||
return res;
|
||||
}
|
||||
@ -404,15 +428,15 @@ public class TbZdyFgrwServiceImpl extends ServiceImpl<TbZdyFgrwMapper, TbZdyFgrw
|
||||
UserInfo user = UserInfoManager.get();
|
||||
int num = this.tbZdyFgrwlqMapper.selectCount(
|
||||
new LambdaQueryWrapper<TbZdyFgrwlq>()
|
||||
.eq(TbZdyFgrwlq::getFgrwid,dto.getFgrwid())
|
||||
.eq(TbZdyFgrwlq::getFgrwlqrid,user.getUserId().toString())
|
||||
.eq(TbZdyFgrwlq::getFgrwid, dto.getFgrwid())
|
||||
.eq(TbZdyFgrwlq::getFgrwlqrid, user.getUserId().toString())
|
||||
);
|
||||
if(num ==0 ) throw new BusinessException("您还没有领取该任务!");
|
||||
if (num == 0) throw new BusinessException("您还没有领取该任务!");
|
||||
TbZdyFgbxd tbZdyFgbxd = this.tbZdyFgbxdMapper.selectById(dto.getBxdid());
|
||||
long jl = PositionUtil.getDistance(dto.getJd().doubleValue(), dto.getWd().doubleValue(),tbZdyFgbxd.getJd().doubleValue(),tbZdyFgbxd.getWd().doubleValue());
|
||||
if(jl > 100L) throw new BusinessException("您的位置在卡点100米以外,无法打卡");
|
||||
long jl = PositionUtil.getDistance(dto.getJd().doubleValue(), dto.getWd().doubleValue(), tbZdyFgbxd.getJd().doubleValue(), tbZdyFgbxd.getWd().doubleValue());
|
||||
if (jl > 100L) throw new BusinessException("您的位置在卡点100米以外,无法打卡");
|
||||
TbZdyFgrwlqdk tbZdyFgrwlqdk = new TbZdyFgrwlqdk();
|
||||
BeanUtils.copyProperties(dto,tbZdyFgrwlqdk);
|
||||
BeanUtils.copyProperties(dto, tbZdyFgrwlqdk);
|
||||
tbZdyFgrwlqdk.setId(UUIDGenerator.getUUID());
|
||||
tbZdyFgrwlqdk.setDksj(new Date());
|
||||
tbZdyFgrwlqdk.setDkrid(user.getUserId().toString());
|
||||
@ -420,7 +444,7 @@ public class TbZdyFgrwServiceImpl extends ServiceImpl<TbZdyFgrwMapper, TbZdyFgrw
|
||||
tbZdyFgrwlqdk.setDarsfzh(user.getIdEntityCard());
|
||||
tbZdyFgrwlqdk.setFgbxdid(dto.getBxdid());
|
||||
DeptInfoVo dept = this.tbBaseAdaptRemoteService.getOrgByOrgcode(user.getDeptCode());
|
||||
if(Objects.nonNull(dept)){
|
||||
if (Objects.nonNull(dept)) {
|
||||
tbZdyFgrwlqdk.setSsbm(dept.getDeptname());
|
||||
tbZdyFgrwlqdk.setSsbmdm(dept.getDeptcode());
|
||||
tbZdyFgrwlqdk.setSsxgajdm(dept.getFxjcode());
|
||||
@ -431,4 +455,190 @@ public class TbZdyFgrwServiceImpl extends ServiceImpl<TbZdyFgrwMapper, TbZdyFgrw
|
||||
this.tbZdyFgrwlqdkMapper.insert(tbZdyFgrwlqdk);
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean zdyLkdk(TbZdyFgrwLkDto dto) {
|
||||
TbZdyFgrwlqdk tbZdyFgrwlqdk = this.tbZdyFgrwlqdkMapper.selectById(dto.getId());
|
||||
if (Objects.isNull(tbZdyFgrwlqdk)) throw new BusinessException("打卡记录不存在!");
|
||||
if (Objects.nonNull(tbZdyFgrwlqdk.getLksj())) throw new BusinessException("已离开打卡,请勿重复操作!");
|
||||
// 校验距离
|
||||
TbZdyFgbxd tbZdyFgbxd = this.tbZdyFgbxdMapper.selectById(tbZdyFgrwlqdk.getFgbxdid());
|
||||
if (Objects.nonNull(tbZdyFgbxd)) {
|
||||
long jl = PositionUtil.getDistance(dto.getLkjd().doubleValue(), dto.getLkwd().doubleValue(),
|
||||
tbZdyFgbxd.getJd().doubleValue(), tbZdyFgbxd.getWd().doubleValue());
|
||||
if (jl > 100L) throw new BusinessException("您的位置在卡点100米以外,无法离开打卡");
|
||||
}
|
||||
// 更新离开信息
|
||||
tbZdyFgrwlqdk.setLktp(dto.getLktp());
|
||||
tbZdyFgrwlqdk.setLksj(new Date());
|
||||
tbZdyFgrwlqdk.setLkjd(dto.getLkjd());
|
||||
tbZdyFgrwlqdk.setLkwd(dto.getLkwd());
|
||||
this.tbZdyFgrwlqdkMapper.updateById(tbZdyFgrwlqdk);
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IPage<TbZdyFgrwlqdkVO> selectDkList(TbZdyFgrwlqdkQuery query) {
|
||||
query.setSsbmdm(this.tbBaseAdaptRemoteService.getSsbm(query.getSsbmdm(), null));
|
||||
IPage<TbZdyFgrwlqdk> page = this.tbZdyFgrwlqdkMapper.selectPage(
|
||||
new Page<>(query.getPageCurrent(), query.getPageSize()),
|
||||
new LambdaQueryWrapper<TbZdyFgrwlqdk>()
|
||||
.eq(StringUtils.isNotEmpty(query.getFgrwid()), TbZdyFgrwlqdk::getFgrwid, query.getFgrwid())
|
||||
.eq(StringUtils.isNotEmpty(query.getFgbxdid()), TbZdyFgrwlqdk::getFgbxdid, query.getFgbxdid())
|
||||
.eq(StringUtils.isNotEmpty(query.getDkrid()), TbZdyFgrwlqdk::getDkrid, query.getDkrid())
|
||||
.like(StringUtils.isNotEmpty(query.getDkr()), TbZdyFgrwlqdk::getDkr, query.getDkr())
|
||||
.likeRight(StringUtils.isNotEmpty(query.getSsbmdm()), TbZdyFgrwlqdk::getSsbmdm, query.getSsbmdm())
|
||||
.orderByDesc(TbZdyFgrwlqdk::getDksj)
|
||||
);
|
||||
List<TbZdyFgrwlqdkVO> voList = new ArrayList<>();
|
||||
if (!CollectionUtils.isEmpty(page.getRecords())) {
|
||||
// 批量查询点位名称
|
||||
Set<String> bxdIds = page.getRecords().stream()
|
||||
.map(TbZdyFgrwlqdk::getFgbxdid)
|
||||
.filter(StringUtils::isNotEmpty)
|
||||
.collect(Collectors.toSet());
|
||||
Map<String, String> bxdNameMap = new HashMap<>();
|
||||
if (!CollectionUtils.isEmpty(bxdIds)) {
|
||||
List<TbZdyFgbxd> bxds = this.tbZdyFgbxdMapper.selectBatchIds(bxdIds);
|
||||
bxdNameMap = bxds.stream()
|
||||
.collect(Collectors.toMap(TbZdyFgbxd::getId, TbZdyFgbxd::getBxdMc, (v1, v2) -> v1));
|
||||
}
|
||||
Map<String, String> finalBxdNameMap = bxdNameMap;
|
||||
page.getRecords().forEach(dk -> {
|
||||
TbZdyFgrwlqdkVO vo = new TbZdyFgrwlqdkVO();
|
||||
BeanUtils.copyProperties(dk, vo);
|
||||
vo.setBxdMc(finalBxdNameMap.get(dk.getFgbxdid()));
|
||||
voList.add(vo);
|
||||
});
|
||||
}
|
||||
IPage<TbZdyFgrwlqdkVO> pageVo = new Page<>(page.getCurrent(), page.getSize());
|
||||
pageVo.setTotal(page.getTotal());
|
||||
pageVo.setRecords(voList);
|
||||
return pageVo;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<TbZdyFgrwVO> getFgrwListByBbid(TbZdyFgrwQuery query) {
|
||||
// 根据报备ID查询任务领取记录
|
||||
List<TbZdyFgrwlq> lqList = this.tbZdyFgrwlqMapper.selectList(
|
||||
new LambdaQueryWrapper<TbZdyFgrwlq>()
|
||||
.eq(StringUtils.isNotEmpty(query.getBbid()), TbZdyFgrwlq::getBbid, query.getBbid())
|
||||
);
|
||||
if (CollectionUtils.isEmpty(lqList)) {
|
||||
return new ArrayList<>();
|
||||
}
|
||||
|
||||
// 获取任务ID列表
|
||||
List<String> fgrwIds = lqList.stream()
|
||||
.map(TbZdyFgrwlq::getFgrwid)
|
||||
.collect(Collectors.toList());
|
||||
|
||||
// 批量查询任务详情
|
||||
List<TbZdyFgrw> fgrwList = this.baseMapper.selectBatchIds(fgrwIds);
|
||||
if (CollectionUtils.isEmpty(fgrwList)) {
|
||||
return new ArrayList<>();
|
||||
}
|
||||
|
||||
// 批量查询所有任务的点位
|
||||
List<TbZdyFgbxd> allBxds = this.tbZdyFgbxdMapper.selectList(
|
||||
new LambdaQueryWrapper<TbZdyFgbxd>()
|
||||
.in(TbZdyFgbxd::getFgrwid, fgrwIds)
|
||||
);
|
||||
|
||||
// 按任务ID分组点位
|
||||
Map<String, List<TbZdyFgbxd>> bxdMap = CollectionUtils.isEmpty(allBxds)
|
||||
? new HashMap<>()
|
||||
: allBxds.stream().collect(Collectors.groupingBy(TbZdyFgbxd::getFgrwid));
|
||||
|
||||
// 构建领取记录映射(包含领取人ID,用于筛选打卡记录)
|
||||
Map<String, TbZdyFgrwlq> lqMap = lqList.stream()
|
||||
.collect(Collectors.toMap(TbZdyFgrwlq::getFgrwid, v -> v, (v1, v2) -> v1));
|
||||
|
||||
// 获取所有领取人ID
|
||||
Set<String> dkrids = lqList.stream()
|
||||
.map(TbZdyFgrwlq::getFgrwlqrid)
|
||||
.filter(StringUtils::isNotEmpty)
|
||||
.collect(Collectors.toSet());
|
||||
|
||||
// 批量查询所有任务的打卡记录
|
||||
List<TbZdyFgrwlqdk> allDks = CollectionUtils.isEmpty(dkrids) ? new ArrayList<>()
|
||||
: this.tbZdyFgrwlqdkMapper.selectList(
|
||||
new LambdaQueryWrapper<TbZdyFgrwlqdk>()
|
||||
.in(TbZdyFgrwlqdk::getFgrwid, fgrwIds)
|
||||
.in(TbZdyFgrwlqdk::getDkrid, dkrids)
|
||||
.orderByDesc(TbZdyFgrwlqdk::getDksj)
|
||||
);
|
||||
|
||||
// 按 fgrwid+fgbxdid 分组,取最新的一条打卡记录
|
||||
Map<String, TbZdyFgrwlqdk> dkMap = new HashMap<>();
|
||||
if (!CollectionUtils.isEmpty(allDks)) {
|
||||
for (TbZdyFgrwlqdk dk : allDks) {
|
||||
String key = dk.getFgrwid() + "_" + dk.getFgbxdid();
|
||||
if (!dkMap.containsKey(key)) {
|
||||
dkMap.put(key, dk);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 组装返回数据
|
||||
List<TbZdyFgrwVO> voList = new ArrayList<>();
|
||||
fgrwList.forEach(fgrw -> {
|
||||
TbZdyFgrwVO vo = new TbZdyFgrwVO();
|
||||
BeanUtils.copyProperties(fgrw, vo);
|
||||
|
||||
// 设置领取人信息
|
||||
TbZdyFgrwlq lq = lqMap.get(fgrw.getId());
|
||||
if (Objects.nonNull(lq)) {
|
||||
vo.setFgrwlqr(lq.getFgrwlqr());
|
||||
vo.setFgrwlqrid(lq.getFgrwlqrid());
|
||||
vo.setFgrwlqrsfzh(lq.getFgrwlqrsfzh());
|
||||
vo.setFgrwzt(lq.getFgrwzt());
|
||||
}
|
||||
|
||||
// 设置任务点位(含打卡信息)
|
||||
List<TbZdyFgbxd> bxds = bxdMap.get(fgrw.getId());
|
||||
if (!CollectionUtils.isEmpty(bxds)) {
|
||||
List<Map<String, Object>> bxdMaps = bxds.stream().map(bxd -> {
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
map.put("bxdid", bxd.getId());
|
||||
map.put("bxdMc", bxd.getBxdMc());
|
||||
map.put("jd", bxd.getJd());
|
||||
map.put("wd", bxd.getWd());
|
||||
|
||||
// 查询该点位的打卡记录
|
||||
String dkKey = fgrw.getId() + "_" + bxd.getId();
|
||||
TbZdyFgrwlqdk dk = dkMap.get(dkKey);
|
||||
if (Objects.nonNull(dk)) {
|
||||
// 开始打卡信息
|
||||
map.put("dkzt", "已打卡");
|
||||
map.put("dksj", dk.getDksj());
|
||||
map.put("dktp", dk.getDktp());
|
||||
map.put("dkJd", dk.getJd());
|
||||
map.put("dkWd", dk.getWd());
|
||||
// 离开打卡信息
|
||||
map.put("lksj", dk.getLksj());
|
||||
map.put("lktp", dk.getLktp());
|
||||
map.put("lkJd", dk.getLkjd());
|
||||
map.put("lkWd", dk.getLkwd());
|
||||
} else {
|
||||
map.put("dkzt", "未打卡");
|
||||
map.put("dksj", null);
|
||||
map.put("dktp", null);
|
||||
map.put("dkJd", null);
|
||||
map.put("dkWd", null);
|
||||
map.put("lksj", null);
|
||||
map.put("lktp", null);
|
||||
map.put("lkJd", null);
|
||||
map.put("lkWd", null);
|
||||
}
|
||||
return map;
|
||||
}).collect(Collectors.toList());
|
||||
vo.setBxds(bxdMaps);
|
||||
}
|
||||
|
||||
voList.add(vo);
|
||||
});
|
||||
|
||||
return voList;
|
||||
}
|
||||
}
|
||||
|
||||
@ -3,8 +3,11 @@ package com.mosty.yjzl.service;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.mosty.base.model.dto.yjzl.TbZdyFgrwDkDto;
|
||||
import com.mosty.base.model.dto.yjzl.TbZdyFgrwDto;
|
||||
import com.mosty.base.model.dto.yjzl.TbZdyFgrwLkDto;
|
||||
import com.mosty.base.model.query.yjzl.TbZdyFgrwlqdkQuery;
|
||||
import com.mosty.base.model.query.yjzl.TbZdyFgrwQuery;
|
||||
import com.mosty.base.model.query.yjzl.TbZdyFgrwlqQuery;
|
||||
import com.mosty.base.model.vo.yjzl.TbZdyFgrwlqdkVO;
|
||||
import com.mosty.base.model.vo.yjzl.TbZdyFgrwVO;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
|
||||
@ -30,4 +33,13 @@ public interface TbZdyFgrwService {
|
||||
Map<String,Object> getFgrwDkXq(TbZdyFgrwQuery query);
|
||||
|
||||
Boolean zdyRwdk(TbZdyFgrwDkDto dto);
|
||||
|
||||
Boolean zdyLkdk(TbZdyFgrwLkDto dto);
|
||||
|
||||
IPage<TbZdyFgrwlqdkVO> selectDkList(TbZdyFgrwlqdkQuery query);
|
||||
|
||||
/**
|
||||
* 根据报备ID查询任务详情列表(含任务点位)
|
||||
*/
|
||||
List<TbZdyFgrwVO> getFgrwListByBbid(TbZdyFgrwQuery query);
|
||||
}
|
||||
|
||||
@ -16,7 +16,7 @@
|
||||
<if test="dto.fgrwlqrid != null and dto.fgrwlqrid != ''">
|
||||
and rwlq.fgrwlqrid = #{dto.fgrwlqrid}
|
||||
</if>
|
||||
order by fgrw.xfrq desc
|
||||
order by rwlq.xt_cjsj desc
|
||||
</select>
|
||||
|
||||
<select id="selectXfbbByFzrSfzh" resultType="com.mosty.base.model.entity.qwzx.TbQwXfbb">
|
||||
|
||||
Reference in New Issue
Block a user