From 549bad4e3b36337dc9d3b436efba0103cc0761ff Mon Sep 17 00:00:00 2001
From: huminmin <mac@MacBook-Pro.local>
Date: 星期五, 15 五月 2026 11:50:34 +0800
Subject: [PATCH] 班组长或者指定班组成员能看到对应数据
---
src/main/java/com/ruoyi/production/service/impl/ProductionOperationTaskServiceImpl.java | 57 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 56 insertions(+), 1 deletions(-)
diff --git a/src/main/java/com/ruoyi/production/service/impl/ProductionOperationTaskServiceImpl.java b/src/main/java/com/ruoyi/production/service/impl/ProductionOperationTaskServiceImpl.java
index e202ec2..68652ea 100644
--- a/src/main/java/com/ruoyi/production/service/impl/ProductionOperationTaskServiceImpl.java
+++ b/src/main/java/com/ruoyi/production/service/impl/ProductionOperationTaskServiceImpl.java
@@ -19,10 +19,13 @@
import com.ruoyi.common.config.FileProperties;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.utils.MatrixToImageWriter;
+import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.production.bean.dto.ProductionOperationTaskDto;
import com.ruoyi.production.bean.vo.ProductionOperationTaskVo;
+import com.ruoyi.production.mapper.ProductionOrderMapper;
import com.ruoyi.production.mapper.ProductionOperationTaskMapper;
+import com.ruoyi.production.pojo.ProductionOrder;
import com.ruoyi.production.pojo.ProductionOperationTask;
import com.ruoyi.production.service.ProductionOperationTaskService;
import com.ruoyi.project.system.domain.SysUser;
@@ -45,6 +48,7 @@
public class ProductionOperationTaskServiceImpl extends ServiceImpl<ProductionOperationTaskMapper, ProductionOperationTask> implements ProductionOperationTaskService {
private final SysUserMapper sysUserMapper;
+ private final ProductionOrderMapper productionOrderMapper;
private final FileUtil fileUtil;
@@ -55,14 +59,16 @@
@Override
public IPage<ProductionOperationTaskVo> pageProductionOperationTask(Page<ProductionOperationTaskDto> page, ProductionOperationTaskDto dto) {
+ // 鍒嗛〉鏌ヨ鐢熶骇宸ュ簭浠诲姟
Page<ProductionOperationTaskVo> voPage = new Page<>(page.getCurrent(), page.getSize(), page.getTotal());
- IPage<ProductionOperationTaskVo> result = baseMapper.pageProductionOperationTask(voPage, dto);
+ IPage<ProductionOperationTaskVo> result = baseMapper.pageProductionOperationTask(voPage, dto, SecurityUtils.getLoginUser().getUserId());
fillUserNames(result.getRecords());
return result;
}
@Override
public List<ProductionOperationTaskVo> listProductionOperationTask(ProductionOperationTaskDto dto) {
+ // 鏌ヨ宸ュ簭浠诲姟鍒楄〃
List<ProductionOperationTaskVo> result = BeanUtil.copyToList(this.list(buildQueryWrapper(dto)), ProductionOperationTaskVo.class);
fillUserNames(result);
return result;
@@ -70,32 +76,43 @@
@Override
public ProductionOperationTaskVo getProductionOperationTaskInfo(Long id) {
+ // 鑾峰彇鐢熶骇宸ュ簭浠诲姟璇︽儏
ProductionOperationTask item = this.getById(id);
if (item == null) {
return null;
}
ProductionOperationTaskVo vo = BeanUtil.copyProperties(item, ProductionOperationTaskVo.class);
+ if (item.getProductionOrderId() != null) {
+ ProductionOrder productionOrder = productionOrderMapper.selectById(item.getProductionOrderId());
+ if (productionOrder != null) {
+ vo.setEndOrder(productionOrder.getEndOrder());
+ }
+ }
fillUserNames(Collections.singletonList(vo));
return vo;
}
@Override
public boolean saveProductionOperationTask(ProductionOperationTask productionOperationTask) {
+ // 淇濆瓨鐢熶骇宸ュ簭浠诲姟
return this.saveOrUpdate(productionOperationTask);
}
@Override
public boolean removeProductionOperationTask(List<Long> ids) {
+ // 鍒犻櫎鐢熶骇宸ュ簭浠诲姟
return ids != null && !ids.isEmpty() && this.removeByIds(ids);
}
@Override
public int updateProductWorkOrder(ProductionOperationTaskDto dto) {
+ // 鏇存柊宸ュ簭浠诲姟瀵瑰簲鐨勫伐鍗曚俊鎭�
return baseMapper.updateById(dto);
}
@Override
public boolean assign(ProductionOperationTaskDto dto) {
+ // 鍒嗛厤宸ュ簭浠诲姟鎵ц浜�
if (dto == null || dto.getId() == null) {
throw new ServiceException("宸ュ崟ID涓嶈兘涓虹┖");
}
@@ -110,7 +127,28 @@
return true;
}
+ @Override
+ public boolean assignTeamUser(ProductionOperationTaskDto dto) {
+ // 鎸囨淳鐝粍鎴愬憳
+ if (dto == null || dto.getId() == null) {
+ throw new ServiceException("宸ュ崟ID涓嶈兘涓虹┖");
+ }
+ if (dto.getTeamUserId() == null) {
+ throw new ServiceException("鐝粍鐢ㄦ埛ID涓嶈兘涓虹┖");
+ }
+
+ ProductionOperationTask update = new ProductionOperationTask();
+ update.setId(dto.getId());
+ update.setTeamUserId(dto.getTeamUserId());
+ int rows = baseMapper.updateById(update);
+ if (rows <= 0) {
+ throw new ServiceException("宸ュ崟涓嶅瓨鍦ㄦ垨宸插垹闄�");
+ }
+ return true;
+ }
+
private LambdaQueryWrapper<ProductionOperationTask> buildQueryWrapper(ProductionOperationTaskDto dto) {
+ // 鎸夋潯浠跺姩鎬佹瀯寤烘暟鎹簱鏌ヨ鏉′欢
ProductionOperationTask query = dto == null ? new ProductionOperationTask() : dto;
return Wrappers.<ProductionOperationTask>lambdaQuery()
.eq(query.getId() != null, ProductionOperationTask::getId, query.getId())
@@ -124,10 +162,12 @@
}
private void fillUserNames(List<ProductionOperationTaskVo> voList) {
+ // 濉厖鐢ㄦ埛鍚嶇О
if (voList == null || voList.isEmpty()) {
return;
}
Set<Long> userIdSet = new LinkedHashSet<>();
+ // 閬嶅巻澶勭悊鏁版嵁骞剁粍瑁呯粨鏋�
for (ProductionOperationTaskVo vo : voList) {
if (vo == null) {
continue;
@@ -163,6 +203,7 @@
}
private List<Long> parseUserIdList(String userIds, boolean strict) {
+ // 瑙f瀽骞舵牎楠岀敤鎴稩D鏁扮粍瀛楃涓�
if (StringUtils.isBlank(userIds)) {
if (strict) {
throw new ServiceException("userIds鏍煎紡涓嶆纭紝蹇呴』涓篔SON鏁板瓧鏁扮粍");
@@ -190,6 +231,7 @@
@Override
public void down(HttpServletResponse response, ProductionOperationTaskDto dto) {
+ // 瀵煎嚭宸ュ簭浠诲姟鏁版嵁
if (dto == null || dto.getId() == null) {
throw new ServiceException("宸ュ崟ID涓嶈兘涓虹┖");
}
@@ -241,15 +283,18 @@
}
private List<Map<String, Object>> buildTaskAttachmentImages(Long taskId) {
+ // 缁勮浠诲姟闄勪欢鍥剧墖鏁版嵁鐢ㄤ簬瀵煎嚭
List<Map<String, Object>> images = new ArrayList<>();
StorageAttachmentDTO storageAttachmentDTO = new StorageAttachmentDTO();
storageAttachmentDTO.setRecordType(RecordTypeEnum.PRODUCTION_OPERATION_TASK.getType());
storageAttachmentDTO.setRecordId(taskId);
List<StorageBlobVO> taskWorkOrderFiles =
fileUtil.getStorageBlobVOsByApplicationAndRecordTypeAndRecordId(storageAttachmentDTO);
+ // 鍙傛暟涓庡墠缃潯浠舵牎楠�
if (CollectionUtils.isEmpty(taskWorkOrderFiles)) {
return images;
}
+ // 閬嶅巻澶勭悊鏁版嵁骞剁粍瑁呯粨鏋�
for (StorageBlobVO blobVO : taskWorkOrderFiles) {
if (blobVO == null) {
continue;
@@ -277,6 +322,7 @@
}
private File resolveImageFile(StorageBlobVO blobVO) {
+ // 灏嗛檮浠朵俊鎭В鏋愪负鏈湴鍥剧墖鏂囦欢瀵硅薄
if (blobVO == null || StringUtils.isBlank(blobVO.getUidFilename())) {
return null;
}
@@ -287,6 +333,7 @@
}
private PictureType resolvePictureType(StorageBlobVO blobVO) {
+ // 鎸夋枃浠跺悕鎴栧唴瀹圭被鍨嬭瘑鍒浘鐗囨牸寮�
if (blobVO == null) {
return null;
}
@@ -302,6 +349,7 @@
}
private PictureType parsePictureTypeByFileName(String fileName) {
+ // 鏍规嵁鏂囦欢鍚庣紑瑙f瀽鍥剧墖鏍煎紡
if (StringUtils.isBlank(fileName) || !fileName.contains(".")) {
return null;
}
@@ -313,6 +361,7 @@
}
private PictureType parsePictureTypeByContentType(String contentType) {
+ // 鏍规嵁Content-Type瑙f瀽鍥剧墖鏍煎紡
if (StringUtils.isBlank(contentType)) {
return null;
}
@@ -338,4 +387,10 @@
return null;
}
}
+
+ @Override
+ public List<ProductionOperationTaskVo> getOperation(ProductionOperationTaskDto dto) {
+ // 鏌ヨ宸ュ簭浠诲姟鍒楄〃
+ return baseMapper.getOperation(dto);
+ }
}
--
Gitblit v1.9.3