|
|
|
|
@ -182,12 +182,12 @@ public class AndonEventServiceImpl implements IAndonEventService
|
|
|
|
|
/**
|
|
|
|
|
* 根据规则为事件生成派工记录(优先 NOTIFY_USERS,其次 NOTIFY_ROLES)。
|
|
|
|
|
*/
|
|
|
|
|
private void autoCreateAssignments(AndonEvent e) {
|
|
|
|
|
if (e == null || e.getEventId() == null) return;
|
|
|
|
|
private void autoCreateAssignments(AndonEvent event) {
|
|
|
|
|
if (event == null || event.getEventId() == null) return;
|
|
|
|
|
AndonRule query = new AndonRule();
|
|
|
|
|
query.setCallTypeCode(e.getCallTypeCode());
|
|
|
|
|
query.setCallTypeCode(event.getCallTypeCode());
|
|
|
|
|
query.setIsFlag(AnDonConstants.FLAG_VALID);
|
|
|
|
|
AndonRule rule = pickBestRule(andonRuleMapper.selectAndonRuleList(query), e);
|
|
|
|
|
AndonRule rule = pickBestRule(andonRuleMapper.selectAndonRuleList(query), event);
|
|
|
|
|
if (rule == null) return;
|
|
|
|
|
|
|
|
|
|
Date now = DateUtils.getNowDate();
|
|
|
|
|
@ -199,18 +199,20 @@ public class AndonEventServiceImpl implements IAndonEventService
|
|
|
|
|
if (notEmpty(rule.getNotifyUsers())) {
|
|
|
|
|
String[] ids = rule.getNotifyUsers().split(",");
|
|
|
|
|
for (int i = 0; i < ids.length; i++) {
|
|
|
|
|
String t = ids[i] == null ? null : ids[i].trim();
|
|
|
|
|
if (!notEmpty(t)) continue;
|
|
|
|
|
String userIdStr = ids[i] == null ? null : ids[i].trim();
|
|
|
|
|
if (!notEmpty(userIdStr)) continue;
|
|
|
|
|
try {
|
|
|
|
|
Long uid = Long.valueOf(t);
|
|
|
|
|
AndonEventAssignment a = new AndonEventAssignment();
|
|
|
|
|
a.setEventId(e.getEventId());
|
|
|
|
|
a.setAssigneeUserId(uid);
|
|
|
|
|
a.setAssignedTime(now);
|
|
|
|
|
a.setStatus(AnDonConstants.AssignmentStatus.ASSIGNED);
|
|
|
|
|
a.setIsFlag(AnDonConstants.FLAG_VALID);
|
|
|
|
|
a.setCreateTime(now);
|
|
|
|
|
andonEventAssignmentMapper.insertAndonEventAssignment(a);
|
|
|
|
|
Long uid = Long.valueOf(userIdStr);
|
|
|
|
|
AndonEventAssignment assignment = new AndonEventAssignment();
|
|
|
|
|
assignment.setEventId(event.getEventId());
|
|
|
|
|
assignment.setAssigneeUserId(uid);
|
|
|
|
|
assignment.setAssignedTime(now);
|
|
|
|
|
assignment.setStatus(AnDonConstants.AssignmentStatus.ASSIGNED);
|
|
|
|
|
// PDA调用时立即设置acceptTime(表示PDA已接单)
|
|
|
|
|
assignment.setAcceptTime(now);
|
|
|
|
|
assignment.setIsFlag(AnDonConstants.FLAG_VALID);
|
|
|
|
|
assignment.setCreateTime(now);
|
|
|
|
|
andonEventAssignmentMapper.insertAndonEventAssignment(assignment);
|
|
|
|
|
created = true;
|
|
|
|
|
if ("single".equals(mode)) break; // 单人模式:仅创建一个派工
|
|
|
|
|
} catch (Exception ignore) { }
|
|
|
|
|
@ -222,20 +224,22 @@ public class AndonEventServiceImpl implements IAndonEventService
|
|
|
|
|
for (int i = 0; i < roles.length; i++) {
|
|
|
|
|
String rk = roles[i] == null ? null : roles[i].trim();
|
|
|
|
|
if (!notEmpty(rk)) continue;
|
|
|
|
|
AndonEventAssignment a = new AndonEventAssignment();
|
|
|
|
|
a.setEventId(e.getEventId());
|
|
|
|
|
a.setAssigneeRoleKey(rk);
|
|
|
|
|
a.setAssignedTime(now);
|
|
|
|
|
a.setStatus(AnDonConstants.AssignmentStatus.ASSIGNED);
|
|
|
|
|
a.setIsFlag(AnDonConstants.FLAG_VALID);
|
|
|
|
|
a.setCreateTime(now);
|
|
|
|
|
andonEventAssignmentMapper.insertAndonEventAssignment(a);
|
|
|
|
|
AndonEventAssignment assignment = new AndonEventAssignment();
|
|
|
|
|
assignment.setEventId(event.getEventId());
|
|
|
|
|
assignment.setAssigneeRoleKey(rk);
|
|
|
|
|
assignment.setAssignedTime(now);
|
|
|
|
|
assignment.setStatus(AnDonConstants.AssignmentStatus.ASSIGNED);
|
|
|
|
|
// PDA调用时立即设置acceptTime(表示PDA已接单)
|
|
|
|
|
assignment.setAcceptTime(now);
|
|
|
|
|
assignment.setIsFlag(AnDonConstants.FLAG_VALID);
|
|
|
|
|
assignment.setCreateTime(now);
|
|
|
|
|
andonEventAssignmentMapper.insertAndonEventAssignment(assignment);
|
|
|
|
|
created = true;
|
|
|
|
|
if ("single".equals(mode)) break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (created) {
|
|
|
|
|
logEvent(e.getEventId(), AnDonConstants.Operation.ASSIGN, "根据规则创建派工记录");
|
|
|
|
|
logEvent(event.getEventId(), AnDonConstants.Operation.ASSIGN, "根据规则创建派工记录");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|