Commit f6b4ca97 authored by 王琮's avatar 王琮

添加异步更新邀访状态接口

parent 2d107ef2
......@@ -66,5 +66,18 @@ public class VisitUser extends CyIdIncreEntity<VisitUser> {
this.userName = userName;
this.visitPhone = visitPhone;
}
@Transient
public String beginTime;
@Transient
public String endTime;
public VisitUser(String personId, String visitStatus, String beginTime, String endTime) {
this.personId = personId;
this.visitStatus = visitStatus;
this.beginTime = beginTime;
this.endTime = endTime;
}
}
......@@ -22,9 +22,11 @@ import org.rcisoft.sys.sysuser.entity.SysUser;
import org.rcisoft.sys.sysuser.service.impl.SysUserServiceImpl;
import org.rcisoft.sys.sysuser.util.CheckUtil;
import org.rcisoft.sys.sysuser.util.CyEpExcelUtil;
import org.rcisoft.sys.visit.dao.VisitInfomationRepository;
import org.rcisoft.sys.visit.dao.VisitPersonRepositorys;
import org.rcisoft.sys.visit.dao.VisitUserRepository;
import org.rcisoft.sys.visit.dto.*;
import org.rcisoft.sys.visit.entity.VisitInfoMation;
import org.rcisoft.sys.visit.entity.VisitUser;
import org.rcisoft.sys.visit.service.VisitUserService;
......@@ -71,6 +73,9 @@ public class VisitUserServiceImpl extends ServiceImpl<VisitUserRepository, Visit
@Autowired
private VisitPersonRepositorys visitPersonRepositorys;
@Autowired
private VisitInfomationRepository visitInfomationRepository;
/**
* 保存 邀访访客信息表
*
......@@ -313,12 +318,12 @@ public class VisitUserServiceImpl extends ServiceImpl<VisitUserRepository, Visit
List<SysDictData> dictDataList = dictDataRepositorys.querySysDictDatas(queryDicData);
String beginTime = "";
String endTime = "";
DateTime crossTime = DateUtil.parse(recodeDto.getCrossTime(), "yyyy-MM-dd HH:mm:ss");
for (SysDictData dicData : dictDataList) {
String dictValue = dicData.getDictValue();
//此处可能会有类型转换报错的BUG
int factor = Integer.parseInt(dictValue);
String dictLabel = dicData.getDictLabel();
DateTime crossTime = DateUtil.parse(recodeDto.getCrossTime(), "yyyy-MM-dd HH:mm:ss");
if (StringUtils.equals("advance", dictLabel)) {
Date startTime = new Date(crossTime.getTime() - (factor * 60 * 1000));
beginTime = DateUtil.format(startTime, "yyyy-MM-dd HH:mm:ss");
......@@ -329,7 +334,20 @@ public class VisitUserServiceImpl extends ServiceImpl<VisitUserRepository, Visit
}
// 如果开始时间和结束时间都不为空,查询这段时间内的邀访记录
// 此处如果数据字典进行变化,可能查不到对应的邀访记录
VisitUser user = new VisitUser(recodeDto.getPerson().getPersonId(), "0", beginTime, endTime);
List<VisitInfoMation> visitInfoMationList = visitInfomationRepository.findByUser(user);
// 更新状态为已到访
if (visitInfoMationList.size() > 0) {
visitInfoMationList.forEach(v -> {
v.setVisitStatus("1");
visitInfomationRepository.updateById(v);
});
}
// 更新最新到访时间
if (sysUserData.getFirstDate() == null)
sysUserData.setFirstDate(crossTime);
sysUserData.setLastDate(crossTime);
sysUserRepositorys.updateById(sysUserData);
}
}
}
......@@ -426,6 +426,12 @@
<if test="visitStatus!=null and visitStatus!=''">
and vi.visit_status =#{visitStatus}
</if>
<if test="beginTime!=null and beginTime!=''">
and vi.visit_real_time &gt;= #{beginTime}
</if>
<if test="visitStatus!=null and visitStatus!=''">
and vi.visit_real_time &lt;= #{endTime}
</if>
and vu.person_id =#{personId}
</select>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment