Browse Source

2026-09-07

代办增加“不良代码”
master
fengyuan_yang 2 weeks ago
parent
commit
06b11b00b3
  1. 5
      src/main/java/com/gaotao/modules/schedule/entity/ScheduleTodoMessageEntity.java
  2. 10
      src/main/java/com/gaotao/modules/schedule/service/impl/ScheduleServiceImpl.java
  3. 16
      src/main/java/com/gaotao/modules/sys/service/impl/SysFileServiceImpl.java
  4. 15
      src/main/resources/mapper/schedule/ScheduleTodoMessageMapper.xml

5
src/main/java/com/gaotao/modules/schedule/entity/ScheduleTodoMessageEntity.java

@ -114,4 +114,9 @@ public class ScheduleTodoMessageEntity implements Serializable {
* 责任部门编码roleId * 责任部门编码roleId
*/ */
private String responsibilityDept; private String responsibilityDept;
/**
* 不良代码异常代码规则确认时选择
*/
private String defectCode;
} }

10
src/main/java/com/gaotao/modules/schedule/service/impl/ScheduleServiceImpl.java

@ -4497,6 +4497,14 @@ public class ScheduleServiceImpl implements ScheduleService {
} }
if (ACTION_OPEN_DEFECT.equals(action) || ACTION_OPEN_DOWNTIME.equals(action)) { if (ACTION_OPEN_DEFECT.equals(action) || ACTION_OPEN_DOWNTIME.equals(action)) {
String functionName = inData == null ? "" : StringUtils.trimWhitespace(inData.getFunctionName()); String functionName = inData == null ? "" : StringUtils.trimWhitespace(inData.getFunctionName());
if (ACTION_OPEN_DEFECT.equals(action) && !StringUtils.hasText(inData == null ? null : inData.getDefectCode())) {
// 异常代码规则需等前端确认对话框选择不良代码后再落库
return;
}
if (ACTION_OPEN_DEFECT.equals(action)) {
String workCenterNo = inData == null ? "" : StringUtils.trimWhitespace(inData.getWorkCenterNo());
this.validateDefectCodeWorkCenter(inData.getSite(), inData.getDefectCode(), workCenterNo);
}
if (FUNCTION_NAME_ABNORMAL_ROLL_CUT.equals(functionName)) { if (FUNCTION_NAME_ABNORMAL_ROLL_CUT.equals(functionName)) {
// 异常截卷流程等同产量报告 + 换班结转提示类规则也需要缓存当前数据 // 异常截卷流程等同产量报告 + 换班结转提示类规则也需要缓存当前数据
saveSplitRuleCacheData(inData); saveSplitRuleCacheData(inData);
@ -4606,6 +4614,8 @@ public class ScheduleServiceImpl implements ScheduleService {
entity.setMatchedDefectRate(matchedDefectRate); entity.setMatchedDefectRate(matchedDefectRate);
entity.setMatchedTotalQty(matchedTotalQty); entity.setMatchedTotalQty(matchedTotalQty);
entity.setResponsibilityDept(StringUtils.hasText(responsibilityDept) ? responsibilityDept : null); entity.setResponsibilityDept(StringUtils.hasText(responsibilityDept) ? responsibilityDept : null);
String defectCode = inData.getDefectCode();
entity.setDefectCode(StringUtils.hasText(defectCode) ? truncate(defectCode.trim(), 50) : null);
scheduleTodoMessageMapper.insertTodoMessage(entity); scheduleTodoMessageMapper.insertTodoMessage(entity);
return entity; return entity;
} }

16
src/main/java/com/gaotao/modules/sys/service/impl/SysFileServiceImpl.java

@ -20,6 +20,8 @@ import org.springframework.web.multipart.MultipartFile;
import javax.servlet.ServletOutputStream; import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.io.*; import java.io.*;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
@ -128,7 +130,7 @@ public class SysFileServiceImpl implements SysFileService {
FileInputStream fis = null; FileInputStream fis = null;
BufferedInputStream bis = null; BufferedInputStream bis = null;
response.setContentType("application/force-download;charset=utf-8"); response.setContentType("application/force-download;charset=utf-8");
response.setHeader("Content-disposition", "attachment; filename=" + new String(getFileData.get(0).getFileName().getBytes("gbk"), "iso8859-1"));
setDownloadContentDisposition(response, getFileData.get(0).getFileName());
try { try {
//读取文件 //读取文件
fis = new FileInputStream(file); fis = new FileInputStream(file);
@ -149,6 +151,18 @@ public class SysFileServiceImpl implements SysFileService {
} }
} }
/**
* 设置下载响应头文件名必须加引号否则文件名中的逗号会被 Chrome 解析成多个 Content-Disposition
* 触发 net::ERR_RESPONSE_HEADERS_MULTIPLE_CONTENT_DISPOSITION
*/
private void setDownloadContentDisposition(HttpServletResponse response, String fileName) throws UnsupportedEncodingException {
String safeName = fileName == null ? "download" : fileName.replaceAll("[\\r\\n\"]", "_");
String asciiFallback = safeName.replaceAll("[^\\x20-\\x7E]", "_");
String encodedUtf8 = URLEncoder.encode(safeName, StandardCharsets.UTF_8.name()).replace("+", "%20");
response.setHeader("Content-Disposition",
"attachment; filename=\"" + asciiFallback + "\"; filename*=UTF-8''" + encodedUtf8);
}
@Override @Override
public List<SysOssEntity> getInspectionFile(SysOssEntity inData) { public List<SysOssEntity> getInspectionFile(SysOssEntity inData) {
List<SysOssEntity> files1 = sysOssDao.getSysFileByOrderRef2(inData); List<SysOssEntity> files1 = sysOssDao.getSysFileByOrderRef2(inData);

15
src/main/resources/mapper/schedule/ScheduleTodoMessageMapper.xml

@ -23,7 +23,8 @@
matched_roll_index, matched_roll_index,
matched_defect_rate, matched_defect_rate,
matched_total_qty, matched_total_qty,
responsibility_dept
responsibility_dept,
defect_code
) VALUES ( ) VALUES (
#{site}, #{site},
#{buNo}, #{buNo},
@ -44,7 +45,8 @@
#{matchedRollIndex,jdbcType=INTEGER}, #{matchedRollIndex,jdbcType=INTEGER},
#{matchedDefectRate,jdbcType=DECIMAL}, #{matchedDefectRate,jdbcType=DECIMAL},
#{matchedTotalQty,jdbcType=DECIMAL}, #{matchedTotalQty,jdbcType=DECIMAL},
#{responsibilityDept}
#{responsibilityDept},
#{defectCode,jdbcType=VARCHAR}
) )
</insert> </insert>
@ -268,6 +270,8 @@
stm.matched_defect_rate AS matchedDefectRate, stm.matched_defect_rate AS matchedDefectRate,
stm.matched_total_qty AS matchedTotalQty, stm.matched_total_qty AS matchedTotalQty,
stm.responsibility_dept AS responsibilityDept, stm.responsibility_dept AS responsibilityDept,
stm.defect_code AS defectCode,
ISNULL(idc.DefectDesc, '') AS defectDesc,
ISNULL(( ISNULL((
SELECT TOP 1 smd.process_exception_no SELECT TOP 1 smd.process_exception_no
FROM schedule_mrb_exception_detail smd FROM schedule_mrb_exception_detail smd
@ -281,6 +285,13 @@
FROM schedule_todo_message stm FROM schedule_todo_message stm
LEFT JOIN sys_role sr LEFT JOIN sys_role sr
ON CAST(sr.role_id AS NVARCHAR(100)) = stm.responsibility_dept ON CAST(sr.role_id AS NVARCHAR(100)) = stm.responsibility_dept
OUTER APPLY (
SELECT TOP 1 idcInner.DefectDesc
FROM InspectionDefectCode idcInner
WHERE idcInner.Site = stm.site
AND idcInner.DefectCode = stm.defect_code
ORDER BY CASE WHEN ISNULL(idcInner.Active, 'Y') = 'Y' THEN 0 ELSE 1 END
) idc
<include refid="todoCenterWhereSql"/> <include refid="todoCenterWhereSql"/>
ORDER BY stm.created_time DESC, stm.info_code DESC ORDER BY stm.created_time DESC, stm.info_code DESC
OFFSET #{query.offset} ROWS FETCH NEXT #{query.limit} ROWS ONLY OFFSET #{query.offset} ROWS FETCH NEXT #{query.limit} ROWS ONLY

Loading…
Cancel
Save