|
@@ -1,13 +1,18 @@
|
|
|
package com.jeesite.modules.mes.service;
|
|
package com.jeesite.modules.mes.service;
|
|
|
|
|
|
|
|
|
|
+import java.util.HashMap;
|
|
|
import java.util.List;
|
|
import java.util.List;
|
|
|
|
|
+import java.util.Map;
|
|
|
|
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
|
|
import com.jeesite.common.entity.Page;
|
|
import com.jeesite.common.entity.Page;
|
|
|
|
|
+import com.jeesite.common.lang.ObjectUtils;
|
|
|
|
|
+import com.jeesite.common.lang.StringUtils;
|
|
|
import com.jeesite.common.service.CrudService;
|
|
import com.jeesite.common.service.CrudService;
|
|
|
|
|
+import com.jeesite.modules.mes.entity.MesMaterialCheckRecord;
|
|
|
import com.jeesite.modules.mes.entity.MesMaterialReport;
|
|
import com.jeesite.modules.mes.entity.MesMaterialReport;
|
|
|
import com.jeesite.modules.mes.dao.MesMaterialReportDao;
|
|
import com.jeesite.modules.mes.dao.MesMaterialReportDao;
|
|
|
import com.jeesite.common.service.ServiceException;
|
|
import com.jeesite.common.service.ServiceException;
|
|
@@ -28,6 +33,8 @@ public class MesMaterialReportService extends CrudService<MesMaterialReportDao,
|
|
|
|
|
|
|
|
@Autowired
|
|
@Autowired
|
|
|
private MesMaterialReportDao mesMaterialReportDao;
|
|
private MesMaterialReportDao mesMaterialReportDao;
|
|
|
|
|
+ @Autowired
|
|
|
|
|
+ private MesMaterialCheckRecordService mesMaterialCheckRecordService;
|
|
|
/**
|
|
/**
|
|
|
* 获取单条数据
|
|
* 获取单条数据
|
|
|
* @param mesMaterialReport
|
|
* @param mesMaterialReport
|
|
@@ -50,7 +57,9 @@ public class MesMaterialReportService extends CrudService<MesMaterialReportDao,
|
|
|
*/
|
|
*/
|
|
|
@Override
|
|
@Override
|
|
|
public Page<MesMaterialReport> findPage(MesMaterialReport mesMaterialReport) {
|
|
public Page<MesMaterialReport> findPage(MesMaterialReport mesMaterialReport) {
|
|
|
- return super.findPage(mesMaterialReport);
|
|
|
|
|
|
|
+ Page<MesMaterialReport> page = super.findPage(mesMaterialReport);
|
|
|
|
|
+ fillCheckResult(page.getList());
|
|
|
|
|
+ return page;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -60,7 +69,33 @@ public class MesMaterialReportService extends CrudService<MesMaterialReportDao,
|
|
|
*/
|
|
*/
|
|
|
@Override
|
|
@Override
|
|
|
public List<MesMaterialReport> findList(MesMaterialReport mesMaterialReport) {
|
|
public List<MesMaterialReport> findList(MesMaterialReport mesMaterialReport) {
|
|
|
- return super.findList(mesMaterialReport);
|
|
|
|
|
|
|
+ List<MesMaterialReport> list = super.findList(mesMaterialReport);
|
|
|
|
|
+ fillCheckResult(list);
|
|
|
|
|
+ return list;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 按报检状态补全检查结果,避免 JOIN 检查表导致 N×M 行数放大。
|
|
|
|
|
+ */
|
|
|
|
|
+ private void fillCheckResult(List<MesMaterialReport> list) {
|
|
|
|
|
+ if (list == null || list.isEmpty()) {
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+ Map<String, String> latestCheckStateBySn = new HashMap<>();
|
|
|
|
|
+ for (MesMaterialReport report : list) {
|
|
|
|
|
+ if (!"1".equals(report.getState()) || StringUtils.isBlank(report.getSn())) {
|
|
|
|
|
+ report.setCheckResult(null);
|
|
|
|
|
+ continue;
|
|
|
|
|
+ }
|
|
|
|
|
+ String sn = report.getSn().trim();
|
|
|
|
|
+ if (!latestCheckStateBySn.containsKey(sn)) {
|
|
|
|
|
+ MesMaterialCheckRecord query = new MesMaterialCheckRecord();
|
|
|
|
|
+ query.setSn(sn);
|
|
|
|
|
+ MesMaterialCheckRecord latest = mesMaterialCheckRecordService.findInfo(query);
|
|
|
|
|
+ latestCheckStateBySn.put(sn, ObjectUtils.isEmpty(latest) ? null : latest.getState());
|
|
|
|
|
+ }
|
|
|
|
|
+ report.setCheckResult(latestCheckStateBySn.get(sn));
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
/**
|