소스 검색

服务器新增不良记录

dzc 4 일 전
부모
커밋
215fbe41b7

+ 18 - 11
src/main/java/com/jeesite/modules/mes/service/MesLineProcessMaterialService.java

@@ -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);
 		}

+ 1 - 1
src/main/java/com/jeesite/modules/mes/service/MesProductRecordService.java

@@ -614,7 +614,7 @@ public class MesProductRecordService extends CrudService<MesProductRecordDao, Me
 			}
 		}
 
-		Map<String, Integer> craftConsumeMap = buildBindMaterialConsumeMap(bmlists);
+		Map<String, Integer> craftConsumeMap = buildBindMaterialConsumeMap(bmlists); //记录的是不同工艺对应的剩余数量
 
 		if(!mesLineProcess1.getType().equals("3")){ // 单部件
 			// 更新过程参数

+ 2 - 12
src/main/java/com/jeesite/modules/mes/service/MesStationTimeValidateService.java

@@ -11,11 +11,8 @@ import com.jeesite.modules.mes.util.CommonUitl;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.util.Arrays;
 import java.util.Date;
-import java.util.HashSet;
 import java.util.List;
-import java.util.Set;
 
 /**
  * 工位加工时效校验
@@ -26,10 +23,6 @@ public class MesStationTimeValidateService {
 	private static final int COOLING_OP023_TO_OP030_MINUTES = 30;
 	private static final int CROSS_OP150_TO_OP160_MINUTES = 15;
 
-	private static final Set<String> CROSS_TO_OP160_OPRNOS = new HashSet<>(Arrays.asList(
-			"OP160", "OP160A", "OP160B"
-	));
-
 	@Autowired
 	private MesDeviceTimeService mesDeviceTimeService;
 	@Autowired
@@ -82,7 +75,8 @@ public class MesStationTimeValidateService {
 	}
 
 	private String validateCrossOp150ToOp160(String oldOprno, String lineSn, String sn) {
-		if (!isCrossToOp160(oldOprno)) {
+		// formatOprno 会去掉 A/B,OP160A/OP160B 也会变成 OP160
+		if (!"OP160".equals(normalizeOprno(oldOprno))) {
 			return null;
 		}
 		Date op150Complete = findOprnoOkCompleteTime(sn, lineSn, "OP150");
@@ -141,10 +135,6 @@ public class MesStationTimeValidateService {
 		return latest;
 	}
 
-	private boolean isCrossToOp160(String oldOprno) {
-		return CROSS_TO_OP160_OPRNOS.contains(normalizeOprno(oldOprno));
-	}
-
 	private boolean matchOprno(String oldOprno, String target) {
 		return normalizeOprno(oldOprno).equals(normalizeOprno(target));
 	}

+ 43 - 1
src/main/java/com/jeesite/modules/mes/web/MesProductGp12Controller.java

@@ -64,11 +64,20 @@ public class MesProductGp12Controller extends BaseController {
 		model.addAttribute("mesProductGp12", mesProductGp12);
 		return "modules/mes/mesProductGp12List";
 	}
+
+	/**
+	 * 客户端不良记录列表(仿开班点检 ulist)
+	 */
+	@RequestMapping(value = "ulist")
+	public String ulist(MesProductGp12 mesProductGp12, Model model) {
+		model.addAttribute("mesProductGp12", mesProductGp12);
+		return "modules/mes/mesProductGp12ListUser";
+	}
 	
 	/**
 	 * 查询列表数据
 	 */
-	@RequiresPermissions("mes:mesProductGp12:view")
+//	@RequiresPermissions("mes:mesProductGp12:view")
 	@RequestMapping(value = "listData")
 	@ResponseBody
 	public Page<MesProductGp12> listData(MesProductGp12 mesProductGp12, HttpServletRequest request, HttpServletResponse response) {
@@ -78,6 +87,39 @@ public class MesProductGp12Controller extends BaseController {
 	}
 
 	/**
+	 * 客户端:NG 提交后保存不良记录
+	 */
+	@PostMapping(value = "saveNg")
+	@ResponseBody
+	public CommonResp saveNg(HttpServletRequest request) {
+		CommonResp<String> resp = new CommonResp<>();
+		String sn = request.getParameter("sn");
+		String oprno = request.getParameter("oprno");
+		String lineSn = request.getParameter("lineSn");
+		String remark = request.getParameter("remark");
+		String ucode = request.getParameter("ucode");
+		if (StringUtils.isEmpty(sn) || StringUtils.isEmpty(oprno) || StringUtils.isEmpty(lineSn)) {
+			resp.setResult(Global.FALSE);
+			resp.setMessage("参数错误");
+			return resp;
+		}
+		MesProductGp12 record = new MesProductGp12();
+		record.setSn(sn);
+		record.setOprno(oprno);
+		record.setLineSn(lineSn);
+		record.setRemark(remark);
+		if (StringUtils.isNotEmpty(ucode)) {
+			record.setCreateBy(ucode);
+			record.setUpdateBy(ucode);
+		}
+		mesProductGp12Service.save(record);
+		resp.setResult(Global.TRUE);
+		resp.setMessage("不良记录保存成功");
+		resp.setData(record.getId());
+		return resp;
+	}
+
+	/**
 	 * 查看编辑表单
 	 */
 	@RequiresPermissions("mes:mesProductGp12:view")

+ 4 - 0
src/main/resources/config/application.yml

@@ -703,6 +703,10 @@ shiro:
     ${adminPath}/mes/mesProductRecord/changeLine = anon
     ${adminPath}/mes/mesProductRivet/batchUpload = anon
     ${adminPath}/mes/mesProductInsulation2/batchUpload = anon
+    ${adminPath}/mes/mesGp12Items/items = anon
+    ${adminPath}/mes/mesProductGp12/ulist = anon
+    ${adminPath}/mes/mesProductGp12/listData = anon
+    ${adminPath}/mes/mesProductGp12/saveNg = anon
     ${adminPath}/** = user
 
 

+ 2 - 2
src/main/resources/views/modules/mes/mesProductGp12List.html

@@ -1,9 +1,9 @@
-<% layout('/layouts/default.html', {title: '工件拍照记录管理', libs: ['dataGrid']}){ %>
+<% layout('/layouts/default.html', {title: '不良原因记录', libs: ['dataGrid']}){ %>
 <div class="main-content">
 	<div class="box box-main">
 		<div class="box-header">
 			<div class="box-title">
-				<i class="fa icon-notebook"></i> ${text('工件拍照记录管理')}
+				<i class="fa icon-notebook"></i> ${text('不良原因记录')}
 			</div>
 			<div class="box-tools pull-right">
 				<a href="#" class="btn btn-default" id="btnSearch" title="${text('查询')}"><i class="fa fa-filter"></i> ${text('查询')}</a>