diff --git a/src/main/java/com/syjiaer/clinic/server/common/api/input/IM9002.java b/src/main/java/com/syjiaer/clinic/server/common/api/input/IM9002.java new file mode 100644 index 0000000..b84de45 --- /dev/null +++ b/src/main/java/com/syjiaer/clinic/server/common/api/input/IM9002.java @@ -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; +} \ No newline at end of file diff --git a/src/main/java/com/syjiaer/clinic/server/common/api/request/SocialRequest.java b/src/main/java/com/syjiaer/clinic/server/common/api/request/SocialRequest.java index e20cd93..e85181b 100644 --- a/src/main/java/com/syjiaer/clinic/server/common/api/request/SocialRequest.java +++ b/src/main/java/com/syjiaer/clinic/server/common/api/request/SocialRequest.java @@ -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()); + } } diff --git a/src/main/java/com/syjiaer/clinic/server/common/util/HttpUtil.java b/src/main/java/com/syjiaer/clinic/server/common/util/HttpUtil.java index aa0d0a5..7794973 100644 --- a/src/main/java/com/syjiaer/clinic/server/common/util/HttpUtil.java +++ b/src/main/java/com/syjiaer/clinic/server/common/util/HttpUtil.java @@ -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 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 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 map = getParmsBase(infno); HashMap inputMap = new HashMap<>(); inputMap.put(tag, input); map.put("input", inputMap); return map; } - private Map getparms(String infno, Object input) { - + private Map getParmsBase(String infno){ + ManagerUser managerUser = managerUtil.getManagerUser(); + ManagerUserSign dbSign = managerUserSignMapper.selectOne(new QueryWrapper().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 getparms(String infno, Object input) { + Map map = getParmsBase(infno); map.put("input", input); return map; } diff --git a/src/main/java/com/syjiaer/clinic/server/common/util/ManagerUtil.java b/src/main/java/com/syjiaer/clinic/server/common/util/ManagerUtil.java new file mode 100644 index 0000000..c0163c9 --- /dev/null +++ b/src/main/java/com/syjiaer/clinic/server/common/util/ManagerUtil.java @@ -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 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; + + } +} diff --git a/src/main/java/com/syjiaer/clinic/server/controller/common/SignUpController.java b/src/main/java/com/syjiaer/clinic/server/controller/common/SignController.java similarity index 61% rename from src/main/java/com/syjiaer/clinic/server/controller/common/SignUpController.java rename to src/main/java/com/syjiaer/clinic/server/controller/common/SignController.java index 2ec7e04..120a289 100644 --- a/src/main/java/com/syjiaer/clinic/server/controller/common/SignUpController.java +++ b/src/main/java/com/syjiaer/clinic/server/controller/common/SignController.java @@ -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 set() { + private SignService signService; + @RequestMapping("/in") + public Result 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 out() { + signService.out(); + return success("签退成功"); + } } diff --git a/src/main/java/com/syjiaer/clinic/server/entity/manager/ManagerUserSign.java b/src/main/java/com/syjiaer/clinic/server/entity/manager/ManagerUserSign.java index 229b271..72daebf 100644 --- a/src/main/java/com/syjiaer/clinic/server/entity/manager/ManagerUserSign.java +++ b/src/main/java/com/syjiaer/clinic/server/entity/manager/ManagerUserSign.java @@ -50,4 +50,7 @@ public class ManagerUserSign implements Serializable { @ApiModelProperty("服务器签到时间") private LocalDateTime logTime; + + @ApiModelProperty("签到状态 0已签到 1签退") + private Integer status; } diff --git a/src/main/java/com/syjiaer/clinic/server/service/BaseService.java b/src/main/java/com/syjiaer/clinic/server/service/BaseService.java index 971c987..5e0af6f 100644 --- a/src/main/java/com/syjiaer/clinic/server/service/BaseService.java +++ b/src/main/java/com/syjiaer/clinic/server/service/BaseService.java @@ -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 日志信息 + * 保存日志 + * @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,29 +56,17 @@ public abstract class BaseService { } protected ManagerUser getManagerUser() { - Map 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 Page pageHelper(int pageNum, int pageSize, QueryWrapper queryWrapper, BaseMapper mapper,String orderByStr ,boolean isAsc){ + + protected Page pageHelper(int pageNum, int pageSize, QueryWrapper queryWrapper, BaseMapper 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); + queryWrapper.last("LIMIT " + pageSize + " OFFSET " + (pageNum - 1) * pageSize); List list = mapper.selectList(queryWrapper); Page page = new Page<>(); page.setList(list); @@ -82,11 +74,12 @@ public abstract class BaseService { page.setTotal_page((int) Math.ceil(totalCount / (double) pageSize)); return page; } - protected Page pageHelper(int pageNum, int pageSize, QueryWrapper queryWrapper, BaseMapper mapper){ - return pageHelper(pageNum, pageSize, queryWrapper, mapper,null,true); + + protected Page pageHelper(int pageNum, int pageSize, QueryWrapper queryWrapper, BaseMapper mapper) { + return pageHelper(pageNum, pageSize, queryWrapper, mapper, null, true); } - protected Map getParms() { + protected Map getParms() { return parmsUtil.getMap(); } @@ -94,11 +87,13 @@ public abstract class BaseService { protected Map getHeaders() { return headersUtil.getMap(); } + protected Map getInfos() { return infoUtil.getMap(); } - protected List listObjs(Wrapper queryWrapper, BaseMapper mapper,Function function) { - return (List)mapper.selectObjs(queryWrapper).stream().filter(Objects::nonNull).map(function).collect(Collectors.toList()); + + protected List listObjs(Wrapper queryWrapper, BaseMapper mapper, Function function) { + return (List) mapper.selectObjs(queryWrapper).stream().filter(Objects::nonNull).map(function).collect(Collectors.toList()); } } diff --git a/src/main/java/com/syjiaer/clinic/server/service/common/ManagerUserService.java b/src/main/java/com/syjiaer/clinic/server/service/common/ManagerUserService.java index 3c9c2fa..18427d8 100644 --- a/src/main/java/com/syjiaer/clinic/server/service/common/ManagerUserService.java +++ b/src/main/java/com/syjiaer/clinic/server/service/common/ManagerUserService.java @@ -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().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; - } + } diff --git a/src/main/java/com/syjiaer/clinic/server/service/common/SignService.java b/src/main/java/com/syjiaer/clinic/server/service/common/SignService.java new file mode 100644 index 0000000..e0f98fe --- /dev/null +++ b/src/main/java/com/syjiaer/clinic/server/service/common/SignService.java @@ -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().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().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); + } +}