package com.ruoyi.process.service.impl;
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.ruoyi.common.core.domain.entity.User;
|
import com.ruoyi.common.utils.QueryWrappers;
|
import com.ruoyi.framework.exception.ErrorException;
|
import com.ruoyi.inspect.mapper.InsOrderMapper;
|
import com.ruoyi.process.dto.InspectionOrderExportDto;
|
import com.ruoyi.process.dto.ProcessOrderDto;
|
import com.ruoyi.process.mapper.ProcessOrderMapper;
|
import com.ruoyi.process.pojo.ProcessOrder;
|
import com.ruoyi.process.service.ProcessOrderService;
|
import com.ruoyi.system.mapper.UserMapper;
|
import org.springframework.beans.BeanUtils;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
|
import javax.annotation.Resource;
|
import javax.servlet.http.HttpServletResponse;
|
import java.time.format.DateTimeFormatter;
|
|
/**
|
* <p>
|
* 要求、标书和合同评审 服务实现类
|
* </p>
|
*
|
* @author 芯导软件(江苏)有限公司
|
* @since 2024-11-05 03:06:20
|
*/
|
@Service
|
@Transactional(rollbackFor = Exception.class)
|
public class ProcessOrderServiceImpl extends ServiceImpl<ProcessOrderMapper, ProcessOrder> implements ProcessOrderService {
|
|
@Resource
|
private ProcessOrderMapper processOrderMapper;
|
|
@Resource
|
InsOrderMapper insOrderMapper;
|
|
@Resource
|
private UserMapper userMapper;
|
|
@Override
|
public IPage<ProcessOrderDto> pageProcessOrder(Page page, ProcessOrderDto processOrderDto) {
|
|
return processOrderMapper.pageProcessOrder(page, QueryWrappers.queryWrappers(processOrderDto));
|
}
|
|
@Override
|
public ProcessOrderDto getProcessOrder(Integer id) {
|
return processOrderMapper.getProcessOrder(id);
|
}
|
|
@Override
|
public int doProcessOrder(ProcessOrder processOrder) {
|
if (ObjectUtils.isNotEmpty(processOrder.getComprehensiveUser())) {
|
User user = userMapper.selectById(processOrder.getComprehensiveUser());
|
if (ObjectUtils.isEmpty(user.getSignatureUrl())) throw new ErrorException("未找到综合室签名人的电子签名,请上传电子签名!");
|
}
|
if (ObjectUtils.isNotEmpty(processOrder.getIssueUser())) {
|
User user = userMapper.selectById(processOrder.getIssueUser());
|
if (ObjectUtils.isEmpty(user.getSignatureUrl())) throw new ErrorException("未找到领样员的电子签名,请上传电子签名!");
|
}
|
return processOrderMapper.updateById(processOrder);
|
}
|
|
|
@Override
|
public void exportInspectionOrder(Integer id, HttpServletResponse response) {
|
// ProcessOrder processOrder = baseMapper.selectById(id);
|
// InspectionOrderExportDto inspectionOrderExportDto = extracted(processOrder);
|
// List<InspectionOrderDetail> list = baseMapper.selectInsOrder(processOrder.getInsOrderId());
|
// int index = 1;
|
// for (InspectionOrderDetail inspectionOrderDetail : list) {
|
// inspectionOrderDetail.setIndex(index);
|
// index++;
|
// }
|
//
|
// // 获取路径
|
// InputStream inputStream = this.getClass().getResourceAsStream("/static/inspection-order.docx");
|
// Configure configure = Configure.builder()
|
// .bind("inspectionOrderDetailList", new HackLoopTableRenderPolicy())
|
// .build();
|
// XWPFTemplate template = XWPFTemplate.compile(inputStream, configure).render(
|
// new HashMap<String, Object>() {{
|
// put("inspectionOrder", inspectionOrderExportDto);
|
// put("inspectionOrderDetailList", list);
|
// }});
|
//
|
// // 处理换行问题
|
// XWPFDocumentUtils.updateMergeByDocument(template.getXWPFDocument());
|
// try {
|
// response.setContentType("application/msword");
|
// String fileName = URLEncoder.encode(
|
// inspectionOrderExportDto.getSample(), "UTF-8");
|
// response.setHeader("Content-disposition",
|
// "attachment;filename=" + fileName + ".docx");
|
// OutputStream os = response.getOutputStream();
|
// template.write(os);
|
// os.flush();
|
// os.close();
|
// } catch (Exception e) {
|
// e.printStackTrace();
|
// throw new RuntimeException("导出失败");
|
// }
|
}
|
|
private InspectionOrderExportDto extracted(ProcessOrder processOrder) {
|
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy年MM月dd日");
|
InspectionOrderExportDto inspectionOrderExportDto = new InspectionOrderExportDto();
|
ProcessOrderDto processOrderDto = getProcessOrder(processOrder.getId());
|
BeanUtils.copyProperties(processOrderDto, inspectionOrderExportDto);
|
if (processOrderDto.getCreateTime() != null) {
|
inspectionOrderExportDto.setCommissionDateString(processOrderDto.getCreateTime().format(formatter));
|
}
|
if (processOrder.getComprehensiveTime() != null) {
|
inspectionOrderExportDto.setReceiptDataString(processOrder.getComprehensiveTime().format(formatter));
|
}
|
if (processOrder.getIssueTime() != null) {
|
inspectionOrderExportDto.setSampleDataString(processOrder.getIssueTime().format(formatter));
|
}
|
if (processOrderDto.getAppointed() != null) {
|
inspectionOrderExportDto.setAppointedString(processOrderDto.getAppointed().format(formatter));
|
}
|
|
inspectionOrderExportDto.setIsLeave1(processOrderDto.getIsLeave() != null && processOrderDto.getIsLeave() == 1 ? "☑" : "□");
|
inspectionOrderExportDto.setIsLeave2(processOrderDto.getIsLeave() != null && processOrderDto.getIsLeave() == 0 ? "☑" : "□");
|
inspectionOrderExportDto.setSend0(processOrderDto.getSend() != null && processOrderDto.getSend() == 1 ? "☑" : "□");
|
inspectionOrderExportDto.setSend1(processOrderDto.getSend() != null && processOrderDto.getSend() == 0 ? "☑" : "□");
|
inspectionOrderExportDto.setProcessing0(processOrderDto.getProcessing() != null && processOrderDto.getProcessing() == 0 ? "☑" : "□");
|
inspectionOrderExportDto.setProcessing1(processOrderDto.getProcessing() != null && processOrderDto.getProcessing() == 1 ? "☑" : "□");
|
if (ObjectUtils.isNotEmpty(processOrder.getRule())) {
|
inspectionOrderExportDto.setCriterionRule0(processOrder.getRule().equals("不考虑不确定度") ? "☑" : "□");
|
inspectionOrderExportDto.setCriterionRule1(processOrder.getRule().contains("-") ? "☑" : "□");
|
inspectionOrderExportDto.setCriterionRuleRemark(processOrder.getRule().contains("-") ? processOrder.getRule().split("-")[1] : "");
|
}
|
return inspectionOrderExportDto;
|
}
|
}
|