heheng
2025-03-27 5d2cfd4562f74496a5263db3451c1e78ff53aead
assess-system/src/main/java/com/gkhy/assess/system/service/impl/AssFaceRecognitionServiceImpl.java
@@ -19,6 +19,7 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@@ -43,19 +44,13 @@
    @Override
    public int addFaceRecognition(AssFaceRecognition faceRecognition) {
        int row=0;
        projectService.checkUserAllowed(faceRecognition.getProjectId());
        UploadObjectVO uploadObjectVO=commonService.doUpload(faceRecognition.getFile());
        faceRecognition.setSignPath(uploadObjectVO.getPath());
        AssFaceRecognition existRecord=checkFaceRecognitionUnique(faceRecognition.getPersonId(),faceRecognition.getProjectId());
        if(existRecord!=null){
            existRecord.setSignPath(faceRecognition.getSignPath());
            existRecord.setUpdateBy(ShiroUtils.getSysUser().getUsername());
            row =baseMapper.updateById(existRecord);
        }else{
            faceRecognition.setCreateBy(ShiroUtils.getSysUser().getUsername());
            row=baseMapper.insert(faceRecognition);
            throw new ApiException("签字确认记录已存在");
        }
        faceRecognition.setCreateBy(ShiroUtils.getSysUser().getUsername());
        int row=baseMapper.insert(faceRecognition);
        return row;
    }
@@ -75,7 +70,9 @@
    public Boolean checkAllFaceRecongnition(Long projectId){
        projectService.checkUserAllowed(projectId);
        List<AssPlanPerson> planPersonList=planPersonMapper.getAllPlanPersonByProjectId(projectId);
        List<AssFaceRecognition> faceRecognitionList=baseMapper.getFaceRecognitionByProjectId(projectId);
        Map<Long,AssPlanPerson> planPersonMap=planPersonList.stream().collect(Collectors.toMap(AssPlanPerson::getPersonId,a -> a,(k1,k2) -> k1));
        planPersonList=planPersonMap.values().stream().collect(Collectors.toList());
        List<AssFaceRecognition> faceRecognitionList=baseMapper.getSimpleFaceRecognitionByProjectId(projectId);
        Map<Long,AssFaceRecognition> map=faceRecognitionList.stream().collect(Collectors.toMap(AssFaceRecognition::getPersonId,a -> a,(k1,k2) -> k1));
        String message="";
        for(AssPlanPerson planPerson:planPersonList){
@@ -109,7 +106,22 @@
    @Override
    public List<AssFaceRecognition> getFaceRecognitionByProjectId(Long projectId) {
        projectService.checkUserAllowed(projectId);
        return baseMapper.getFaceRecognitionByProjectId(projectId);
        List<AssFaceRecognition> faceRecognitionList= baseMapper.getFaceRecognitionByProjectId(projectId);
        //同一个人员担任多种角色
        Map<Long,List<Integer>> playRoleMap=faceRecognitionList.stream().collect(Collectors.toMap(AssFaceRecognition::getPersonId,p -> {
            List<Integer> pRoles=new ArrayList<>();
            pRoles.add(p.getPlanPerson().getPlayRole());
            return pRoles;
        },(List<Integer>value1,List<Integer> value2) -> {
                value1.addAll(value2);
                return value1;
        }));
        Map<Long,AssFaceRecognition> faceMap=faceRecognitionList.stream().collect(Collectors.toMap(AssFaceRecognition::getPersonId,a -> a,(k1,k2) -> k2));
        List<AssFaceRecognition> faceRecognitions=faceMap.values().stream().collect(Collectors.toList());
        for(AssFaceRecognition faceRecognition:faceRecognitions){
            faceRecognition.getPlanPerson().setPlayRoles(playRoleMap.get(faceRecognition.getPersonId()));
        }
        return faceRecognitions;
    }