package org.springblade.modules.FTP; import org.json.JSONArray; import org.json.JSONObject; import org.springblade.common.utils.DesensitizedUtil; import org.springblade.common.utils.InvestigateUtil; import org.springblade.modules.experience.entity.Experience; import org.springblade.modules.experience.service.IExperienceService; import org.springblade.modules.system.entity.Dept; import org.springblade.modules.system.entity.User; import org.springblade.modules.system.service.IDeptService; import org.springblade.modules.system.service.IUserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; import javax.annotation.PostConstruct; import java.text.SimpleDateFormat; import java.util.Date; /** * @author Administrator */ @Service public class MyAsyncService { @Autowired private IUserService userService; @Autowired private IDeptService iDeptService; @Autowired private IExperienceService experienceService; /** * FTP * @param s sql语句 */ @Async public void FTP(String s) { FtpUtil.sqlFileUpload(s); } /** * FTP 审查结果推送 * @param s sql语句 */ @Async public void FTP1(String s) { //为防止外网尚未更新完成,休眠2秒发送第一次 try { Thread.sleep(2); } catch (InterruptedException e) { e.printStackTrace(); } FtpUtil.sqlFileUpload(s); FTP2(s); } /** * FTP 审查结果推送 * @param s sql语句 */ @Async public void FTP2(String s) { //休眠30s,再次发送一次 try { Thread.sleep(30); } catch (InterruptedException e) { e.printStackTrace(); } FtpUtil.sqlFileUpload(s); } /** * 异步审查新增的保安员 * @param user0 */ @Async public void checkUserExamineByCardNo(User user0){ //如果是保安员 if (user0.getRoleId().equals("1412226235153731586")){ //创建用户对象 User user = new User(); user.setId(user0.getId()); //远程调用接口 String body = InvestigateUtil.httpGetOne(user0.getCardid()); System.out.println("user0 = " + user0.getCardid()); JSONObject jsonObject = new JSONObject(body); Object data = jsonObject.get("data"); JSONObject jsonData = new JSONObject(data.toString()); JSONArray res = jsonData.getJSONArray("res"); //设置审核时间 user.setAuditTime(new Date()); //如果有结果返回 if (res.length() == 0) { //没有数据正常 user.setExaminationType("0"); } else { int count = 0; user.setExaminationType("1"); for (int i = 0; i < res.length(); i++) { if (res.getJSONObject(i).get("zdrylbjh").toString() != null && res.getJSONObject(i).get("zdrylbjh").toString() != "" && res.getJSONObject(i).get("zdrylbjh").toString() != "null" ) { user.setExaminationMx(res.getJSONObject(i).get("zdrylbjh").toString()); //更新用户数据 // userService.updateById(user); break; } if (res.getJSONObject(i).get("zdryxlmc").toString() != null && res.getJSONObject(i).get("zdryxlmc").toString() != "" && res.getJSONObject(i).get("zdryxlmc").toString() != "null" ) { user.setExaminationMx(res.getJSONObject(i).get("zdryxlmc").toString()); //更新用户数据 // userService.updateById(user); break; } if (res.getJSONObject(i).get("ztrylx").toString() != null && res.getJSONObject(i).get("ztrylx").toString() != "" && res.getJSONObject(i).get("ztrylx").toString() != "null" ) { user.setExaminationMx(res.getJSONObject(i).get("ztrylx").toString()); //更新用户数据 // userService.updateById(user); break; } count++; //条件中的数据都为空,则审查为正常 if (count==res.length()){ //更新用户数据,设为正常 user.setExaminationType("0"); // userService.updateById(user); } } } //更新用户数据 userService.updateById(user); //同时更新外网用户信息 String s1 = "update blade_user set examination_type = " + user.getExaminationType() + ",update_time = " + "'" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(user.getUpdateTime()) + "'" + " where id = " + "'" + user.getId() + "'"; FTP1(s1); } } /** * 异步新增用户从业记录 * @param user */ @Async public void insertExperience(User user) { //根据公司名查询单位 Dept dept = iDeptService.getById(user.getDeptId()); Experience experience = new Experience(); experience.setCompanyname(dept.getDeptName()); //新增 if (null != user.getRtime()) { experience.setEntrytime(user.getRtime()); } else { experience.setEntrytime(new Date()); } experience.setDeparturetime(new Date()); experience.setName(user.getRealName()); if (null != user.getReasonForLeav() && !user.getReasonForLeav().equals("")) { experience.setLeaving(user.getReasonForLeav()); } experience.setCardid(user.getCardid()); experience.setSecurityid(user.getId().toString()); //新增 experienceService.save(experience); // 身份证号脱敏 String cardid = DesensitizedUtil.desensitizedIdNumberBy4(user.getCardid()); //内网同步 String s = "insert into sys_experience(id,name,entryTime,departureTime,leaving,cardId,companyname,securityId) " + "values(" + "'" + experience.getId() + "'" + "," + "'" + experience.getName() + "'" + "," + "'" + new SimpleDateFormat("yyyy-MM-dd").format(experience.getEntrytime()) + "'" + "," + "'" + new SimpleDateFormat("yyyy-MM-dd").format(experience.getDeparturetime()) + "'" + "," + "'" + experience.getLeaving() + "'" + "," + "'" + cardid + "'" + "," + "'" + experience.getCompanyname() + "'" + "," + "'" + experience.getSecurityid() + "'" + ")"; //向外网推送 FTP(s); } }