| | |
| | | package com.ruoyi.inspect.service.impl; |
| | | |
| | | import cn.hutool.core.bean.BeanUtil; |
| | | import com.alibaba.excel.EasyExcel; |
| | | import com.alibaba.excel.support.ExcelTypeEnum; |
| | | import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy; |
| | | import com.alibaba.fastjson.JSONArray; |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; |
| | |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.ruoyi.common.core.domain.Result; |
| | | import com.ruoyi.common.core.domain.entity.SysDictData; |
| | | import com.ruoyi.common.enums.ContractType; |
| | | import com.ruoyi.common.oa.OAProcess; |
| | | import com.ruoyi.common.oa.OAProperty; |
| | | import com.ruoyi.common.oa.OAResult; |
| | |
| | | import com.ruoyi.framework.exception.ErrorException; |
| | | import com.ruoyi.inspect.dto.PushOADto; |
| | | import com.ruoyi.inspect.dto.UnqualifiedHandlerDto; |
| | | import com.ruoyi.inspect.excel.InsUnqualifiedHandlerExcelData; |
| | | import com.ruoyi.inspect.mapper.InsOrderMapper; |
| | | import com.ruoyi.inspect.mapper.InsUnqualifiedHandlerMapper; |
| | | import com.ruoyi.inspect.pojo.CommonOa; |
| | |
| | | import com.ruoyi.inspect.service.InsUnqualifiedHandlerFileService; |
| | | import com.ruoyi.inspect.service.InsUnqualifiedHandlerService; |
| | | import com.ruoyi.inspect.vo.UnqualifiedHandlerVO; |
| | | import com.ruoyi.system.mapper.UserMapper; |
| | | import com.ruoyi.system.service.UserService; |
| | | import com.ruoyi.system.service.ISysDictTypeService; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.factory.annotation.Value; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Isolation; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import javax.annotation.Resource; |
| | | import javax.servlet.http.HttpServletResponse; |
| | | import java.net.URLEncoder; |
| | | import java.nio.charset.StandardCharsets; |
| | | import java.time.format.DateTimeFormatter; |
| | | import java.util.ArrayList; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | | * @author 27233 |
| | |
| | | private InsUnqualifiedHandlerFileService insUnqualifiedHandlerFileService; |
| | | @Resource |
| | | private InsOrderMapper insOrderMapper; |
| | | @Resource |
| | | private ISysDictTypeService sysDictTypeService; |
| | | |
| | | |
| | | @Override |
| | | public IPage<UnqualifiedHandlerVO> pageList(Page page, UnqualifiedHandlerDto unqualifiedHandlerDto) { |
| | | return baseMapper.selectPageList(page, QueryWrappers.queryWrappers(unqualifiedHandlerDto)); |
| | | String feedbackStartDate = unqualifiedHandlerDto.getFeedbackStartTime(); |
| | | String feedbackEndDate = unqualifiedHandlerDto.getFeedbackEndTime(); |
| | | unqualifiedHandlerDto.setFeedbackStartTime(null); |
| | | unqualifiedHandlerDto.setFeedbackEndTime(null); |
| | | return baseMapper.selectPageList(page, QueryWrappers.queryWrappers(unqualifiedHandlerDto),feedbackStartDate,feedbackEndDate); |
| | | } |
| | | |
| | | @Override |
| | | public void exportUnqualifiedHandler(UnqualifiedHandlerDto unqualifiedHandlerDto, HttpServletResponse response) { |
| | | response.reset(); |
| | | try{ |
| | | //查询字典 |
| | | List<SysDictData> materialPropType = sysDictTypeService.selectDictDataByType("material_prop_type");//物料属性 |
| | | List<SysDictData> categoriesNoConformities = sysDictTypeService.selectDictDataByType("categories_no_conformities");//不合格分类 |
| | | List<SysDictData> attributionNoConformities = sysDictTypeService.selectDictDataByType("attribution_no_conformities");// 不合格归属 |
| | | //查询不合格处理记录 |
| | | IPage<UnqualifiedHandlerVO> pageList = pageList(new Page<>(-1, -1), unqualifiedHandlerDto); |
| | | List<InsUnqualifiedHandlerExcelData> records = pageList.getRecords().stream().map(m->{ |
| | | InsUnqualifiedHandlerExcelData handlerExcelData = new InsUnqualifiedHandlerExcelData(); |
| | | BeanUtil.copyProperties(m,handlerExcelData); |
| | | handlerExcelData.setMaterialProp(materialPropType.stream().filter(f-> StringUtils.equals(f.getDictValue(),handlerExcelData.getMaterialProp())).findFirst().orElse(new SysDictData()).getDictLabel()); |
| | | handlerExcelData.setClassification(categoriesNoConformities.stream().filter(f-> StringUtils.equals(f.getDictValue(),handlerExcelData.getClassification())).findFirst().orElse(new SysDictData()).getDictLabel()); |
| | | handlerExcelData.setOffGradeAscription(attributionNoConformities.stream().filter(f-> StringUtils.equals(f.getDictValue(),handlerExcelData.getOffGradeAscription())).findFirst().orElse(new SysDictData()).getDictLabel()); |
| | | return handlerExcelData; |
| | | }).collect(Collectors.toList()); |
| | | //设置response |
| | | String fileName = "不合格处理记录" + ExcelTypeEnum.XLSX.getValue(); |
| | | fileName = URLEncoder.encode(fileName, StandardCharsets.UTF_8.toString()); |
| | | response.setContentType("application/vnd.ms-excel"); |
| | | response.setHeader("Cache-Control", "no-cache"); |
| | | response.setHeader("Content-Disposition", "attachment;filename=" + fileName); |
| | | response.setHeader("Access-Control-Expose-Headers", "Content-Disposition"); |
| | | //导出 |
| | | |
| | | EasyExcel.write(response.getOutputStream(), InsUnqualifiedHandlerExcelData.class) |
| | | .sheet() |
| | | .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()) |
| | | .doWrite(records); |
| | | }catch (Exception e){ |
| | | e.printStackTrace(); |
| | | throw new RuntimeException("不合格处理记录导出失败"); |
| | | } |
| | | |
| | | } |
| | | |
| | | @Override |
| | | public Result pushOA(PushOADto pushOADto) { |
| | | //获取不合格处理记录 |
| | | UnqualifiedHandlerVO vo = baseMapper.findById(pushOADto.getHandlerId()); |
| | | |
| | | if (vo.getRequestId() != null) { |
| | | throw new ErrorException("该不合格处理已提交过OA"); |
| | | } |
| | | |
| | | //提交oa相关字段赋值 |
| | | DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); |
| | |
| | | boolean oa = false; |
| | | try { |
| | | log.info("发起不合格处理OA审核流程"); |
| | | String unqualifiedProcessId = oaProperty.getUnqualifiedProcessId(); |
| | | //根据IFS域获取对应的流程id |
| | | if(StringUtils.isBlank(pushOADto.getContract())){ |
| | | throw new RuntimeException("IFS域【"+pushOADto.getContract()+"】不存在,OA流程提交失败"); |
| | | } |
| | | String unqualifiedProcessId = StringUtils.equals(ContractType.ZTNS.getValue(),pushOADto.getContract())?oaProperty.getUnqualifiedProcessId():oaProperty.getUnqualifiedProcessIdByKJNS(); |
| | | OAResult oaResult = OAProcess.start(mainFields, requestName, unqualifiedProcessId,SecurityUtils.getUsername()); |
| | | log.info("不合格处理OA审核流程结束,返回结果->{}" + oaResult); |
| | | log.info("{}不合格处理OA审核流程结束,返回结果->{}",unqualifiedProcessId,oaResult); |
| | | oa = oaResult.success(); |
| | | if (oa) { |
| | | String addWorkflowResult = oaResult.getAddWorkflowResult(); |
| | |
| | | * @return |
| | | */ |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class,isolation = Isolation.READ_COMMITTED) |
| | | public boolean updateUnqualifiedHandler(UnqualifiedHandlerDto unqualifiedHandlerDto) { |
| | | // 删除附件, 重新添加 |
| | | insUnqualifiedHandlerFileService.remove(Wrappers.<InsUnqualifiedHandlerFile>lambdaQuery() |
| | |
| | | } |
| | | insUnqualifiedHandlerFileService.updateBatchById(unqualifiedHandlerDto.getUnqualifiedHandlerFiles()); |
| | | } |
| | | |
| | | return this.updateById(unqualifiedHandlerDto); |
| | | boolean isUpdated = this.updateById(unqualifiedHandlerDto); |
| | | if(isUpdated){ |
| | | //推送OA |
| | | PushOADto pushOADto = new PushOADto(); |
| | | pushOADto.setHandlerId(unqualifiedHandlerDto.getId()); |
| | | pushOADto.setContract(unqualifiedHandlerDto.getContract()); |
| | | pushOA(pushOADto); |
| | | } |
| | | return true; |
| | | } |
| | | |
| | | /** |