package com.thhy.pm.modules.biz.projectinfo.service.impl; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.thhy.general.common.BasicResult; import com.thhy.general.config.SysUserInfo; import com.thhy.general.utils.UserInfoUtils; import com.thhy.pm.modules.biz.file.service.FileService; import com.thhy.pm.modules.biz.projectinfo.entity.ProInfoFile; import com.thhy.pm.modules.biz.projectinfo.entity.ProInfoFileListVo; import com.thhy.pm.modules.biz.projectinfo.entity.ProInfoListVo; import com.thhy.pm.modules.biz.projectinfo.entity.ProjectInfo; import com.thhy.pm.modules.biz.projectinfo.mapper.ProInfoFileMapper; import com.thhy.pm.modules.biz.projectinfo.mapper.ProjectInfoMapper; import com.thhy.pm.modules.biz.projectinfo.service.ProjectInfoService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.io.Serializable; import java.util.Date; import java.util.List; /** * 服务实现类 * @author zhang_xiao_bo * @since 2023-04-23 17:02:12 */ @Service public class ProjectInfoServiceImpl implements ProjectInfoService { @Autowired private ProjectInfoMapper projectInfoMapper; @Autowired private ProInfoFileMapper infoFileMapper; @Autowired private FileService fileService; public ProjectInfo get(Serializable id){ return projectInfoMapper.queryById(id); } public List findList(ProjectInfo projectInfo){ SysUserInfo sysUserInfo = UserInfoUtils.getInstance().getUserInfo(); return projectInfoMapper.findList(projectInfo.setCompanyId(sysUserInfo.getCompanyId())); } @Override public List fileList(ProInfoFile projectInfo) { List proInfoFileListVos = infoFileMapper.findList(projectInfo); proInfoFileListVos.forEach(pf ->{ JSONObject json = new JSONObject(); json.put("fullpath",pf.getProInfoFile()); BasicResult basicResult = fileService.fileinfo(json.toJSONString()); if(basicResult.isSuccess()){ JSONArray jsonArray = JSONArray.parseArray(basicResult.getData().toString()); for(Object obj : jsonArray){ JSONObject j = JSON.parseObject(obj.toString()); if(j.containsKey("name")&&"name".equals(j.getString("name"))){ pf.setProInfoFileName(j.getString("value")); } } } }); return proInfoFileListVos; } @Override public List findListForExport(ProjectInfo projectInfo, String token) { SysUserInfo sysUserInfo = UserInfoUtils.getInstance().getUserInfo(token); return projectInfoMapper.findList(projectInfo.setCompanyId(sysUserInfo.getCompanyId())); } /** * 增加和修改 * @param projectInfo */ @Transactional public void addProjectInfo(ProjectInfo projectInfo){ SysUserInfo sysUserInfo = UserInfoUtils.getInstance().getUserInfo(); List paths = projectInfo.getProInfoFileList(); if(projectInfo.getProInfoId() == null){ //增加操作 projectInfo.setCreateUser(sysUserInfo.getUserId()); projectInfoMapper.insert(projectInfo); }else{ //修改操作 projectInfo.setUpdateTime(new Date()); projectInfo.setUpdateUser(sysUserInfo.getUserId()); projectInfoMapper.update(projectInfo); infoFileMapper.deleteByProId(projectInfo.getProInfoId()); } for(ProInfoFile file : paths){ file.setProInfoId(projectInfo.getProInfoId()); infoFileMapper.insert(file); } } /** * 修改 * @param projectInfo */ public void update(ProjectInfo projectInfo){ projectInfoMapper.update(projectInfo); } /** * 删除 * @param proInfoId */ public void delete(Serializable proInfoId){ projectInfoMapper.deletelogic(proInfoId); } }