|
@@ -17,6 +17,10 @@ import java.util.stream.Collectors;
|
|
|
import java.util.stream.IntStream;
|
|
|
import java.util.stream.Stream;
|
|
|
|
|
|
+import com.alibaba.excel.metadata.Head;
|
|
|
+import com.alibaba.excel.write.merge.AbstractMergeStrategy;
|
|
|
+import org.apache.poi.ss.usermodel.Cell;
|
|
|
+import org.apache.poi.ss.usermodel.Sheet;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
@@ -923,17 +927,18 @@ public class FirstArticleServiceImpl extends ServiceImpl<FirstArticleMapper, Ben
|
|
|
@Override
|
|
|
public void setApproval(ApprovalRule approvalRuleNextLevel,Long taskId,Long userId) {
|
|
|
if (approvalRuleNextLevel!=null) {
|
|
|
- firstArticleApprovalTaskService.save(FirstArticleApprovalTask.builder()
|
|
|
- .firstArticleTaskId(taskId)
|
|
|
- .approvalLevel(approvalRuleNextLevel.getApprovalLevel())
|
|
|
- .approvalRole(approvalRuleNextLevel.getRoleId())
|
|
|
- .status(0)
|
|
|
- .build());
|
|
|
- FirstArticleTask firstArticleTask = firstArticleTaskService.getById(taskId);
|
|
|
- FirstArticleCalendar calendar = firstArticleCalendarService.getById(firstArticleTask.getFirstArticleCalendarId());
|
|
|
- BentelerPlan plan = this.getById(calendar.getBentelerPlanId());
|
|
|
- String type= firstArticleTask.getTypeFlag()==0?"首件":firstArticleTask.getTypeFlag()==1?"200件":"中断";
|
|
|
- String planName = plan.getName().length()>15?(plan.getName().substring(0,12)+"..."):plan.getName();
|
|
|
+ int approvalLevel = approvalRuleNextLevel.getApprovalLevel();
|
|
|
+ firstArticleApprovalTaskService.save(FirstArticleApprovalTask.builder()
|
|
|
+ .firstArticleTaskId(taskId)
|
|
|
+ .approvalLevel(String.valueOf(approvalLevel))
|
|
|
+ .approvalRole(approvalRuleNextLevel.getRoleId())
|
|
|
+ .status(0)
|
|
|
+ .build());
|
|
|
+ FirstArticleTask firstArticleTask = firstArticleTaskService.getById(taskId);
|
|
|
+ FirstArticleCalendar calendar = firstArticleCalendarService.getById(firstArticleTask.getFirstArticleCalendarId());
|
|
|
+ BentelerPlan plan = this.getById(calendar.getBentelerPlanId());
|
|
|
+ String type = firstArticleTask.getTypeFlag() == 0 ? "首件" : firstArticleTask.getTypeFlag() == 1 ? "200件" : "中断";
|
|
|
+ String planName = plan.getName().length() > 15 ? (plan.getName().substring(0, 12) + "...") : plan.getName();
|
|
|
//向下一级别发送提醒
|
|
|
wxService.sendWechatMessageByRole(SendMsgReq.builder()
|
|
|
.title("计划放行("+type+")")
|
|
@@ -1437,7 +1442,14 @@ public class FirstArticleServiceImpl extends ServiceImpl<FirstArticleMapper, Ben
|
|
|
//频率 首件&200&中断
|
|
|
beanMap.put("frequency", collect);
|
|
|
//放行记录
|
|
|
- beanMap.put("permit", new Integer(1).equals(item1.getReleaseFlag()) ? "存在" : "无");
|
|
|
+ if (item1.getPermitDesc() != null && item1.getPermitDesc().size() > 0) {
|
|
|
+ beanMap.put("permit", item1.getPermitDesc().stream().map(item2 -> {
|
|
|
+ return
|
|
|
+ Optional.ofNullable(item2.getApprovalUserName()).orElse("") +
|
|
|
+ Optional.ofNullable(item2.getUpdatedTime()).map(item3 -> item2.getUpdatedTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))).orElse("") +
|
|
|
+ Optional.ofNullable(item2.getReason()).orElse("");
|
|
|
+ }).collect(Collectors.joining("\r\n")));
|
|
|
+ }
|
|
|
//工具
|
|
|
beanMap.put("tool", item1.getToolId().equals("-1") ? "非工具校验" : item1.getToolId() + item1.getToolDesc());
|
|
|
//序号 1-n
|
|
@@ -1458,7 +1470,16 @@ public class FirstArticleServiceImpl extends ServiceImpl<FirstArticleMapper, Ben
|
|
|
tempFile = File.createTempFile("shoujian", ".xlsx");
|
|
|
|
|
|
// 这里 会填充到第一个sheet, 然后文件流会自动关闭
|
|
|
- excelWriter = EasyExcel.write(tempFile).withTemplate(templateFileName).build();
|
|
|
+ //设置识别自动换行
|
|
|
+ excelWriter = EasyExcel.write(tempFile).withTemplate(templateFileName).registerWriteHandler(new AbstractMergeStrategy() {
|
|
|
+ @Override
|
|
|
+ protected void merge(Sheet sheet, Cell cell, Head head, Integer relativeRowIndex) {
|
|
|
+ if (cell.getColumnIndex() >= 4) {
|
|
|
+ // 设置自动换行
|
|
|
+ cell.getCellStyle().setWrapText(true);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }).build();
|
|
|
|
|
|
|
|
|
WriteSheet writeSheet = EasyExcel.writerSheet("首件")
|