Forráskód Böngészése

气密和ccd提前一小时

day01-init 2 hete
szülő
commit
22805a8b16

+ 18 - 0
db/mysql/mes_product_photo_side.sql

@@ -0,0 +1,18 @@
+-- OP520 正反面拍照子工位结果表
+CREATE TABLE IF NOT EXISTS `mes_product_photo_side` (
+  `id` varchar(64) NOT NULL COMMENT '编号',
+  `sn` varchar(50) DEFAULT NULL COMMENT '工件码',
+  `line_sn` varchar(2) DEFAULT NULL COMMENT '产线编号',
+  `oprno` varchar(20) DEFAULT NULL COMMENT '工位号 OP520A/OP520B',
+  `side_type` char(1) DEFAULT NULL COMMENT '正反面 1正面 0反面',
+  `content` varchar(20) DEFAULT NULL COMMENT '结果 OK/NG',
+  `status` char(1) NOT NULL DEFAULT '0' COMMENT '状态(0正常 1删除 2停用)',
+  `create_by` varchar(64) NOT NULL COMMENT '创建者',
+  `create_date` datetime NOT NULL COMMENT '创建时间',
+  `update_by` varchar(64) NOT NULL COMMENT '更新者',
+  `update_date` datetime NOT NULL COMMENT '更新时间',
+  `remarks` varchar(500) DEFAULT NULL COMMENT '备注信息',
+  PRIMARY KEY (`id`),
+  KEY `idx_mes_product_photo_side_sn` (`sn`),
+  KEY `idx_mes_product_photo_side_oprno` (`oprno`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='OP520正反面拍照子工位';

+ 4 - 0
src/main/java/com/jeesite/modules/mes/service/MesProductCcdService.java

@@ -66,6 +66,10 @@ public class MesProductCcdService extends CrudService<MesProductCcdDao, MesProdu
 		return mesProductCcdDao.findInfo(mesProductCcd);
 	}
 
+	public MesProductCcd findInfo(MesProductCcd mesProductCcd) {
+		return mesProductCcdDao.findInfo(mesProductCcd);
+	}
+
 	/**
 	 * 查询分页数据
 	 * @param mesProductCcd 查询条件

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

@@ -6,16 +6,20 @@ import java.text.SimpleDateFormat;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
+import java.util.Calendar;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
 import com.jeesite.common.collect.ListUtils;
+import com.jeesite.common.config.Global;
 import com.jeesite.common.lang.ObjectUtils;
+import com.jeesite.common.lang.StringUtils;
 import com.jeesite.modules.mes.entity.MesLine;
 import com.jeesite.modules.mes.entity.MesPlan;
 import com.jeesite.modules.mes.resp.MesShiftDataResp;
+import com.jeesite.modules.mes.util.CommonUitl;
 import com.jeesite.modules.mes.util.CopyUtil;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -174,5 +178,22 @@ public class MesShiftService extends CrudService<MesShiftDao, MesShift> {
 
 		return  mesShiftDataResp;
 	}
-	
+
+	/**
+	 * 气密/CCD开班点检查询窗口:仅将班次开始时间往前推,结束时间不变。
+	 * 偏移分钟数可通过 mes.qm.shift.start.offsetMinutes 配置,默认60分钟。
+	 */
+	public Date getQmCheckStartDate(String oprno, String lineSn, Date shiftStart) {
+		String oprno1 = CommonUitl.formatOprno(oprno);
+		int offsetMinutes = 60;
+		String offsetStr = Global.getConfig("mes.qm.shift.start.offsetMinutes");
+		if (StringUtils.isNotBlank(offsetStr)) {
+			offsetMinutes = Integer.parseInt(offsetStr);
+		}
+		Calendar cal = Calendar.getInstance();
+		cal.setTime(shiftStart);
+		cal.add(Calendar.MINUTE, -offsetMinutes);
+		return cal.getTime();
+	}
+
 }

+ 50 - 0
src/main/java/com/jeesite/modules/mes/web/MesProductRecordController.java

@@ -1470,6 +1470,7 @@ public class MesProductRecordController extends BaseController {
 					try {
 						stdate = dateFormat2.parse(mesShiftDataResp.getStart());
 						etdate = dateFormat2.parse(mesShiftDataResp.getEnd());
+						stdate = mesShiftService.getQmCheckStartDate(oprno1, lineSn, stdate);
 					}catch (Exception e){
 						e.printStackTrace();
 					}
@@ -1563,6 +1564,55 @@ public class MesProductRecordController extends BaseController {
 
 		}
 
+		// CCD工位 OP510 NG样件开班点检(时间窗口与气密一致,开始时间提前1小时)
+		if ("OP510".equals(oprno1)) {
+			String ccdCheck = Global.getConfig("mes.ccd.check");
+			if ("1".equals(ccdCheck)) {
+				String ngs = Global.getConfig("mes.xt.ccd.ng");
+				logger.info("ccdng:" + ngs);
+				if (!StringUtils.isEmpty(ngs)) {
+					Boolean ngsret = true;
+					DateFormat dateFormat2 = new SimpleDateFormat("yyyy-MM-dd HH:mm");
+					Date stdate = null;
+					Date etdate = null;
+					try {
+						stdate = dateFormat2.parse(mesShiftDataResp.getStart());
+						etdate = dateFormat2.parse(mesShiftDataResp.getEnd());
+						stdate = mesShiftService.getQmCheckStartDate(oprno1, lineSn, stdate);
+					} catch (Exception e) {
+						e.printStackTrace();
+					}
+					String[] ngsarr = ngs.split(",", -1);
+					for (String ng : ngsarr) {
+						if (StringUtils.isEmpty(ng)) {
+							continue;
+						}
+						if (sn.equals(ng)) {
+							return "RSUD";
+						}
+						MesProductCcd mesProductCcd = new MesProductCcd();
+						mesProductCcd.setOprno("OP510");
+						mesProductCcd.setSn(ng);
+						mesProductCcd.setLineSn(lineSn);
+						mesProductCcd.setTestDate_gte(stdate);
+						mesProductCcd.setTestDate_lte(etdate);
+						mesProductCcd.setResult("NG");
+						mesProductCcd.getSqlMap().getOrder().setOrderBy("a.test_date desc");
+						MesProductCcd mesProductCcd1 = mesProductCcdService.findInfo(mesProductCcd);
+						if (com.jeesite.common.lang.ObjectUtils.isEmpty(mesProductCcd1)) {
+							ngsret = false;
+							break;
+						}
+					}
+					if (!ngsret) {
+						return "RSDJ";
+					} else {
+						ret = "RSUD";
+					}
+				}
+			}
+		}
+
 		return ret;
 	}