Prechádzať zdrojové kódy

首件检ng限制,扫码记录提示

hfy 1 mesiac pred
rodič
commit
c122118fc7

+ 8 - 9
src/main/java/com/jeesite/modules/mes/service/MesOp050RecordService.java

@@ -1,15 +1,14 @@
 package com.jeesite.modules.mes.service;
 
-import java.util.List;
-
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-
 import com.jeesite.common.entity.Page;
 import com.jeesite.common.lang.StringUtils;
 import com.jeesite.common.service.CrudService;
 import com.jeesite.modules.mes.dao.MesOp050RecordDao;
 import com.jeesite.modules.mes.entity.MesOp050Record;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
 
 /**
  * OP050 record Service.
@@ -35,10 +34,7 @@ public class MesOp050RecordService extends CrudService<MesOp050RecordDao, MesOp0
 	}
 
 	@Transactional
-	public void saveIfAbsent(String sn, String oprno, String lineSn, String ucode) {
-		if (StringUtils.isBlank(sn) || StringUtils.isBlank(oprno) || StringUtils.isBlank(lineSn)) {
-			return;
-		}
+	public String saveIfAbsent(String sn, String oprno, String lineSn, String ucode) {
 		MesOp050Record record = new MesOp050Record();
 		record.setSn(sn.trim());
 		record.setOprno(oprno.trim());
@@ -47,6 +43,9 @@ public class MesOp050RecordService extends CrudService<MesOp050RecordDao, MesOp0
 		if (findCount(record) == 0) {
 			record.setStatus(MesOp050Record.STATUS_NORMAL);
 			save(record);
+			return "工件可以加工";
+		}else {
+			return "该二维码已存在打印记录";
 		}
 	}
 

+ 62 - 7
src/main/java/com/jeesite/modules/mes/web/MesProductRecordController.java

@@ -193,6 +193,9 @@ public class MesProductRecordController extends BaseController {
 	private MesPdaScanRecordService mesPdaScanRecordService;
 
 	@Autowired
+	private MesQualityService mesQualityService;
+
+	@Autowired
 	private MesOp050RecordService mesOp050RecordService;
 	@Autowired
 	private MesDingTalkAlertService mesDingTalkAlertService;
@@ -4518,8 +4521,10 @@ public class MesProductRecordController extends BaseController {
 
 		// 当为OP050时直接放行
 		if("OP050A".equals(oldOprno)){
-			mesOp050RecordService.saveIfAbsent(sn, oldOprno, lineSn, userCode);
-			resp.setMessage("工件可以加工");
+			//查询一下
+
+			String messs = mesOp050RecordService.saveIfAbsent(sn, oldOprno, lineSn, userCode);
+			resp.setMessage(messs);
 			resp.setResult(Global.TRUE);
 			return resp;
 		}
@@ -5050,14 +5055,18 @@ public class MesProductRecordController extends BaseController {
 
 		CommonResp resp = new CommonResp<>();
 
+		//抽检首件检是否合格
+		resp = checkShiftFirstQualityNg(request);
+		if ("false".equals(resp.getResult())){
+			return resp;
+		}
+
 		// 查询工位是否有数据
 		resp =pdaQueryIsSn(request);
 		if ("false".equals(resp.getResult())){
 			return resp;
 		}
 
-
-
 		resp = pccheck(request);
 		String sn = request.getParameter("sn");
 		String oprno = request.getParameter("oprno");
@@ -5078,6 +5087,9 @@ public class MesProductRecordController extends BaseController {
 
 		if ("true".equals(resp.getResult())){
 			try {
+				if ("OP050A".equals(oprno)){
+					return resp;
+				}
 				// 将二维码放置在工位
 //				MesProductRecord mesProductRecord = new MesProductRecord();
 //				mesProductRecord.setSn(sn);
@@ -5108,9 +5120,6 @@ public class MesProductRecordController extends BaseController {
 				// 新增表 工件码 工位号 ucode
 				resp.setResult(Global.TRUE);
 				resp.setMessage("扫码成功");
-				/*if ("OP050A".equals(oprno)){
-					resp.setMessage("扫码成功,请进行检查,工件码:"+sn);
-				}*/
 				return resp;
 			}catch (Exception e){
 				resp.setResult(Global.FALSE);
@@ -5126,6 +5135,52 @@ public class MesProductRecordController extends BaseController {
 			return resp;
 		}
 	}
