自定义发布任务

This commit is contained in:
2026-03-17 18:04:02 +08:00
parent 37aa538623
commit 0f4ce1e145
26 changed files with 1204 additions and 16 deletions

View File

@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.mosty.base.model.dto.yjzl.TbZdxlFgxlrwCreateDTO;
import com.mosty.base.model.dto.yjzl.TbZdxlFgxlrwIssueDTO;
import com.mosty.base.model.dto.yjzl.TbZdxlFgxlrwUpdateDTO;
import com.mosty.base.model.dto.yjzl.ZdyxlFgxlrwDto;
import com.mosty.base.model.entity.yjzl.zddw.TbZdxlFgxlrw;
import com.mosty.base.model.entity.yjzl.zddw.TbZdxlFgzdyrw;
import com.mosty.base.model.query.yjzl.TbZdxlFgxlrwQuery;
@ -256,4 +257,25 @@ public class TbZdxlFgxlrwController {
}
}
@ApiOperation(value = "添加自定义巡逻任务")
@PostMapping("addZdyxlFgxlrw")
@JwtSysUser
public ResponseResult<TbZdxlFgxlrw> addZdyxlFgxlrw(@RequestBody ZdyxlFgxlrwDto dto){
return ResponseResult.success(tbZdxlFgxlrwService.addZdyxlFgxlrw(dto));
}
@ApiOperation(value = "修改自定义巡逻任务")
@PostMapping("editZdyxlFgxlrw")
@JwtSysUser
public ResponseResult<TbZdxlFgxlrw> editZdyxlFgxlrw(@RequestBody ZdyxlFgxlrwDto dto){
return ResponseResult.success(tbZdxlFgxlrwService.editZdyxlFgxlrw(dto));
}
@ApiOperation(value = "添加自定义巡逻任务")
@PostMapping("delZdyxlFgxlrw")
@JwtSysUser
public ResponseResult<Boolean> delZdyxlFgxlrw(@RequestBody ZdyxlFgxlrwDto dto){
return ResponseResult.success(tbZdxlFgxlrwService.delZdyxlFgxlrw(dto));
}
}

View File

@ -0,0 +1,77 @@
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.query.yjzl.TbZdyFgrwQuery;
import com.mosty.base.model.query.yjzl.TbZdyFgrwlqQuery;
import com.mosty.base.model.vo.yjzl.TbZdyFgrwVO;
import com.mosty.common.base.domain.ResponseResult;
import com.mosty.common.token.JwtSysUser;
import com.mosty.yjzl.service.TbZdyFgrwService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Map;
@Api(tags = {"方格任务-自定义任务"})
@RestController
@AllArgsConstructor
@RequestMapping("/tbZdyrw")
public class TbZdyFgrwController {
private final TbZdyFgrwService tbZdyFgrwService;
@ApiOperation(value = "添加自定义任务")
@PostMapping ("/addTbZdyrw")
@JwtSysUser
public ResponseResult<Boolean> addTbZdyrw(@RequestBody TbZdyFgrwDto dto) {
return ResponseResult.success(tbZdyFgrwService.addTbZdyrw(dto));
}
@ApiOperation(value = "查询列表")
@GetMapping("/selectList")
@JwtSysUser
public ResponseResult<IPage<TbZdyFgrwVO>> selectList(TbZdyFgrwQuery query) {
return ResponseResult.success(tbZdyFgrwService.selectList(query));
}
@ApiOperation(value = "app查询列表")
@GetMapping("/selectListApp")
@JwtSysUser
public ResponseResult<IPage<TbZdyFgrwVO>> selectListApp(TbZdyFgrwQuery query) {
return ResponseResult.success(tbZdyFgrwService.selectListApp(query));
}
@ApiOperation(value = "任务详情")
@GetMapping("/getFgrwXq")
@JwtSysUser
public ResponseResult<TbZdyFgrwVO> getFgrwXq(TbZdyFgrwQuery query) {
return ResponseResult.success(tbZdyFgrwService.getFgrwXq(query));
}
@ApiOperation(value = "领取任务")
@GetMapping("/getLqrw")
@JwtSysUser
public ResponseResult<Boolean> getLqrw(TbZdyFgrwlqQuery query) {
return ResponseResult.success(tbZdyFgrwService.getLqrw(query));
}
@ApiOperation(value = "任务打卡详情")
@GetMapping("/getFgrwDkXq")
@JwtSysUser
public ResponseResult<Map<String,Object>> getFgrwDkXq(TbZdyFgrwQuery query) {
return ResponseResult.success(tbZdyFgrwService.getFgrwDkXq(query));
}
@ApiOperation(value = "自定义任务打卡")
@PostMapping ("/zdyRwdk")
@JwtSysUser
public ResponseResult<Boolean> zdyRwdk(@RequestBody TbZdyFgrwDkDto dto) {
return ResponseResult.success(tbZdyFgrwService.zdyRwdk(dto));
}
}

View File

@ -0,0 +1,9 @@
package com.mosty.yjzl.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.mosty.base.model.entity.yjzl.zddw.TbZdyFgbxd;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface TbZdyFgbxdMapper extends BaseMapper<TbZdyFgbxd> {
}

View File

@ -0,0 +1,14 @@
package com.mosty.yjzl.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.mosty.base.model.entity.yjzl.zddw.TbZdyFgrw;
import com.mosty.base.model.query.yjzl.TbZdyFgrwQuery;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@Mapper
public interface TbZdyFgrwMapper extends BaseMapper<TbZdyFgrw> {
IPage<TbZdyFgrw> getLqfgrw(@Param("page") IPage<TbZdyFgrw> page, @Param("dto")TbZdyFgrwQuery dto);
}

View File

@ -0,0 +1,10 @@
package com.mosty.yjzl.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.mosty.base.model.entity.yjzl.zddw.TbZdyFgrwlq;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface TbZdyFgrwlqMapper extends BaseMapper<TbZdyFgrwlq> {
}

View File

@ -0,0 +1,9 @@
package com.mosty.yjzl.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.mosty.base.model.entity.yjzl.zddw.TbZdyFgrwlqdk;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface TbZdyFgrwlqdkMapper extends BaseMapper<TbZdyFgrwlqdk> {
}

View File

@ -1,6 +1,7 @@
package com.mosty.yjzl.service.Impl;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@ -8,6 +9,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.mosty.base.feign.remote.MostyQwzxFeignServiceRemote;
import com.mosty.base.model.dto.qwzx.TbQwXfbbVo;
import com.mosty.base.model.dto.yjzl.TbZdxlFgxlrwUpdateDTO;
import com.mosty.base.model.dto.yjzl.ZdyxlFgxlrwDto;
import com.mosty.base.model.entity.qwzx.TbQwJl;
import com.mosty.base.model.entity.qwzx.TbQwXfbb;
import com.mosty.base.model.entity.yjzl.zddw.*;
@ -66,6 +68,11 @@ public class TbZdxlFgxlrwServiceImpl extends ServiceImpl<TbZdxlFgxlrwMapper, TbZ
*/
private final TbZdxlFgdwBddxlrwJlService tbZdxlFgdwBddxlrwJlService;
private final TbZdxlFgxlrwMapper tbZdxlFgxlrwMapper;
private final TbZdxlFgdwBddMapper tbZdxlFgdwBddMapper;
private final TbZdxlFgdwBddxlrwMapper tbZdxlFgdwBddxlrwMapper;
@Override
public TbZdxlFgxlrw selectById(String id) {
if(StringUtils.isBlank(id)){
@ -377,6 +384,101 @@ public class TbZdxlFgxlrwServiceImpl extends ServiceImpl<TbZdxlFgxlrwMapper, TbZ
return 0;
}
@Override
public TbZdxlFgxlrw addZdyxlFgxlrw(ZdyxlFgxlrwDto dto) {
if(CollectionUtils.isNotEmpty(dto.getBddDtos())){
List<String> bddIds = new ArrayList<>();
dto.getBddDtos().forEach(bddDto ->{
TbZdxlFgdwBdd bdd = new TbZdxlFgdwBdd();
bdd.setId(UUIDGenerator.getUUID());
bdd.setFgdwId(dto.getFgdwId());
bdd.setBddMc(bddDto.getBddMc());
bdd.setBddDz(bddDto.getBddDz());
bdd.setJd(bddDto.getJd());
bdd.setWd(bddDto.getWd());
bdd.setDkjgsj(dto.getDkjgsj());
this.tbZdxlFgdwBddMapper.insert(bdd);
bddIds.add(bdd.getId());
});
TbZdxlFgxlrw xlrw = new TbZdxlFgxlrw();
xlrw.setId(UUIDGenerator.getUUID());
xlrw.setRwlx("3");
xlrw.setFgRwbt(dto.getFgRwbt());
xlrw.setFgId(dto.getFgdwId());
xlrw.setFgPx(1);
xlrw.setFgYjdj("01");
xlrw.setFgYjys("01");
xlrw.setRwRq(new Date());
xlrw.setRwZt("01");
xlrw.setRwLqZt("01");
xlrw.setXlghXllc(2.0);
this.tbZdxlFgxlrwMapper.insert(xlrw);
bddIds.forEach(bddId ->{
TbZdxlFgdwBddxlrw bddxlrw = new TbZdxlFgdwBddxlrw();
bddxlrw.setId(UUIDGenerator.getUUID());
bddxlrw.setFgxlrwId(xlrw.getId());
bddxlrw.setBddId(bddId);
bddxlrw.setXlghDkcs(1);
bddxlrw.setXlsjDkcs(0);
bddxlrw.setSfKs("0");
bddxlrw.setSfJs("0");
this.tbZdxlFgdwBddxlrwMapper.insert(bddxlrw);
});
}
return null;
}
@Override
public TbZdxlFgxlrw editZdyxlFgxlrw(ZdyxlFgxlrwDto dto) {
TbZdxlFgxlrw tbZdxlFgxlrw = this.tbZdxlFgxlrwMapper.selectById(dto.getId());
tbZdxlFgxlrw.setFgId(dto.getFgdwId());
tbZdxlFgxlrw.setFgRwbt(dto.getFgRwbt());
tbZdxlFgxlrw.setRwRq(new Date());
List<TbZdxlFgdwBddxlrw> fgbddrws = this.tbZdxlFgdwBddxlrwMapper.selectList(
new LambdaQueryWrapper<TbZdxlFgdwBddxlrw>()
.eq(TbZdxlFgdwBddxlrw::getFgxlrwId,tbZdxlFgxlrw.getId())
);
List<String> bddIdList = fgbddrws.stream().map(TbZdxlFgdwBddxlrw::getBddId).collect(Collectors.toList());
this.tbZdxlFgdwBddMapper.deleteBatchIds(bddIdList);
tbZdxlFgdwBddxlrwMapper.delete(
new LambdaQueryWrapper<TbZdxlFgdwBddxlrw>()
.eq(TbZdxlFgdwBddxlrw::getFgxlrwId,tbZdxlFgxlrw.getId())
);
if(CollectionUtils.isNotEmpty(dto.getBddDtos())){
List<String> bddIds = new ArrayList<>();
dto.getBddDtos().forEach(bddDto ->{
TbZdxlFgdwBdd bdd = new TbZdxlFgdwBdd();
bdd.setId(UUIDGenerator.getUUID());
bdd.setFgdwId(dto.getFgdwId());
bdd.setBddMc(bddDto.getBddMc());
bdd.setBddDz(bddDto.getBddDz());
bdd.setJd(bddDto.getJd());
bdd.setWd(bddDto.getWd());
bdd.setDkjgsj(dto.getDkjgsj());
this.tbZdxlFgdwBddMapper.insert(bdd);
bddIds.add(bdd.getId());
});
bddIds.forEach(bddId ->{
TbZdxlFgdwBddxlrw bddxlrw = new TbZdxlFgdwBddxlrw();
bddxlrw.setId(UUIDGenerator.getUUID());
bddxlrw.setFgxlrwId(tbZdxlFgxlrw.getId());
bddxlrw.setBddId(bddId);
bddxlrw.setXlghDkcs(1);
bddxlrw.setXlsjDkcs(0);
bddxlrw.setSfKs("0");
bddxlrw.setSfJs("0");
this.tbZdxlFgdwBddxlrwMapper.insert(bddxlrw);
});
}
return tbZdxlFgxlrw;
}
@Override
public Boolean delZdyxlFgxlrw(ZdyxlFgxlrwDto dto) {
this.tbZdxlFgxlrwMapper.deleteById(dto.getId());
return true;
}
/**
* 组装查询参数
* @param qw QueryWrapper

View File

@ -0,0 +1,329 @@
package com.mosty.yjzl.service.Impl;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
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.entity.yjzl.zddw.*;
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.TbZdyFgrwVO;
import com.mosty.base.utils.*;
import com.mosty.common.base.domain.ResponseResult;
import com.mosty.common.base.exception.BusinessException;
import com.mosty.common.token.UserInfo;
import com.mosty.common.token.UserInfoManager;
import com.mosty.yjzl.mapper.*;
import com.mosty.yjzl.remote.TbBaseAdaptRemoteService;
import com.mosty.yjzl.service.TbZdyFgrwService;
import lombok.AllArgsConstructor;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.*;
import java.util.stream.Collectors;
@Service
@AllArgsConstructor
public class TbZdyFgrwServiceImpl extends ServiceImpl<TbZdyFgrwMapper, TbZdyFgrw> implements TbZdyFgrwService {
private final TbBaseAdaptRemoteService tbBaseAdaptRemoteService;
private final TbZdyFgrwlqMapper tbZdyFgrwlqMapper;
private final TbZdyFgbxdMapper tbZdyFgbxdMapper;
private final TbZdxlFgdwMapper tbZdxlFgdwMapper;
private final TbZdyFgrwlqdkMapper tbZdyFgrwlqdkMapper;
@Override
public Boolean addTbZdyrw(TbZdyFgrwDto dto) {
UserInfo user = UserInfoManager.get();
TbZdyFgrw fgrw = new TbZdyFgrw();
BeanUtils.copyProperties(dto,fgrw);
fgrw.setId(UUIDGenerator.getUUID());
if(Objects.isNull(dto.getXfrq())){
fgrw.setXfrq(new Date());
}
TbZdxlFgdw tbZdxlFgdw = this.tbZdxlFgdwMapper.selectById(dto.getFgId());
if(Objects.nonNull(tbZdxlFgdw)){
fgrw.setFgmc(tbZdxlFgdw.getMc1());
fgrw.setXfbm(tbZdxlFgdw.getSsbm());
fgrw.setXfbmdm(tbZdxlFgdw.getSsbmdm());
}
if(StringUtils.isEmpty(dto.getSsbmdm())){
dto.setSsbmdm(user.getDeptCode());
}
DeptInfoVo dept = this.tbBaseAdaptRemoteService.getOrgByOrgcode(dto.getSsbmdm());
if(Objects.nonNull(dept)){
fgrw.setSsbm(dept.getDeptname());
fgrw.setSsbmdm(dept.getDeptcode());
fgrw.setSsxgajdm(dept.getFxjcode());
fgrw.setSsxgaj(dept.getFxjname());
fgrw.setSssgaj(dept.getDszname());
fgrw.setSssgajdm(dept.getDszcode());
}
this.baseMapper.insert(fgrw);
if(!CollectionUtils.isEmpty(dto.getDtoList())){
dto.getDtoList().forEach(tbZdyFgbxdDto -> {
TbZdyFgbxd bxd = new TbZdyFgbxd();
BeanUtils.copyProperties(tbZdyFgbxdDto,bxd);
bxd.setId(UUIDGenerator.getUUID());
bxd.setFgrwid(fgrw.getId());
this.tbZdyFgbxdMapper.insert(bxd);
});
}
return true;
}
@Override
public IPage<TbZdyFgrwVO> selectList(TbZdyFgrwQuery query) {
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 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())
.orderByDesc(TbZdyFgrw::getXfrq)
);
List<TbZdyFgrwVO> voList = new ArrayList<>();
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())
.last(" limit 1 ")
);
TbZdyFgrwVO vo = new TbZdyFgrwVO();
BeanUtils.copyProperties(tbZdyFgrw,vo);
vo.setFgrwzt("01");
if(Objects.nonNull(rwlq)){
vo.setFgrwlqr(rwlq.getFgrwlqr());
vo.setFgrwlqrid(rwlq.getFgrwlqrid());
vo.setFgrwlqrsfzh(rwlq.getFgrwlqrsfzh());
vo.setFgrwzt(rwlq.getFgrwzt());
}
voList.add(vo);
});
}
IPage<TbZdyFgrwVO> pageVo = new Page<>(page.getCurrent(),page.getSize());
pageVo.setTotal(page.getTotal());
pageVo.setRecords(voList);
return pageVo;
}
@Override
public IPage<TbZdyFgrwVO> selectListApp(TbZdyFgrwQuery query) {
UserInfo userInfo = UserInfoManager.get();
query.setFgrwlqrid(userInfo.getUserId().toString());
query.setSsbmdm(this.tbBaseAdaptRemoteService.getSsbm(query.getSsbmdm(), null));
//今日已领取任务
List<TbZdyFgrwlq> mylqs = this.tbZdyFgrwlqMapper.selectList(
new LambdaQueryWrapper<TbZdyFgrwlq>()
.eq(TbZdyFgrwlq::getFgrwlqrid,userInfo.getUserId().toString())
.eq(TbZdyFgrwlq::getRwlqrq,DateUtils.getNowDate())
);
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())
.notIn(!CollectionUtils.isEmpty(ids),TbZdyFgrw::getId,ids)
.orderByDesc(TbZdyFgrw::getXfrq)
);
//历史任务(已领取任务)
if("02".equals(query.getAppRwlx())){
IPage<TbZdyFgrw> pageDto = PageUtils.buildPage(query.getPageSize(),query.getPageCurrent());
page = this.baseMapper.getLqfgrw(pageDto,query);
}
List<TbZdyFgrwVO> voList = new ArrayList<>();
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())
.last(" limit 1 ")
);
TbZdyFgrwVO vo = new TbZdyFgrwVO();
BeanUtils.copyProperties(tbZdyFgrw,vo);
vo.setFgrwzt("01");
if(Objects.nonNull(rwlq)){
vo.setFgrwlqr(rwlq.getFgrwlqr());
vo.setFgrwlqrid(rwlq.getFgrwlqrid());
vo.setFgrwlqrsfzh(rwlq.getFgrwlqrsfzh());
vo.setFgrwzt(rwlq.getFgrwzt());
}
voList.add(vo);
});
}
IPage<TbZdyFgrwVO> pageVo = new Page<>(page.getCurrent(),page.getSize());
pageVo.setTotal(page.getTotal());
pageVo.setRecords(voList);
return pageVo;
}
@Override
public TbZdyFgrwVO getFgrwXq(TbZdyFgrwQuery query) {
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);
TbZdyFgrwlq rwlq = this.tbZdyFgrwlqMapper.selectOne(
new LambdaQueryWrapper<TbZdyFgrwlq>()
.eq(TbZdyFgrwlq::getFgrwid,tbZdyFgrw.getId())
.eq(TbZdyFgrwlq::getFgrwlqrid,userInfo.getUserId())
.last(" limit 1 ")
);
if(Objects.nonNull(rwlq)){
vo.setFgrwlqr(rwlq.getFgrwlqr());
vo.setFgrwlqrid(rwlq.getFgrwlqrid());
vo.setFgrwlqrsfzh(rwlq.getFgrwlqrsfzh());
vo.setFgrwzt(rwlq.getFgrwzt());
}
List<TbZdyFgbxd> bxds = this.tbZdyFgbxdMapper.selectList(
new LambdaQueryWrapper<TbZdyFgbxd>()
.eq(TbZdyFgbxd::getFgrwid,query.getFgrwid())
);
if(!CollectionUtils.isEmpty(bxds)){
vo.setBxds(bxds);
}
TbZdxlFgdw tbZdxlFgdw = this.tbZdxlFgdwMapper.selectById(tbZdyFgrw.getFgId());
TbZdxlFgdwVO fgdwVO = buildAllInfoByEntity(tbZdxlFgdw);
vo.setFgxx(fgdwVO);
return vo;
}
private TbZdxlFgdwVO buildAllInfoByEntity(TbZdxlFgdw entity){
if(ObjectUtils.isEmpty(entity)){
return null;
}
TbZdxlFgdwVO resultVO = BeanUtil.copyProperties(entity, TbZdxlFgdwVO.class);
//组装方格其他数据
resultVO.setMc(resultVO.getMc1());
resultVO.setX1(resultVO.getX11());
resultVO.setY1(resultVO.getY11());
resultVO.setX2(resultVO.getX21());
resultVO.setY2(resultVO.getY21());
return resultVO;
}
@Override
public Boolean getLqrw(TbZdyFgrwlqQuery query) {
UserInfo userInfo = UserInfoManager.get();
TbZdyFgrw fgrw = this.baseMapper.selectById(query.getFgrwid());
if(Objects.isNull(fgrw)) throw new BusinessException("方格任务不存在!");
int num = this.tbZdyFgrwlqMapper.selectCount(
new LambdaQueryWrapper<TbZdyFgrwlq>()
.eq(TbZdyFgrwlq::getFgrwlqrid,userInfo.getUserId().toString())
.eq(TbZdyFgrwlq::getFgrwid,query.getFgrwid())
);
if(num>1) throw new BusinessException("方格任务已领取,请勿重复领取!");
TbZdyFgrwlq rwlq = new TbZdyFgrwlq();
rwlq.setId(UUIDGenerator.getUUID());
rwlq.setFgrwzt("02");
rwlq.setFgrwid(query.getFgrwid());
rwlq.setFgrwlqrid(userInfo.getUserId().toString());
rwlq.setFgrwlqrsfzh(userInfo.getIdEntityCard());
rwlq.setFgrwlqr(userInfo.getUserName());
rwlq.setRwlqrq(DateUtils.getNowDate());
this.tbZdyFgrwlqMapper.insert(rwlq);
return true;
}
@Override
public Map<String, Object> getFgrwDkXq(TbZdyFgrwQuery query) {
Map<String, Object> res = new HashMap<>();
UserInfo user = UserInfoManager.get();
TbZdyFgrw fgrw = this.baseMapper.selectById(query.getFgrwid());
List<TbZdyFgbxd> bxds = this.tbZdyFgbxdMapper.selectList(
new LambdaQueryWrapper<TbZdyFgbxd>()
.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 ->{
Map<String, Object> map = new HashMap<>();
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())
.orderByDesc(TbZdyFgrwlqdk::getDksj)
);
if(Objects.nonNull(dk)){
map.put("fgrwid",bxd.getFgrwid());
map.put("bxdid",bxd.getId());
map.put("jw",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("jw",bxd.getJd());
map.put("wd",bxd.getWd());
map.put("dkzt","未打卡");
map.put("dksj","");
map.put("dktp","");
}
maps.add(map);
});
}
res.put("bxds",maps);
return res;
}
@Override
public Boolean zdyRwdk(TbZdyFgrwDkDto dto) {
UserInfo user = UserInfoManager.get();
int num = this.tbZdyFgrwlqMapper.selectCount(
new LambdaQueryWrapper<TbZdyFgrwlq>()
.eq(TbZdyFgrwlq::getFgrwid,dto.getFgrwid())
.eq(TbZdyFgrwlq::getFgrwlqrid,user.getUserId().toString())
);
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米以外无法打卡");
TbZdyFgrwlqdk tbZdyFgrwlqdk = new TbZdyFgrwlqdk();
BeanUtils.copyProperties(dto,tbZdyFgrwlqdk);
tbZdyFgrwlqdk.setId(UUIDGenerator.getUUID());
tbZdyFgrwlqdk.setDksj(new Date());
tbZdyFgrwlqdk.setDkrid(user.getUserId().toString());
tbZdyFgrwlqdk.setDkr(user.getUserName());
tbZdyFgrwlqdk.setDarsfzh(user.getIdEntityCard());
DeptInfoVo dept = this.tbBaseAdaptRemoteService.getOrgByOrgcode(user.getDeptCode());
if(Objects.nonNull(dept)){
tbZdyFgrwlqdk.setSsbm(dept.getDeptname());
tbZdyFgrwlqdk.setSsbmdm(dept.getDeptcode());
tbZdyFgrwlqdk.setSsxgajdm(dept.getFxjcode());
tbZdyFgrwlqdk.setSsxgaj(dept.getFxjname());
tbZdyFgrwlqdk.setSssgaj(dept.getDszname());
tbZdyFgrwlqdk.setSssgajdm(dept.getDszcode());
}
this.tbZdyFgrwlqdkMapper.insert(tbZdyFgrwlqdk);
return true;
}
}

View File

@ -2,10 +2,12 @@ package com.mosty.yjzl.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.mosty.base.model.dto.yjzl.TbZdxlFgxlrwUpdateDTO;
import com.mosty.base.model.dto.yjzl.ZdyxlFgxlrwDto;
import com.mosty.base.model.entity.yjzl.zddw.TbZdxlFgxlrw;
import com.mosty.base.model.entity.yjzl.zddw.TbZdxlFgzdyrw;
import com.mosty.base.model.query.yjzl.TbZdxlFgxlrwQuery;
import com.mosty.base.model.vo.yjzl.TbZdxlFgxlrwVO;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.Date;
import java.util.List;
@ -70,27 +72,18 @@ public interface TbZdxlFgxlrwService {
*/
String updateEntity(TbZdxlFgxlrwUpdateDTO dto);
/**
* 修改列表(修改任务状态为”已导出“)
* @param entityList 实体列表
* @return 操作数量
*/
int updateListRwZtToYdc(List<TbZdxlFgxlrw> entityList);
/**
* 导入列表(根据导出的模板)
* @param entityList 实体列表
* @return 操作数量
*/
int importListByMb(List<TbZdxlFgxlrw> entityList);
int importListByMbZdy(List<TbZdxlFgzdyrw> entityList);
/**
* 下发列表
* @param entityList 需下发的列表
* @return 操作条数
*/
int issueList(List<TbZdxlFgxlrw> entityList);
TbZdxlFgxlrw addZdyxlFgxlrw(ZdyxlFgxlrwDto dto);
TbZdxlFgxlrw editZdyxlFgxlrw(ZdyxlFgxlrwDto dto);
Boolean delZdyxlFgxlrw(ZdyxlFgxlrwDto dto);
}

