修改bug

This commit is contained in:
lcj
2025-09-02 20:30:01 +08:00
parent e8da350f0b
commit f584e6233c
19 changed files with 257 additions and 73 deletions

View File

@ -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

View File

@ -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;
/** /**

View File

@ -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);

View File

@ -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();

View File

@ -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());
} }
/** /**

View File

@ -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 {
} }
} }

View File

@ -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));
} }
} }

View File

@ -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
*/ */

View File

@ -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;
} }

View File

@ -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);
/** /**
* 新增项目 * 新增项目

View File

@ -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;
}
/** /**
* 新增项目 * 新增项目
* *

View File

@ -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));
}
}

View File

@ -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;
/** /**
* 复查情况 * 复查情况
*/ */

View File

@ -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;
/** /**
* 备注 * 备注

View File

@ -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班组)

View File

@ -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;
}

View File

@ -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);
} }

View File

@ -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);
}
} }

View File

@ -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 -> {