+
+	private CommonResp<String> checkShiftFirstQualityNg(HttpServletRequest request) {
+		CommonResp<String> resp = new CommonResp<>();
+		String lineSn = request.getParameter("lineSn");
+		String oprno = request.getParameter("oprno");
+		if (StringUtils.isEmpty(lineSn) || StringUtils.isEmpty(oprno)){
+			resp.setResult(Global.FALSE);
+			resp.setMessage("参数错误");
+			return resp;
+		}
+
+		MesShiftDataResp shift = mesShiftService.getCurShift();
+		if (shift == null || StringUtils.isBlank(shift.getStart()) || StringUtils.isBlank(shift.getEnd())) {
+			resp.setResult(Global.TRUE);
+			return resp;
+		}
+
+		String qualityOprno = oprno;
+		if (qualityOprno.length() == 5) {
+			qualityOprno += "A";
+		}
+		String formattedOprno = CommonUitl.formatOprno(qualityOprno);
+		List<String> oprnos = new ArrayList<>();
+		oprnos.add(qualityOprno);
+		if (!StringUtils.equals(qualityOprno, formattedOprno)) {
+			oprnos.add(formattedOprno);
+		}
+
+		MesQuality mesQuality = new MesQuality();
+		mesQuality.setLineSn(lineSn);
+		mesQuality.setType(MesQuality.TYPE_FIRST);
+		mesQuality.setResult("NG");
+		mesQuality.getSqlMap().getWhere()
+				.and("a.oprno", QueryType.IN, oprnos)
+				.and("a.update_date", QueryType.GTE, shift.getStart())
+				.and("a.update_date", QueryType.LT, shift.getEnd());
+		long ngCount = mesQualityService.findCount(mesQuality);
+		if (ngCount > 0) {
+			resp.setResult(Global.FALSE);
+			resp.setMessage("该工位首件检查不合格");
+			return resp;
+		}
+
+		resp.setResult(Global.TRUE);
+		return resp;
+	}
 	//pda根据工件码查询信息
 	@PostMapping(value = "pdaQueryBySn")
 	@ResponseBody

+ 25 - 2
src/main/java/com/jeesite/modules/mes/web/MesQualityController.java

@@ -126,6 +126,29 @@ public class MesQualityController extends BaseController {
 	}
 
 	/**
+	 * 更改检查结果
+	 */
+	@RequiresPermissions("mes:mesQuality:edit")
+	@PostMapping(value = "changeResult")
+	@ResponseBody
+	public String changeResult(String id, String result) {
+		if (StringUtils.isBlank(id)) {
+			return renderResult(Global.FALSE, text("参数错误!"));
+		}
+		result = StringUtils.trim(result);
+		if (!"OK".equalsIgnoreCase(result) && !"NG".equalsIgnoreCase(result)) {
+			return renderResult(Global.FALSE, text("检查结果只能是OK或NG!"));
+		}
+		MesQuality mesQuality = mesQualityService.get(id);
+		if (ObjectUtils.isEmpty(mesQuality)) {
+			return renderResult(Global.FALSE, text("抽检记录不存在!"));
+		}
+		mesQuality.setResult(result.toUpperCase());
+		mesQualityService.save(mesQuality);
+		return renderResult(Global.TRUE, text("更改检查结果成功!"));
+	}
+
+	/**
 	 * 导出数据
 	 */
 	@RequiresPermissions("mes:mesQuality:view")
@@ -374,7 +397,7 @@ public class MesQualityController extends BaseController {
 		mesQuality.setSn(sn);
 		mesQuality.setRemark(remark);
 		mesQualityService.save(mesQuality);
-		mesDingTalkAlertService.sendPdaQualityNg(mesQuality);
+		//mesDingTalkAlertService.sendPdaQualityNg(mesQuality);
 
 		if(!mesProductRecord.getContent().equals(result)){
 			mesProductRecord.setContent(result);
@@ -384,4 +407,4 @@ public class MesQualityController extends BaseController {
 		return renderResult(Global.TRUE, text("操作成功!"));
 	}
 	
-}
+}

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

