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