View File

@ -0,0 +1,29 @@
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.query.yjzl.TbZdyFgrwQuery;
import com.mosty.base.model.query.yjzl.TbZdyFgrwlqQuery;
import com.mosty.base.model.vo.yjzl.TbZdyFgrwVO;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.List;
import java.util.Map;
public interface TbZdyFgrwService {
Boolean addTbZdyrw(TbZdyFgrwDto dto);
IPage<TbZdyFgrwVO> selectList(TbZdyFgrwQuery query);
IPage<TbZdyFgrwVO> selectListApp(TbZdyFgrwQuery query);
TbZdyFgrwVO getFgrwXq(TbZdyFgrwQuery query);
Boolean getLqrw(TbZdyFgrwlqQuery query);
Map<String,Object> getFgrwDkXq(TbZdyFgrwQuery query);
Boolean zdyRwdk(TbZdyFgrwDkDto dto);
}

View File

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.mosty.yjzl.mapper.TbZdyFgrwMapper">
<select id="getLqfgrw" resultType="com.mosty.base.model.entity.yjzl.zddw.TbZdyFgrw">
SELECT fgrw.* FROM tb_zdy_fgrwlq rwlq LEFT JOIN tb_zdy_fgrw fgrw ON rwlq.fgrwid = fgrw.id
where fgrw.xt_scbz = '0'
<if test="dto.fgRwmc != null and dto.fgRwmc != ''">
and fgrw.fg_rwmc like concat('%',#{dto.fgRwmc},'%')
</if>
<if test="dto.ssbmdm != null and dto.ssbmdm != ''">
and fgrw.ssbmdm like concat(#{dto.ssbmdm},'%')
</if>
<if test="dto.xfbmdm != null and dto.xfbmdm != ''">
and fgrw.xfbmdm like concat(#{dto.xfbmdm},'%')
</if>
<if test="dto.fgrwlqrid != null and dto.fgrwlqrid != ''">
and rwlq.fgrwlqrid = #{dto.fgrwlqrid}
</if>
order by fgrw.xfrq desc
</select>
</mapper>