|  | @@ -0,0 +1,663 @@
 | 
	
		
			
				|  |  | +package com.jeeplus.finance.signatureDaily.service;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +import cn.hutool.core.util.ObjectUtil;
 | 
	
		
			
				|  |  | +import cn.hutool.extra.spring.SpringUtil;
 | 
	
		
			
				|  |  | +import com.alibaba.fastjson.JSON;
 | 
	
		
			
				|  |  | +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 | 
	
		
			
				|  |  | +import com.baomidou.mybatisplus.core.metadata.IPage;
 | 
	
		
			
				|  |  | +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 | 
	
		
			
				|  |  | +import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 | 
	
		
			
				|  |  | +import com.google.common.collect.Lists;
 | 
	
		
			
				|  |  | +import com.google.common.collect.Maps;
 | 
	
		
			
				|  |  | +import com.jeeplus.common.TokenProvider;
 | 
	
		
			
				|  |  | +import com.jeeplus.core.query.QueryWrapperGenerator;
 | 
	
		
			
				|  |  | +import com.jeeplus.finance.contractRegistration.mapper.ContractInfoMapper;
 | 
	
		
			
				|  |  | +import com.jeeplus.finance.invoice.util.SignaturePostUtil;
 | 
	
		
			
				|  |  | +import com.jeeplus.finance.projectReport.domain.*;
 | 
	
		
			
				|  |  | +import com.jeeplus.finance.reimbursementApproval.approvalInfo.domain.CwReimbursementInfo;
 | 
	
		
			
				|  |  | +import com.jeeplus.finance.reimbursementApproval.approvalInfo.service.dto.QueryListDto;
 | 
	
		
			
				|  |  | +import com.jeeplus.finance.reimbursementApproval.approvalInfo.service.dto.RetureListDto;
 | 
	
		
			
				|  |  | +import com.jeeplus.finance.signatureDaily.domain.SignatureDailyOfficeWork;
 | 
	
		
			
				|  |  | +import com.jeeplus.finance.signatureDaily.mapper.SignatureDailyOfficeWorkMapper;
 | 
	
		
			
				|  |  | +import com.jeeplus.finance.signatureDaily.service.dto.SignatureDailyOfficeWorkDTO;
 | 
	
		
			
				|  |  | +import com.jeeplus.finance.utils.Global;
 | 
	
		
			
				|  |  | +import com.jeeplus.flowable.feign.IFlowableApi;
 | 
	
		
			
				|  |  | +import com.jeeplus.sys.domain.WorkAttachmentInfo;
 | 
	
		
			
				|  |  | +import com.jeeplus.sys.feign.IUserApi;
 | 
	
		
			
				|  |  | +import com.jeeplus.sys.feign.IWorkAttachmentApi;
 | 
	
		
			
				|  |  | +import com.jeeplus.sys.service.dto.UserDTO;
 | 
	
		
			
				|  |  | +import net.sf.json.JSONObject;
 | 
	
		
			
				|  |  | +import org.apache.commons.lang3.StringUtils;
 | 
	
		
			
				|  |  | +import org.apache.ibatis.annotations.Mapper;
 | 
	
		
			
				|  |  | +import org.springframework.beans.BeanUtils;
 | 
	
		
			
				|  |  | +import org.springframework.stereotype.Service;
 | 
	
		
			
				|  |  | +import org.springframework.transaction.annotation.Transactional;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +import javax.annotation.Resource;
 | 
	
		
			
				|  |  | +import java.io.File;
 | 
	
		
			
				|  |  | +import java.util.*;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +@Service
 | 
	
		
			
				|  |  | +@Transactional
 | 
	
		
			
				|  |  | +public class SignatureDaulyOfficeWorkService {
 | 
	
		
			
				|  |  | +    private static final byte[] SYN_BYTE = new byte[0];
 | 
	
		
			
				|  |  | +    private static final String HTTPTOP = Global.getConfig("signature_http_top");
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    /**
 | 
	
		
			
				|  |  | +     * 公司圆章-横
 | 
	
		
			
				|  |  | +     */
 | 
	
		
			
				|  |  | +    private static final String COMPANYROUNDSEALID = Global.getConfig("company_round_seal_id");
 | 
	
		
			
				|  |  | +    //日常签章申请流程id
 | 
	
		
			
				|  |  | +    private static final String DAILYOFFICEWORK = Global.getConfig("signature_daily_office_work");
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    @Resource
 | 
	
		
			
				|  |  | +    private SignatureDailyOfficeWorkMapper signatureDailyOfficeWorkMapper;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    @Resource
 | 
	
		
			
				|  |  | +    private ContractInfoMapper mapper;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    @Resource
 | 
	
		
			
				|  |  | +    private IFlowableApi flowTaskService;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    /**
 | 
	
		
			
				|  |  | +     * 列表查询
 | 
	
		
			
				|  |  | +     * @param page
 | 
	
		
			
				|  |  | +     * @param dto
 | 
	
		
			
				|  |  | +     * @return
 | 
	
		
			
				|  |  | +     */
 | 
	
		
			
				|  |  | +    public IPage<SignatureDailyOfficeWorkDTO> list(Page<SignatureDailyOfficeWorkDTO> page, SignatureDailyOfficeWorkDTO dto) throws Exception {
 | 
	
		
			
				|  |  | +        QueryWrapper<SignatureDailyOfficeWorkDTO> queryWrapper = QueryWrapperGenerator.buildQueryCondition(dto, SignatureDailyOfficeWorkDTO.class);
 | 
	
		
			
				|  |  | +        /**
 | 
	
		
			
				|  |  | +         * a表是reimbursementInfo
 | 
	
		
			
				|  |  | +         * b表是reimbursementDetailInfo
 | 
	
		
			
				|  |  | +         * c表是sysUser
 | 
	
		
			
				|  |  | +         */
 | 
	
		
			
				|  |  | +        queryWrapper.eq("a.del_flag", 0);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        // 创建时间
 | 
	
		
			
				|  |  | +        if (dto.getDates() != null) {
 | 
	
		
			
				|  |  | +            queryWrapper.between("a.create_time", dto.getDates()[0], dto.getDates()[1]);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        // 创建人
 | 
	
		
			
				|  |  | +        if (StringUtils.isNotEmpty(dto.getCreateById())) {
 | 
	
		
			
				|  |  | +            queryWrapper.apply("(a.create_by_id",dto.getCreateById());
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        // 状态
 | 
	
		
			
				|  |  | +        if (StringUtils.isNotEmpty(dto.getStatus())) {
 | 
	
		
			
				|  |  | +            queryWrapper.eq("a.status", dto.getStatus());
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        // 部门
 | 
	
		
			
				|  |  | +        if (StringUtils.isNotEmpty(dto.getOfficeId())) {
 | 
	
		
			
				|  |  | +            queryWrapper.eq("so.id", dto.getOfficeId());
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        // 签章类型
 | 
	
		
			
				|  |  | +        if (StringUtils.isNotBlank(dto.getSignatureType())) {
 | 
	
		
			
				|  |  | +            queryWrapper.eq("a.signature_type", dto.getSignatureType());
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        // 签章描述
 | 
	
		
			
				|  |  | +        if (StringUtils.isNotEmpty(dto.getSignatureName())) {
 | 
	
		
			
				|  |  | +            queryWrapper.like("a.signature_name", dto.getSignatureName());
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        IPage<SignatureDailyOfficeWorkDTO> list = signatureDailyOfficeWorkMapper.findList(page, queryWrapper);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        return list;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    /**
 | 
	
		
			
				|  |  | +     * 用于导出数据
 | 
	
		
			
				|  |  | +     * @param page
 | 
	
		
			
				|  |  | +     * @param dto
 | 
	
		
			
				|  |  | +     * @return
 | 
	
		
			
				|  |  | +     * @throws Exception
 | 
	
		
			
				|  |  | +     */
 | 
	
		
			
				|  |  | +    public IPage<SignatureDailyOfficeWorkDTO> list2(Page<SignatureDailyOfficeWorkDTO> page, SignatureDailyOfficeWorkDTO dto) throws Exception {
 | 
	
		
			
				|  |  | +        QueryWrapper<SignatureDailyOfficeWorkDTO> queryWrapper = QueryWrapperGenerator.buildQueryCondition(dto, SignatureDailyOfficeWorkDTO.class);
 | 
	
		
			
				|  |  | +        /**
 | 
	
		
			
				|  |  | +         * a表是reimbursementInfo
 | 
	
		
			
				|  |  | +         * b表是reimbursementDetailInfo
 | 
	
		
			
				|  |  | +         * c表是sysUser
 | 
	
		
			
				|  |  | +         */
 | 
	
		
			
				|  |  | +        queryWrapper.eq("a.del_flag", 0);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        // 创建时间
 | 
	
		
			
				|  |  | +        if (dto.getDates() != null) {
 | 
	
		
			
				|  |  | +            queryWrapper.between("a.create_time", dto.getDates()[0], dto.getDates()[1]);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        // 创建人
 | 
	
		
			
				|  |  | +        if (StringUtils.isNotEmpty(dto.getCreateById())) {
 | 
	
		
			
				|  |  | +            queryWrapper.apply("(a.create_by_id",dto.getCreateById());
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        // 状态
 | 
	
		
			
				|  |  | +        if (StringUtils.isNotEmpty(dto.getStatus())) {
 | 
	
		
			
				|  |  | +            queryWrapper.eq("a.status", dto.getStatus());
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        // 部门
 | 
	
		
			
				|  |  | +        if (StringUtils.isNotEmpty(dto.getOfficeId())) {
 | 
	
		
			
				|  |  | +            queryWrapper.eq("so.id", dto.getOfficeId());
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        // 签章类型
 | 
	
		
			
				|  |  | +        if (StringUtils.isNotBlank(dto.getSignatureType())) {
 | 
	
		
			
				|  |  | +            queryWrapper.eq("a.signature_type", dto.getSignatureType());
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        // 签章描述
 | 
	
		
			
				|  |  | +        if (StringUtils.isNotEmpty(dto.getSignatureName())) {
 | 
	
		
			
				|  |  | +            queryWrapper.like("a.signature_name", dto.getSignatureName());
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        IPage<SignatureDailyOfficeWorkDTO> list = signatureDailyOfficeWorkMapper.findList2(page, queryWrapper);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        return list;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    /*8
 | 
	
		
			
				|  |  | +    根据id查询数据
 | 
	
		
			
				|  |  | +     */
 | 
	
		
			
				|  |  | +    public SignatureDailyOfficeWorkDTO findById(String id) {
 | 
	
		
			
				|  |  | +        SignatureDailyOfficeWorkDTO dto = new SignatureDailyOfficeWorkDTO();
 | 
	
		
			
				|  |  | +        SignatureDailyOfficeWorkDTO dailyOfficeWorkDTO=signatureDailyOfficeWorkMapper.findById(id);
 | 
	
		
			
				|  |  | +        if (ObjectUtil.isNotEmpty(dailyOfficeWorkDTO)){
 | 
	
		
			
				|  |  | +            BeanUtils.copyProperties(dailyOfficeWorkDTO, dto);
 | 
	
		
			
				|  |  | +            //查询附件信息
 | 
	
		
			
				|  |  | +            List<WorkAttachmentInfo> fileList = signatureDailyOfficeWorkMapper.findFiles(id);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            if (CollectionUtils.isNotEmpty(fileList)) {
 | 
	
		
			
				|  |  | +                for (WorkAttachmentInfo i : fileList) {
 | 
	
		
			
				|  |  | +                    i.setCreateBy(SpringUtil.getBean ( IUserApi.class ).getById(i.getBy()));
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            dto.setFiles(fileList);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        return dto;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    /**
 | 
	
		
			
				|  |  | +     * 新增或修改
 | 
	
		
			
				|  |  | +     * @param dto
 | 
	
		
			
				|  |  | +     * @return
 | 
	
		
			
				|  |  | +     */
 | 
	
		
			
				|  |  | +    public SignatureDailyOfficeWork save(SignatureDailyOfficeWorkDTO dto) throws Exception {
 | 
	
		
			
				|  |  | +        UserDTO userDTO = SpringUtil.getBean(IUserApi.class).getByToken(TokenProvider.getCurrentToken());
 | 
	
		
			
				|  |  | +        if (StringUtils.isNotBlank(dto.getId())){
 | 
	
		
			
				|  |  | +            return update(dto,userDTO);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        return add(dto,userDTO);
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    private SignatureDailyOfficeWork update(SignatureDailyOfficeWorkDTO dto, UserDTO userDTO) {
 | 
	
		
			
				|  |  | +        // 修改基础信息
 | 
	
		
			
				|  |  | +        SignatureDailyOfficeWork signatureDailyOfficeWork = new SignatureDailyOfficeWork();
 | 
	
		
			
				|  |  | +        BeanUtils.copyProperties(dto, signatureDailyOfficeWork);
 | 
	
		
			
				|  |  | +        signatureDailyOfficeWork.setUpdateById(userDTO.getId());
 | 
	
		
			
				|  |  | +        signatureDailyOfficeWork.setUpdateTime(new Date());
 | 
	
		
			
				|  |  | +        signatureDailyOfficeWorkMapper.updateById(signatureDailyOfficeWork);
 | 
	
		
			
				|  |  | +        if (StringUtils.isNotBlank(dto.getStatus())&&dto.getStatus().equals("2")){
 | 
	
		
			
				|  |  | +            this.getManualSignatureUrl(dto.getId());
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        // 修改附件信息列表
 | 
	
		
			
				|  |  | +        if (CollectionUtils.isNotEmpty(dto.getFiles())) {
 | 
	
		
			
				|  |  | +            updateFiles(dto.getFiles(), userDTO, dto.getId(),"signatureDaily");
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        return signatureDailyOfficeWork;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    /**
 | 
	
		
			
				|  |  | +     * 创建签章流程
 | 
	
		
			
				|  |  | +     * @param dailyOfficeWorkId
 | 
	
		
			
				|  |  | +     * @return
 | 
	
		
			
				|  |  | +     */
 | 
	
		
			
				|  |  | +    public HashMap<String, Object> getManualSignatureUrl( String dailyOfficeWorkId) {
 | 
	
		
			
				|  |  | +        HashMap<String, Object> map = Maps.newHashMap();
 | 
	
		
			
				|  |  | +        map.put("contractUrl","");
 | 
	
		
			
				|  |  | +        map.put("success",false);
 | 
	
		
			
				|  |  | +        //下载文件位置
 | 
	
		
			
				|  |  | +        String deleteFile = null;
 | 
	
		
			
				|  |  | +        try {
 | 
	
		
			
				|  |  | +            //根据项目id查询是否已经提交过了报告签章
 | 
	
		
			
				|  |  | +            SignatureDailyOfficeWorkDTO dailyOfficeWork = this.findById(dailyOfficeWorkId);
 | 
	
		
			
				|  |  | +            if(null == dailyOfficeWork){
 | 
	
		
			
				|  |  | +                map.put("str","查询不到该签章申请信息");
 | 
	
		
			
				|  |  | +                map.put("success",false);
 | 
	
		
			
				|  |  | +                return map;
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            if(null!= dailyOfficeWork.getSignatureFlag() && 1 == dailyOfficeWork.getSignatureFlag()){
 | 
	
		
			
				|  |  | +                map.put("str","该盖章申请已完成");
 | 
	
		
			
				|  |  | +                map.put("success",false);
 | 
	
		
			
				|  |  | +                return map;
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            List<WorkAttachmentInfo> infoList = mapper.findListByIdAndAttachmentFlag(dailyOfficeWorkId,"signatureDaily");
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            //创建一个用于存放签章文件documentId的集合
 | 
	
		
			
				|  |  | +            List<String> documentList = Lists.newArrayList();
 | 
	
		
			
				|  |  | +            if(infoList.size()>0) {
 | 
	
		
			
				|  |  | +                String aliyunUrl = "http://cdn.gangwaninfo.com";
 | 
	
		
			
				|  |  | +                String aliDownloadUrl = "http://oss.gangwaninfo.com";
 | 
	
		
			
				|  |  | +                for (WorkAttachmentInfo workattachment : infoList) {
 | 
	
		
			
				|  |  | +                    if (StringUtils.isBlank(workattachment.getUrl())) {
 | 
	
		
			
				|  |  | +                        map.put("str", "签章文件存储路径为空,无法进行签章操作,请驳回后重新上传盖章文件");
 | 
	
		
			
				|  |  | +                        map.put("success", false);
 | 
	
		
			
				|  |  | +                    } else {
 | 
	
		
			
				|  |  | +                        if (StringUtils.isBlank(workattachment.getUrl())) {
 | 
	
		
			
				|  |  | +                            map.put("str", "签章文件存储路径为空,无法进行签章操作,请驳回后重新上传盖章文件");
 | 
	
		
			
				|  |  | +                            map.put("success", false);
 | 
	
		
			
				|  |  | +                        } else {
 | 
	
		
			
				|  |  | +                            //下载签章申请文件
 | 
	
		
			
				|  |  | +                            String path = null;
 | 
	
		
			
				|  |  | +                            if (System.getProperty("os.name").toLowerCase().contains("win")) {
 | 
	
		
			
				|  |  | +                                path = "D:/attachment-file/";
 | 
	
		
			
				|  |  | +                            } else {
 | 
	
		
			
				|  |  | +                                path = "/attachment-file/";
 | 
	
		
			
				|  |  | +                            }
 | 
	
		
			
				|  |  | +                            String file = aliyunUrl+workattachment.getUrl();
 | 
	
		
			
				|  |  | +                            file = file.replace("amp;", "");
 | 
	
		
			
				|  |  | +                            String fileName = file.substring(file.lastIndexOf("/") + 1, file.length());
 | 
	
		
			
				|  |  | +                            String cons = "";
 | 
	
		
			
				|  |  | +                            if (file.contains(aliyunUrl)) {
 | 
	
		
			
				|  |  | +                                cons = aliyunUrl;
 | 
	
		
			
				|  |  | +                            } else if (file.contains("http://gangwan-app.oss-cn-hangzhou.aliyuncs.com")) {
 | 
	
		
			
				|  |  | +                                cons = "http://gangwan-app.oss-cn-hangzhou.aliyuncs.com";
 | 
	
		
			
				|  |  | +                            } else {
 | 
	
		
			
				|  |  | +                                cons = aliDownloadUrl;
 | 
	
		
			
				|  |  | +                            }
 | 
	
		
			
				|  |  | +                            String ossKey = file.split(cons + "/")[1];
 | 
	
		
			
				|  |  | +                            SpringUtil.getBean ( IWorkAttachmentApi.class ).downByStreamSaveLocal(ossKey,fileName,path+fileName);
 | 
	
		
			
				|  |  | +                            //将下载下来的文件转换为file文件
 | 
	
		
			
				|  |  | +                            File srcFile = new File(path + fileName);
 | 
	
		
			
				|  |  | +                            deleteFile = path + fileName;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                            //截取文件后缀名
 | 
	
		
			
				|  |  | +                            String substring = srcFile.getName().substring(srcFile.getName().lastIndexOf(".") + 1, srcFile.getName().length());
 | 
	
		
			
				|  |  | +                            if (!"doc".equals(substring.toLowerCase()) && !"docx".equals(substring.toLowerCase()) && !"pdf".equals(substring.toLowerCase())) {
 | 
	
		
			
				|  |  | +                                map.put("str", "请上传doc、docx或者pdf的文件进行签章操作");
 | 
	
		
			
				|  |  | +                                map.put("success", false);
 | 
	
		
			
				|  |  | +                            } else {
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                                //获取真签单的documentId
 | 
	
		
			
				|  |  | +                                HashMap hashMap = new SignaturePostUtil().getDocument(srcFile);
 | 
	
		
			
				|  |  | +                                String code = hashMap.get("code").toString();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                                if ("0".equals(code)) {
 | 
	
		
			
				|  |  | +                                    String documentId = "";
 | 
	
		
			
				|  |  | +                                    String result = hashMap.get("result").toString();
 | 
	
		
			
				|  |  | +                                    HashMap documentIdMap = JSON.parseObject(result, HashMap.class);
 | 
	
		
			
				|  |  | +                                    documentId = documentIdMap.get("documentId").toString();
 | 
	
		
			
				|  |  | +                                    if ("".equals(documentId)) {
 | 
	
		
			
				|  |  | +                                        map.put("str", "签章文件创建失败,签章文件存在问题");
 | 
	
		
			
				|  |  | +                                        map.put("success", false);
 | 
	
		
			
				|  |  | +                                    } else {
 | 
	
		
			
				|  |  | +                                        documentList.add(documentId);
 | 
	
		
			
				|  |  | +                                    }
 | 
	
		
			
				|  |  | +                                } else {
 | 
	
		
			
				|  |  | +                                    String message = hashMap.get("message").toString();
 | 
	
		
			
				|  |  | +                                    map.put("str", message);
 | 
	
		
			
				|  |  | +                                    map.put("success", false);
 | 
	
		
			
				|  |  | +                                }
 | 
	
		
			
				|  |  | +                            }
 | 
	
		
			
				|  |  | +                        }
 | 
	
		
			
				|  |  | +                    }
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            //根据项目id 和 documentId生成合同id
 | 
	
		
			
				|  |  | +            HashMap contractIdHashMap = this.getManualSignatureContractId(documentList,dailyOfficeWork);
 | 
	
		
			
				|  |  | +            String contractIdCode = contractIdHashMap.get("code").toString();
 | 
	
		
			
				|  |  | +            String contractId = "";
 | 
	
		
			
				|  |  | +            if("0".equals(contractIdCode)){
 | 
	
		
			
				|  |  | +                contractId = contractIdHashMap.get("contractId").toString();
 | 
	
		
			
				|  |  | +                if("".equals(contractId)){
 | 
	
		
			
				|  |  | +                    map.put("str","签章文件创建失败");
 | 
	
		
			
				|  |  | +                    map.put("success",false);
 | 
	
		
			
				|  |  | +                    return map;
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +            }else{
 | 
	
		
			
				|  |  | +                map.put("str",contractIdHashMap.get("message").toString());
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            String documents = String.join(",", documentList);
 | 
	
		
			
				|  |  | +            //修改报告信息中对应的签章contractId
 | 
	
		
			
				|  |  | +            dailyOfficeWork.setSignatureDocumentId(documents);
 | 
	
		
			
				|  |  | +            dailyOfficeWork.setSignatureContractId(contractId);
 | 
	
		
			
				|  |  | +            //修改签章对应信息文件
 | 
	
		
			
				|  |  | +            signatureDailyOfficeWorkMapper.updateSignatureInfo(dailyOfficeWork);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            map.put("success",true);
 | 
	
		
			
				|  |  | +            return map;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            //获取contractUrl路径
 | 
	
		
			
				|  |  | +            /*String contractUrl = this.getSignatureContractUrl(contractId);
 | 
	
		
			
				|  |  | +            if("".equals(contractUrl)){
 | 
	
		
			
				|  |  | +                map.put("str","签章文件创建失败");
 | 
	
		
			
				|  |  | +                map.put("success",false);
 | 
	
		
			
				|  |  | +                return map;
 | 
	
		
			
				|  |  | +            }else{
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                String documents = String.join(",", documentList);
 | 
	
		
			
				|  |  | +                //修改报告信息中对应的签章contractId
 | 
	
		
			
				|  |  | +                dailyOfficeWork.setSignatureDocumentId(documents);
 | 
	
		
			
				|  |  | +                dailyOfficeWork.setSignatureContractId(contractId);
 | 
	
		
			
				|  |  | +                //修改签章对应信息文件
 | 
	
		
			
				|  |  | +                dao.updateSignatureInfo(dailyOfficeWork);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +                map.put("contractUrl",contractUrl);
 | 
	
		
			
				|  |  | +                map.put("success",true);
 | 
	
		
			
				|  |  | +                return map;
 | 
	
		
			
				|  |  | +            }*/
 | 
	
		
			
				|  |  | +        } catch (Exception e) {
 | 
	
		
			
				|  |  | +            e.getMessage();
 | 
	
		
			
				|  |  | +        } finally {
 | 
	
		
			
				|  |  | +            if(StringUtils.isNotBlank(deleteFile)){
 | 
	
		
			
				|  |  | +                //根据路径创建文件对象
 | 
	
		
			
				|  |  | +                File file = new File(deleteFile);
 | 
	
		
			
				|  |  | +                //路径是个文件且不为空时删除文件
 | 
	
		
			
				|  |  | +                if(file.isFile()&&file.exists()){
 | 
	
		
			
				|  |  | +                    file.delete();
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        return map;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    /**
 | 
	
		
			
				|  |  | +     * 根据项目id 和 documentId生成合同id(手动签生成签署合同)
 | 
	
		
			
				|  |  | +     * @param documentList
 | 
	
		
			
				|  |  | +     * @return
 | 
	
		
			
				|  |  | +     */
 | 
	
		
			
				|  |  | +    public HashMap getManualSignatureContractId(List<String> documentList,SignatureDailyOfficeWorkDTO dailyOfficeWork){
 | 
	
		
			
				|  |  | +        HashMap hashMap = new HashMap();
 | 
	
		
			
				|  |  | +        //创建签署方信息
 | 
	
		
			
				|  |  | +        List<Action> actions = Lists.newArrayList();
 | 
	
		
			
				|  |  | +        Set<String> serialIdSet = new HashSet<>();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        Action companyAction = new Action();
 | 
	
		
			
				|  |  | +        companyAction.setType("CORPORATE");
 | 
	
		
			
				|  |  | +        companyAction.setName("公司印章");
 | 
	
		
			
				|  |  | +        companyAction.setSerialNo("1");
 | 
	
		
			
				|  |  | +        //公司圆章-竖
 | 
	
		
			
				|  |  | +        serialIdSet.add(COMPANYROUNDSEALID);
 | 
	
		
			
				|  |  | +        //添加盖章位置
 | 
	
		
			
				|  |  | +        List<Location> locations = Lists.newArrayList();
 | 
	
		
			
				|  |  | +        for (String documentId: documentList) {
 | 
	
		
			
				|  |  | +            Location location = new Location();
 | 
	
		
			
				|  |  | +            location.setSealId(COMPANYROUNDSEALID);
 | 
	
		
			
				|  |  | +            location.setDocumentId(documentId);
 | 
	
		
			
				|  |  | +            location.setPage("0");
 | 
	
		
			
				|  |  | +            location.setRectType("SEAL_CORPORATE");
 | 
	
		
			
				|  |  | +            location.setKeywordIndex(-1);
 | 
	
		
			
				|  |  | +            location.setOffsetX("0.5264");
 | 
	
		
			
				|  |  | +            location.setOffsetY("0.6787");
 | 
	
		
			
				|  |  | +            locations.add(location);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        List<String> serialIdList = new ArrayList<String>(serialIdSet);
 | 
	
		
			
				|  |  | +        companyAction.setSealIds("[" + String.join(",", serialIdList) + "]");
 | 
	
		
			
				|  |  | +        companyAction.setAutoSign("false");
 | 
	
		
			
				|  |  | +        companyAction.setLocations(locations);
 | 
	
		
			
				|  |  | +        actions.add(companyAction);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        //创建签署方信息表
 | 
	
		
			
				|  |  | +        List<SignatorieInfo> signatories = Lists.newArrayList();
 | 
	
		
			
				|  |  | +        SignatorieInfo signatorieInfo1 = new SignatorieInfo();
 | 
	
		
			
				|  |  | +        signatorieInfo1.setSerialNo("1");
 | 
	
		
			
				|  |  | +        signatorieInfo1.setTenantName("江苏兴光项目管理有限公司");
 | 
	
		
			
				|  |  | +        signatorieInfo1.setTenantType("COMPANY");
 | 
	
		
			
				|  |  | +        signatorieInfo1.setActions(actions);
 | 
	
		
			
				|  |  | +        signatories.add(signatorieInfo1);
 | 
	
		
			
				|  |  | +        SignatureContract signatureContract = new SignatureContract();
 | 
	
		
			
				|  |  | +        signatureContract.setDocuments(documentList);
 | 
	
		
			
				|  |  | +        //签章申请用印流程id
 | 
	
		
			
				|  |  | +        signatureContract.setCategoryId(DAILYOFFICEWORK);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        signatureContract.setSend(true);
 | 
	
		
			
				|  |  | +        signatureContract.setSignatories(signatories);
 | 
	
		
			
				|  |  | +        signatureContract.setSn("");
 | 
	
		
			
				|  |  | +        if(null != dailyOfficeWork && StringUtils.isNotBlank(dailyOfficeWork.getNumber())){
 | 
	
		
			
				|  |  | +            signatureContract.setSubject(dailyOfficeWork.getNumber() + "。" + dailyOfficeWork.getSignatureName());//添加项目名称
 | 
	
		
			
				|  |  | +        }else if(null != dailyOfficeWork && StringUtils.isNotBlank(dailyOfficeWork.getSignatureName())){
 | 
	
		
			
				|  |  | +            signatureContract.setSubject(dailyOfficeWork.getSignatureName());//添加项目名称
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        JSONObject json = JSONObject.fromObject(signatureContract);
 | 
	
		
			
				|  |  | +        String contractIdMapStr = SignaturePostUtil.sendPostApplicationJson(HTTPTOP + "/contract/createbycategory", json.toString());
 | 
	
		
			
				|  |  | +        hashMap = JSON.parseObject(contractIdMapStr, HashMap.class);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        return hashMap;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    private SignatureDailyOfficeWork add(SignatureDailyOfficeWorkDTO dto, UserDTO userDTO) throws Exception {
 | 
	
		
			
				|  |  | +        // 生成id
 | 
	
		
			
				|  |  | +        String id = UUID.randomUUID().toString().replace("-", "");
 | 
	
		
			
				|  |  | +        // 生成编号
 | 
	
		
			
				|  |  | +        String no = SpringUtil.getBean ( IWorkAttachmentApi.class ).genSerialNum(userDTO.getCompanyDTO().getId(), dto.BIZ_CODE, TokenProvider.getCurrentToken());
 | 
	
		
			
				|  |  | +        //保存信息
 | 
	
		
			
				|  |  | +        SignatureDailyOfficeWork signatureDailyOfficeWork = new SignatureDailyOfficeWork();
 | 
	
		
			
				|  |  | +        BeanUtils.copyProperties(dto, signatureDailyOfficeWork);
 | 
	
		
			
				|  |  | +        signatureDailyOfficeWork.setId(id);
 | 
	
		
			
				|  |  | +        signatureDailyOfficeWork.setNumber(no);
 | 
	
		
			
				|  |  | +        signatureDailyOfficeWork.setCreateById(userDTO.getId());
 | 
	
		
			
				|  |  | +        signatureDailyOfficeWork.setCreateTime(new Date());
 | 
	
		
			
				|  |  | +        signatureDailyOfficeWork.setUpdateById(userDTO.getId());
 | 
	
		
			
				|  |  | +        signatureDailyOfficeWork.setUpdateTime(new Date());
 | 
	
		
			
				|  |  | +        signatureDailyOfficeWork.setDelFlag(0);
 | 
	
		
			
				|  |  | +        signatureDailyOfficeWorkMapper.insert(signatureDailyOfficeWork);
 | 
	
		
			
				|  |  | +        //生成签章信息
 | 
	
		
			
				|  |  | +        if ("2".equals(dto.getStatus())){
 | 
	
		
			
				|  |  | +            this.getManualSignatureUrl(id);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        // 保存附件列表信息
 | 
	
		
			
				|  |  | +        if (CollectionUtils.isNotEmpty(dto.getFiles())) {
 | 
	
		
			
				|  |  | +            saveFiles(dto.getFiles(), userDTO, id);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        return signatureDailyOfficeWork;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    /**
 | 
	
		
			
				|  |  | +     * 保存附件信息
 | 
	
		
			
				|  |  | +     * @param list 待保存的附件列表
 | 
	
		
			
				|  |  | +     * @param userDTO 当前登录用户
 | 
	
		
			
				|  |  | +     * @param id 关联id
 | 
	
		
			
				|  |  | +     */
 | 
	
		
			
				|  |  | +    @Transactional(rollbackFor = Exception.class)
 | 
	
		
			
				|  |  | +    public void saveFiles(List<WorkAttachmentInfo> list, UserDTO userDTO, String id) {
 | 
	
		
			
				|  |  | +        int j = 1;
 | 
	
		
			
				|  |  | +        for (WorkAttachmentInfo dto : list) {
 | 
	
		
			
				|  |  | +            WorkAttachmentInfo i = new WorkAttachmentInfo();
 | 
	
		
			
				|  |  | +            //包含了url、size、name
 | 
	
		
			
				|  |  | +            i.setId(UUID.randomUUID().toString().replace("-", ""));
 | 
	
		
			
				|  |  | +//            i.getCreateBy().setId(userDTO.getId());
 | 
	
		
			
				|  |  | +            i.setCreateTime(new Date());
 | 
	
		
			
				|  |  | +//            i.getUpdateBy().setId(userDTO.getId());
 | 
	
		
			
				|  |  | +            i.setUpdateTime(new Date());
 | 
	
		
			
				|  |  | +            i.setDelFlag(0);
 | 
	
		
			
				|  |  | +            i.setUrl(dto.getUrl());
 | 
	
		
			
				|  |  | +            //文件类型处理
 | 
	
		
			
				|  |  | +            List<String> strings = Arrays.asList(dto.getName().split("\\."));
 | 
	
		
			
				|  |  | +            if (org.flowable.editor.language.json.converter.util.CollectionUtils.isNotEmpty(strings)) {
 | 
	
		
			
				|  |  | +                i.setType(strings.get(1));
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            i.setAttachmentId(id);
 | 
	
		
			
				|  |  | +            i.setAttachmentName(dto.getName());
 | 
	
		
			
				|  |  | +            i.setAttachmentFlag("signatureDaily");
 | 
	
		
			
				|  |  | +            i.setFileSize(dto.getSize());
 | 
	
		
			
				|  |  | +            i.setSort(j);
 | 
	
		
			
				|  |  | +//            ossServiceMapper.insertWorkAttachment(i, userDTO);
 | 
	
		
			
				|  |  | +            Map<String,String> map = new HashMap<>();
 | 
	
		
			
				|  |  | +            String workAttachment = JSON.toJSONString((i));
 | 
	
		
			
				|  |  | +            String userDTOInfo = JSON.toJSONString((userDTO));
 | 
	
		
			
				|  |  | +            map.put("workAttachment",workAttachment);
 | 
	
		
			
				|  |  | +            map.put("userDTO",userDTOInfo);
 | 
	
		
			
				|  |  | +            SpringUtil.getBean ( IWorkAttachmentApi.class ).insertWorkAttachment(map);
 | 
	
		
			
				|  |  | +            j++;
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    /**
 | 
	
		
			
				|  |  | +     * 修改附件信息
 | 
	
		
			
				|  |  | +     * @param list 待修改的附件列表
 | 
	
		
			
				|  |  | +     * @param userDTO 当前登录用户
 | 
	
		
			
				|  |  | +     * @param id 关联id
 | 
	
		
			
				|  |  | +     */
 | 
	
		
			
				|  |  | +    @Transactional(rollbackFor = Exception.class)
 | 
	
		
			
				|  |  | +    public void updateFiles(List<WorkAttachmentInfo> list, UserDTO userDTO, String id, String attachmentFlag) {
 | 
	
		
			
				|  |  | +        int j = 1;
 | 
	
		
			
				|  |  | +        String names = new String();
 | 
	
		
			
				|  |  | +        //表中存在,但是传过来不存在,说明已删除,表中数据也要删除
 | 
	
		
			
				|  |  | +        for (WorkAttachmentInfo dto : list) {
 | 
	
		
			
				|  |  | +            names = names + "," +dto.getUrl();
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        //查询保存的附件信息
 | 
	
		
			
				|  |  | +        List<WorkAttachmentInfo> infoList = mapper.findListByIdAndAttachmentFlag(id,attachmentFlag);
 | 
	
		
			
				|  |  | +        if (org.flowable.editor.language.json.converter.util.CollectionUtils.isNotEmpty(infoList)) {
 | 
	
		
			
				|  |  | +            for (WorkAttachmentInfo i : infoList) {
 | 
	
		
			
				|  |  | +                if (!names.contains(i.getUrl())) {
 | 
	
		
			
				|  |  | +//                    ossServiceMapper.deleteById(i.getId());
 | 
	
		
			
				|  |  | +                    SpringUtil.getBean ( IWorkAttachmentApi.class ).deleteById(i.getId());
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        //保存信息
 | 
	
		
			
				|  |  | +        for (WorkAttachmentInfo dto : list) {
 | 
	
		
			
				|  |  | +            //判断是否存在
 | 
	
		
			
				|  |  | +            Integer isExit = mapper.findIsExit(id, dto.getName());
 | 
	
		
			
				|  |  | +            if (isExit == 0) {
 | 
	
		
			
				|  |  | +                WorkAttachmentInfo i = new WorkAttachmentInfo();
 | 
	
		
			
				|  |  | +                //包含了url、size、name
 | 
	
		
			
				|  |  | +                i.setId(UUID.randomUUID().toString().replace("-", ""));
 | 
	
		
			
				|  |  | +//                i.getCreateBy().setId(userDTO.getId());
 | 
	
		
			
				|  |  | +                i.setCreateTime(new Date());
 | 
	
		
			
				|  |  | +//                i.getUpdateBy().setId(userDTO.getId());
 | 
	
		
			
				|  |  | +                i.setUpdateTime(new Date());
 | 
	
		
			
				|  |  | +                i.setDelFlag(0);
 | 
	
		
			
				|  |  | +                i.setUrl(dto.getUrl());
 | 
	
		
			
				|  |  | +                //文件类型处理
 | 
	
		
			
				|  |  | +                List<String> strings = Arrays.asList(dto.getName().split("\\."));
 | 
	
		
			
				|  |  | +                if (org.flowable.editor.language.json.converter.util.CollectionUtils.isNotEmpty(strings)) {
 | 
	
		
			
				|  |  | +                    i.setType(strings.get(1));
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                i.setAttachmentId(id);
 | 
	
		
			
				|  |  | +                i.setAttachmentName(dto.getName());
 | 
	
		
			
				|  |  | +                i.setAttachmentFlag(attachmentFlag);
 | 
	
		
			
				|  |  | +                i.setFileSize(dto.getSize());
 | 
	
		
			
				|  |  | +                i.setSort(j);
 | 
	
		
			
				|  |  | +                Map<String,String> map = new HashMap<>();
 | 
	
		
			
				|  |  | +                String workAttachment = JSON.toJSONString((i));
 | 
	
		
			
				|  |  | +                String userDTOInfo = JSON.toJSONString((userDTO));
 | 
	
		
			
				|  |  | +                map.put("workAttachment",workAttachment);
 | 
	
		
			
				|  |  | +                map.put("userDTO",userDTOInfo);
 | 
	
		
			
				|  |  | +                SpringUtil.getBean ( IWorkAttachmentApi.class ).insertWorkAttachment(map);
 | 
	
		
			
				|  |  | +//                ossServiceMapper.insertWorkAttachment(i, userDTO);
 | 
	
		
			
				|  |  | +                j++;
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    /*8
 | 
	
		
			
				|  |  | +    删除
 | 
	
		
			
				|  |  | +     */
 | 
	
		
			
				|  |  | +    public String remove(String id) {
 | 
	
		
			
				|  |  | +        signatureDailyOfficeWorkMapper.deleteById(id);
 | 
	
		
			
				|  |  | +        SpringUtil.getBean ( IWorkAttachmentApi.class ).deleteByAttachmentId(id);
 | 
	
		
			
				|  |  | +        return "操作成功";
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    /**
 | 
	
		
			
				|  |  | +     * 根据id修改装填
 | 
	
		
			
				|  |  | +     * @param dto
 | 
	
		
			
				|  |  | +     */
 | 
	
		
			
				|  |  | +    public void updateStatusById(SignatureDailyOfficeWorkDTO dto) {
 | 
	
		
			
				|  |  | +        signatureDailyOfficeWorkMapper.updateStatusById(dto.getStatus(),dto.getId());
 | 
	
		
			
				|  |  | +        //如果是撤销或者是驳回,则需要对签章流程进行恢复
 | 
	
		
			
				|  |  | +        if ("3".equals(dto.getStatus())||"4".equals(dto.getStatus())){
 | 
	
		
			
				|  |  | +            SignatureDailyOfficeWork dailyOfficeWorkDTO = new SignatureDailyOfficeWork();
 | 
	
		
			
				|  |  | +            dailyOfficeWorkDTO.setSignatureContractId("");
 | 
	
		
			
				|  |  | +            dailyOfficeWorkDTO.setSignatureDocumentId("");
 | 
	
		
			
				|  |  | +            dailyOfficeWorkDTO.setSignatureFlag(0);
 | 
	
		
			
				|  |  | +            dailyOfficeWorkDTO.setSignatureUrlFlag(0);
 | 
	
		
			
				|  |  | +            dailyOfficeWorkDTO.setSignatureUrl("");
 | 
	
		
			
				|  |  | +            dailyOfficeWorkDTO.setSignatureFileName("");
 | 
	
		
			
				|  |  | +            dailyOfficeWorkDTO.setSignatureUploadDate(null);
 | 
	
		
			
				|  |  | +            dailyOfficeWorkDTO.setId(dto.getId());
 | 
	
		
			
				|  |  | +            signatureDailyOfficeWorkMapper.updateById(dailyOfficeWorkDTO);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    /**
 | 
	
		
			
				|  |  | +     * 根据documentId查询签章信息
 | 
	
		
			
				|  |  | +     * @param documentId
 | 
	
		
			
				|  |  | +     * @return
 | 
	
		
			
				|  |  | +     */
 | 
	
		
			
				|  |  | +    public SignatureDailyOfficeWorkDTO getByDocumentId(String documentId) {
 | 
	
		
			
				|  |  | +        SignatureDailyOfficeWorkDTO dailyOfficeWork = signatureDailyOfficeWorkMapper.getByDocumentId(documentId);
 | 
	
		
			
				|  |  | +        return dailyOfficeWork;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +    //根据contractId查询对应的报告信息
 | 
	
		
			
				|  |  | +    public SignatureDailyOfficeWorkDTO getByContractId(String contractId) {
 | 
	
		
			
				|  |  | +        SignatureDailyOfficeWorkDTO dailyOfficeWork = signatureDailyOfficeWorkMapper.getByContractId(contractId);
 | 
	
		
			
				|  |  | +        return dailyOfficeWork;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    /**
 | 
	
		
			
				|  |  | +     * 根据报告签章id查询签章审核节点信息
 | 
	
		
			
				|  |  | +     * @param
 | 
	
		
			
				|  |  | +     * @return
 | 
	
		
			
				|  |  | +     */
 | 
	
		
			
				|  |  | +    public Map<String,Object> getAuditNodeById(String id){
 | 
	
		
			
				|  |  | +        Map<String,Object> map = new HashMap<>();
 | 
	
		
			
				|  |  | +        //查询流程id
 | 
	
		
			
				|  |  | +        SignatureDailyOfficeWorkDTO workDTO = signatureDailyOfficeWorkMapper.findById(id);
 | 
	
		
			
				|  |  | +        if(StringUtils.isNotBlank(workDTO.getProcInsId())){
 | 
	
		
			
				|  |  | +            //根据流程id查询流程当前节点信息
 | 
	
		
			
				|  |  | +            String currentTask = flowTaskService.getCurrentTaskName(workDTO.getProcInsId());
 | 
	
		
			
				|  |  | +            if(StringUtils.isNotEmpty(currentTask)){
 | 
	
		
			
				|  |  | +                map.put("success", true);
 | 
	
		
			
				|  |  | +                map.put("message", "获取签章流程成功");
 | 
	
		
			
				|  |  | +                map.put("signatureType", currentTask);
 | 
	
		
			
				|  |  | +            }else{
 | 
	
		
			
				|  |  | +                map.put("success", false);
 | 
	
		
			
				|  |  | +                map.put("message", "获取签章流程失败");
 | 
	
		
			
				|  |  | +                map.put("signatureType", "");
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }else{
 | 
	
		
			
				|  |  | +            map.put("success", false);
 | 
	
		
			
				|  |  | +            map.put("message", "获取签章流程失败");
 | 
	
		
			
				|  |  | +            map.put("signatureType", "");
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        return map;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    /**
 | 
	
		
			
				|  |  | +     * 根据签章节点获取签章状态数据信息
 | 
	
		
			
				|  |  | +     * @param id
 | 
	
		
			
				|  |  | +     * @return
 | 
	
		
			
				|  |  | +     */
 | 
	
		
			
				|  |  | +    public Map<String,Object> getSignatureTypeById(String id){
 | 
	
		
			
				|  |  | +        Map<String,Object> map = new HashMap<>();
 | 
	
		
			
				|  |  | +        SignatureDailyOfficeWorkDTO officeWorkDTO = signatureDailyOfficeWorkMapper.findById(id);
 | 
	
		
			
				|  |  | +        if(null != officeWorkDTO){
 | 
	
		
			
				|  |  | +            map.put("success", true);
 | 
	
		
			
				|  |  | +            map.put("message", "获取签章完成情况成功");
 | 
	
		
			
				|  |  | +            map.put("signatureType", officeWorkDTO.getSignatureFlag());
 | 
	
		
			
				|  |  | +        }else{
 | 
	
		
			
				|  |  | +            map.put("success", false);
 | 
	
		
			
				|  |  | +            map.put("message", "获取签章完成情况失败");
 | 
	
		
			
				|  |  | +            map.put("signatureType", "0");
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        return map;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +}
 |