1. 商户, 终端, 工单 添加任务id

This commit is contained in:
ant 2024-07-26 17:44:12 +08:00
parent 080a1272e3
commit 1835bf6f1e
18 changed files with 285 additions and 18 deletions

View File

@ -0,0 +1,48 @@
package com.chushang.inspection.project.query;
import cn.hutool.core.date.DatePattern;
import com.chushang.common.mybatis.annotation.Condition;
import com.chushang.common.mybatis.page.CommonParam;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.time.LocalDateTime;
import java.util.List;
@EqualsAndHashCode(callSuper = true)
@Data
public class ProjectQuery extends CommonParam {
/**
* 项目名称
*/
@Condition(name = "project_name", type = Condition.ConditionType.like)
private String projectName;
/**
* 项目联系人
*/
@Condition(name = "project_concat")
private String projectConcat;
/**
* 联系人手机号
*/
@Condition(name = "project_phone", type = Condition.ConditionType.like)
private String projectPhone;
/**
* 所属部门
*/
@Condition(name = "dept_id")
private Long deptId;
/**
* 创建时间
*/
@Condition(name = "create_time", type = Condition.ConditionType.between)
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = DatePattern.NORM_DATETIME_PATTERN)
private List<LocalDateTime> createTimes;
/**
* 项目状态
*/
@Condition(name = "project_effect")
private Integer projectEffect;
}

View File

@ -0,0 +1,12 @@
package com.chushang.inspection.project.vo;
import lombok.Data;
@Data
public class CountTaskVO {
private Long projectId;
private int totalTask;
}

View File

@ -0,0 +1,71 @@
package com.chushang.inspection.project.vo;
import com.baomidou.mybatisplus.annotation.TableField;
import com.chushang.common.dict.annotation.DictFormat;
import com.chushang.common.mybatis.annotation.Condition;
import lombok.Data;
import java.time.LocalDateTime;
/**
* 项目数据展示
*/
@Data
public class ProjectVO {
private Long projectId;
private String projectName;
/**
* 项目联系人
* 查询条件 项目联系人
*/
private String projectConcat;
/**
* 项目联系人电话
* 查询条件 项目联系人电话
*/
private String projectPhone;
/**
* 项目所属部门id
* 查询条件 项目所属部门id 单id
*/
private Long deptId;
/**
* 部门名称
*/
private String deptName;
/**
* 创建时间
*/
private LocalDateTime createTime;
/**
* 项目状态
*/
@DictFormat(dictType = "project_effect")
private Integer projectEffect;
/**
* 总任务数
*/
private Integer totalTask;
/**
* 总商户数
*/
private Integer totalStore;
/**
* 总终端数
*/
private Integer totalTerminal;
/**
* 总工单数
*/
private Integer totalWrk;
/**
* 总巡检数
*/
private Integer totalIns;
}

View File

