<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">package com.baichuanxin.openrestapi.service.impl;

import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON;
import com.baichuanxin.openrestapi.common.utils.DateUtil;
import com.baichuanxin.openrestapi.common.utils.FileHandleUtil;
import com.baichuanxin.openrestapi.common.utils.OnlineTaskUtil;
import com.baichuanxin.openrestapi.configs.OneTaskConfig;
import com.baichuanxin.openrestapi.dao.mapper.SelfRecruitmentFilingMapper;
import com.baichuanxin.openrestapi.dtos.AttachDto;
import com.baichuanxin.openrestapi.dtos.FileDto;
import com.baichuanxin.openrestapi.dtos.SecurityServicekDto;
import com.baichuanxin.openrestapi.dtos.SelfRecruitmentFilingDto;
import com.baichuanxin.openrestapi.entity.*;
import com.baichuanxin.openrestapi.service.TaskInfoService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import jdk.nashorn.internal.ir.CallNode;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;


/***
 *@Author duxiangyun
 *@Description 鑷鎷涚敤淇濆畨鍛樺崟浣嶅妗�
 *@Date 2024/8/24
 */
@Slf4j
@Service
public class SelfRecruitmentFilingTaskInfoImpl extends ServiceImpl&lt;SelfRecruitmentFilingMapper, SelfRecruitmentFiling&gt; implements TaskInfoService  {
    @Autowired
    private OneTaskConfig oneTaskConfig;
    @Autowired
    private AttachTaskInfoServiceImpl attachTaskInfoService;
    @Autowired
    private RegionCodeServiceImpl regionCodeService;

    @Override
    @Transactional(rollbackFor = Exception.class)
    public boolean saveTaskInfo(Notice notice) {
        //鑾峰彇涓氬姟鏁版嵁
        Map&lt;String, Object&gt; formJson = notice.getFormJson();
        SelfRecruitmentFilingDto selfRecruitmentFilingDto = JSON.parseObject(JSON.toJSONString(formJson), SelfRecruitmentFilingDto.class);
        SelfRecruitmentFiling selfRecruitmentFiling = selfRecruitmentFilingDto.convert(notice);
        //鍖哄煙璧嬪€�
        RegionCode regionCode = regionCodeService.getRegionCode(selfRecruitmentFilingDto.getYlcsjyssq());
        selfRecruitmentFiling.setItemOfficePoliceAddress(regionCode.getName());
        selfRecruitmentFiling.setItemitemOfficePoliceAddressid(regionCode.getId());
        selfRecruitmentFiling.setItemOfficePoliceidindex(regionCode.getIndexTree());

        log.info("=====鍒ゆ柇鏁版嵁鏄惁宸茬粡瀛樺湪:taskId:{}", notice.getTaskId());
        QueryWrapper&lt;SelfRecruitmentFiling&gt; queryWrapper  = new QueryWrapper&lt;&gt;();
        queryWrapper.eq("taskId",notice.getTaskId());
        SelfRecruitmentFiling one = this.getOne(queryWrapper);
        if (one!= null){
            log.info("==鏁版嵁宸茬粡瀛樺湪:taskId:{}", notice.getTaskId());
            return true;
        }else {
            //淇濆瓨涓氬姟鏁版嵁鍒颁笟鍔¤〃
            boolean saveResult = this.save(selfRecruitmentFiling);
            //淇濆瓨鏂囦欢鏁版嵁
            boolean saveFileDataResult = attachTaskInfoService.saveOtherInfo(notice,selfRecruitmentFiling.getId());
            //淇濆瓨鏂囦欢鍒版湇鍔″櫒
            List&lt;AttachDto&gt; attachList = notice.getAttachList();
            Map&lt;String, List&lt;AttachDto&gt;&gt; map = attachList.stream().collect(Collectors.groupingBy(AttachDto::getMaterialId));
            for (String key :map.keySet()){
                List&lt;AttachDto&gt; attachDtos = map.get(key);
                int i = 1 ;
                for (AttachDto attachDto : attachDtos) {
                    try {
                        FileHandleUtil.saveApplyFileHandle(StrUtil.join("",oneTaskConfig.getDownloadUrl(),attachDto.getAttachPath())
                                ,StrUtil.join("/",oneTaskConfig.getSaveFile(),notice.getMatId(),notice.getTaskId(),attachDto.getMaterialId(),i)
                                ,StrUtil.join("/",oneTaskConfig.getSaveFile(),notice.getMatId(),notice.getTaskId(),attachDto.getMaterialId(),i
                                        ,StrUtil.join(".",attachDto.getMaterialName(),attachDto.getAttachType())));
                        ++i;
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            }
            if (saveFileDataResult&amp;&amp;saveResult){
                return true;
            }else {
                return false;
            }

            }
    }

    @Override
    public List&lt;String&gt; returnTaskResult(List&lt;Notice&gt; noticeList) {
        List&lt;String&gt; mapList = new ArrayList&lt;&gt;();
        //鑾峰彇鍔炰欢ID
        List&lt;String&gt;  taskIdList = new ArrayList&lt;&gt;();
        for (Notice notice : noticeList) {
            taskIdList.add(notice.getTaskId());
        }
        QueryWrapper&lt;SelfRecruitmentFiling&gt; queryWrapper = new QueryWrapper();
        queryWrapper.in("taskId", taskIdList);
        queryWrapper.in("ITEM_AUDITSTATUS","0","1");
//        queryWrapper.isNotNull("item_Service_File");
        List&lt;SelfRecruitmentFiling&gt; list = this.list(queryWrapper);
        for (SelfRecruitmentFiling selfRecruitmentFiling : list) {
            Map&lt;String, String&gt; map = new HashMap&lt;&gt;();
            map.put("taskId",selfRecruitmentFiling.getTaskId());
            map.put("userName","婀栧崡鐪佷繚瀹夌洃绠′俊鎭郴缁�");
            map.put("eventName", OnlineTaskUtil.convertStatus(selfRecruitmentFiling.getItemAuditStatus()));
            map.put("opinion",OnlineTaskUtil.convertStatus(OnlineTaskUtil.convertStatus(selfRecruitmentFiling.getItemAuditStatus())));
            map.put("endTime", DateUtil.dateFormatter(selfRecruitmentFiling.getItemOverTime(),"yyyy-MM-dd HH:mm:ss"));
            map.put("isdelivery",selfRecruitmentFiling.getIsdelivery());
            //鍏堜笉杩斿洖鏂囦欢
//            List&lt;FileDto&gt; fileDtos = JSON.parseArray(selfRecruitmentFiling.getItemServiceFile(), FileDto.class);
//            boolean b = OnlineTaskUtil.returnResultFile(selfRecruitmentFiling.getTaskId(), fileDtos.get(0).getName(),
//                    FileHandleUtil.fileHandle(FileHandleUtil.strHandle(oneTaskConfig.getResultFilePath(),
//                            fileDtos.get(0).getPath())), "0");
            boolean b1 = OnlineTaskUtil.returnResult(JSON.toJSONString(map));
//            if (b&amp;&amp;b1){
            if(b1){
                mapList.add(selfRecruitmentFiling.getTaskId() );
            }
        }
        return mapList;
    }
}
</pre></body></html>