|
|
@@ -1,7 +1,9 @@
|
|
|
package com.jeesite.modules.mes.service;
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
+import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
|
|
|
import com.jeesite.common.collect.ListUtils;
|
|
|
import com.jeesite.common.config.Global;
|
|
|
@@ -111,14 +113,22 @@ public class MesLineProcessMaterialService extends CrudService<MesLineProcessMat
|
|
|
if(ListUtils.isEmpty(lists)){
|
|
|
return null; // 不需要绑定物料
|
|
|
}
|
|
|
- // 工位绑定物料批次表
|
|
|
+ // 工位绑定物料批次表:按工艺号建索引,避免双层循环
|
|
|
MesMaterialPrebind mesMaterialPrebind = new MesMaterialPrebind();
|
|
|
mesMaterialPrebind.setOprno(oldOprno);
|
|
|
mesMaterialPrebind.setLineSn(lineSn);
|
|
|
List<MesMaterialPrebind> mmps = mesMaterialPrebindService.findList(mesMaterialPrebind);
|
|
|
+ Map<String, MesMaterialPrebind> prebindByCraft = new HashMap<>();
|
|
|
+ if (!ListUtils.isEmpty(mmps)) {
|
|
|
+ for (MesMaterialPrebind prebind : mmps) {
|
|
|
+ if (prebind.getCraft() != null) {
|
|
|
+ prebindByCraft.put(prebind.getCraft(), prebind);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
List<BindMaterialResp> mlists = new ArrayList<>();
|
|
|
- for (MesLineProcessMaterial mesLineProcessMaterial1:lists){
|
|
|
+ for (MesLineProcessMaterial mesLineProcessMaterial1 : lists) {
|
|
|
BindMaterialResp bindMaterialResp = new BindMaterialResp();
|
|
|
bindMaterialResp.setMaterialId(mesLineProcessMaterial1.getMaterialId());
|
|
|
bindMaterialResp.setMaterialTitle(mesLineProcessMaterial1.getMaterialTitle());
|
|
|
@@ -130,15 +140,12 @@ public class MesLineProcessMaterialService extends CrudService<MesLineProcessMat
|
|
|
bindMaterialResp.setConsumeNums(mesLineProcessMaterial1.getConsumeNums());
|
|
|
bindMaterialResp.setOprno(oldOprno);
|
|
|
|
|
|
- if(!ListUtils.isEmpty(mmps)){
|
|
|
- for (MesMaterialPrebind mesMaterialPrebind1:mmps){
|
|
|
- if(mesMaterialPrebind1.getOprno().equals(oldOprno) && mesMaterialPrebind1.getCraft().equals(mesLineProcessMaterial1.getCraft())){
|
|
|
- bindMaterialResp.setBatchSn(mesMaterialPrebind1.getBatchSn());
|
|
|
- bindMaterialResp.setLastTimes(mesMaterialPrebind1.getLastTimes()+"");
|
|
|
- bindMaterialResp.setType(mesMaterialPrebind1.getType());
|
|
|
- bindMaterialResp.setMesMaterialPrebind(mesMaterialPrebind1);
|
|
|
- }
|
|
|
- }
|
|
|
+ MesMaterialPrebind matched = prebindByCraft.get(mesLineProcessMaterial1.getCraft());
|
|
|
+ if (matched != null) {
|
|
|
+ bindMaterialResp.setBatchSn(matched.getBatchSn());
|
|
|
+ bindMaterialResp.setLastTimes(matched.getLastTimes() + "");
|
|
|
+ bindMaterialResp.setType(matched.getType());
|
|
|
+ bindMaterialResp.setMesMaterialPrebind(matched);
|
|
|
}
|
|
|
mlists.add(bindMaterialResp);
|
|
|
}
|