Commit 728e8c80 authored by kongfm's avatar kongfm

Merge remote-tracking branch 'origin/developer' into developer

parents 31dc9766 e3cad20a
......@@ -7,10 +7,11 @@ import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import com.alibaba.fastjson.JSONObject;
@FeignClient(name = "AMOS-API-WORKFLOW", path = "workflow", configuration = { CommonMultipartSupportConfig.class })
@FeignClient(name = "AMOS-API-WORKFLOW-CJHENHAO", path = "workflow", configuration = { CommonMultipartSupportConfig.class })
public interface WorkflowFeignService {
/**
* 发起流程
......@@ -48,7 +49,25 @@ public interface WorkflowFeignService {
* @param processInstanceId
* @return
*/
@RequestMapping(value = "/getTaskGroupName/{taskId}", method = RequestMethod.GET)
@RequestMapping(value = "/task/getTaskGroupName/{taskId}", method = RequestMethod.GET)
JSONObject getTaskGroupName(@PathVariable("taskId") String taskId);
/**
* 我的待办
* @param processDefinitionKey
* @param userId
* @return
*/
@RequestMapping(value = "/task/all-list", method = RequestMethod.GET)
JSONObject getTasksNoAuth(@RequestParam(value="processDefinitionKey", required=false) String processDefinitionKey,
@RequestParam(value="userId", required=false) String userId) ;
/**
* 流程信息
* @param processDefinitionKey
* @param userId
* @return
*/
@RequestMapping(value = "/activitiHistory/processes/historytasks/list/{processInstanceId}", method = RequestMethod.GET)
JSONObject queryHistoryTaskListByProcessId(@PathVariable("processInstanceId") String processInstanceId);
}
package com.yeejoin.amos.boot.module.common.api.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.yeejoin.amos.boot.biz.common.dto.BaseDto;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
/**
* 流程日志
*
* @author system_generator
* @date 2021-08-12
*/
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel(value="FailureRepairlogDto", description="流程日志")
public class FailureRepairlogDto extends BaseDto {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "流程处理人")
private String processAuditor;
@ApiModelProperty(value = "处理人所属部门")
private String processDepartment;
@ApiModelProperty(value = "流程处理结果")
private String processResult;
@ApiModelProperty(value = "流程处理时间")
private Date processTime;
@ApiModelProperty(value = "设备故障报修主表ID")
private Long faultId;
}
......@@ -50,6 +50,12 @@ public class FailureAudit extends BaseEntity {
@TableField("audit_opinion")
private String auditOpinion;
/* *//**
* 审核状态
*//*
@TableField("audit_status")
private String auditStatus;
*/
/**
* 设备故障报修单id
*/
......
......@@ -101,9 +101,5 @@ public class FailureDetails extends BaseEntity {
*/
@TableField("process_id")
private String processId;
@TableField ("current_role")
private String currentRole;
}
package com.yeejoin.amos.boot.module.common.api.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yeejoin.amos.boot.biz.common.entity.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.util.Date;
/**
* 流程日志
*
* @author system_generator
* @date 2021-08-12
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("cb_failure_repairlog")
public class FailureRepairlog extends BaseEntity {
private static final long serialVersionUID = 1L;
/**
* 流程处理人
*/
@TableField("process_auditor")
private String processAuditor;
/**
* 处理人所属部门
*/
@TableField("process_department")
private String processDepartment;
/**
* 流程处理结果
*/
@TableField("process_result")
private String processResult;
/**
* 流程处理时间
*/
@TableField("process_time")
private Date processTime;
/**
* 设备故障报修主表ID
*/
@TableField("fault_id")
private Long faultId;
}
package com.yeejoin.amos.boot.module.common.api.mapper;
import com.yeejoin.amos.boot.module.common.api.entity.FailureRepairlog;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* 流程日志 Mapper 接口
*
* @author system_generator
* @date 2021-08-12
*/
public interface FailureRepairlogMapper extends BaseMapper<FailureRepairlog> {
}
package com.yeejoin.amos.boot.module.common.api.service;
/**
* 流程日志接口类
*
* @author system_generator
* @date 2021-08-12
*/
public interface IFailureRepairlogService {
}
<?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.yeejoin.amos.boot.module.common.api.mapper.FailureRepairlogMapper">
</mapper>
......@@ -26,6 +26,22 @@ import cn.afterturn.easypoi.excel.annotation.Excel;
public class Point extends BasicEntity {
private static final long serialVersionUID = 1L;
public String getBuildingId() {
return buildingId;
}
public void setBuildingId(String buildingId) {
this.buildingId = buildingId;
}
public String getBuildingName() {
return buildingName;
}
public void setBuildingName(String buildingName) {
this.buildingName = buildingName;
}
/**
* 参考地址
*/
......@@ -143,6 +159,18 @@ public class Point extends BasicEntity {
@Column(name="point_no")
private String pointNo;
/**
* 所在建筑
*/
private String buildingId;
/**
* 所在建筑名称
*/
private String buildingName;
public String getEquipmentId() {
return equipmentId;
}
......
package com.yeejoin.amos.boot.module.common.biz.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.biz.common.bo.ReginParams;
import com.yeejoin.amos.boot.biz.common.controller.BaseController;
import com.yeejoin.amos.boot.module.common.api.dto.FailureAuditDto;
import com.yeejoin.amos.boot.module.common.api.entity.FailureAudit;
import com.yeejoin.amos.boot.module.common.biz.service.impl.FailureAuditServiceImpl;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -38,8 +40,9 @@ public class FailureAuditController extends BaseController {
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping(value = "/save")
@ApiOperation(httpMethod = "POST", value = "新增", notes = "新增")
public ResponseModel<FailureAuditDto> save(@RequestBody FailureAuditDto model) {
model = failureAuditServiceImpl.savemodel(model);
public ResponseModel<FailureAuditDto> save(@RequestBody FailureAuditDto model, ReginParams userInfo) throws Exception {
model = failureAuditServiceImpl.savemodel(model,userInfo);
return ResponseHelper.buildResponse(model);
}
......
......@@ -122,12 +122,12 @@ public class FailureDetailsController extends BaseController {
@GetMapping(value = "/page")
@ApiOperation(httpMethod = "GET",value = "分页查询", notes = "分页查询")
public ResponseModel<Page<FailureDetailsDto>> queryForPage(@RequestParam(value = "current") int current,@RequestParam
(value = "size") int size,@RequestParam Long currentStatus) {
(value = "size") int size,@RequestParam Long currentStatus,@RequestParam Integer type) {
Page<FailureDetailsDto> page = new Page<FailureDetailsDto>();
page.setCurrent(current);
page.setSize(size);
final AgencyUserModel userInfo = getUserInfo();
return ResponseHelper.buildResponse(failureDetailsServiceImpl.queryForFailureDetailsPage(page,currentStatus,userInfo));
return ResponseHelper.buildResponse(failureDetailsServiceImpl.queryForFailureDetailsPage(page,currentStatus,userInfo,type));
}
/**
......@@ -167,11 +167,11 @@ public class FailureDetailsController extends BaseController {
return ResponseHelper.buildResponse(failureDetailsServiceImpl.queryStatusCount(currentStatus));
}
/**
/* *//**
* 查询我提交状态任务数量
*
* @return
*/
*//*
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "GET",value = "查询我提交状态任务数量", notes = "查询我提交状态任务数量")
@GetMapping(value = "/list/userID")
......@@ -182,6 +182,11 @@ public class FailureDetailsController extends BaseController {
page.setSize(size);
String userId = getUserInfo().getUserId();
return ResponseHelper.buildResponse(failureDetailsServiceImpl.queryForPage(page,userId));
}*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "GET",value = "流程信息", notes = "流程信息")
@GetMapping(value = "/processHistory")
public ResponseModel<Object> selectHistoryt(@RequestParam Long sequenceNbr) {
return ResponseHelper.buildResponse(failureDetailsServiceImpl.getCurrentProcessHistoryTask(sequenceNbr));
}
}
package com.yeejoin.amos.boot.module.common.biz.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.biz.common.bo.ReginParams;
import com.yeejoin.amos.boot.biz.common.controller.BaseController;
import com.yeejoin.amos.boot.module.common.api.dto.FailureMaintainDto;
import com.yeejoin.amos.boot.module.common.biz.service.impl.FailureMaintainServiceImpl;
......@@ -37,8 +38,8 @@ public class FailureMaintainController extends BaseController {
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping(value = "/save")
@ApiOperation(httpMethod = "POST", value = "新增", notes = "新增")
public ResponseModel<FailureMaintainDto> save(@RequestBody FailureMaintainDto model) {
model = failureMaintainServiceImpl.createWithModel(model);
public ResponseModel<FailureMaintainDto> save(@RequestBody FailureMaintainDto model, ReginParams userInfo) {
model = failureMaintainServiceImpl.savemodel(model,userInfo);
return ResponseHelper.buildResponse(model);
}
......@@ -52,9 +53,9 @@ public class FailureMaintainController extends BaseController {
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PutMapping(value = "/{sequenceNbr}")
@ApiOperation(httpMethod = "PUT", value = "验收操作", notes = "根据sequenceNbr更新")
public ResponseModel<FailureMaintainDto> updateBySequenceNbrFailureMaintain(@RequestBody FailureMaintainDto model,Integer status,@PathVariable(value = "sequenceNbr") Long sequenceNbr) {
public ResponseModel<FailureMaintainDto> updateBySequenceNbrFailureMaintain(@RequestBody FailureMaintainDto model,Integer status,@PathVariable(value = "sequenceNbr") Long sequenceNbr,ReginParams userInfo) {
model.setSequenceNbr(sequenceNbr);
return ResponseHelper.buildResponse(failureMaintainServiceImpl.updateModel(model,status));
return ResponseHelper.buildResponse(failureMaintainServiceImpl.updateModel(model,status,userInfo));
}
/*
......
package com.yeejoin.amos.boot.module.common.biz.controller;
import com.yeejoin.amos.boot.module.common.api.entity.FailureRepairlog;
import org.springframework.web.bind.annotation.RequestMapping;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.Api;
import org.springframework.web.bind.annotation.RestController;
import com.yeejoin.amos.boot.biz.common.controller.BaseController;
import java.util.List;
import com.yeejoin.amos.boot.module.common.biz.service.impl.FailureRepairlogServiceImpl;
import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
import org.springframework.beans.factory.annotation.Autowired;
import javax.servlet.http.HttpServletRequest;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.module.common.api.dto.FailureRepairlogDto;
import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.foundation.enumeration.UserType;
/**
* 流程日志
*
* @author system_generator
* @date 2021-08-12
*/
@RestController
@Api(tags = "流程日志Api")
@RequestMapping(value = "/common/failure-repairlog")
public class FailureRepairlogController extends BaseController {
@Autowired
FailureRepairlogServiceImpl failureRepairlogServiceImpl;
/**
* 新增流程日志
*
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping(value = "/save")
@ApiOperation(httpMethod = "POST", value = "新增流程日志", notes = "新增流程日志")
public ResponseModel<FailureRepairlogDto> save(@RequestBody FailureRepairlogDto model) {
model = failureRepairlogServiceImpl.createWithModel(model);
return ResponseHelper.buildResponse(model);
}
/**
* 根据sequenceNbr更新
*
* @param sequenceNbr 主键
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PutMapping(value = "/{sequenceNbr}")
@ApiOperation(httpMethod = "PUT", value = "根据sequenceNbr更新流程日志", notes = "根据sequenceNbr更新流程日志")
public ResponseModel<FailureRepairlogDto> updateBySequenceNbrFailureRepairlog(@RequestBody FailureRepairlogDto model,@PathVariable(value = "sequenceNbr") Long sequenceNbr) {
model.setSequenceNbr(sequenceNbr);
return ResponseHelper.buildResponse(failureRepairlogServiceImpl.updateWithModel(model));
}
/**
* 根据sequenceNbr删除
*
* @param sequenceNbr 主键
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@DeleteMapping(value = "/{sequenceNbr}")
@ApiOperation(httpMethod = "DELETE", value = "根据sequenceNbr删除流程日志", notes = "根据sequenceNbr删除流程日志")
public ResponseModel<Boolean> deleteBySequenceNbr(HttpServletRequest request, @PathVariable(value = "sequenceNbr") Long sequenceNbr){
return ResponseHelper.buildResponse(failureRepairlogServiceImpl.removeById(sequenceNbr));
}
/**
* 根据sequenceNbr查询
*
* @param sequenceNbr 主键
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/{sequenceNbr}")
@ApiOperation(httpMethod = "GET",value = "根据sequenceNbr查询单个流程日志", notes = "根据sequenceNbr查询单个流程日志")
public ResponseModel<FailureRepairlogDto> selectOne(@PathVariable Long sequenceNbr) {
return ResponseHelper.buildResponse(failureRepairlogServiceImpl.queryBySeq(sequenceNbr));
}
/**
* 列表分页查询
*
* @param current 当前页
* @param current 每页大小
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/page")
@ApiOperation(httpMethod = "GET",value = "流程日志分页查询", notes = "流程日志分页查询")
public ResponseModel<Page<FailureRepairlogDto>> queryForPage(@RequestParam(value = "current") int current,@RequestParam
(value = "size") int size) {
Page<FailureRepairlogDto> page = new Page<FailureRepairlogDto>();
page.setCurrent(current);
page.setSize(size);
return ResponseHelper.buildResponse(failureRepairlogServiceImpl.queryForFailureRepairlogPage(page));
}
/**
* 列表全部数据查询
*
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "GET",value = "流程日志列表全部数据查询", notes = "流程日志列表全部数据查询")
@GetMapping(value = "/list")
public ResponseModel<List<FailureRepairlogDto>> selectForList() {
return ResponseHelper.buildResponse(failureRepairlogServiceImpl.queryForFailureRepairlogList());
}
/**
* 查询报修日志
*
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(httpMethod = "GET",value = "查询报修日志", notes = "查询报修日志")
@GetMapping(value = "/list/{faultId}")
public ResponseModel<List<FailureRepairlog>> findByFaultIdLog(@RequestParam Long faultId) {
return ResponseHelper.buildResponse(failureRepairlogServiceImpl.findByfaultIdLog(faultId));
}
}
package com.yeejoin.amos.boot.module.common.biz.service.impl;
import java.util.Date;
import java.util.List;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.yeejoin.amos.boot.biz.common.bo.ReginParams;
import com.yeejoin.amos.boot.module.common.api.dto.FailureRepairlogDto;
import com.yeejoin.amos.boot.module.common.api.entity.FailureDetails;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.typroject.tyboot.core.rdbms.service.BaseService;
......@@ -27,73 +31,104 @@ import com.yeejoin.amos.boot.module.common.api.service.IFailureAuditService;
*/
@Service
public class FailureAuditServiceImpl extends BaseService<FailureAuditDto, FailureAudit, FailureAuditMapper>
implements IFailureAuditService {
@Autowired
FailureDetailsServiceImpl failureDetailsService;
// @Autowired
// RemoteWorkFlowService remoteWorkFlowService;
/**
* 分页查询
*/
public Page<FailureAuditDto> queryForFailureAuditPage(Page<FailureAuditDto> page) {
return this.queryForPage(page, null, false);
}
/**
* 列表查询 示例
*/
public List<FailureAuditDto> queryForFailureAuditList() {
return this.queryForList("", false);
}
/**
* 发起审核
*/
public FailureAuditDto savemodel(FailureAuditDto model) {
// remoteWorkFlowService.currentTask();
this.createWithModel(model);
Integer auditResult = model.getAuditResult();
if (auditResult.equals(AuditResultEnum.AGREE.getCode())) {
updateStatus(model, FailureStatuEnum.WAITING_MAINTAIN.getCode());
} else if (auditResult.equals(AuditResultEnum.REFUSE.getCode())) {
updateStatus(model, FailureStatuEnum.REFUSE.getCode());
} else if (auditResult.equals(AuditResultEnum.SEND_BACK.getCode())) {
updateStatus(model, FailureStatuEnum.WAITING_SUBMIT.getCode());
}
return model;
}
/**
* 修改故障保修单任务状态
*/
FailureDetailsDto updateStatus(FailureAuditDto model, Integer status) {
FailureDetailsDto failureDetailsDto = failureDetailsService.queryBySeq(model.getFaultId());
failureDetailsDto.setCurrentStatus(status);
failureDetailsDto.setSequenceNbr(model.getFaultId());
return failureDetailsService.updateWithModel(failureDetailsDto);
}
/**
* 根据FaultId查询
*/
public List<FailureAudit> findByfaultId(Long faultId) {
Page<FailureAudit> page = new Page<>();
QueryWrapper<FailureAudit> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("fault_id", faultId).orderByDesc("submission_time");
return baseMapper.selectList(queryWrapper);
}
public FailureAudit findByFaultId(Long faultId) {
LambdaQueryWrapper<FailureAudit> wrapper = new LambdaQueryWrapper<FailureAudit>();
wrapper.eq(FailureAudit::getIsDelete, false);
wrapper.eq(FailureAudit::getFaultId, faultId);
wrapper.orderByAsc(FailureAudit::getAuditTime);
wrapper.last("LIMIT 1");
return this.baseMapper.selectOne(wrapper);
}
implements IFailureAuditService {
@Autowired
FailureDetailsServiceImpl failureDetailsService;
@Autowired
FailureRepairlogServiceImpl failureRepairlogService;
/**
* 分页查询
*/
public Page<FailureAuditDto> queryForFailureAuditPage(Page<FailureAuditDto> page) {
return this.queryForPage(page, null, false);
}
/**
* 列表查询 示例
*/
public List<FailureAuditDto> queryForFailureAuditList() {
return this.queryForList("", false);
}
/**
* 发起审核
*/
public FailureAuditDto savemodel(FailureAuditDto model, ReginParams userInfo) throws Exception {
this.createWithModel(model);
Integer auditResult = model.getAuditResult();
//根据审核的结果进行业务操作
if (auditResult.equals(AuditResultEnum.AGREE.getCode())) {
updateStatus(model, FailureStatuEnum.WAITING_MAINTAIN.getCode(), userInfo);
} else if (auditResult.equals(AuditResultEnum.REFUSE.getCode())) {
updateStatus(model, FailureStatuEnum.REFUSE.getCode(), userInfo);
} else if (auditResult.equals(AuditResultEnum.SEND_BACK.getCode())) {
updateStatus(model, FailureStatuEnum.WAITING_SUBMIT.getCode(), userInfo);
}
return model;
}
/**
* 修改故障保修单任务状态
*/
FailureDetailsDto updateStatus(FailureAuditDto model, Integer status, ReginParams userInfo) throws Exception {
failureDetailsService.checkExcuteTaskAuthMap(model.getSequenceNbr(),userInfo);
FailureDetailsDto failureDetailsDto = failureDetailsService.queryBySeq(model.getFaultId());
failureDetailsDto.setCurrentStatus(status);
failureDetailsDto.setSequenceNbr(model.getFaultId());
String condition;
//添加报修日志
Long faultId = model.getFaultId();
Date processTime = model.getAuditTime();
String processDepartment = model.getAuditDepartment();
String processAuditor = model.getAuditor();
if (status.equals(AuditResultEnum.AGREE)) {
condition = AuditResultEnum.AGREE.getName();
repairlog(faultId,processAuditor,processTime,processDepartment,condition);
}
condition = AuditResultEnum.REFUSE.getName();
failureDetailsService.excuteTask(failureDetailsDto.getProcessId(), userInfo, condition);
repairlog(faultId,processAuditor,processTime,processDepartment,condition);
return failureDetailsService.updateWithModel(failureDetailsDto);
}
/**
* 添加报修日志
*/
public void repairlog(Long faultId, String processAuditor, Date processTime, String processDepartment, String processResult) {
FailureRepairlogDto failureRepairlogDto = new FailureRepairlogDto();
failureRepairlogDto.setFaultId(faultId);
failureRepairlogDto.setProcessAuditor(processAuditor);
failureRepairlogDto.setProcessTime(processTime);
failureRepairlogDto.setProcessDepartment(processDepartment);
failureRepairlogDto.setProcessResult(processResult);
failureRepairlogService.createWithModel(failureRepairlogDto);
}
/**
* 根据FaultId查询
*/
public List<FailureAudit> findByfaultId(Long faultId) {
Page<FailureAudit> page = new Page<>();
QueryWrapper<FailureAudit> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("fault_id", faultId).orderByDesc("submission_time");
return baseMapper.selectList(queryWrapper);
}
public FailureAudit findByFaultId(Long faultId) {
LambdaQueryWrapper<FailureAudit> wrapper = new LambdaQueryWrapper<FailureAudit>();
wrapper.eq(FailureAudit::getIsDelete, false);
wrapper.eq(FailureAudit::getFaultId, faultId);
wrapper.orderByAsc(FailureAudit::getAuditTime);
wrapper.last("LIMIT 1");
return this.baseMapper.selectOne(wrapper);
}
}
\ No newline at end of file
package com.yeejoin.amos.boot.module.common.biz.service.impl;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Random;
......@@ -26,6 +28,7 @@ import com.yeejoin.amos.boot.biz.common.bo.ReginParams;
import com.yeejoin.amos.boot.biz.common.workflow.feign.WorkflowFeignService;
import com.yeejoin.amos.boot.module.common.api.dto.FailureAuditDto;
import com.yeejoin.amos.boot.module.common.api.dto.FailureDetailsDto;
import com.yeejoin.amos.boot.module.common.api.dto.FailureRepairlogDto;
import com.yeejoin.amos.boot.module.common.api.entity.FailureAudit;
import com.yeejoin.amos.boot.module.common.api.entity.FailureDetails;
import com.yeejoin.amos.boot.module.common.api.enums.FailureStatuEnum;
......@@ -34,6 +37,8 @@ import com.yeejoin.amos.boot.module.common.api.service.IFailureAuditService;
import com.yeejoin.amos.boot.module.common.api.service.IFailureDetailsService;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
import rx.internal.util.LinkedArrayList;
/**
* 服务实现类
*
......@@ -59,28 +64,52 @@ public class FailureDetailsServiceImpl extends BaseService<FailureDetailsDto, Fa
@Autowired
IFailureAuditService failureAuditService;
@Autowired
FailureRepairlogServiceImpl failureRepairlogService;
public static String EMERGENCY_COMMAND = "应急指挥科";
private final Logger logger = LoggerFactory.getLogger(FailureDetailsServiceImpl.class);
public static Integer SELECY_ALL = 6;
public static Integer SELECY_STATUS = 7;
public static Integer SELECY_ISUBMIT = 8;
/**
* 分页查询
*/
public Page<FailureDetailsDto> queryForFailureDetailsPage(Page<FailureDetailsDto> page, Long currentStatus, AgencyUserModel userInfo ) {
if (currentStatus == null){
public Page<FailureDetailsDto> queryForFailureDetailsPage(Page<FailureDetailsDto> page, Long currentStatus,
AgencyUserModel userInfo) {
if (currentStatus == null) {
return this.queryForPage(page, "submission_time", true);
}
return this.queryForPage(page, "submission_time", true,currentStatus);
return this.queryForPage(page, "submission_time", true, currentStatus);
}
public Page<FailureDetailsDto> queryForFailureDetailsPage(Page<FailureDetailsDto> page, Long currentStatus,
AgencyUserModel userInfo, Integer type) {
if (currentStatus == null || type.equals(SELECY_ALL)) {
return this.queryForPage(page, "submission_time", true);
}
if (type.equals(SELECY_ISUBMIT)) {
if (currentStatus == null || ObjectUtils.isNotEmpty(userInfo)) {
String submissionPid = userInfo.getUserId();
queryForPage(page, submissionPid);
}
return null;
}
return this.queryForPage(page, "submission_time", true, currentStatus);
}
/**
* 我发起分页查询
*/
public Page<FailureDetailsDto> queryForPage(Page<FailureDetailsDto> page, String userId ) {
if (userId == null){
public Page<FailureDetailsDto> queryForPage(Page<FailureDetailsDto> page, String userId) {
if (userId == null) {
return null;
}
return this.queryForPage(page, "submission_time", true,userId);
return this.queryForPage(page, "submission_time", true, userId);
}
/**
......@@ -101,6 +130,14 @@ public class FailureDetailsServiceImpl extends BaseService<FailureDetailsDto, Fa
}
/**
* 流程日志
*/
public List<Map> repairLog(Long currentStatus) {
return null;
}
/**
* 查询任务状态数量
*/
public Integer queryStatusCount(Long currentStatus) {
......@@ -135,17 +172,24 @@ public class FailureDetailsServiceImpl extends BaseService<FailureDetailsDto, Fa
FailureDetailsDto model = null;
try {
if (ObjectUtils.isNotEmpty(failureDetailsDto.getAttachment())) {
sourceFileServiceImpl.saveSourceFile(failureDetailsDto.getSequenceNbr(),
failureDetailsDto.getAttachment());
sourceFileServiceImpl.saveSourceFile(failureDetailsDto.getSequenceNbr(), failureDetailsDto.getAttachment());
}
/*failureDetailsDto.set*/
/* failureDetailsDto.set */
/* failureDetailsDto.set */
// 发起主表流程 并添加至报修日志
model = this.createWithModel(failureDetailsDto);
Long faultId = model.getSequenceNbr();
String processAuditor = model.getRecUserName();
String processResult = "提交报修单";
String processDepartment = null;
Date processTime = model.getSubmissionTime();
repairlog(faultId, processAuditor, processTime, processDepartment, processResult);
FailureAuditDto failureAuditDto = new FailureAuditDto();
failureAuditDto.setAuditor(model.getRecUserName());
failureAuditDto.setFaultId(model.getSequenceNbr());
failureAuditDto.setAuditOpinion("已发起");
failureAuditServiceImpl.savemodel(failureAuditDto);
failureAuditServiceImpl.savemodel(failureAuditDto, null);
} catch (Exception e) {
logger.info("添加故障维修信息到数据库失败");
return false;
......@@ -157,9 +201,23 @@ public class FailureDetailsServiceImpl extends BaseService<FailureDetailsDto, Fa
return true;
}
/**
* 添加报修日志
*/
public void repairlog(Long faultId, String processAuditor, Date processTime, String processDepartment,
String processResult) {
FailureRepairlogDto failureRepairlogDto = new FailureRepairlogDto();
failureRepairlogDto.setFaultId(faultId);
failureRepairlogDto.setProcessAuditor(processAuditor);
failureRepairlogDto.setProcessTime(processTime);
failureRepairlogDto.setProcessDepartment(processDepartment);
failureRepairlogDto.setProcessResult(processResult);
failureRepairlogService.createWithModel(failureRepairlogDto);
}
public boolean excuteTask(Long sequenceNbr, ReginParams userInfo, String condition) {
HashMap<String, Object> conditionMap = new HashMap<String, Object>();
conditionMap.put("condition", condition);
conditionMap.put("condition", Integer.parseInt(condition));
Map<String, Object> map = checkExcuteTaskAuthMap(sequenceNbr, userInfo);
try {
if (Boolean.parseBoolean(map.get("checkFlag").toString())) {
......@@ -187,27 +245,26 @@ public class FailureDetailsServiceImpl extends BaseService<FailureDetailsDto, Fa
public Object getNextTaskGroupName(String procressId) {
JSONObject teskObject = workflowFeignService.getTaskList(procressId);
JSONArray taskDetailArray = teskObject.getJSONArray("data");
String currentRoleName="";
JSONArray taskDetailArray = teskObject.getJSONArray("data");
String currentRoleName = "";
for (Object obj : taskDetailArray) {
JSONObject detail = JSONObject.parseObject(JSONObject.toJSONString(obj));
JSONObject taskGroupNameObject = workflowFeignService.getTaskGroupName(detail.getString("id"));
for (Object object : taskGroupNameObject.getJSONArray("data")) {
JSONObject taskGroupNameDetail= JSONObject.parseObject(JSONObject.toJSONString(object));
currentRoleName =currentRoleName +taskGroupNameDetail.getString("groupId")+",";
JSONObject taskGroupNameDetail = JSONObject.parseObject(JSONObject.toJSONString(object));
currentRoleName = currentRoleName + taskGroupNameDetail.getString("groupId") + ",";
}
}
return currentRoleName;
}
public boolean checkExcuteTaskAuth(Long sequenceNbr, ReginParams userInfo) {
Map<String, Object> map = this.checkExcuteTaskAuthMap(sequenceNbr, userInfo);
return Boolean.parseBoolean(map.get("checkFlag").toString());
}
public Map<String, Object> checkExcuteTaskAuthMap(Long sequenceNbr, ReginParams userInfo) {
//获取当前登录用户的角色
// 获取当前登录用户的角色
String currentLoginUserRole = userInfo.getRole().getRoleName();
Map<String, Object> map = new HashMap<String, Object>();
map.put("checkFlag", false);
......@@ -257,56 +314,68 @@ public class FailureDetailsServiceImpl extends BaseService<FailureDetailsDto, Fa
}
return map;
}
/**
* 獲取待處理的任務數量
* @param userInfo
* @return
*/
public int getPendingCount (ReginParams userInfo) {
int countNum=0;
//获取当前登录人的部门id
/**
* 獲取待處理的任務數量
*
* @param userInfo
* @return
*/
public int getPendingCount(ReginParams userInfo) {
int countNum = 0;
// 获取当前登录人的部门id
Long seq = userInfo.getDepartment().getSequenceNbr();
//获取当前登录用户的角色
String currentLoginUserRole = userInfo.getRole().getRoleName();
LambdaQueryWrapper<FailureDetails> wrapper = new LambdaQueryWrapper<FailureDetails>();
String[] arr= {"结束","拒绝"};
wrapper.likeRight(FailureDetails::getCurrentRole,currentLoginUserRole);
wrapper.notIn(FailureDetails::getCurrentStatus, arr);
//根据当前用户的执行角色来获取所有的任务
List<FailureDetails> list= this.baseMapper.selectList(wrapper);
for (FailureDetails i : list) {
String procressId = i.getProcessId();
JSONObject teskObject = workflowFeignService.getTaskList(procressId);
JSONArray taskDetailArray = teskObject.getJSONArray("data");
for (Object obj : taskDetailArray) {
JSONObject taskDetail= JSONObject.parseObject(JSONObject.toJSONString(obj));
if (taskDetail.getString("name").contains(EMERGENCY_COMMAND)) {
FailureAudit failureAuditDetail = failureAuditService.findByFaultId(i.getSequenceNbr());
Long auditDepartmentId = failureAuditDetail.getAuditDepartmentId();
if (auditDepartmentId.intValue() == seq.intValue()) {
countNum++;
continue;
}
} else {
// 判断当前节点任务属于送达部门节点时需要判断当前登录人所在的部门id是否与表单发起时设置的送达部门一致
if (i.getFailureEquipmentId().intValue() == seq.intValue()) {
countNum++;
continue;
}
// 获取同角色信息的我的待办任务
JSONObject taskListJson = workflowFeignService.getTasksNoAuth(processDefinitionKey,
userInfo.getUserModel().getUserId());
JSONArray taskList = JSONArray.parseArray(JSONObject.toJSONString(taskListJson.getString("data")));
for (Object i : taskList) {
JSONObject task = JSONObject.parseObject(JSONObject.toJSONString(i));
String procressId = task.getString("processInstanceId");
// 通过流程ID查找当前的故障报修表ID 的信息
LambdaQueryWrapper<FailureDetails> wrapper = new LambdaQueryWrapper<FailureDetails>();
wrapper.eq(FailureDetails::getProcessId, procressId);
FailureDetails failureDetails = this.baseMapper.selectOne(wrapper);
// 通过故障报修单查找创建人的部门ID
FailureAudit failureAuditDetail = failureAuditService.findByFaultId(failureDetails.getSequenceNbr());
// 再去判断当前的任务节点信息是不是维修部门,是的话将于第一次填报保单的操作人部门id进行匹配,符合将视作为一条合法的待办任务
if (task.getString("name").contains(EMERGENCY_COMMAND)) {
Long auditDepartmentId = failureAuditDetail.getAuditDepartmentId();
if (auditDepartmentId.intValue() == seq.intValue()) {
countNum++;
continue;
}
} else {
// 判断当前节点任务属于送达部门节点时需要判断当前登录人所在的部门id是否与表单发起时设置的送达部门一致
if (failureDetails.getFailureEquipmentId().intValue() == seq.intValue()) {
countNum++;
continue;
}
}
}
}
return countNum;
}
public Object getCurrentProcessHistoryTask(Long id) {
FailureDetailsDto failureDetailsDto = this.queryBySeq(id);
String processId = failureDetailsDto.getProcessId();
return logger;
JSONObject object= workflowFeignService.queryHistoryTaskListByProcessId(processId);
JSONArray datArray=null;
if(ObjectUtils.isNotEmpty(object)) {
datArray=object.getJSONArray("data");
}
List<Object> list = new ArrayList<Object>();
if(datArray!=null) {
datArray.stream().forEach(i->{
JSONObject detail = JSONObject.parseObject(JSONObject.toJSONString(i));
if(detail.containsKey("operator") && !detail.getString("name").equals("维修中")) {
//从流程记录表中拿到处理人的名称
detail.replace("operator", null);
list.add(object);
}
});
}
return list;
}
public static String buildOrderNo() {
......@@ -319,4 +388,5 @@ public class FailureDetailsServiceImpl extends BaseService<FailureDetailsDto, Fa
}
return newDate + result;
}
}
\ No newline at end of file
......@@ -2,8 +2,10 @@ package com.yeejoin.amos.boot.module.common.biz.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.biz.common.bo.ReginParams;
import com.yeejoin.amos.boot.module.common.api.dto.FailureDetailsDto;
import com.yeejoin.amos.boot.module.common.api.dto.FailureMaintainDto;
import com.yeejoin.amos.boot.module.common.api.dto.FailureRepairlogDto;
import com.yeejoin.amos.boot.module.common.api.entity.FailureAudit;
import com.yeejoin.amos.boot.module.common.api.entity.FailureMaintain;
import com.yeejoin.amos.boot.module.common.api.enums.AuditResultEnum;
......@@ -14,6 +16,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.typroject.tyboot.core.rdbms.service.BaseService;
import java.util.Date;
import java.util.List;
/**
......@@ -28,6 +31,8 @@ public class FailureMaintainServiceImpl extends BaseService<FailureMaintainDto,F
SourceFileServiceImpl sourceFileServiceImpl;
@Autowired
FailureDetailsServiceImpl failureDetailsService;
@Autowired
FailureRepairlogServiceImpl failureRepairlogService;
/**
* 分页查询
......@@ -46,14 +51,21 @@ public class FailureMaintainServiceImpl extends BaseService<FailureMaintainDto,F
/**
* 添加维修记录
*/
public FailureMaintainDto savemodel(FailureMaintainDto failureMaintainDto) {
this.createWithModel(failureMaintainDto);
public FailureMaintainDto savemodel(FailureMaintainDto failureMaintainDto,ReginParams userInfo) {
failureDetailsService.checkExcuteTaskAuthMap(failureMaintainDto.getFaultId(),userInfo);
failureDetailsService.excuteTask(failureMaintainDto.getFaultId(), userInfo, null);
this.createWithModel(failureMaintainDto);
//添加完成后修改保修单状态为待验收
FailureDetailsDto failureDetailsDto = failureDetailsService.queryBySeq(failureMaintainDto.getFaultId());
failureDetailsDto.setCurrentStatus(FailureStatuEnum.WAITING_ACCEPTANCE.getCode());
failureDetailsService.updateWithModel(failureDetailsDto);
//添加报修日志
String processResult = "维修完成";
repairlog(failureMaintainDto.getFaultId(),failureMaintainDto.getMaintainMan(),failureMaintainDto.getMaintainTime(),
failureMaintainDto.getDepartment(),processResult);
sourceFileServiceImpl.saveSourceFile(failureMaintainDto.getSequenceNbr(),failureMaintainDto.getAttachment());
return failureMaintainDto;
}
......@@ -71,18 +83,32 @@ public class FailureMaintainServiceImpl extends BaseService<FailureMaintainDto,F
/**
*根据审核结果更新维修表
*/
public FailureMaintainDto updateModel(FailureMaintainDto failureMaintainDto,Integer status) {
public FailureMaintainDto updateModel(FailureMaintainDto failureMaintainDto, Integer status, ReginParams userInfo) {
failureDetailsService.checkExcuteTaskAuthMap(failureMaintainDto.getFaultId(),userInfo);
this.updateWithModel(failureMaintainDto);
//根据status修改状态
String processResult = new String();
String condition = new String();
FailureDetailsDto failureDetailsDto = failureDetailsService.queryBySeq(failureMaintainDto.getFaultId());
if (status == AuditResultEnum.AGREE.getCode()) {//同意状态为已完结
failureDetailsDto.setCurrentStatus(FailureStatuEnum.FINISH.getCode());
failureDetailsService.updateWithModel(failureDetailsDto);
processResult = "验证通过";
condition= AuditResultEnum.AGREE.getName();
}else {//不同意状态为已拒绝
failureDetailsDto.setCurrentStatus(FailureStatuEnum.REFUSE.getCode());
failureDetailsService.updateWithModel(failureDetailsDto);
processResult = "验证未通过";
condition = AuditResultEnum.REFUSE.getName();
}
failureDetailsService.excuteTask(failureMaintainDto.getFaultId(), userInfo, condition);
//添加报修日志
repairlog(failureMaintainDto.getFaultId(),failureMaintainDto.getMaintainMan(),failureMaintainDto.getMaintainTime(),
failureMaintainDto.getDepartment(),processResult);
return failureMaintainDto;
}
/**
......@@ -94,4 +120,17 @@ public class FailureMaintainServiceImpl extends BaseService<FailureMaintainDto,F
// TODO Auto-generated method stub
return null;
}
/**
* 添加报修日志
*/
public void repairlog(Long faultId, String processAuditor, Date processTime, String processDepartment, String processResult) {
FailureRepairlogDto failureRepairlogDto = new FailureRepairlogDto();
failureRepairlogDto.setFaultId(faultId);
failureRepairlogDto.setProcessAuditor(processAuditor);
failureRepairlogDto.setProcessTime(processTime);
failureRepairlogDto.setProcessDepartment(processDepartment);
failureRepairlogDto.setProcessResult(processResult);
failureRepairlogService.createWithModel(failureRepairlogDto);
}
}
\ No newline at end of file
package com.yeejoin.amos.boot.module.common.biz.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.yeejoin.amos.boot.module.common.api.entity.FailureAudit;
import com.yeejoin.amos.boot.module.common.api.entity.FailureRepairlog;
import com.yeejoin.amos.boot.module.common.api.mapper.FailureRepairlogMapper;
import com.yeejoin.amos.boot.module.common.api.service.IFailureRepairlogService;
import com.yeejoin.amos.boot.module.common.api.dto.FailureRepairlogDto;
import org.typroject.tyboot.core.rdbms.service.BaseService;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import java.util.List;
/**
* 流程日志服务实现类
*
* @author system_generator
* @date 2021-08-12
*/
@Service
public class FailureRepairlogServiceImpl extends BaseService<FailureRepairlogDto,FailureRepairlog,FailureRepairlogMapper> implements IFailureRepairlogService {
/**
* 分页查询
*/
public Page<FailureRepairlogDto> queryForFailureRepairlogPage(Page<FailureRepairlogDto> page) {
return this.queryForPage(page, null, false);
}
/**
* 列表查询 示例
*/
public List<FailureRepairlogDto> queryForFailureRepairlogList() {
return this.queryForList("" , false);
}
/**
* 根据FaultId查询
*/
public List<FailureRepairlog> findByfaultIdLog(Long faultId) {
Page<FailureRepairlogDto> page = new Page<>();
QueryWrapper<FailureRepairlog> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("fault_id", faultId).orderByAsc("process_time");
return baseMapper.selectList(queryWrapper);
}
}
\ No newline at end of file
package com.yeejoin.amos.maintenance.business.controller;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletResponse;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.util.ObjectUtils;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.typroject.tyboot.core.foundation.enumeration.UserType;
import org.typroject.tyboot.core.foundation.utils.Bean;
import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import com.alibaba.fastjson.JSONObject;
import com.yeejoin.amos.boot.biz.common.bo.ReginParams;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
......@@ -33,11 +8,7 @@ import com.yeejoin.amos.maintenance.business.param.PlanTaskPageParam;
import com.yeejoin.amos.maintenance.business.service.intfc.IPlanTaskService;
import com.yeejoin.amos.maintenance.business.service.intfc.IPointService;
import com.yeejoin.amos.maintenance.business.service.intfc.IRouteService;
import com.yeejoin.amos.maintenance.business.util.CommonResponse;
import com.yeejoin.amos.maintenance.business.util.CommonResponseUtil;
import com.yeejoin.amos.maintenance.business.util.FileHelper;
import com.yeejoin.amos.maintenance.business.util.PlanTaskPageParamUtil;
import com.yeejoin.amos.maintenance.business.util.Toke;
import com.yeejoin.amos.maintenance.business.util.*;
import com.yeejoin.amos.maintenance.business.vo.CodeOrderVo;
import com.yeejoin.amos.maintenance.business.vo.PlanTaskVo;
import com.yeejoin.amos.maintenance.business.vo.PointInputItemVo;
......@@ -52,10 +23,23 @@ import com.yeejoin.amos.maintenance.dao.entity.Point;
import com.yeejoin.amos.maintenance.dao.entity.PointClassify;
import com.yeejoin.amos.maintenance.exception.YeeException;
import com.yeejoin.amos.maintenance.feign.RemoteSecurityService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.util.ObjectUtils;
import org.springframework.web.bind.annotation.*;
import org.typroject.tyboot.core.foundation.enumeration.UserType;
import org.typroject.tyboot.core.foundation.utils.Bean;
import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import javax.servlet.http.HttpServletResponse;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
@RestController
@RequestMapping(value = "/api/planTask")
......@@ -74,7 +58,6 @@ public class PlanTaskController extends AbstractBaseController {
@Autowired
private RemoteSecurityService remoteSecurityService;
private String loginOrgCode;
/**
* 计划执行查询
......@@ -259,12 +242,11 @@ public class PlanTaskController extends AbstractBaseController {
@ApiParam(value = "巡检点编号", required = true) @RequestParam(required = true) String serial,
@ApiParam(value = "参数", required = false) @RequestParam(required = false) Long planTaskId) {
try {
HashMap<String, Object> params = new HashMap<String, Object>();
HashMap<String, Object> params = new HashMap<>();
ReginParams reginParams = getSelectedOrgInfo();
String loginOrgCode = getOrgCode(reginParams);
params.put("orgCode", loginOrgCode);
String pointNo = serial;
params.put("pointNo", pointNo);
params.put("pointNo", serial);
Point point = pointService.queryPointByPointNo(params);
// 1.通用校验
if (point == null) {
......@@ -454,32 +436,23 @@ public class PlanTaskController extends AbstractBaseController {
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(value = "根据计划任务ID查询计划任务详情和任务点(<font color='blue'>手机app</font>)", notes = "根据计划任务ID查询计划任务详情和任务点(<font color='blue'>手机app</font>)")
@RequestMapping(value = "/queryPlanTaskById", produces = "application/json;charset=UTF-8", method = RequestMethod.GET)
@RequestMapping(value = "/point/{planTaskId}/list", produces = "application/json;charset=UTF-8", method = RequestMethod.GET)
public CommonResponse qryPlanTaskById(
@ApiParam(value = "巡检计划任务ID", required = true) @RequestParam(required = true) Long planTaskId) {
try {
Map<String, Object> response = new HashMap<String, Object>();
Map task = planTaskService.queryPlanTaskById(planTaskId);
if (ObjectUtils.isEmpty(task) || ObjectUtils.isEmpty(task.get("planTaskId"))) {
return CommonResponseUtil.failure("该计划已刷新,请重新选择!!!");
}
List points = planTaskService.getPlanTaskPoints(planTaskId);
// SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
// task.put("checkDate", task.get("checkDate").toString());
String[] userIds = task.get("userId").toString().split(",");
for (String userId : userIds) {
task.put("userId", userId);
}
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
task.put("checkDate", sdf.format(task.get("checkDate") != null ? sdf.parse(task.get("checkDate").toString()) : new Date()));
response.put("planTask", task);
response.put("points", points);
return CommonResponseUtil.success(response);
} catch (Exception e) {
return CommonResponseUtil.failure(e.getMessage());
}
@ApiParam(value = "巡检计划任务ID", required = true) @PathVariable Long planTaskId,
@ApiParam(value = "建筑id", required = true) @RequestParam(value = "buildingId",required = false) String buildingId,
@ApiParam(value = "维保状态", required = true) @RequestParam(value = "isFinish",required = false) String isFinish,
@ApiParam(value = "消防系统id", required = true) @RequestParam(value = "systemId",required = false) String systemId,
@ApiParam(value = "设备编号", required = true) @RequestParam(value = "pointNo",required = false) String pointNo,
@ApiParam(value = "设备名称", required = true) @RequestParam(value = "pointName",required = false) String pointName
) {
Map<String,Object> param = new HashMap<>();
param.put("planTaskId",planTaskId);
param.put("buildingId",buildingId);
param.put("isFinish",isFinish);
param.put("systemId",systemId);
param.put("pointNo",pointNo);
param.put("pointName",pointName);
return CommonResponseUtil.success(planTaskService.getPlanTaskPoints(param));
}
/**
......@@ -489,7 +462,7 @@ public class PlanTaskController extends AbstractBaseController {
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(value = "维保任务查询-mobile", notes = "根据用户条件查询所有计划任务")
@ApiOperation(value = "维保任务查询-mobile", notes = "根据用户条件查询所有计划任务-mobile")
@RequestMapping(value = "/queryPlanTask", produces = "application/json;charset=UTF-8", method = RequestMethod.GET)
public CommonResponse qryLoginUserPlanTask(
@ApiParam(value = "人员") @RequestParam(value = "userId", required = false) Long userId,
......@@ -500,7 +473,7 @@ public class PlanTaskController extends AbstractBaseController {
@ApiParam(value = "业主单位") @RequestParam(value = "companyId", required = false) String companyId,
@ApiParam(value = "当前页") @RequestParam(value = "pageNumber") int pageNumber,
@ApiParam(value = "页大小") @RequestParam(value = "pageSize") int pageSize) throws Exception {
HashMap<String, Object> params = new HashMap<String, Object>();
HashMap<String, Object> params = new HashMap<>();
ReginParams reginParams = getSelectedOrgInfo();
String loginOrgCode = getOrgCode(reginParams);
Map<String, Object> authMap = Bean.BeantoMap(reginParams.getPersonIdentity());
......@@ -513,11 +486,7 @@ public class PlanTaskController extends AbstractBaseController {
params.put("finishStatus", finishStatus);
params.put("orderBy", OrderByEnum.getEumByCode(orderBy).getOderBy());
CommonPageable pageable = new CommonPageable(pageNumber, pageSize);
try {
return CommonResponseUtil.success(planTaskService.getPlanTasks(params, pageable));
} catch (Exception e) {
return CommonResponseUtil.failure(e.getMessage());
}
return CommonResponseUtil.success(planTaskService.getPlanTasks(params, pageable));
}
......@@ -687,4 +656,14 @@ public class PlanTaskController extends AbstractBaseController {
return CommonResponseUtil.failure(e.getMessage());
}
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(value = "查询维保设施,检查内容详情")
@GetMapping(value = "/task-point-detail")
public CommonResponse planTaskPointDetail(
@RequestParam(value = "routePointId") String routePointId,
@RequestParam(value = "id") String planTaskDetailId
){
return CommonResponseUtil.success(planTaskService.planTaskPointDetail(planTaskDetailId,routePointId));
}
}
......@@ -32,4 +32,6 @@ public interface InputItemMapper {
List<PointInputItemVo> queryCustomInputItemByPointId(@Param("pointId") Long pointId, @Param("equipmentId") String equipmentName);
Integer insertList(List<InputItem> list);
List<Map<String, Object>> queryInputItemInRountPoint(String routePointId);
}
......@@ -77,10 +77,10 @@ public interface PlanTaskMapper extends BaseMapper {
Map queryPlanTaskById(@Param(value="planTaskId") Long planTaskId);
/**
* 通过计划任务Id获取任务所有点信息
* @param planTaskId
* @param param
* @return
*/
List getPlanTaskPoints(@Param(value="planTaskId") Long planTaskId);
List<Map<String,Object>> getPlanTaskPoints(Map<String, Object> param);
/**
* 获取用户当前所有可以做的任务个数
* @param userId
......
......@@ -15,8 +15,6 @@ public interface IRoutePointDao extends BaseDao<RoutePoint, Long> {
@Query(value = "SELECT COUNT( point_id ) FROM `p_route_point` where route_id = ?1", nativeQuery = true)
int countRoutePoint(Long routeId);
@Query(value = "SELECT * FROM `p_route_point` where point_id = ?1", nativeQuery = true)
List<RoutePoint> queryByPointId(Long pointId);
@Query(value = "SELECT IfNULL(max(order_no),0) FROM `p_route_point` where route_id = ?1", nativeQuery = true)
int maxRoutePointOrderNo(Long routeId);
......@@ -38,11 +36,6 @@ public interface IRoutePointDao extends BaseDao<RoutePoint, Long> {
@Query(value = "select point_id from p_route_point WHERE route_id = ?1", nativeQuery = true)
List<Long> findAllByRouteId(Long routeId);
@Modifying
@Transactional
@Query(value = "delete from p_route_point WHERE point_id in (?1)", nativeQuery = true)
void delRoutePointByPointId(List<Long> pointIds);
@Query(value = "SELECT id FROM p_route_point WHERE point_id IN (?1)", nativeQuery = true)
List<BigInteger> queryRoutePointByPointId(List<Long> pointIds);
......
......@@ -7,13 +7,13 @@ import com.google.common.base.Joiner;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
import com.yeejoin.amos.feign.privilege.model.DepartmentModel;
import com.yeejoin.amos.maintenance.business.constants.XJConstant;
import com.yeejoin.amos.maintenance.business.dao.mapper.InputItemMapper;
import com.yeejoin.amos.maintenance.business.dao.mapper.PlanMapper;
import com.yeejoin.amos.maintenance.business.dao.mapper.PlanTaskDetailMapper;
import com.yeejoin.amos.maintenance.business.dao.mapper.PlanTaskMapper;
import com.yeejoin.amos.maintenance.business.dao.repository.*;
import com.yeejoin.amos.maintenance.business.entity.mybatis.CheckChkExListBo;
import com.yeejoin.amos.maintenance.business.entity.mybatis.PointCheckDetailBo;
import com.yeejoin.amos.maintenance.business.feign.Business;
import com.yeejoin.amos.maintenance.business.feign.EquipFeign;
import com.yeejoin.amos.maintenance.business.param.CheckPtListPageParam;
import com.yeejoin.amos.maintenance.business.param.PlanTaskPageParam;
......@@ -30,15 +30,13 @@ import com.yeejoin.amos.maintenance.core.common.response.AppCheckInputRespone;
import com.yeejoin.amos.maintenance.core.common.response.AppPointCheckRespone;
import com.yeejoin.amos.maintenance.core.util.DateUtil;
import com.yeejoin.amos.maintenance.core.util.StringUtil;
import com.yeejoin.amos.maintenance.dao.entity.Check;
import com.yeejoin.amos.maintenance.dao.entity.Plan;
import com.yeejoin.amos.maintenance.dao.entity.PlanTask;
import com.yeejoin.amos.maintenance.dao.entity.PlanTaskDetail;
import com.yeejoin.amos.maintenance.dao.entity.*;
import com.yeejoin.amos.maintenance.exception.YeeException;
import com.yeejoin.amos.maintenance.feign.RemoteSecurityService;
import com.yeejoin.amos.maintenance.quartz.IJobService;
import org.apache.commons.collections.CollectionUtils;
import org.assertj.core.util.Lists;
import org.omg.CORBA.OBJ_ADAPTER;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -85,10 +83,16 @@ public class PlanTaskServiceImpl implements IPlanTaskService {
private ICheckService checkService;
@Autowired
private Business business;
private EquipFeign equipFeign;
@Autowired
private EquipFeign equipFeign;
IPointDao iPointDao;
@Autowired
IPlanTaskDetailDao iPlanTaskDetailDao;
@Autowired
InputItemMapper inputItemMapper;
@Override
public Page<HashMap<String, Object>> getPlanTaskInfo(PlanTaskPageParam params) {
......@@ -582,8 +586,8 @@ public class PlanTaskServiceImpl implements IPlanTaskService {
}
@Override
public List getPlanTaskPoints(Long planTaskId) {
return planTaskMapper.getPlanTaskPoints(planTaskId);
public List getPlanTaskPoints(Map<String, Object> param) {
return planTaskMapper.getPlanTaskPoints(param);
}
@Override
......@@ -1009,4 +1013,34 @@ public class PlanTaskServiceImpl implements IPlanTaskService {
}
return result;
}
@Override
public Map<String, Object> planTaskPointDetail(String planTaskDetailId, String routePointId) {
Map<String,Object> result = new LinkedHashMap<>();
Optional<RoutePoint> rOp = iRoutePointDao.findById(Long.parseLong(routePointId));
RoutePoint routePoint = rOp.orElseThrow(()->new RuntimeException("计划清单不存在该点"));
Point point = iPointDao.findById(routePoint.getPointId()).orElseThrow(()->new RuntimeException("维保项不存在"));
PlanTaskDetail planTaskDetail = iPlanTaskDetailDao.findById(Long.parseLong(planTaskDetailId)).orElseThrow(()->new RuntimeException("任务不存在"));
PlanTask planTask = iplanTaskDao.findById(planTaskDetail.getTaskNo()).orElseThrow(()->new RuntimeException("主任务不存在"));
Map<String,Object> facility = this.buildFacilityDetail(point,planTask);
List<Map<String, Object>> itemList = this.buildCheckInputItem(routePointId);
result.put("facility",facility);
result.put("itemList",itemList);
return result;
}
private List<Map<String, Object>> buildCheckInputItem(String routePointId) {
return inputItemMapper.queryInputItemInRountPoint(routePointId);
}
private Map<String, Object> buildFacilityDetail(Point point, PlanTask planTask) {
Map<String,Object> facility = new LinkedHashMap<>();
facility.put("name",point.getName());
facility.put("pointId",point.getId());
facility.put("point_no",point.getPointNo());
facility.put("position",point.getBuildingName() + point.getAddress());
facility.put("userName",planTask.getUserName());
facility.put("riskAndManage",point.getRemark());
return facility;
}
}
......@@ -91,10 +91,10 @@ public interface IPlanTaskService {
/**
* 根据计划ID获取所有的 任务计划巡检点
* @param planTaskId
* @param param
* @return
*/
List getPlanTaskPoints(Long planTaskId);
List getPlanTaskPoints(Map<String, Object> param);
/**
* 获取用户当前所有有的计划任务
......@@ -149,4 +149,13 @@ public interface IPlanTaskService {
List<Map<String,Object>> queryPlanTaskTimeAxis(Long userId,Integer createDate);
List<Map<String,Object>> queryTimeAxis(Long userId,Integer createDate);
/**
* 任务点详情
*
* @param planTaskDetailId 子表id
* @param routePointId 关系表id
* @return Map<String, Object>
*/
Map<String, Object> planTaskPointDetail(String planTaskDetailId, String routePointId);
}
......@@ -16,4 +16,26 @@
ALTER TABLE p_point ADD COLUMN `last_check_id` varchar(32) DEFAULT NULL COMMENT '最近检查记录(漏检不算)' AFTER `original_id`;
</sql>
</changeSet>
<changeSet author="suhuiguang" id="1628747347004-1">
<preConditions onFail="MARK_RAN">
<not>
<columnExists tableName="p_point" columnName="building_id"/>
</not>
</preConditions>
<comment>p_point ADD COLUMN building_id 需求变更</comment>
<sql>
ALTER TABLE p_point ADD COLUMN `building_id` varchar(32) DEFAULT NULL COMMENT '所在建筑' AFTER `address`;
</sql>
</changeSet>
<changeSet author="suhuiguang" id="1628747347004-2">
<preConditions onFail="MARK_RAN">
<not>
<columnExists tableName="p_point" columnName="building_name"/>
</not>
</preConditions>
<comment>p_point ADD COLUMN building_name 需求变更</comment>
<sql>
ALTER TABLE p_point ADD COLUMN `building_name` varchar(255) DEFAULT NULL COMMENT '所在建筑名称' AFTER `building_id`;
</sql>
</changeSet>
</databaseChangeLog>
\ No newline at end of file
......@@ -230,6 +230,26 @@
and org_Code = #{orgCode}
</if>
</select>
<select id="queryInputItemInRountPoint" resultType="java.util.Map">
SELECT
pii.id,
pii.`name` inputName,
pii.item_type itemType,
pii.test_requirement testRequirement,
pii.data_json dataJson,
pii.is_must isMust,
pii.picture_json pictureJson,
pii.order_no orderNo,
prpi.id as routePointItemId
FROM
p_route_point_item prpi
LEFT JOIN p_point_inputitem ppii ON ppii.id = prpi.point_input_item_id
LEFT JOIN p_input_item pii ON pii.id = ppii.input_item_id
WHERE
prpi.route_point_id = #{routePointId}
ORDER BY
prpi.order_no
</select>
<insert id="insertList" parameterType="java.util.List">
INSERT INTO p_input_item (
`org_code`, `name`, `item_type`,
......
......@@ -336,28 +336,32 @@
where 1 = 1
<if test="planTaskId != null and planTaskId >0 "> and a.planTaskId = #{planTaskId} </if>
</select>
<select id="getPlanTaskPoints" resultType="Map">
SELECT
ptd.id,
p.name,
p.id pointId,
p.point_no pointNO,
p.offline,
p.point_no pointNo,
concat_ws(' ',p.building_name,p.address) as position,
p.belong_system_name as belongSystemName,
ptd.status,
ptd.is_finish finish,
p.is_fixed isFixed,
pt.route_id routeId,
ptd.is_finish as isFinish,
pt.route_id as routeId,
c.id checkId,
prp.order_no orderNo
prp.order_no orderNo,
prp.id as routePointId
FROM
p_plan_task_detail ptd
LEFT JOIN p_plan_task pt ON pt.id = ptd.task_no
LEFT JOIN p_point p ON p.id = ptd.point_id
LEFT JOIN p_check c ON c.plan_task_detail_id = ptd.id
LEFT JOIN p_route_point prp ON prp.point_id = ptd.point_id AND prp.route_id = pt.route_id
LEFT JOIN p_plan_task pt ON pt.id = ptd.task_no
LEFT JOIN p_point p ON p.id = ptd.point_id
LEFT JOIN p_check c ON c.plan_task_detail_id = ptd.id
LEFT JOIN p_route_point prp ON prp.point_id = ptd.point_id AND prp.route_id = pt.route_id
WHERE
p.is_delete = 0
<if test="planTaskId != null and planTaskId > 0 ">and pt.id = #{planTaskId}</if>
p.is_delete = 0 and pt.id = #{planTaskId}
<if test="buildingId != null and buildingId != ''">and find_in_set(p.building_id,#{buildingId})</if>
<if test="isFinish != null and isFinish != ''">and ptd.is_finish = #{isFinish}</if>
<if test="systemId != null and systemId != ''">and p.belong_system_id = #{systemId}</if>
<if test="pointNo != null and pointNo != ''">and p.point_no = #{pointNo}</if>
<if test="pointName != null and pointName != ''">and p.name like CONCAT ('%',#{pointName},'%')</if>
ORDER BY orderNo
</select>
......@@ -712,100 +716,6 @@
<if test="routeId != null">prp.route_id = #{routeId}</if>
<if test="pointId != null">and prp.point_id = #{pointId}</if>
</where>
<!--
SELECT
ii.*, pii.classify_ids, group_concat(ppc.name) classifyNames
FROM
p_input_item ii
LEFT JOIN p_point_inputitem pii ON pii.input_item_id = ii.id
LEFT JOIN p_point_classify ppc on pii.classify_ids REGEXP CONCAT(
'^',
ppc.id,
',|,',
ppc.id,
',|,',
ppc.id,
'$',
'|^',
ppc.id,
'$'
)
LEFT JOIN p_route_point_item prpi ON prpi.point_input_item_id = pii.id,
(
SELECT
id AS route_point_id
FROM
p_route_point rp
<where>
<if test="routeId != null">route_id = #{routeId}</if>
<if test="pointId != null">and point_id = #{pointId}</if>
</where>
) prp
WHERE
prp.route_point_id = prpi.route_point_id
GROUP BY ii.id,
ii.org_code,
ii.name,
ii.order_no,
ii.item_type,
ii.is_must,
ii.is_score,
ii.default_value,
ii.is_multiline,
ii.catalog_id,
ii.input_json,
ii.data_json,
ii.remark,
ii.picture_json,
ii.create_by,
ii.create_date,
ii.is_delete,
ii.level
, pii.classify_ids
SELECT
*
FROM
p_point_inputitem
WHERE
id IN (
SELECT
point_input_item_id
FROM
p_route_point_item prpi,
(
SELECT
id AS route_point_id
FROM
p_route_point
<where>
<if test="routeId != null">route_id = #{routeId}</if>
<if test="pointId != null">and point_id = #{pointId}</if>
</where>
) prp
WHERE
prp.route_point_id = prpi.route_point_id
) -->
</select>
<select id="queryPointClassifyByRouteIdAndPointId" resultType="Map">
SELECT
ppc.id,
ppc.point_id pointId,
ppc.`name`,
ppc.order_no orderNo
FROM
`p_route_point_item` prpi
LEFT JOIN p_route_point prp ON prp.id = prpi.route_point_id
LEFT JOIN p_point_classify ppc ON ppc.id = prpi.point_classify_id
WHERE
prp.route_id = #{routeId}
AND prp.point_id = #{pointId}
GROUP BY
ppc.id,
ppc.point_id,
ppc.`name`,
ppc.order_no
</select>
<select id="queryLeavePlanTask" resultMap="LeavePlanTaskMap">
......
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