From 220d887718ca83b5b46750ac23d0278d8f5a000e Mon Sep 17 00:00:00 2001 From: ALW <850658129@qq.com> Date: Mon, 18 Jul 2022 17:24:08 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9F=A5=E7=9C=8Bpdf?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../webservice/PowerWebService.java | 3 + .../webservice/impl/PowerWebServiceImpl.java | 419 +++++++++++++++++- .../src/main/resources/config/json.properties | 8 + .../java/com/manage/dao/Power_DeptMapper.java | 4 + .../java/com/manage/dao/Power_UserMapper.java | 4 +- .../java/com/manage/entity/PowerUser.java | 185 ++++++++ .../resources/mapper/Power_DeptMapper.xml | 11 + .../resources/mapper/Power_UserMapper.xml | 4 + .../dataConfig/homeQualitySet.json | 8 + power-foundaton/pom.xml | 4 + .../main/java/com/manage/util/FileUtils.java | 42 ++ .../main/java/com/manage/util/JsonUtils.java | 44 ++ .../main/java/com/manage/util/XmlUtils.java | 194 ++++++++ 13 files changed, 927 insertions(+), 3 deletions(-) create mode 100644 power-admin/src/main/resources/config/json.properties create mode 100644 power-dao/src/main/java/com/manage/entity/PowerUser.java create mode 100644 power-foundaton/dataConfig/homeQualitySet.json create mode 100644 power-foundaton/src/main/java/com/manage/util/FileUtils.java create mode 100644 power-foundaton/src/main/java/com/manage/util/JsonUtils.java create mode 100644 power-foundaton/src/main/java/com/manage/util/XmlUtils.java diff --git a/power-admin/src/main/java/com/manage/interfaces/webservice/PowerWebService.java b/power-admin/src/main/java/com/manage/interfaces/webservice/PowerWebService.java index c2de6fa..6160e65 100644 --- a/power-admin/src/main/java/com/manage/interfaces/webservice/PowerWebService.java +++ b/power-admin/src/main/java/com/manage/interfaces/webservice/PowerWebService.java @@ -13,4 +13,7 @@ public interface PowerWebService { @WebMethod String tempTest(); + + @WebMethod + String HIPMessageServer(String code,String xml); } diff --git a/power-admin/src/main/java/com/manage/interfaces/webservice/impl/PowerWebServiceImpl.java b/power-admin/src/main/java/com/manage/interfaces/webservice/impl/PowerWebServiceImpl.java index 05fb048..a1f1150 100644 --- a/power-admin/src/main/java/com/manage/interfaces/webservice/impl/PowerWebServiceImpl.java +++ b/power-admin/src/main/java/com/manage/interfaces/webservice/impl/PowerWebServiceImpl.java @@ -1,9 +1,13 @@ package com.manage.interfaces.webservice.impl; import com.alibaba.fastjson.JSON; +import com.manage.dao.Power_DeptMapper; import com.manage.dao.Power_MenuMapper; +import com.manage.dao.Power_UserMapper; import com.manage.encrypt.Base64; import com.manage.encrypt.MD5; +import com.manage.entity.PowerUser; +import com.manage.entity.Power_Dept; import com.manage.entity.Power_Menu; import com.manage.entity.Power_User; import com.manage.service.cache.Cache; @@ -11,16 +15,25 @@ import com.manage.service.cache.CacheManager; import com.manage.interfaces.webservice.PowerWebService; import com.manage.service.User_Dept_MenuService; import com.manage.util.Constant; +import com.manage.util.FileUtils; +import com.manage.util.XmlUtils; import com.manage.vo.Power_UserVo; import com.manage.vo.Power_UserWebServiceVo; import com.manage.vo.User_Dept_Menu; import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.BeanUtils; +import org.springframework.beans.BeansException; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; +import org.springframework.util.CollectionUtils; import javax.jws.WebService; +import java.text.SimpleDateFormat; import java.util.*; +import java.util.logging.SimpleFormatter; @Component @WebService(serviceName = "PowerWebService", @@ -28,11 +41,27 @@ import java.util.*; endpointInterface = "com.manage.interfaces.webservice.PowerWebService" ) public class PowerWebServiceImpl implements PowerWebService { + private final Logger logger = LoggerFactory.getLogger(getClass()); + @Value("${newUserName}") + private String newUserName; + @Value("${name}") + private String name; + @Value("${deptCode}") + private String deptCode; + @Value("${synchronizationSwitch}") + private String synchronizationSwitch; + @Value("${deptCTDCode}") + private String deptCTDCode; + @Value("${deptCTDDesc}") + private String deptCTDDesc; @Autowired Power_MenuMapper powerMenuMapper; @Autowired User_Dept_MenuService userDeptMenuService; - + @Autowired + Power_UserMapper powerUserMapper; + @Autowired + Power_DeptMapper powerDeptMapper; @Override public String getInfosByUserId(String token,String sysFlag) { Power_UserWebServiceVo userWebServiceVo = new Power_UserWebServiceVo(); @@ -72,6 +101,394 @@ public class PowerWebServiceImpl implements PowerWebService { return "aaaa~~~~~~~~~~~~~~~~~~~~~~~"; } + @Override + public String HIPMessageServer(String code, String xml) { + if (StringUtils.isNotBlank(synchronizationSwitch) && "1".equals(synchronizationSwitch)) { + //科室字典信息方法 + if (StringUtils.isNotBlank(code) && "MES0067".equals(code)) { + departmentInfo(code,xml); + } + //医护人员字典信息 + else if (StringUtils.isNotBlank(code) && "MES0072".equals(code)){ + userInfo(code,xml); + } + else { + return "无效的服务编码"; + } + } + return "\n" + + "
\n" + + " \n" + + " \n" + + "
\n" + + " \n" + + " 0\n" + + " 成功\n" + + " \n" + + "
"; + } + //科室字典信息方法 + private String departmentInfo(String code, String xml){ + if (StringUtils.isBlank(xml)) { + return "xml不能为空"; + } + /** + * + *
+ * 30 + * + *
+ * + * + * + * 00001 + * + * + * + * + * + * + * + * HHZK + * CT_CareProv + * + * + * + * + * + * H222100 + * + * H黄子楷 + * + * + * + * + * + * + * + * + * + * + * + * NFYKDXNFYY + * + * + * + * + * + * HHZK + * + * + * H黄子楷 + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * HHZK + * + * + * + * + * + * + * + * + * 护士 + * 2019-05-08 + * 1 + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + *
+ */ + try { + SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd"); + Map map = new HashMap(); + logger.info("接收到xml数据:" + xml); + //xml转map + map = XmlUtils.parseXml2Map(xml, map); + //获取在xml中节点key + String cTDCode = deptCTDCode; + String cTDDesc = deptCTDDesc; + //获取所要的值 + String deptCode = (String) map.get(cTDCode); + String deptDesc = (String) map.get(cTDDesc); + logger.info("解析xml数据:deptCode = " + deptCode + "; deptDesc = " + deptDesc); + if (StringUtils.isBlank(deptCode)) { + return "科室编号不能为空"; + } + Power_Dept dept = new Power_Dept(); + dept.setDeptName(deptDesc); + dept.setDeptCode(deptCode); + //查询是否存在 + List powerDepts = powerDeptMapper.checkDeptCode(deptCode); + dept.setUpdater("admin"); + dept.setUpdateDate(fmt.format(new Date())); + if (!CollectionUtils.isEmpty(powerDepts)) { + //修改 + Power_Dept powerDept = powerDepts.get(0); + Integer deptId = powerDept.getDeptId(); + BeanUtils.copyProperties(dept, powerDept); + powerDept.setDeptId(deptId); + powerDeptMapper.updateByPrimaryKeySelective(powerDept); + logger.info("deptDesc = " + deptDesc + "修改成功!"); + } else { + //新增 + //设置初始值 + dept.setEffective(1); + dept.setCreateDate(fmt.format(new Date())); + dept.setCreater("zwh"); + dept.setDictId(1); + Power_Dept newPowerDapt =new Power_Dept(); + BeanUtils.copyProperties(dept, newPowerDapt); + powerDeptMapper.insert(newPowerDapt); + logger.info("deptDesc = " + deptDesc + "插入成功!"); + } + } catch (BeansException e) { + e.printStackTrace(); + return e.getMessage(); + } + //科室编码转科室id + return "\n" + + "
\n" + + " \n" + + " \n" + + "
\n" + + " \n" + + " 0\n" + + " 成功\n" + + " \n" + + "
"; + } + + + //HIS 用户字典信息方法 + private String userInfo(String code, String xml){ + if (StringUtils.isBlank(xml)) { + return "xml不能为空"; + } + /** + * + *
+ * 30 + * + *
+ * + * + * + * 00001 + * + * + * + * + * + * + * + * HHZK + * CT_CareProv + * + * + * + * + * + * H222100 + * + * H黄子楷 + * + * + * + * + * + * + * + * + * + * + * + * NFYKDXNFYY + * + * + * + * + * + * HHZK + * + * + * H黄子楷 + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * HHZK + * + * + * + * + * + * + * + * + * 护士 + * 2019-05-08 + * 1 + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + * + *
+ */ + try { + SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd"); + Map map = new HashMap(); + logger.info("接收到xml数据:" + xml); + //xml转map + map = XmlUtils.parseXml2Map(xml, map); + //获取在xml中节点key + String userNameKey = newUserName; + String nameKey = name; + String deptCodeKey = deptCode; + //获取所要的值 + String userName = (String) map.get(userNameKey); + String name = (String) map.get(nameKey); + String deptCode = (String) map.get(deptCodeKey); + logger.info("解析xml数据:userName = " + userName + "; name= " + name + "; deptCode = " + deptCode); + if (StringUtils.isBlank(userName)) { + return "工号不能为空"; + } + PowerUser user = new PowerUser(); + user.setName(name); + user.setUserName(userName); + user.setDeptCode(deptCode); + user.setDeptId(""); + //设置科室id + setDeptIdForUser(user); + //查询是否存在 + List powerUsers = powerUserMapper.checkUserName(userName); + user.setUpdater("zwh"); + user.setUpdateDate(fmt.format(new Date())); + if (!CollectionUtils.isEmpty(powerUsers)) { + //修改 + Power_User powerUser = powerUsers.get(0); + Integer userId = powerUser.getUserId(); + BeanUtils.copyProperties(user, powerUser); + powerUser.setUserId(userId); + powerUserMapper.updateByPrimaryKeySelective(powerUser); + logger.info("userName = " + userName + "修改成功!"); + } else { + //新增 + //设置初始值 + user.setEffective(1); + user.setCreateDate(fmt.format(new Date())); + user.setCreater("zwh"); + user.setRoleId(1); + user.setUserPwd("RUZHQEFC"); + Power_User userNew = new Power_User(); + BeanUtils.copyProperties(user, userNew); + powerUserMapper.insert(userNew); + logger.info("userName = " + userName + "插入成功!"); + } + } catch (BeansException e) { + e.printStackTrace(); + return e.getMessage(); + } + //科室编码转科室id + return "\n" + + "
\n" + + " \n" + + " \n" + + "
\n" + + " \n" + + " 0\n" + + " 成功\n" + + " \n" + + "
"; + } + + + + //科室编号转科室id + private void setDeptIdForUser(PowerUser user) { + if(StringUtils.isBlank(user.getDeptCode())){ + return; + } + //根据科室编码查科室id + List deptIds = powerUserMapper.selectDeptIdByDeptCode(user.getDeptCode()); + if(CollectionUtils.isEmpty(deptIds)){ + return; + } + user.setDeptId(deptIds.get(0).toString()); + } private List getPowerMenuMethods(Power_User powerUser, String sysId){ // 根据用户ID以及系统Id查出所有的用户菜单 List powerUserMenus = powerMenuMapper.selectUserMenuByUserIdAndDictId(powerUser.getUserId(), Integer.parseInt(sysId)); diff --git a/power-admin/src/main/resources/config/json.properties b/power-admin/src/main/resources/config/json.properties new file mode 100644 index 0000000..b775acf --- /dev/null +++ b/power-admin/src/main/resources/config/json.properties @@ -0,0 +1,8 @@ +//--------ϷҽԺwebService------------ +newUserName=Body.CT_CareProvList.CT_CareProv.CTCP_JobNumber +name=Body.CT_CareProvList.CT_CareProv.CTCP_Name +deptCode=Body.CT_CareProvList.CT_CareProv.CTCP_DeptCode + + +deptCTDCode=Body.CT_DeptList.CT_Dept.CTD_Code +deptCTDDesc=Body.CT_DeptList.CT_Dept.CTD_Desc \ No newline at end of file diff --git a/power-dao/src/main/java/com/manage/dao/Power_DeptMapper.java b/power-dao/src/main/java/com/manage/dao/Power_DeptMapper.java index eeb4e83..f939917 100644 --- a/power-dao/src/main/java/com/manage/dao/Power_DeptMapper.java +++ b/power-dao/src/main/java/com/manage/dao/Power_DeptMapper.java @@ -1,6 +1,7 @@ package com.manage.dao; import com.manage.entity.Power_Dept; +import com.manage.entity.Power_User; import com.manage.vo.Power_DeptVo; import org.apache.ibatis.annotations.Param; @@ -38,4 +39,7 @@ public interface Power_DeptMapper { List selectDeptByDictId(@Param("dictId") Integer dictId,@Param("sysFlag")String sysFlag); int SimpleInsert(List list); + + public List checkDeptCode(String deptCode); + } \ No newline at end of file diff --git a/power-dao/src/main/java/com/manage/dao/Power_UserMapper.java b/power-dao/src/main/java/com/manage/dao/Power_UserMapper.java index 530afbf..ac006ec 100644 --- a/power-dao/src/main/java/com/manage/dao/Power_UserMapper.java +++ b/power-dao/src/main/java/com/manage/dao/Power_UserMapper.java @@ -28,8 +28,8 @@ public interface Power_UserMapper { int getTotal(Power_UserVo powerUser); - List selectList(); - + /*List selectList();*/ + List selectDeptIdByDeptCode(String deptCode); List selectAllByDeptId(@Param("deptId") Integer deptId,@Param("userName")String userName); List selectAllBySysRole(@Param("dictId") Integer dictId); List selectAllByRoleIdAndDictId(@Param("roleId") Integer roleId,@Param("dictId") Integer dictId); diff --git a/power-dao/src/main/java/com/manage/entity/PowerUser.java b/power-dao/src/main/java/com/manage/entity/PowerUser.java new file mode 100644 index 0000000..54e5b25 --- /dev/null +++ b/power-dao/src/main/java/com/manage/entity/PowerUser.java @@ -0,0 +1,185 @@ +package com.manage.entity; + + + +public class PowerUser { + private Integer userId; + + private String userName; + + private String name; + + private String userPwd; + + private Integer userSex; + + private Integer userAge; + + private String userTel; + + private String userEmail; + + private String userPosition; + + private Integer roleId; + + private String deptId; + + private Integer effective; + + private String createDate; + + private String creater; + + private String updateDate; + + private String updater; + + private String remark; + + private String deptCode; + + public String getDeptCode() { + return deptCode; + } + + public void setDeptCode(String deptCode) { + this.deptCode = deptCode; + } + + public Integer getUserId() { + return userId; + } + + public void setUserId(Integer userId) { + this.userId = userId; + } + + public String getUserName() { + return userName; + } + + public void setUserName(String userName) { + this.userName = userName; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getUserPwd() { + return userPwd; + } + + public void setUserPwd(String userPwd) { + this.userPwd = userPwd; + } + + public Integer getUserSex() { + return userSex; + } + + public void setUserSex(Integer userSex) { + this.userSex = userSex; + } + + public Integer getUserAge() { + return userAge; + } + + public void setUserAge(Integer userAge) { + this.userAge = userAge; + } + + public String getUserTel() { + return userTel; + } + + public void setUserTel(String userTel) { + this.userTel = userTel; + } + + public String getUserEmail() { + return userEmail; + } + + public void setUserEmail(String userEmail) { + this.userEmail = userEmail; + } + + public String getUserPosition() { + return userPosition; + } + + public void setUserPosition(String userPosition) { + this.userPosition = userPosition; + } + + public Integer getRoleId() { + return roleId; + } + + public void setRoleId(Integer roleId) { + this.roleId = roleId; + } + + public String getDeptId() { + return deptId; + } + + public void setDeptId(String deptId) { + this.deptId = deptId; + } + + public Integer getEffective() { + return effective; + } + + public void setEffective(Integer effective) { + this.effective = effective; + } + + public String getCreateDate() { + return createDate; + } + + public void setCreateDate(String createDate) { + this.createDate = createDate; + } + + public String getCreater() { + return creater; + } + + public void setCreater(String creater) { + this.creater = creater; + } + + public String getUpdateDate() { + return updateDate; + } + + public void setUpdateDate(String updateDate) { + this.updateDate = updateDate; + } + + public String getUpdater() { + return updater; + } + + public void setUpdater(String updater) { + this.updater = updater; + } + + public String getRemark() { + return remark; + } + + public void setRemark(String remark) { + this.remark = remark; + } +} \ No newline at end of file diff --git a/power-dao/src/main/resources/mapper/Power_DeptMapper.xml b/power-dao/src/main/resources/mapper/Power_DeptMapper.xml index 9bf5dd1..5a7adea 100644 --- a/power-dao/src/main/resources/mapper/Power_DeptMapper.xml +++ b/power-dao/src/main/resources/mapper/Power_DeptMapper.xml @@ -293,6 +293,15 @@ power_dept.dict_id = #{dictId} + @@ -324,4 +333,6 @@ ) + + \ No newline at end of file diff --git a/power-dao/src/main/resources/mapper/Power_UserMapper.xml b/power-dao/src/main/resources/mapper/Power_UserMapper.xml index 5d44b89..c2661fb 100644 --- a/power-dao/src/main/resources/mapper/Power_UserMapper.xml +++ b/power-dao/src/main/resources/mapper/Power_UserMapper.xml @@ -716,4 +716,8 @@ + + \ No newline at end of file diff --git a/power-foundaton/dataConfig/homeQualitySet.json b/power-foundaton/dataConfig/homeQualitySet.json new file mode 100644 index 0000000..387cee2 --- /dev/null +++ b/power-foundaton/dataConfig/homeQualitySet.json @@ -0,0 +1,8 @@ +{ + + + //--------广州南方医院接收webService部分------------ + "userName": "Body.CT_CareProvList.CT_CareProv.CTCP_JobNumber", + "name": "Body.CT_CareProvList.CT_CareProv.CTCP_Name", + "deptCode": "Body.CT_CareProvList.CT_CareProv.CTCP_DeptCode" +} \ No newline at end of file diff --git a/power-foundaton/pom.xml b/power-foundaton/pom.xml index b5cffd7..287227c 100644 --- a/power-foundaton/pom.xml +++ b/power-foundaton/pom.xml @@ -57,6 +57,10 @@ org.apache.logging.log4j log4j-slf4j-impl + + com.alibaba + fastjson +