@ -167,6 +167,9 @@ public class Store extends BaseEntity {
@TableField(value = "state")
private Integer state;
@TableField(value = "project_id")
private Long projectId;
public Store save(WrkIcbcJsReceive dto) {
this.storeNo = dto.getMerId();
this.storeName = dto.getMerName();
@ -182,6 +185,8 @@ public class Store extends BaseEntity {
this.isEnter = 2;
Long lowerTaskId = BankBranchesEnum.getByCode(dto.getArea());
this.lowerTaskId = lowerTaskId == null ? this.taskId : lowerTaskId;
// todo 此处需要获取对应的项目id
this.projectId = BankBranchesEnum.getProjectByCode(dto.getArea());
return this;
}
}

View File

@ -127,6 +127,9 @@ public class Terminal extends BaseEntity {
@TableField(value = "remark")
private String remark;
@TableField(value = "project_id")
private Long projectId;
public Terminal save(Store store, WrkIcbcJsReceive dto) {
this.storeId = store.getStoreId();
@ -140,6 +143,7 @@ public class Terminal extends BaseEntity {
this.terminalType = TerminalTypeOperation.valueOfCode(dto.getDeviceType());
this.remark = dto.getNoteMsg();
this.occupy = 0;
this.projectId = store.getProjectId();
return this;
}
}

View File

@ -10,23 +10,24 @@ import lombok.Getter;
@AllArgsConstructor
public enum BankBranchesEnum {
NANJING_BRANCH("4301", 82582240034336768L),
SUZHOU_BRANCH("1102", 75464095280726016L),
WUXI_BRANCH("1103", 1712316534449692673L),
ZHENJIANG_BRANCH("1104", 130057876893859840L),
CHANGZHOU_BRANCH("1105", 130058354490892288L),
XUZHOU_BRANCH("1106", 130058663179059200L),
LIANYUNGANG_BRANCH("1107", 104793956746788864L),
YANGZHOU_BRANCH("1108", 130041300719325184L),
YANCheng_BRANCH("1109", 130058775791927296L),
HUAIAN_BRANCH("1110", 130058895585443840L),
NANTONG_BRANCH("1111", 130058943010463744L),
TAIZHOU_BRANCH("1115", 1706151311862829058L),
SUQIAN_BRANCH("1116", 130059053442293760L);
NANJING_BRANCH("4301", 82582240034336768L, 1L),
SUZHOU_BRANCH("1102", 75464095280726016L, 1L),
WUXI_BRANCH("1103", 1712316534449692673L, 1L),
ZHENJIANG_BRANCH("1104", 130057876893859840L, 1L),
CHANGZHOU_BRANCH("1105", 130058354490892288L, 1L),
XUZHOU_BRANCH("1106", 130058663179059200L, 1L),
LIANYUNGANG_BRANCH("1107", 104793956746788864L, 1L),
YANGZHOU_BRANCH("1108", 130041300719325184L, 1L),
YANCheng_BRANCH("1109", 130058775791927296L, 1L),
HUAIAN_BRANCH("1110", 130058895585443840L, 1L),
NANTONG_BRANCH("1111", 130058943010463744L, 1L),
TAIZHOU_BRANCH("1115", 1706151311862829058L, 1L),
SUQIAN_BRANCH("1116", 130059053442293760L, 1L);
private final String code;
private final long lowerTaskId;
private final long projectId;
public static Long getByCode(String code) {
if (code == null) {
@ -40,6 +41,18 @@ public enum BankBranchesEnum {
return null;
}
public static Long getProjectByCode(String code) {
if (code == null) {
return null;
}
for (BankBranchesEnum branch : BankBranchesEnum.values()) {
if (branch.code.equals(code)) {
return branch.projectId;
}
}
return null;
}
public static String getByLowerTaskId(Long lowerTaskId) {
for (BankBranchesEnum branch : BankBranchesEnum.values()) {
if (branch.lowerTaskId == lowerTaskId) {

View File

@ -147,4 +147,10 @@ public class WrkInfo extends BaseEntity {
*/
@TableField(value = "dis_schedule")
private Integer disSchedule;
/**
* 项目id
*/
@TableField(value = "project_id")
private Long projectId;
}

View File

@ -29,7 +29,7 @@ public class ReviewedQuery extends CommonParam {
/**
* 商户编号
*/
@Condition(name = "store_no", tableName = "i")
@Condition(name = "store_no", tableName = "isr")
@Size(max = 64, message = "商户编号不能超过64个字符")
private String storeNo;

View File

@ -12,10 +12,12 @@ import com.chushang.inspection.project.dto.ContractDTO;
import com.chushang.inspection.project.dto.ProjectDTO;
import com.chushang.inspection.project.po.WrkProject;
import com.chushang.inspection.project.po.WrkProjectContract;
import com.chushang.inspection.project.query.ProjectQuery;
import com.chushang.inspection.project.service.WrkProjectContractService;
import com.chushang.inspection.project.service.WrkProjectService;
import com.chushang.security.annotation.RequiresPermissions;
import lombok.extern.slf4j.Slf4j;
import org.aspectj.weaver.loadtime.Aj;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
@ -150,6 +152,15 @@ public class WrkProjectController {
// {
// return AjaxResult.success(postService.getById(postId));
// }
/**
* 项目数据 展示
*/
@GetMapping(value = "/project/data")
@RequiresPermissions("inspection:project:info")
public AjaxResult projectData(ProjectQuery projectQuery)
{
return AjaxResult.success(projectService.projectData(projectQuery));
}
}

View File

@ -4,6 +4,12 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.chushang.common.core.util.StringUtils;
import com.chushang.inspection.project.po.PollingTask;
import com.chushang.inspection.project.vo.CountTaskVO;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.util.List;
import java.util.Set;
/**
* @auther: zhao
@ -20,4 +26,5 @@ public interface PollingTaskMapper extends BaseMapper<PollingTask> {
// 此处为null
return pollingTask.getSearchIndex();
}
List<CountTaskVO> countByProjectIds(@Param("projectIds") Set<Long> projectIds);
}

View File

@ -9,10 +9,12 @@ import com.chushang.inspection.project.dto.TaskQuery;
import com.chushang.inspection.project.po.PollingTask;
import com.chushang.inspection.project.po.Template;
import com.chushang.inspection.project.vo.ConfigVO;
import com.chushang.inspection.project.vo.CountTaskVO;
import com.chushang.inspection.project.vo.TaskVO;
import org.springframework.web.multipart.MultipartFile;
import java.util.List;
import java.util.Set;
/**
* @auther: zhao
@ -44,4 +46,6 @@ public interface PollingTaskService extends IService<PollingTask>{
return ObjectUtil.isNotEmpty(task) ? task.getName() : "";
}
List<CountTaskVO> countByProjectIds(Set<Long> projectIds);
}

View File

@ -1,9 +1,11 @@
package com.chushang.inspection.project.service;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.chushang.common.core.constant.SecurityConstants;
import com.chushang.common.core.exception.utils.AssertUtil;
import com.chushang.common.mybatis.enums.Operator;
import com.chushang.common.mybatis.page.CommonParam;
@ -12,9 +14,18 @@ import com.chushang.common.mybatis.utils.WrapperUtils;
import com.chushang.datascope.annotation.DataScope;
import com.chushang.inspection.project.dto.ContractDTO;
import com.chushang.inspection.project.dto.ProjectDTO;
import com.chushang.inspection.project.po.PollingTask;
import com.chushang.inspection.project.po.WrkAudit;
import com.chushang.inspection.project.po.WrkProjectContract;
import com.chushang.inspection.project.query.ProjectQuery;
import com.chushang.inspection.project.vo.CountTaskVO;
import com.chushang.inspection.project.vo.ProjectVO;
import com.chushang.inspection.terminal.po.Store;
import com.chushang.inspection.terminal.service.StoreService;
import com.chushang.inspection.terminal.service.TerminalService;
import com.chushang.inspection.work.service.WrkInfoService;
import com.chushang.security.utils.SecurityUtils;
import com.chushang.system.feign.RemoteDeptService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@ -25,6 +36,9 @@ import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
/**
* @auther: zhao
@ -35,6 +49,16 @@ import java.util.List;
public class WrkProjectService extends ServiceImpl<WrkProjectMapper, WrkProject> implements IService<WrkProject> {
@Resource
WrkProjectContractService contractService;
@Resource
StoreService storeService;
@Resource
TerminalService terminalService;
@Resource
PollingTaskService taskService;
@Resource
WrkInfoService wrkInfoService;
@Resource
RemoteDeptService remoteDeptService;
@DataScope
public PageResult pageList(WrkProject project, CommonParam commonParam) {
@ -232,4 +256,41 @@ public class WrkProjectService extends ServiceImpl<WrkProjectMapper, WrkProject>
project.setAuditStatus(auditStatus);
updateById(project);
}
@DataScope
public PageResult projectData(ProjectQuery projectQuery) {
CommonParam commonParam = CommonParam.buildPageRequest();
LambdaQueryWrapper<WrkProject> sql = WrapperUtils.builder(projectQuery, commonParam);
IPage<WrkProject> page = this.page(
new com.baomidou.mybatisplus.extension.plugins.pagination.Page<>(commonParam.getPage(), commonParam.getLimit()),
sql
);
List<WrkProject> recordList = page.getRecords();
List<ProjectVO> list = BeanUtil.copyToList(recordList, ProjectVO.class);
Set<Long> deptIds = list.stream().map(ProjectVO::getDeptId).collect(Collectors.toSet());
Map<Long, String> deptNameMap
= remoteDeptService.getDeptNameByIds(deptIds, SecurityConstants.INNER);
Set<Long> projectIds = list.stream().map(ProjectVO::getProjectId).collect(Collectors.toSet());
// 任务总数
List<CountTaskVO> totalTaskMap = taskService.countByProjectIds(projectIds);
List<PollingTask> taskList = taskService.list(new LambdaQueryWrapper<PollingTask>()
.in(PollingTask::getProjectId, projectIds));
if (CollectionUtil.isNotEmpty(taskList)){
Set<Long> taskIds = taskList.stream().map(PollingTask::getId).collect(Collectors.toSet());
// 商户总数
List<Store> storeList = storeService.list(new LambdaQueryWrapper<Store>()
.in(Store::getLowerTaskId, taskIds));
Map<Long, List<Store>> storeMap
= storeList.stream().collect(Collectors.groupingBy(Store::getLowerTaskId));
// 商户id
Set<Long> storeIds = storeList.stream().map(Store::getStoreId).collect(Collectors.toSet());
}
return new PageResult(list,page.getTotal(),page.getSize(),page.getCurrent());
}
}

View File

@ -26,9 +26,8 @@ import com.chushang.datascope.annotation.DataScope;
import com.chushang.inspection.project.dto.TaskDTO;
import com.chushang.inspection.project.dto.TaskExcelDTO;
import com.chushang.inspection.project.dto.TaskQuery;
import com.chushang.inspection.project.po.Template;
import com.chushang.inspection.project.service.TbTemplateService;
import com.chushang.inspection.project.vo.ConfigVO;
import com.chushang.inspection.project.vo.CountTaskVO;
import com.chushang.inspection.project.vo.TaskVO;
import com.chushang.inspection.project.service.PollingTaskService;
import com.chushang.security.utils.SecurityUtils;
@ -247,6 +246,12 @@ public class PollingTaskServiceImpl extends ServiceImpl<PollingTaskMapper, Polli
.last(Operator.LIMIT_ONE.getCharacter());
return baseMapper.selectOne(taskSql);
}
@Override
public List<CountTaskVO> countByProjectIds(Set<Long> projectIds) {
return baseMapper.countByProjectIds(projectIds);
}
@Transactional
public Result<Boolean> importTask(String params)
{

View File

@ -31,8 +31,6 @@ public class StoreController {
@Resource
StoreService storeService;
@Resource
TerminalService terminalService;
/**
* 1. 终端商户池
* 2. 我的终端池

View File

@ -123,6 +123,7 @@ public class StoreImportServiceImpl extends ServiceImpl<StoreImportMapper, Store
store.setLowerTaskId(list.get(0).getId());
store.setStoreId(IdUtil.getSnowflake().nextId());
store.setDelState(false);
store.setProjectId(topTask.getProjectId());
return store;
}
@ -140,6 +141,8 @@ public class StoreImportServiceImpl extends ServiceImpl<StoreImportMapper, Store
Store store = genStoreEntity(storeImportDTO);
storeMapper.insert(store);
Terminal terminal = new Terminal();
terminal.setProjectId(store.getProjectId());
terminal.setTerminalNo(storeImportDTO.getTerminalNo());
terminal.setTerminalSn(storeImportDTO.getTerminalSn());
terminal.setTerminalModel(storeImportDTO.getTerminalModel());

View File

@ -73,4 +73,5 @@ public class TaskConfigUtils {
Integer method = getConfig(taskId).getDispatchMethod();
return method == null ? 0 : method;
}
}

View File

@ -261,6 +261,7 @@ public class WrkInfoServiceImpl extends ServiceImpl<WrkInfoMapper, WrkInfo> impl
wrkInfo.setDisSchedule(6);
wrkInfo.setRegisterTime(LocalDate.now());
wrkInfo.setDeptName(deptName);
wrkInfo.setProjectId(store.getProjectId());
// 处理时间
save(wrkInfo);
WrkInfoTerminalRecord wrkInfoTerminalRecord = BeanUtil.copyProperties(t, WrkInfoTerminalRecord.class);

View File

@ -0,0 +1,17 @@
<?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.chushang.inspection.project.mapper.PollingTaskMapper">
<select id="countByProjectIds" resultType="com.chushang.inspection.project.vo.CountTaskVO">
SELECT COUNT(*) AS totalTask, pt.project_id AS projectId
FROM ta_polling_task pt
where pt.del_state = 0
<if test="projectIds != null and projectIds.size() != 0">
AND pt.project_id IN
<foreach collection="projectIds" open="(" close=")" item="projectId" separator=",">
#{projectId}
</foreach>
</if>
GROUP BY pt.project_id
</select>
</mapper>