This commit is contained in:
LiJianZhao 2025-04-27 10:21:40 +08:00
parent 3117dffaf3
commit 63bacfbc0e
9 changed files with 184 additions and 94 deletions

View File

@ -0,0 +1,18 @@
package com.syjiaer.clinic.server.common.api.input;
import com.syjiaer.clinic.server.common.api.annotations.IMField;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import lombok.experimental.Accessors;
@Getter
@Setter
@ToString
@Accessors(chain = true)
public class IM9002 extends BaseInputModel{
@IMField(key = "sign_no", name = "文件数据", required = true)
private String signNo;
@IMField(key = "opter_no", name = "文件名", required = true)
private String opterNo;
}

View File

@ -185,4 +185,8 @@ public class SocialRequest {
public JSONObject call9001(IM9001 im9001){
return httpUtil.call("9001","signIn",im9001.buildToMap());
}
public JSONObject call9002(IM9002 im9002) {
return httpUtil.call("9002", "signOut", im9002.buildToMap());
}
}

View File

@ -3,9 +3,13 @@ package com.syjiaer.clinic.server.common.util;
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.syjiaer.clinic.server.common.api.input.IM9101;
import com.syjiaer.clinic.server.common.config.Config;
import com.syjiaer.clinic.server.common.exception.MessageException;
import com.syjiaer.clinic.server.entity.manager.ManagerUser;
import com.syjiaer.clinic.server.entity.manager.ManagerUserSign;
import com.syjiaer.clinic.server.mapper.manager.ManagerUserSignMapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@ -28,6 +32,10 @@ public class HttpUtil {
private Config config;
@Autowired
private FileUtil fileUtil;
@Autowired
private ManagerUtil managerUtil;
@Autowired
private ManagerUserSignMapper managerUserSignMapper;
private Logger logger = Logger.getLogger(HttpUtil.class.getName());
@ -292,35 +300,19 @@ public class HttpUtil {
private Map<String, Object> getparms(String infno, String tag, Object input) {
Random random = new Random();
int randomNumber = random.nextInt(9000) + 1000;
LocalDateTime now = LocalDateTime.now();
DateTimeFormatter now_str = DateTimeFormatter.ofPattern("yyyyMMddHHmmss");
DateTimeFormatter now_str2 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
Map<String, Object> map = new HashMap<>();
map.put("infno", infno);
map.put("insuplc_admdvs", config.get("social", "insuplcAdmdvs"));
map.put("msgid", config.get("social", "msgid") + now_str.format(now) + String.valueOf(randomNumber));
map.put("infver", "V1.0");
map.put("inf_time", now.format(now_str2));
map.put("opter", config.get("social", "opter"));
map.put("opter_name", config.get("social", "opterName"));
map.put("opter_type", "1");
map.put("fixmedins_code", config.get("social", "fixmedinsCode"));
map.put("fixmedins_name", config.get("social", "fixmedinsName"));
map.put("mdtrtarea_admvs", config.get("social", "mdtrtareaAdmvs"));
map.put("recer_sys_code", config.get("social", "recerSysCode"));
map.put("cainfo", config.get("social", "cainfo"));
map.put("sign_no", "");
Map<String, Object> map = getParmsBase(infno);
HashMap<String, Object> inputMap = new HashMap<>();
inputMap.put(tag, input);
map.put("input", inputMap);
return map;
}
private Map<String, Object> getparms(String infno, Object input) {
private Map<String, Object> getParmsBase(String infno){
ManagerUser managerUser = managerUtil.getManagerUser();
ManagerUserSign dbSign = managerUserSignMapper.selectOne(new QueryWrapper<ManagerUserSign>().eq("manager_user_id", managerUser.getId()));
String signNO ="";
if (dbSign != null && dbSign.getStatus() == 0){
signNO = dbSign.getSignNo();
}
Random random = new Random();
int randomNumber = random.nextInt(9000) + 1000;
LocalDateTime now = LocalDateTime.now();
@ -341,7 +333,11 @@ public class HttpUtil {
map.put("mdtrtarea_admvs", config.get("social", "mdtrtareaAdmvs"));
map.put("recer_sys_code", config.get("social", "recerSysCode"));
map.put("cainfo", config.get("social", "cainfo"));
map.put("sign_no", "");
map.put("sign_no", signNO);
return map;
}
private Map<String, Object> getparms(String infno, Object input) {
Map<String, Object> map = getParmsBase(infno);
map.put("input", input);
return map;
}

View File

@ -0,0 +1,30 @@
package com.syjiaer.clinic.server.common.util;
import com.syjiaer.clinic.server.entity.manager.ManagerUser;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.Map;
@Component
public class ManagerUtil {
@Autowired
private InfoUtil infoUtil;
public ManagerUser getManagerUser() {
Map<String, Object> map = infoUtil.getMap();
if (map == null || map.get("manager_id") == null) {
ManagerUser managerUser = new ManagerUser();
managerUser.setId(1);
managerUser.setUsername("test");
return managerUser;
}
Object managerId = map.get("manager_id");
Object name = map.get("manager_name");
Object userName = map.get("manager_userName");
ManagerUser managerUser = new ManagerUser();
managerUser.setId(Integer.parseInt(managerId.toString()));
managerUser.setUsername(userName.toString());
return managerUser;
}
}

View File

@ -4,21 +4,27 @@ import com.syjiaer.clinic.server.common.vo.Result;
import com.syjiaer.clinic.server.controller.BaseController;
import com.syjiaer.clinic.server.entity.manager.ManagerUserSign;
import com.syjiaer.clinic.server.service.common.ManagerUserService;
import com.syjiaer.clinic.server.service.common.SignService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/signUp")
public class SignUpController extends BaseController {
@RequestMapping("/sign")
public class SignController extends BaseController {
@Autowired
private ManagerUserService managerUserService;
@RequestMapping("/signUp")
public Result<ManagerUserSign> set() {
private SignService signService;
@RequestMapping("/in")
public Result<ManagerUserSign> in() {
String mac = parmsUtil.getString("mac", "请输入mac地址");
String ip = parmsUtil.getString("ip", "请输入ip地址");
ManagerUserSign signResult = managerUserService.signUp(ip, mac);
ManagerUserSign signResult = signService.in(ip, mac);
return success(signResult);
}
@RequestMapping("/out")
public Result<String> out() {
signService.out();
return success("签退成功");
}
}

View File

@ -50,4 +50,7 @@ public class ManagerUserSign implements Serializable {
@ApiModelProperty("服务器签到时间")
private LocalDateTime logTime;
@ApiModelProperty("签到状态 0已签到 1签退")
private Integer status;
}

View File

@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.syjiaer.clinic.server.common.util.HeadersUtil;
import com.syjiaer.clinic.server.common.util.InfoUtil;
import com.syjiaer.clinic.server.common.util.ManagerUtil;
import com.syjiaer.clinic.server.common.util.ParmsUtil;
import com.syjiaer.clinic.server.common.vo.Page;
import com.syjiaer.clinic.server.entity.common.CommonLog;
@ -23,6 +24,8 @@ import java.util.function.Function;
import java.util.stream.Collectors;
public abstract class BaseService {
@Autowired
private ManagerUtil managerUtil;
@Autowired
private InfoUtil infoUtil;
@Autowired
@ -35,15 +38,16 @@ public abstract class BaseService {
protected long jwtExpiration;
@Value("${jwt.secret}")
protected String jwtSecret;
/*
* 保存日志
* @param message 日志信息
*/
public void saveLog(String message){
public void saveLog(String message) {
CommonLog commonLog = new CommonLog();
int manager_id=0;
if(getInfos().get("manager_id")!=null){
manager_id=Integer.parseInt(getInfos().get("manager_id").toString());
int manager_id = 0;
if (getInfos().get("manager_id") != null) {
manager_id = Integer.parseInt(getInfos().get("manager_id").toString());
}
commonLog.setManagerId(manager_id);
commonLog.setMessage(message);
@ -52,27 +56,15 @@ public abstract class BaseService {
}
protected ManagerUser getManagerUser() {
Map<String, Object> map = infoUtil.getMap();
if (map == null || map.get("manager_id") == null) {
ManagerUser managerUser = new ManagerUser();
managerUser.setId(1);
managerUser.setUsername("test");
return managerUser;
}
Object managerId = map.get("manager_id");
Object name = map.get("manager_name");
Object userName = map.get("manager_userName");
ManagerUser managerUser = new ManagerUser();
managerUser.setId(Integer.parseInt(managerId.toString()));
managerUser.setUsername(userName.toString());
return managerUser;
return managerUtil.getManagerUser();
}
protected <T> Page<T> pageHelper(int pageNum, int pageSize, QueryWrapper<T> queryWrapper, BaseMapper<T> mapper,String orderByStr ,boolean isAsc){
protected <T> Page<T> pageHelper(int pageNum, int pageSize, QueryWrapper<T> queryWrapper, BaseMapper<T> mapper, String orderByStr, boolean isAsc) {
Long totalCount = mapper.selectCount(queryWrapper);
if (orderByStr != null && !orderByStr.isEmpty()){
queryWrapper.orderBy(true,isAsc,orderByStr);
if (orderByStr != null && !orderByStr.isEmpty()) {
queryWrapper.orderBy(true, isAsc, orderByStr);
}
queryWrapper.last("LIMIT " + pageSize + " OFFSET " + (pageNum - 1) * pageSize);
List<T> list = mapper.selectList(queryWrapper);
@ -82,8 +74,9 @@ public abstract class BaseService {
page.setTotal_page((int) Math.ceil(totalCount / (double) pageSize));
return page;
}
protected <T> Page<T> pageHelper(int pageNum, int pageSize, QueryWrapper<T> queryWrapper, BaseMapper<T> mapper){
return pageHelper(pageNum, pageSize, queryWrapper, mapper,null,true);
protected <T> Page<T> pageHelper(int pageNum, int pageSize, QueryWrapper<T> queryWrapper, BaseMapper<T> mapper) {
return pageHelper(pageNum, pageSize, queryWrapper, mapper, null, true);
}
protected Map<String, Object> getParms() {
@ -94,11 +87,13 @@ public abstract class BaseService {
protected Map<String, String> getHeaders() {
return headersUtil.getMap();
}
protected Map<String, Object> getInfos() {
return infoUtil.getMap();
}
protected <T, V> List<V> listObjs(Wrapper<T> queryWrapper, BaseMapper<T> mapper,Function<? super Object, V> function) {
return (List)mapper.selectObjs(queryWrapper).stream().filter(Objects::nonNull).map(function).collect(Collectors.toList());
protected <T, V> List<V> listObjs(Wrapper<T> queryWrapper, BaseMapper<T> mapper, Function<? super Object, V> function) {
return (List) mapper.selectObjs(queryWrapper).stream().filter(Objects::nonNull).map(function).collect(Collectors.toList());
}
}

View File

@ -3,6 +3,7 @@ package com.syjiaer.clinic.server.service.common;
import com.alibaba.fastjson2.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.syjiaer.clinic.server.common.api.input.IM9001;
import com.syjiaer.clinic.server.common.api.input.IM9002;
import com.syjiaer.clinic.server.common.api.request.SocialRequest;
import com.syjiaer.clinic.server.common.exception.MessageException;
import com.syjiaer.clinic.server.controller.BaseController;
@ -20,16 +21,14 @@ import org.springframework.stereotype.Service;
import javax.crypto.SecretKey;
import java.time.LocalDateTime;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
@Service
public class ManagerUserService extends BaseService {
@Autowired
private ManagerUserMapper managerUserMapper;
@Autowired
private ManagerUserSignMapper managerUserSignMapper;
@Autowired
private SocialRequest socialRequest;
public String login(String username, String password) {
if (username == null || username.isEmpty()) {
@ -60,34 +59,5 @@ public class ManagerUserService extends BaseService {
return getManagerUser();
}
/**
* 医保签到
* @param ip
* @param mac
* @return
*/
public ManagerUserSign signUp(String ip,String mac){
ManagerUser user = getManagerUser();
IM9001 im9001 = new IM9001();
im9001.setOpter_no(String.valueOf(user.getId()));
im9001.setMac(mac);
im9001.setIp(ip);
JSONObject jsonObject = socialRequest.call9001(im9001);
jsonObject = jsonObject.getJSONObject("signinoutb");
LocalDateTime signTime= jsonObject.getObject("sign_time",LocalDateTime.class);
String signNO = jsonObject.getString("sign_no");
ManagerUserSign dbSign = managerUserSignMapper.selectOne(new QueryWrapper<ManagerUserSign>().eq("manager_user_id",user.getId()));
ManagerUserSign update = new ManagerUserSign();
update.setManagerUserId(user.getId());
update.setIp(ip);
update.setMac(mac);
update.setSignTime(signTime);
update.setSignNo(signNO);
update.setLogTime(LocalDateTime.now());
if (dbSign != null){
update.setId(dbSign.getId());
}
managerUserSignMapper.insertOrUpdate(update);
return update;
}
}

View File

@ -0,0 +1,68 @@
package com.syjiaer.clinic.server.service.common;
import com.alibaba.fastjson2.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.syjiaer.clinic.server.common.api.input.IM9001;
import com.syjiaer.clinic.server.common.api.input.IM9002;
import com.syjiaer.clinic.server.common.api.request.SocialRequest;
import com.syjiaer.clinic.server.entity.manager.ManagerUser;
import com.syjiaer.clinic.server.entity.manager.ManagerUserSign;
import com.syjiaer.clinic.server.mapper.manager.ManagerUserSignMapper;
import com.syjiaer.clinic.server.service.BaseService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
@Service
public class SignService extends BaseService {
@Autowired
private ManagerUserSignMapper managerUserSignMapper;
@Autowired
private SocialRequest socialRequest;
/**
* 医保签到
* @param ip
* @param mac
* @return
*/
public ManagerUserSign in(String ip, String mac){
ManagerUser user = getManagerUser();
IM9001 im9001 = new IM9001();
im9001.setOpter_no(String.valueOf(user.getId()));
im9001.setMac(mac);
im9001.setIp(ip);
JSONObject jsonObject = socialRequest.call9001(im9001);
jsonObject = jsonObject.getJSONObject("signinoutb");
LocalDateTime signTime= jsonObject.getObject("sign_time",LocalDateTime.class);
String signNO = jsonObject.getString("sign_no");
ManagerUserSign dbSign = managerUserSignMapper.selectOne(new QueryWrapper<ManagerUserSign>().eq("manager_user_id",user.getId()));
ManagerUserSign update = new ManagerUserSign();
update.setManagerUserId(user.getId());
update.setIp(ip);
update.setMac(mac);
update.setSignTime(signTime);
update.setSignNo(signNO);
update.setLogTime(LocalDateTime.now());
update.setStatus(0);
if (dbSign != null){
update.setId(dbSign.getId());
}
managerUserSignMapper.insertOrUpdate(update);
return update;
}
public void out() {
ManagerUser user = getManagerUser();
ManagerUserSign dbSign = managerUserSignMapper.selectOne(new QueryWrapper<ManagerUserSign>().eq("manager_user_id",user.getId()));
IM9002 im9002 = new IM9002();
im9002.setOpterNo(String.valueOf(user.getId()));
im9002.setSignNo(dbSign.getSignNo());
socialRequest.call9002(im9002);
ManagerUserSign updateSign = new ManagerUserSign();
updateSign.setId(dbSign.getId());
updateSign.setStatus(1);
managerUserSignMapper.updateById(updateSign);
}
}