修改bug
This commit is contained in:
@ -26,7 +26,7 @@ import java.util.stream.Collectors;
|
|||||||
* @date 2025/6/18 15:59
|
* @date 2025/6/18 15:59
|
||||||
*/
|
*/
|
||||||
@Slf4j
|
@Slf4j
|
||||||
//@Component
|
@Component
|
||||||
public class IncSyncYs7DeviceCapturePicData {
|
public class IncSyncYs7DeviceCapturePicData {
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
|
@ -31,7 +31,6 @@ public class MatMaterialIssueItemDto {
|
|||||||
/**
|
/**
|
||||||
* 名称
|
* 名称
|
||||||
*/
|
*/
|
||||||
@NotBlank(message = "名称不能为空")
|
|
||||||
private String name;
|
private String name;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -49,7 +48,6 @@ public class MatMaterialIssueItemDto {
|
|||||||
/**
|
/**
|
||||||
* 库存
|
* 库存
|
||||||
*/
|
*/
|
||||||
@NotNull(message = "库存数量不能为空")
|
|
||||||
private BigDecimal stockQuantity;
|
private BigDecimal stockQuantity;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -61,7 +59,6 @@ public class MatMaterialIssueItemDto {
|
|||||||
/**
|
/**
|
||||||
* 剩余
|
* 剩余
|
||||||
*/
|
*/
|
||||||
@NotNull(message = "剩余数量不能为空")
|
|
||||||
private BigDecimal remainingQuantity;
|
private BigDecimal remainingQuantity;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -239,7 +239,6 @@ public class MatMaterialIssueServiceImpl extends ServiceImpl<MatMaterialIssueMap
|
|||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public Boolean insertByBo(MatMaterialIssueCreateReq req) {
|
public Boolean insertByBo(MatMaterialIssueCreateReq req) {
|
||||||
String nickname = LoginHelper.getLoginUser().getNickname();
|
|
||||||
MatMaterialIssue materialIssue = new MatMaterialIssue();
|
MatMaterialIssue materialIssue = new MatMaterialIssue();
|
||||||
BeanUtils.copyProperties(req, materialIssue);
|
BeanUtils.copyProperties(req, materialIssue);
|
||||||
validEntityBeforeSave(materialIssue, true);
|
validEntityBeforeSave(materialIssue, true);
|
||||||
|
@ -211,7 +211,12 @@ public class OthYs7DeviceImgServiceImpl extends ServiceImpl<OthYs7DeviceImgMappe
|
|||||||
othYs7DeviceImg.setUrl(ossUrl);
|
othYs7DeviceImg.setUrl(ossUrl);
|
||||||
// 将抓取的图片进行识别
|
// 将抓取的图片进行识别
|
||||||
List<RecognizerTypeEnum> recTypes = List.of(RecognizerTypeEnum.HARDHAT, RecognizerTypeEnum.SMOKING, RecognizerTypeEnum.FIRE);
|
List<RecognizerTypeEnum> recTypes = List.of(RecognizerTypeEnum.HARDHAT, RecognizerTypeEnum.SMOKING, RecognizerTypeEnum.FIRE);
|
||||||
RecognizeVo recognizeVo = recognizerManager.recognize(ossUrl, recTypes);
|
RecognizeVo recognizeVo = null;
|
||||||
|
try {
|
||||||
|
recognizeVo = recognizerManager.recognize(ossUrl, recTypes);
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error("图片识别异常", e);
|
||||||
|
}
|
||||||
if (recognizeVo != null && recognizeVo.getHasTarget().equals(RecognizerHasTargetEnum.YES.getValue())) {
|
if (recognizeVo != null && recognizeVo.getHasTarget().equals(RecognizerHasTargetEnum.YES.getValue())) {
|
||||||
// 记录识别信息
|
// 记录识别信息
|
||||||
HseRecognizeRecordCreateDto record = new HseRecognizeRecordCreateDto();
|
HseRecognizeRecordCreateDto record = new HseRecognizeRecordCreateDto();
|
||||||
|
@ -119,8 +119,8 @@ public class BusProjectController extends BaseController {
|
|||||||
*/
|
*/
|
||||||
@SaCheckPermission("project:project:listProjectContractorList")
|
@SaCheckPermission("project:project:listProjectContractorList")
|
||||||
@GetMapping("/list/project/contractorList")
|
@GetMapping("/list/project/contractorList")
|
||||||
public R<List<BusProjectContractorListVo>> listProjectContractorList() {
|
public R<List<BusProjectContractorTeamListVo>> listProjectContractorList() {
|
||||||
return R.ok(projectService.queryProjectContractorList());
|
return R.ok(projectService.queryContractorTeamList());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1,10 +1,7 @@
|
|||||||
package org.dromara.project.controller.app;
|
package org.dromara.project.controller.app;
|
||||||
|
|
||||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import jakarta.validation.constraints.NotNull;
|
|
||||||
import org.dromara.common.core.domain.R;
|
import org.dromara.common.core.domain.R;
|
||||||
import org.dromara.common.core.validate.AddGroup;
|
|
||||||
import org.dromara.common.idempotent.annotation.RepeatSubmit;
|
import org.dromara.common.idempotent.annotation.RepeatSubmit;
|
||||||
import org.dromara.common.log.annotation.Log;
|
import org.dromara.common.log.annotation.Log;
|
||||||
import org.dromara.common.log.enums.BusinessType;
|
import org.dromara.common.log.enums.BusinessType;
|
||||||
@ -12,11 +9,8 @@ import org.dromara.common.mybatis.core.page.PageQuery;
|
|||||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||||
import org.dromara.common.satoken.utils.LoginHelper;
|
import org.dromara.common.satoken.utils.LoginHelper;
|
||||||
import org.dromara.common.web.core.BaseController;
|
import org.dromara.common.web.core.BaseController;
|
||||||
import org.dromara.contractor.domain.SubConstructionUser;
|
|
||||||
import org.dromara.contractor.service.ISubConstructionUserService;
|
import org.dromara.contractor.service.ISubConstructionUserService;
|
||||||
import org.dromara.project.domain.bo.BusAttendanceBo;
|
|
||||||
import org.dromara.project.domain.dto.leave.BusLeaveAddReq;
|
import org.dromara.project.domain.dto.leave.BusLeaveAddReq;
|
||||||
import org.dromara.project.domain.dto.leave.BusLeaveManagerReviewReq;
|
|
||||||
import org.dromara.project.domain.dto.leave.BusLeaveQueryReq;
|
import org.dromara.project.domain.dto.leave.BusLeaveQueryReq;
|
||||||
import org.dromara.project.domain.vo.leave.BusLeaveVo;
|
import org.dromara.project.domain.vo.leave.BusLeaveVo;
|
||||||
import org.dromara.project.service.IBusLeaveService;
|
import org.dromara.project.service.IBusLeaveService;
|
||||||
@ -24,6 +18,8 @@ import org.springframework.validation.annotation.Validated;
|
|||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* 施工人员请假申请 app 接口
|
||||||
|
*
|
||||||
* @author lilemy
|
* @author lilemy
|
||||||
* @date 2025-07-24 14:51
|
* @date 2025-07-24 14:51
|
||||||
*/
|
*/
|
||||||
@ -60,11 +56,4 @@ public class BusLeaveAppController extends BaseController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,11 +1,13 @@
|
|||||||
package org.dromara.project.controller.app;
|
package org.dromara.project.controller.app;
|
||||||
|
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
|
import jakarta.validation.constraints.NotNull;
|
||||||
import org.dromara.common.core.domain.R;
|
import org.dromara.common.core.domain.R;
|
||||||
import org.dromara.project.domain.vo.project.BusProjectContractorListVo;
|
import org.dromara.project.domain.vo.project.BusProjectContractorTeamListVo;
|
||||||
import org.dromara.project.service.IBusProjectService;
|
import org.dromara.project.service.IBusProjectService;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
|
import org.springframework.web.bind.annotation.PathVariable;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
@ -26,10 +28,19 @@ public class BusProjectAppController {
|
|||||||
private IBusProjectService projectService;
|
private IBusProjectService projectService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询项目以及项目下的分包公司列表
|
* 查询项目以及项目下的分包公司、班组列表
|
||||||
*/
|
*/
|
||||||
@GetMapping("/list/project/contractorList")
|
@GetMapping("/contractorTeamList")
|
||||||
public R<List<BusProjectContractorListVo>> listProjectContractorList() {
|
public R<List<BusProjectContractorTeamListVo>> listContractorList() {
|
||||||
return R.ok(projectService.queryProjectContractorList());
|
return R.ok(projectService.queryContractorTeamList());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据 id 查询项目以及项目下的分包公司、班组列表
|
||||||
|
*/
|
||||||
|
@GetMapping("/contractorTeamList/{id}")
|
||||||
|
public R<BusProjectContractorTeamListVo> listContractorListById(@NotNull(message = "主键不能为空")
|
||||||
|
@PathVariable Long id) {
|
||||||
|
return R.ok(projectService.queryContractorTeamListById(id));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -9,9 +9,7 @@ import org.dromara.common.mybatis.core.page.PageQuery;
|
|||||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||||
import org.dromara.common.satoken.utils.LoginHelper;
|
import org.dromara.common.satoken.utils.LoginHelper;
|
||||||
import org.dromara.common.web.core.BaseController;
|
import org.dromara.common.web.core.BaseController;
|
||||||
import org.dromara.contractor.domain.SubConstructionUser;
|
|
||||||
import org.dromara.contractor.service.ISubConstructionUserService;
|
import org.dromara.contractor.service.ISubConstructionUserService;
|
||||||
import org.dromara.project.domain.dto.leave.BusLeaveAddReq;
|
|
||||||
import org.dromara.project.domain.dto.reissuecard.BusReissueCardAddReq;
|
import org.dromara.project.domain.dto.reissuecard.BusReissueCardAddReq;
|
||||||
import org.dromara.project.domain.dto.reissuecard.BusReissueCardQueryReq;
|
import org.dromara.project.domain.dto.reissuecard.BusReissueCardQueryReq;
|
||||||
import org.dromara.project.domain.vo.reissuecard.BusReissueCardVo;
|
import org.dromara.project.domain.vo.reissuecard.BusReissueCardVo;
|
||||||
@ -20,6 +18,8 @@ import org.springframework.validation.annotation.Validated;
|
|||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* 施工人员补卡申请 app 接口
|
||||||
|
*
|
||||||
* @author lilemy
|
* @author lilemy
|
||||||
* @date 2025-07-24 14:51
|
* @date 2025-07-24 14:51
|
||||||
*/
|
*/
|
||||||
|
@ -12,7 +12,7 @@ import java.util.List;
|
|||||||
* @date 2025/3/31 16:16
|
* @date 2025/3/31 16:16
|
||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
public class BusProjectContractorListVo implements Serializable {
|
public class BusProjectContractorTeamListVo implements Serializable {
|
||||||
|
|
||||||
@Serial
|
@Serial
|
||||||
private static final long serialVersionUID = 3089953733712392942L;
|
private static final long serialVersionUID = 3089953733712392942L;
|
||||||
@ -32,4 +32,9 @@ public class BusProjectContractorListVo implements Serializable {
|
|||||||
*/
|
*/
|
||||||
private List<IdAndNameVO> contractorList;
|
private List<IdAndNameVO> contractorList;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 项目下的班组列表
|
||||||
|
*/
|
||||||
|
private List<IdAndNameVO> teamList;
|
||||||
|
|
||||||
}
|
}
|
@ -63,11 +63,19 @@ public interface IBusProjectService extends IService<BusProject> {
|
|||||||
List<BusSubProjectMatrixVo> querySubProjectMatrixList(Long id);
|
List<BusSubProjectMatrixVo> querySubProjectMatrixList(Long id);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询当前登录用户项目列表以及项目列表下的分包公司列表
|
* 查询当前登录用户项目列表以及项目列表下的分包公司、班组列表
|
||||||
*
|
*
|
||||||
* @return 项目列表以及项目列表下的分包公司列表
|
* @return 项目列表以及项目列表下的分包公司、班组列表
|
||||||
*/
|
*/
|
||||||
List<BusProjectContractorListVo> queryProjectContractorList();
|
List<BusProjectContractorTeamListVo> queryContractorTeamList();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据项目id查询项目下的分包公司、班组列表
|
||||||
|
*
|
||||||
|
* @param id 项目id
|
||||||
|
* @return 项目下的分包公司、班组列表
|
||||||
|
*/
|
||||||
|
BusProjectContractorTeamListVo queryContractorTeamListById(Long id);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 新增项目
|
* 新增项目
|
||||||
|
@ -44,18 +44,12 @@ import org.dromara.progress.domain.vo.progresscategory.PgsProgressCategoryStruct
|
|||||||
import org.dromara.progress.service.IPgsProgressCategoryService;
|
import org.dromara.progress.service.IPgsProgressCategoryService;
|
||||||
import org.dromara.progress.service.IPgsProgressCategoryTemplateService;
|
import org.dromara.progress.service.IPgsProgressCategoryTemplateService;
|
||||||
import org.dromara.project.constant.BusProjectConstant;
|
import org.dromara.project.constant.BusProjectConstant;
|
||||||
import org.dromara.project.domain.BusProject;
|
import org.dromara.project.domain.*;
|
||||||
import org.dromara.project.domain.BusProjectFile;
|
|
||||||
import org.dromara.project.domain.BusProjectPunchrange;
|
|
||||||
import org.dromara.project.domain.BusUserProjectRelevancy;
|
|
||||||
import org.dromara.project.domain.bo.Punchrange;
|
import org.dromara.project.domain.bo.Punchrange;
|
||||||
import org.dromara.project.domain.dto.project.*;
|
import org.dromara.project.domain.dto.project.*;
|
||||||
import org.dromara.project.domain.vo.project.*;
|
import org.dromara.project.domain.vo.project.*;
|
||||||
import org.dromara.project.mapper.BusProjectMapper;
|
import org.dromara.project.mapper.BusProjectMapper;
|
||||||
import org.dromara.project.service.IBusProjectFileService;
|
import org.dromara.project.service.*;
|
||||||
import org.dromara.project.service.IBusProjectPunchrangeService;
|
|
||||||
import org.dromara.project.service.IBusProjectService;
|
|
||||||
import org.dromara.project.service.IBusUserProjectRelevancyService;
|
|
||||||
import org.dromara.quality.service.IQltKnowledgeDocumentService;
|
import org.dromara.quality.service.IQltKnowledgeDocumentService;
|
||||||
import org.dromara.safety.service.IHseKnowledgeDocumentService;
|
import org.dromara.safety.service.IHseKnowledgeDocumentService;
|
||||||
import org.dromara.workflow.service.IFlwDefinitionService;
|
import org.dromara.workflow.service.IFlwDefinitionService;
|
||||||
@ -138,6 +132,10 @@ public class BusProjectServiceImpl extends ServiceImpl<BusProjectMapper, BusProj
|
|||||||
@Resource
|
@Resource
|
||||||
private IPgsProgressCategoryService progressCategoryService;
|
private IPgsProgressCategoryService progressCategoryService;
|
||||||
|
|
||||||
|
@Lazy
|
||||||
|
@Resource
|
||||||
|
private IBusProjectTeamService projectTeamService;
|
||||||
|
|
||||||
private final Cache<String, String> WEATHER_CACHE =
|
private final Cache<String, String> WEATHER_CACHE =
|
||||||
Caffeine.newBuilder().initialCapacity(1024)
|
Caffeine.newBuilder().initialCapacity(1024)
|
||||||
.maximumSize(10000L)
|
.maximumSize(10000L)
|
||||||
@ -274,12 +272,12 @@ public class BusProjectServiceImpl extends ServiceImpl<BusProjectMapper, BusProj
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询当前登录用户项目列表以及项目列表下的分包公司列表
|
* 查询当前登录用户项目列表以及项目列表下的分包公司、班组列表
|
||||||
*
|
*
|
||||||
* @return 项目列表以及项目列表下的分包公司列表
|
* @return 项目列表以及项目列表下的分包公司、班组列表
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public List<BusProjectContractorListVo> queryProjectContractorList() {
|
public List<BusProjectContractorTeamListVo> queryContractorTeamList() {
|
||||||
Long userId = LoginHelper.getUserId();
|
Long userId = LoginHelper.getUserId();
|
||||||
// 获取当前登录用户的项目列表
|
// 获取当前登录用户的项目列表
|
||||||
LambdaQueryWrapper<BusUserProjectRelevancy> userProjectRelevancyLqw = Wrappers.lambdaQuery(BusUserProjectRelevancy.class)
|
LambdaQueryWrapper<BusUserProjectRelevancy> userProjectRelevancyLqw = Wrappers.lambdaQuery(BusUserProjectRelevancy.class)
|
||||||
@ -299,7 +297,7 @@ public class BusProjectServiceImpl extends ServiceImpl<BusProjectMapper, BusProj
|
|||||||
return !CollUtil.isEmpty(contractorList); // 过滤掉没有分包单位的项目
|
return !CollUtil.isEmpty(contractorList); // 过滤掉没有分包单位的项目
|
||||||
})
|
})
|
||||||
.map(project -> {
|
.map(project -> {
|
||||||
BusProjectContractorListVo projectContractorListResp = new BusProjectContractorListVo();
|
BusProjectContractorTeamListVo projectContractorListResp = new BusProjectContractorTeamListVo();
|
||||||
// 添加项目信息
|
// 添加项目信息
|
||||||
projectContractorListResp.setId(project.getId());
|
projectContractorListResp.setId(project.getId());
|
||||||
projectContractorListResp.setProjectName(project.getProjectName());
|
projectContractorListResp.setProjectName(project.getProjectName());
|
||||||
@ -312,6 +310,45 @@ public class BusProjectServiceImpl extends ServiceImpl<BusProjectMapper, BusProj
|
|||||||
}).toList();
|
}).toList();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据项目id查询项目下的分包公司、班组列表
|
||||||
|
*
|
||||||
|
* @param id 项目id
|
||||||
|
* @return 项目下的分包公司、班组列表
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public BusProjectContractorTeamListVo queryContractorTeamListById(Long id) {
|
||||||
|
BusProjectContractorTeamListVo vo = new BusProjectContractorTeamListVo();
|
||||||
|
BusProject project = this.getById(id);
|
||||||
|
if (project == null) {
|
||||||
|
throw new ServiceException("对应项目不存在", HttpStatus.NOT_FOUND);
|
||||||
|
}
|
||||||
|
vo.setId(id);
|
||||||
|
vo.setProjectName(project.getProjectName());
|
||||||
|
// 获取分包信息
|
||||||
|
List<SubContractor> contractorList = contractorService.lambdaQuery()
|
||||||
|
.eq(SubContractor::getProjectId, id)
|
||||||
|
.list();
|
||||||
|
if (CollUtil.isEmpty(contractorList)) {
|
||||||
|
return vo;
|
||||||
|
}
|
||||||
|
List<IdAndNameVO> idAndNameVOS = contractorList.stream()
|
||||||
|
.map(contractor -> IdAndNameVO.build(contractor.getId(), contractor.getName())).toList();
|
||||||
|
vo.setContractorList(idAndNameVOS);
|
||||||
|
// 获取班组信息
|
||||||
|
List<BusProjectTeam> teamList = projectTeamService.lambdaQuery()
|
||||||
|
.eq(BusProjectTeam::getProjectId, id)
|
||||||
|
.list();
|
||||||
|
if (CollUtil.isEmpty(teamList)) {
|
||||||
|
return vo;
|
||||||
|
}
|
||||||
|
List<IdAndNameVO> teamIdAndNameVOS = teamList.stream()
|
||||||
|
.map(projectTeam -> IdAndNameVO.build(projectTeam.getId(), projectTeam.getTeamName()))
|
||||||
|
.toList();
|
||||||
|
vo.setTeamList(teamIdAndNameVOS);
|
||||||
|
return vo;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 新增项目
|
* 新增项目
|
||||||
*
|
*
|
||||||
|
@ -0,0 +1,70 @@
|
|||||||
|
package org.dromara.safety.controller.app;
|
||||||
|
|
||||||
|
import jakarta.annotation.Resource;
|
||||||
|
import jakarta.validation.constraints.NotNull;
|
||||||
|
import org.dromara.common.core.domain.R;
|
||||||
|
import org.dromara.common.idempotent.annotation.RepeatSubmit;
|
||||||
|
import org.dromara.common.log.annotation.Log;
|
||||||
|
import org.dromara.common.log.enums.BusinessType;
|
||||||
|
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||||
|
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||||
|
import org.dromara.common.web.core.BaseController;
|
||||||
|
import org.dromara.safety.domain.dto.violationrecord.HseViolationRecordCreateHandlerReq;
|
||||||
|
import org.dromara.safety.domain.dto.violationrecord.HseViolationRecordQueryReq;
|
||||||
|
import org.dromara.safety.domain.dto.violationrecord.HseViolationRecordRectificationReq;
|
||||||
|
import org.dromara.safety.domain.vo.violationrecord.HseViolationRecordVo;
|
||||||
|
import org.dromara.safety.service.IHseViolationRecordService;
|
||||||
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 违规记录 app 接口
|
||||||
|
*
|
||||||
|
* @author lilemy
|
||||||
|
* @date 2025-09-02 18:17
|
||||||
|
*/
|
||||||
|
@Validated
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/app/safety/violationRecord")
|
||||||
|
public class HseViolationRecordAppController extends BaseController {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private IHseViolationRecordService violationRecordService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询违规记录列表
|
||||||
|
*/
|
||||||
|
@GetMapping("/list")
|
||||||
|
public TableDataInfo<HseViolationRecordVo> queryPageList(HseViolationRecordQueryReq req, PageQuery pageQuery) {
|
||||||
|
return violationRecordService.queryPageList(req, pageQuery);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取违规记录详细信息
|
||||||
|
*/
|
||||||
|
@GetMapping("/{id}")
|
||||||
|
public R<HseViolationRecordVo> getInfo(@NotNull(message = "主键不能为空")
|
||||||
|
@PathVariable Long id) {
|
||||||
|
return R.ok(violationRecordService.queryById(id));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增违规记录处理人
|
||||||
|
*/
|
||||||
|
@Log(title = "违规记录", businessType = BusinessType.INSERT)
|
||||||
|
@RepeatSubmit()
|
||||||
|
@PostMapping("/handler")
|
||||||
|
public R<Void> insertHandler(@Validated @RequestBody HseViolationRecordCreateHandlerReq req) {
|
||||||
|
return toAjax(violationRecordService.insertHandler(req));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增违规记录整改
|
||||||
|
*/
|
||||||
|
@Log(title = "违规记录", businessType = BusinessType.INSERT)
|
||||||
|
@RepeatSubmit()
|
||||||
|
@PostMapping("/rectification")
|
||||||
|
public R<Void> insertRectification(@Validated @RequestBody HseViolationRecordRectificationReq req) {
|
||||||
|
return toAjax(violationRecordService.insertRectification(req));
|
||||||
|
}
|
||||||
|
}
|
@ -7,6 +7,7 @@ import lombok.EqualsAndHashCode;
|
|||||||
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
import org.dromara.common.mybatis.core.domain.BaseEntity;
|
||||||
|
|
||||||
import java.io.Serial;
|
import java.io.Serial;
|
||||||
|
import java.time.LocalDate;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -72,7 +73,7 @@ public class HseViolationRecord extends BaseEntity {
|
|||||||
/**
|
/**
|
||||||
* 处理期限
|
* 处理期限
|
||||||
*/
|
*/
|
||||||
private Date disposeDeadline;
|
private LocalDate disposeDeadline;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 处理时间
|
* 处理时间
|
||||||
@ -89,6 +90,11 @@ public class HseViolationRecord extends BaseEntity {
|
|||||||
*/
|
*/
|
||||||
private Date rectificationTime;
|
private Date rectificationTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 整改附件
|
||||||
|
*/
|
||||||
|
private String rectificationFile;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 复查情况
|
* 复查情况
|
||||||
*/
|
*/
|
||||||
|
@ -1,15 +1,13 @@
|
|||||||
package org.dromara.safety.domain.dto.violationrecord;
|
package org.dromara.safety.domain.dto.violationrecord;
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
|
||||||
import jakarta.validation.constraints.Future;
|
import jakarta.validation.constraints.Future;
|
||||||
import jakarta.validation.constraints.NotBlank;
|
import jakarta.validation.constraints.NotBlank;
|
||||||
import jakarta.validation.constraints.NotNull;
|
import jakarta.validation.constraints.NotNull;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import org.springframework.format.annotation.DateTimeFormat;
|
|
||||||
|
|
||||||
import java.io.Serial;
|
import java.io.Serial;
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.util.Date;
|
import java.time.LocalDate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author lilemy
|
* @author lilemy
|
||||||
@ -49,9 +47,7 @@ public class HseViolationRecordCreateHandlerReq implements Serializable {
|
|||||||
*/
|
*/
|
||||||
@NotNull(message = "处理期限不能为空")
|
@NotNull(message = "处理期限不能为空")
|
||||||
@Future(message = "处理期限不能小于当前时间")
|
@Future(message = "处理期限不能小于当前时间")
|
||||||
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
private LocalDate disposeDeadline;
|
||||||
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd")
|
|
||||||
private Date disposeDeadline;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 备注
|
* 备注
|
||||||
|
@ -1,11 +1,10 @@
|
|||||||
package org.dromara.safety.domain.dto.violationrecord;
|
package org.dromara.safety.domain.dto.violationrecord;
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import org.springframework.format.annotation.DateTimeFormat;
|
|
||||||
|
|
||||||
import java.io.Serial;
|
import java.io.Serial;
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.util.Date;
|
import java.time.LocalDate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author lilemy
|
* @author lilemy
|
||||||
@ -17,11 +16,6 @@ public class HseViolationRecordQueryReq implements Serializable {
|
|||||||
@Serial
|
@Serial
|
||||||
private static final long serialVersionUID = 1084576574388146447L;
|
private static final long serialVersionUID = 1084576574388146447L;
|
||||||
|
|
||||||
/**
|
|
||||||
* 主键id
|
|
||||||
*/
|
|
||||||
private Long id;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 项目id
|
* 项目id
|
||||||
*/
|
*/
|
||||||
@ -35,8 +29,7 @@ public class HseViolationRecordQueryReq implements Serializable {
|
|||||||
/**
|
/**
|
||||||
* 违章时间
|
* 违章时间
|
||||||
*/
|
*/
|
||||||
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
private LocalDate violationTime;
|
||||||
private Date violationTime;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 整改单位(1分包 2班组)
|
* 整改单位(1分包 2班组)
|
||||||
|
@ -0,0 +1,36 @@
|
|||||||
|
package org.dromara.safety.domain.dto.violationrecord;
|
||||||
|
|
||||||
|
import jakarta.validation.constraints.NotBlank;
|
||||||
|
import jakarta.validation.constraints.NotNull;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.io.Serial;
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author lilemy
|
||||||
|
* @date 2025-09-02 18:39
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class HseViolationRecordRectificationReq implements Serializable {
|
||||||
|
|
||||||
|
@Serial
|
||||||
|
private static final long serialVersionUID = 8509850792799321449L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 主键id
|
||||||
|
*/
|
||||||
|
@NotNull(message = "主键不能为空")
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 整改措施
|
||||||
|
*/
|
||||||
|
@NotBlank(message = "整改措施不能为空")
|
||||||
|
private String measure;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 整改附件
|
||||||
|
*/
|
||||||
|
private String rectificationFile;
|
||||||
|
}
|
@ -9,6 +9,7 @@ import org.dromara.safety.domain.HseViolationRecord;
|
|||||||
import org.dromara.safety.domain.dto.violationrecord.HseViolationRecordCreateDto;
|
import org.dromara.safety.domain.dto.violationrecord.HseViolationRecordCreateDto;
|
||||||
import org.dromara.safety.domain.dto.violationrecord.HseViolationRecordCreateHandlerReq;
|
import org.dromara.safety.domain.dto.violationrecord.HseViolationRecordCreateHandlerReq;
|
||||||
import org.dromara.safety.domain.dto.violationrecord.HseViolationRecordQueryReq;
|
import org.dromara.safety.domain.dto.violationrecord.HseViolationRecordQueryReq;
|
||||||
|
import org.dromara.safety.domain.dto.violationrecord.HseViolationRecordRectificationReq;
|
||||||
import org.dromara.safety.domain.vo.violationrecord.HseViolationRecordVo;
|
import org.dromara.safety.domain.vo.violationrecord.HseViolationRecordVo;
|
||||||
|
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
@ -94,4 +95,11 @@ public interface IHseViolationRecordService extends IService<HseViolationRecord>
|
|||||||
*/
|
*/
|
||||||
Page<HseViolationRecordVo> getVoPage(Page<HseViolationRecord> violationRecordPage);
|
Page<HseViolationRecordVo> getVoPage(Page<HseViolationRecord> violationRecordPage);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增违章整改信息
|
||||||
|
*
|
||||||
|
* @param req 违章整改信息
|
||||||
|
* @return 是否新增成功
|
||||||
|
*/
|
||||||
|
Boolean insertRectification(HseViolationRecordRectificationReq req);
|
||||||
}
|
}
|
||||||
|
@ -14,6 +14,7 @@ import org.dromara.common.core.utils.ObjectUtils;
|
|||||||
import org.dromara.common.core.utils.StringUtils;
|
import org.dromara.common.core.utils.StringUtils;
|
||||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||||
|
import org.dromara.common.satoken.utils.LoginHelper;
|
||||||
import org.dromara.common.sse.config.SseProperties;
|
import org.dromara.common.sse.config.SseProperties;
|
||||||
import org.dromara.common.sse.dto.SeeMessageContentDto;
|
import org.dromara.common.sse.dto.SeeMessageContentDto;
|
||||||
import org.dromara.common.sse.dto.SseMessageDto;
|
import org.dromara.common.sse.dto.SseMessageDto;
|
||||||
@ -25,6 +26,7 @@ import org.dromara.safety.domain.HseViolationRecord;
|
|||||||
import org.dromara.safety.domain.dto.violationrecord.HseViolationRecordCreateDto;
|
import org.dromara.safety.domain.dto.violationrecord.HseViolationRecordCreateDto;
|
||||||
import org.dromara.safety.domain.dto.violationrecord.HseViolationRecordCreateHandlerReq;
|
import org.dromara.safety.domain.dto.violationrecord.HseViolationRecordCreateHandlerReq;
|
||||||
import org.dromara.safety.domain.dto.violationrecord.HseViolationRecordQueryReq;
|
import org.dromara.safety.domain.dto.violationrecord.HseViolationRecordQueryReq;
|
||||||
|
import org.dromara.safety.domain.dto.violationrecord.HseViolationRecordRectificationReq;
|
||||||
import org.dromara.safety.domain.vo.violationrecord.HseViolationRecordVo;
|
import org.dromara.safety.domain.vo.violationrecord.HseViolationRecordVo;
|
||||||
import org.dromara.safety.mapper.HseViolationRecordMapper;
|
import org.dromara.safety.mapper.HseViolationRecordMapper;
|
||||||
import org.dromara.safety.service.IHseRecognizeRecordService;
|
import org.dromara.safety.service.IHseRecognizeRecordService;
|
||||||
@ -40,7 +42,6 @@ import org.springframework.transaction.annotation.Transactional;
|
|||||||
|
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.time.ZoneId;
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
@ -298,24 +299,17 @@ public class HseViolationRecordServiceImpl extends ServiceImpl<HseViolationRecor
|
|||||||
if (req == null) {
|
if (req == null) {
|
||||||
return lqw;
|
return lqw;
|
||||||
}
|
}
|
||||||
Long id = req.getId();
|
|
||||||
Long projectId = req.getProjectId();
|
Long projectId = req.getProjectId();
|
||||||
String violationType = req.getViolationType();
|
String violationType = req.getViolationType();
|
||||||
Date violationTime = req.getViolationTime();
|
LocalDate violationTime = req.getViolationTime();
|
||||||
lqw.eq(ObjectUtils.isNotEmpty(id), HseViolationRecord::getId, id);
|
|
||||||
lqw.eq(ObjectUtils.isNotEmpty(projectId), HseViolationRecord::getProjectId, projectId);
|
lqw.eq(ObjectUtils.isNotEmpty(projectId), HseViolationRecord::getProjectId, projectId);
|
||||||
lqw.eq(StringUtils.isNotBlank(violationType), HseViolationRecord::getViolationType, violationType);
|
lqw.eq(StringUtils.isNotBlank(violationType), HseViolationRecord::getViolationType, violationType);
|
||||||
if (violationTime != null) {
|
if (violationTime != null) {
|
||||||
// 构造当天的起始和结束时间
|
// 构造当天的起始和结束时间
|
||||||
LocalDate localDate = violationTime.toInstant()
|
LocalDateTime startOfDay = violationTime.atStartOfDay();
|
||||||
.atZone(ZoneId.systemDefault())
|
LocalDateTime startOfNextDay = violationTime.plusDays(1).atStartOfDay();
|
||||||
.toLocalDate();
|
lqw.ge(HseViolationRecord::getViolationTime, startOfDay)
|
||||||
LocalDateTime startOfDay = localDate.atStartOfDay();
|
.lt(HseViolationRecord::getViolationTime, startOfNextDay);
|
||||||
LocalDateTime startOfNextDay = localDate.plusDays(1).atStartOfDay();
|
|
||||||
Date start = Date.from(startOfDay.atZone(ZoneId.systemDefault()).toInstant());
|
|
||||||
Date end = Date.from(startOfNextDay.atZone(ZoneId.systemDefault()).toInstant());
|
|
||||||
lqw.ge(HseViolationRecord::getViolationTime, start)
|
|
||||||
.lt(HseViolationRecord::getViolationTime, end);
|
|
||||||
}
|
}
|
||||||
return lqw;
|
return lqw;
|
||||||
}
|
}
|
||||||
@ -368,4 +362,29 @@ public class HseViolationRecordServiceImpl extends ServiceImpl<HseViolationRecor
|
|||||||
violationRecordVoPage.setRecords(violationRecordVoList);
|
violationRecordVoPage.setRecords(violationRecordVoList);
|
||||||
return violationRecordVoPage;
|
return violationRecordVoPage;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增违章整改信息
|
||||||
|
*
|
||||||
|
* @param req 违章整改信息
|
||||||
|
* @return 是否新增成功
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public Boolean insertRectification(HseViolationRecordRectificationReq req) {
|
||||||
|
Long id = req.getId();
|
||||||
|
HseViolationRecord violationRecord = this.getById(id);
|
||||||
|
if (violationRecord == null) {
|
||||||
|
throw new ServiceException("违规记录信息不存在", HttpStatus.BAD_REQUEST);
|
||||||
|
}
|
||||||
|
Long correctorId = violationRecord.getCorrectorId();
|
||||||
|
// 只有指定用户可以整改
|
||||||
|
Long userId = LoginHelper.getUserId();
|
||||||
|
if (!correctorId.equals(userId)) {
|
||||||
|
throw new ServiceException("当前用户不是指定整改人", HttpStatus.BAD_REQUEST);
|
||||||
|
}
|
||||||
|
// 填充默认值
|
||||||
|
violationRecord.setRectificationTime(new Date());
|
||||||
|
// 操作数据库
|
||||||
|
return this.updateById(violationRecord);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -135,6 +135,11 @@ public class SysRoleServiceImpl implements ISysRoleService, RoleService {
|
|||||||
@Override
|
@Override
|
||||||
public List<SysProjectRolePermissionVo> selectRolePermissionByUserId(Long userId) {
|
public List<SysProjectRolePermissionVo> selectRolePermissionByUserId(Long userId) {
|
||||||
List<ProjectRolesItem> items = baseMapper.selectProjectRolesByUserId(userId);
|
List<ProjectRolesItem> items = baseMapper.selectProjectRolesByUserId(userId);
|
||||||
|
// 过滤掉项目id为null的数据
|
||||||
|
items = items.stream().filter(item -> item.getProjectId() != null).toList();
|
||||||
|
if (CollUtil.isEmpty(items)) {
|
||||||
|
return new ArrayList<>();
|
||||||
|
}
|
||||||
return items.stream()
|
return items.stream()
|
||||||
.filter(Objects::nonNull) // 保证不为空
|
.filter(Objects::nonNull) // 保证不为空
|
||||||
.peek(item -> {
|
.peek(item -> {
|
||||||
|
Reference in New Issue
Block a user