@@ -46,7 +46,10 @@
 							<label class="control-label col-sm-4" title="">
 								<span class="required ">*</span> ${text('检查结果')}:<i class="fa icon-question hide"></i></label>
 							<div class="col-sm-8">
-								<#form:input path="result" maxlength="255" class="form-control required"/>
+								<select id="result" name="result" class="form-control required">
+									<option value="OK" <% if(mesQuality.result!'OK' == 'OK'){ %>selected<% } %>>OK</option>
+									<option value="NG" <% if(mesQuality.result!'OK' == 'NG'){ %>selected<% } %>>NG</option>
+								</select>
 							</div>
 						</div>
 					</div>
@@ -97,4 +100,4 @@ $("#inputForm").validate({
 		}, "json");
     }
 });
-</script>
+</script>

+ 47 - 4
src/main/resources/views/modules/mes/mesQualityList.html

@@ -98,9 +98,10 @@ $('#dataGrid').dataGrid({
 		{header:'${text("检查日期")}', name:'updateDate', index:'a.update_date', width:150, align:"center"},
 		{header:'${text("操作")}', name:'actions', width:120, formatter: function(val, obj, row, act){
 			var actions = [];
-			//<% if(hasPermi('mes:mesQuality:edit')){ %>
-			// 	actions.push('<a href="${ctx}/mes/mesQuality/form?id='+row.id+'" class="btnList" title="${text("编辑抽检记录")}"><i class="fa fa-pencil"></i></a>&nbsp;');
-			//<% } %>
+			<% if(hasPermi('mes:mesQuality:edit')){ %>
+				actions.push('<a href="${ctx}/mes/mesQuality/form?id='+row.id+'" class="btnList" title="${text("编辑抽检记录")}"><i class="fa fa-pencil"></i></a>&nbsp;');
+				actions.push('<a href="#" class="btnChangeResult" data-id="'+row.id+'" data-result="'+(row.result || '')+'" title="${text("更改检查结果")}"><i class="fa fa-exchange"></i></a>&nbsp;');
+			<% } %>
 
 				actions.push('<a href="${ctx}/mes/mesQuality/detail?id='+row.id+'" class="btnList" title="${text("详情")}"><i class="fa fa-fw fa-eye"></i></a>&nbsp;');
 
@@ -119,4 +120,46 @@ $('#btnExport').click(function(){
 		downloadFile:true
 	});
 });
-</script>
+
+$(document).on('click', '.btnChangeResult', function(){
+	var id = $(this).data('id');
+	var currentResult = String($(this).data('result') || 'OK').toUpperCase();
+	js.layer.open({
+		type: 1,
+		area: ['300px'],
+		title: '${text("更改检查结果")}',
+		resize: false,
+		scrollbar: false,
+		content:
+			'<div class="form-horizontal mt20 mb10">' +
+				'<div class="form-group">' +
+					'<label class="control-label col-sm-4">${text("检查结果")}:</label>' +
+					'<div class="col-sm-7">' +
+						'<select id="changeResultValue" class="form-control">' +
+							'<option value="OK">OK</option>' +
+							'<option value="NG">NG</option>' +
+						'</select>' +
+					'</div>' +
+				'</div>' +
+			'</div>',
+		btn: ['<i class="fa fa-check"></i> ${text("确定")}', '<i class="fa fa-remove"></i> ${text("关闭")}'],
+		success: function(layero){
+			layero.find('#changeResultValue').val(currentResult == 'NG' ? 'NG' : 'OK');
+		},
+		btn1: function(index, layero){
+			js.ajaxSubmit('${ctx}/mes/mesQuality/changeResult', {
+				id: id,
+				result: layero.find('#changeResultValue').val()
+			}, function(data){
+				js.showMessage(data.message);
+				if(data.result == Global.TRUE){
+					js.layer.close(index);
+					page();
+				}
+			});
+			return false;
+		}
+	});
+	return false;
+});
+</script>