ソースを参照

工序计件统计

wangxichen 5 日 前
コミット
df7c985a34

+ 40 - 11
src/main/java/com/jeesite/modules/mes/web/MesProductRecordController.java

@@ -3622,6 +3622,15 @@ public class MesProductRecordController extends BaseController {
 	}
 
 	/**
+	 * 工序计件统计 - peer 互调专用接口(不带权限校验,仅供内网多机汇总使用)
+	 */
+	@RequestMapping(value = "pieceworkDataPeer")
+	@ResponseBody
+	public Object pieceworkDataPeer(HttpServletRequest request) {
+		return pieceworkData(request);
+	}
+
+	/**
 	 * 工序计件统计数据接口
 	 */
 	@RequiresPermissions("mes:mesProductRecord:view")
@@ -3631,14 +3640,24 @@ public class MesProductRecordController extends BaseController {
 		String dateStr   = request.getParameter("date");     // yyyy-MM-dd
 		String shiftId   = request.getParameter("shiftId");  // 班次id,空=全天
 		String oprnoFilter = request.getParameter("oprno");  // 工位号筛选,可空
+		String startTime = request.getParameter("startTime");// HH:mm 自定义起始时间
+		String endTime   = request.getParameter("endTime");  // HH:mm 自定义结束时间
+		String noAgg     = request.getParameter("noAggregate"); // peer 互调时带,避免递归
+		String prefixesOverride = request.getParameter("prefixesOverride"); // CSV,强制覆盖本机配置
 
 		// 默认今天
 		if (StringUtils.isBlank(dateStr)) {
 			dateStr = new SimpleDateFormat("yyyy-MM-dd").format(new Date());
 		}
 
-		// 读产品前缀配置
-		String prefixConf = Global.getConfig("mes.piecework.product.prefixes");
+		// 读产品前缀配置:override > page.prefixes > product.prefixes
+		String prefixConf = prefixesOverride;
+		if (StringUtils.isBlank(prefixConf)) {
+			prefixConf = Global.getConfig("mes.piecework.page.prefixes");
+		}
+		if (StringUtils.isBlank(prefixConf)) {
+			prefixConf = Global.getConfig("mes.piecework.product.prefixes");
+		}
 		List<String> prefixes = new ArrayList<>();
 		if (!StringUtils.isBlank(prefixConf)) {
 			for (String p : prefixConf.split(",")) {
@@ -3647,30 +3666,40 @@ public class MesProductRecordController extends BaseController {
 			}
 		}
 
-		// 计算时间范围
+		// 计算时间范围:自定义时间 > 班次 > 全天
 		String dateStart;
 		String dateEnd;
 		try {
-			if (!StringUtils.isBlank(shiftId)) {
-				// 按班次时间段
+			if (!StringUtils.isBlank(startTime) && !StringUtils.isBlank(endTime)) {
+				String s = startTime.trim();
+				String e = endTime.trim();
+				if (!s.matches("\\d{2}:\\d{2}") || !e.matches("\\d{2}:\\d{2}")) {
+					return renderResult(Global.FALSE, text("时间格式不正确,需 HH:mm"));
+				}
+				if (e.compareTo(s) <= 0) {
+					dateStart = dateStr + " " + s + ":00";
+					dateEnd   = getNextDay(dateStr) + " " + e + ":00";
+				} else {
+					dateStart = dateStr + " " + s + ":00";
+					dateEnd   = dateStr + " " + e + ":59";
+				}
+			} else if (!StringUtils.isBlank(shiftId)) {
 				MesShift shiftQuery = new MesShift();
 				shiftQuery.setId(shiftId);
 				MesShift shift = mesShiftService.get(shiftQuery);
 				if (shift == null) {
 					return renderResult(Global.FALSE, text("班次不存在"));
 				}
-				// 跨天班次:结束时间属于次日
 				if (shift.getNext() != null && shift.getNext() == 1) {
-					String startTime = shift.getStart();
-					String endTime   = shift.getEnd();
-					dateStart = dateStr + " " + startTime + ":00";
-					dateEnd   = getNextDay(dateStr) + " " + endTime + ":00";
+					String shStart = shift.getStart();
+					String shEnd   = shift.getEnd();
+					dateStart = dateStr + " " + shStart + ":00";
+					dateEnd   = getNextDay(dateStr) + " " + shEnd + ":00";
 				} else {
 					dateStart = dateStr + " " + shift.getStart() + ":00";
 					dateEnd   = dateStr + " " + shift.getEnd()   + ":00";
 				}
 			} else {
-				// 全天
 				dateStart = dateStr + " 00:00:00";
 				dateEnd   = dateStr + " 23:59:59";
 			}

+ 3 - 2
src/main/resources/config/application.yml

@@ -55,8 +55,8 @@ jdbc:
   type: mysql
   driver: com.mysql.cj.jdbc.Driver
 
-#  url: jdbc:mysql://127.0.0.1:3306/mes_cloud_610?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=CONVERT_TO_NULL&serverTimezone=Asia/Shanghai&nullCatalogMeansCurrent=true
-  url: jdbc:mysql://192.168.113.99:3306/mes_cloud_610?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=CONVERT_TO_NULL&serverTimezone=Asia/Shanghai&nullCatalogMeansCurrent=true
+  url: jdbc:mysql://127.0.0.1:3306/mes_cloud_610?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=CONVERT_TO_NULL&serverTimezone=Asia/Shanghai&nullCatalogMeansCurrent=true
+#  url: jdbc:mysql://192.168.113.99:3306/mes_cloud_610?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=CONVERT_TO_NULL&serverTimezone=Asia/Shanghai&nullCatalogMeansCurrent=true
 #  username: mes_cloud_610
 #  password: wrBrhmpBDxkATCLa
 #  username: root
@@ -627,6 +627,7 @@ shiro:
     ${adminPath}/mes/mesProduct/screen = anon
     ${adminPath}/mes/mesProduct/screenData = anon
     ${adminPath}/mes/mesProduct/screenPieceData = anon
+    ${adminPath}/mes/mesProductRecord/pieceworkDataPeer = anon
     ${adminPath}/mes/mesProduct/screenHourly = anon
     ${adminPath}/mes/mesProductCcd/testDate = anon
     ${adminPath}/mes/mesProductCcd/add = anon