diff --git a/modules/boe-module-scorm/src/main/java/com/xboe/module/scorm/IManifestInfoSave.java b/modules/boe-module-scorm/src/main/java/com/xboe/module/scorm/IManifestInfoSave.java new file mode 100644 index 00000000..6da88ad6 --- /dev/null +++ b/modules/boe-module-scorm/src/main/java/com/xboe/module/scorm/IManifestInfoSave.java @@ -0,0 +1,17 @@ +package com.xboe.module.scorm; + +import com.xboe.module.scorm.cam.model.Manifest; + +/** + * manifest.xml内容的保存 + * @author seastar + * + */ +public interface IManifestInfoSave{ + + /** + * 保存配置文件 + * @param manifest + */ + void save(Manifest manifest); +} diff --git a/modules/boe-module-scorm/src/main/java/com/xboe/module/scorm/cam/load/SCORMPackageManager.java b/modules/boe-module-scorm/src/main/java/com/xboe/module/scorm/cam/load/SCORMPackageManager.java index 79acb567..3db59a0f 100644 --- a/modules/boe-module-scorm/src/main/java/com/xboe/module/scorm/cam/load/SCORMPackageManager.java +++ b/modules/boe-module-scorm/src/main/java/com/xboe/module/scorm/cam/load/SCORMPackageManager.java @@ -122,12 +122,12 @@ public class SCORMPackageManager { // .loadSCORMContentPackageFromZipFile("1", "learningserver-scorm/scorm-test-pkg.zip") // .getContent()); System.out.println("test"); - ContentPackage cp=SCORMPackageManager.getInstance().loadSCORMContentPackageFromZipFile("1", "E:/Projects/BOEU/scorm/file/test.zip"); + ContentPackage cp=SCORMPackageManager.getInstance().loadSCORMContentPackageFromZipFile("1", "E:/Projects/BOEU/scorm/file/ContentPackagingOneFilePerSCO_SCORM12.zip"); System.out.println(cp.getManifest().getIdentifier()); System.out.println(cp.getContent()); System.out.println("title="+cp.getManifest().getOrganizations().getOrganizationList().get(0).getTitle()); for(Resource res : cp.getManifest().getResources().getResourceList()) { - System.out.print(res.getHref()); + System.out.println(res.getHref()); } // System.out.println("ADL_Maritime_Navigation"); diff --git a/servers/boe-server-all/src/main/java/com/xboe/constants/CacheName.java b/servers/boe-server-all/src/main/java/com/xboe/constants/CacheName.java index b3effa38..b92aff08 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/constants/CacheName.java +++ b/servers/boe-server-all/src/main/java/com/xboe/constants/CacheName.java @@ -8,6 +8,9 @@ public interface CacheName { */ String NAME_AUTH= "auth"; + + String NAME_USER_LOGIN_ERROR_NUM= "user:login:error:aid:"; + /** * 验证码key前缀 */ diff --git a/servers/boe-server-all/src/main/java/com/xboe/data/api/UserDataSyncApi.java b/servers/boe-server-all/src/main/java/com/xboe/data/api/UserDataSyncApi.java new file mode 100644 index 00000000..1ffca469 --- /dev/null +++ b/servers/boe-server-all/src/main/java/com/xboe/data/api/UserDataSyncApi.java @@ -0,0 +1,127 @@ +package com.xboe.data.api; + +import java.time.LocalDateTime; + +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import com.xboe.account.entity.Account; +import com.xboe.account.service.IAccountService; +import com.xboe.core.JsonResponse; +import com.xboe.core.api.ApiBaseController; +import com.xboe.data.dto.UserData; +import com.xboe.data.service.IDataUserSyncService; +import com.xboe.system.organization.entity.Organization; +import com.xboe.system.organization.service.IOrganizationService; +import com.xboe.system.user.entity.User; +import com.xboe.system.user.service.IUserService; + +import lombok.extern.slf4j.Slf4j; + +/** + * 用户数据同步的处理 + * + */ +@Slf4j +@RestController +@RequestMapping(value = "/inner/data") +public class UserDataSyncApi extends ApiBaseController { + + @Autowired + IAccountService accountService; + + @Autowired + IUserService userService; + + @Autowired + IOrganizationService orgService; + + @Autowired + IDataUserSyncService service; + + @PostMapping("/user") + public JsonResponse syncUser( @RequestBody UserData user) { + + if (StringUtils.isBlank(user.getId())) { + return error("无用户的id"); + } + //清除缓存需要loginName + try { + //先查询是否存在 + Account a=accountService.get(user.getId()); + User u=userService.get(user.getId()); + Organization org=null; + if(a!=null) { + //账户只是修改状态 + a.setDeleted(user.getDeleted()); + }else { + //新账户 + a=new Account(); + a.setDeleted(user.getDeleted()); + a.setSysId(user.getKid()); + a.setLoginName(user.getCode()); + a.setAvatar(user.getAvatar()); + a.setId(user.getId()); + a.setRegTime(LocalDateTime.now()); + a.setSysId(user.getKid()); + a.setStatus(1); + } + if(u!=null) { + //更新部分用户字段 + u.setDepartId(user.getDepartId()); + u.setDepartName(user.getDepartName()); + u.setName(user.getName()); + u.setUserType(user.getUserType()); + if(user.getLearningDuration()>0) { //不大于0才会更新 + u.setLearningDuration(user.getLearningDuration()); + } + }else { + //新建用户 + u=new User(); + u.setId(user.getId()); + u.setDepartId(user.getDepartId()); + u.setDepartName(user.getDepartName()); + u.setDynamic(0); + u.setGender(u.getGender()); + u.setName(user.getName()); + u.setSign(""); + u.setUserNo(user.getCode()); + u.setUserType(user.getUserType()); + u.setSysId(user.getKid()); + u.setStudyTotal(0); + u.setLearningDuration(user.getLearningDuration()); + if(user.getBandLevel()!=null && user.getBandLevel()>15) { + u.setShowHome(false);//band16及以上 + }else { + u.setShowHome(true);//band16以下,及其它无bandLevel的信息 + } + + } + //对机构的判断,不为空时才会处理,为空时不处理 + if(StringUtils.isNotBlank(user.getDepartId())) { + org=orgService.get(user.getDepartId()); + if(org==null) { + org=new Organization(); + org.setCode(""); + org.setId(user.getDepartId()); + org.setName(user.getDepartName()); + org.setDeleted(false); + org.setStatus(1); + } + org.setNamePath(user.getOrgNamePath()); + + } + service.syncUserFull(a, u, org); + + return success(true); + } catch (Exception e) { + log.error("同步处理用户错误", e); + return error("同步处理用户失败", e.getMessage()); + } + } + +} diff --git a/servers/boe-server-all/src/main/java/com/xboe/data/dto/AudienceUser.java b/servers/boe-server-all/src/main/java/com/xboe/data/dto/AudienceUser.java new file mode 100644 index 00000000..87be596c --- /dev/null +++ b/servers/boe-server-all/src/main/java/com/xboe/data/dto/AudienceUser.java @@ -0,0 +1,27 @@ +package com.xboe.data.dto; + +import lombok.Data; + +/** + * 受众人员 + * @author seastar + * + */ +@Data +public class AudienceUser { + + /** + * 用户的统一id + */ + private String id; + + /** + * 用户的姓名 + */ + private String name; + + /** + * 用户的代码 + */ + private String code; +} diff --git a/servers/boe-server-all/src/main/java/com/xboe/data/dto/UserData.java b/servers/boe-server-all/src/main/java/com/xboe/data/dto/UserData.java new file mode 100644 index 00000000..1a324cc4 --- /dev/null +++ b/servers/boe-server-all/src/main/java/com/xboe/data/dto/UserData.java @@ -0,0 +1,55 @@ +package com.xboe.data.dto; + +import lombok.Data; + +/** + * 用于同步的用户数据 + * @author seastar + * + */ +@Data +public class UserData { + + /**用户的id*/ + private String id; + + /**主要是为了兼容之前的使用,新用户可以为空*/ + private String kid; + + /**用户工号*/ + private String code; + + /**band的级别*/ + private Integer bandLevel; + + /**姓名*/ + private String name; + + /**用户的头像*/ + private String avatar; + + /**性别 1:男 2:女*/ + private Integer gender; + + /**学习时长,秒*/ + private Integer learningDuration; + + /**部门id*/ + private String departId; + + /**部门名称*/ + private String departName; + + /**此字段主要是为了人员的显示*/ + private String orgNamePath; + + /** + * 用户类型,1表学员,2表教师,3表管理员 + */ + private Integer userType; + + /** + * 是否删除的,如果是删除的,上面所有的字段可以不提供,只提供id就可以了 + */ + private Boolean deleted; +} diff --git a/servers/boe-server-all/src/main/java/com/xboe/data/outside/IOutSideDataService.java b/servers/boe-server-all/src/main/java/com/xboe/data/outside/IOutSideDataService.java new file mode 100644 index 00000000..7c34b0f0 --- /dev/null +++ b/servers/boe-server-all/src/main/java/com/xboe/data/outside/IOutSideDataService.java @@ -0,0 +1,21 @@ +package com.xboe.data.outside; + +import java.util.List; + +import com.xboe.data.dto.AudienceUser; +import com.xboe.data.dto.UserData; + +public interface IOutSideDataService { + + /** + * 获取受众的所有用户 + * @param task + */ + List getUsersByAudienceId(String audienceId); + + /** + * 通过统一用户id获取用户的信息 + */ + UserData getUserInfoByUserId(String userId); + +} diff --git a/servers/boe-server-all/src/main/java/com/xboe/data/outside/OutSideDataServiceImpl.java b/servers/boe-server-all/src/main/java/com/xboe/data/outside/OutSideDataServiceImpl.java new file mode 100644 index 00000000..c9089829 --- /dev/null +++ b/servers/boe-server-all/src/main/java/com/xboe/data/outside/OutSideDataServiceImpl.java @@ -0,0 +1,142 @@ +package com.xboe.data.outside; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.servlet.http.HttpServletRequest; + +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.xboe.core.SysConstant; +import com.xboe.core.api.TokenProxy; +import com.xboe.core.utils.OkHttpUtil; +import com.xboe.data.dto.AudienceUser; +import com.xboe.data.dto.UserData; + +import lombok.extern.slf4j.Slf4j; + +@Service +@Slf4j +public class OutSideDataServiceImpl implements IOutSideDataService { + + @Autowired + private HttpServletRequest request; + + @Autowired + private OkHttpUtil okHttpUtil; + + + private String getNodeText(JsonNode jn) { + if(jn!=null) { + return jn.asText(); + }else { + return ""; + } + } + + + @Override + public List getUsersByAudienceId(String audienceId){ + + String token = TokenProxy.getToken(request); + String type="application/json"; + String[] headers=new String[] {"token",token,"Content-Type",type}; + String url= getBaseUrl("/audience/memberList"); + Map params = new HashMap<>(); + params.put("audienceId", audienceId); + String json = null; + List list=new ArrayList(); + ObjectMapper mapper=new ObjectMapper(); + try { + + json = mapper.writeValueAsString(params); + String responseStr = okHttpUtil.doPostJson(url, json, headers); + JsonNode rootNode= mapper.readTree(responseStr); + + JsonNode result = rootNode.get("result")!=null ?( rootNode.get("result").get("data") !=null ? rootNode.get("result").get("data"):null):null; + if(rootNode.get("result")!=null & rootNode.get("result").isArray()) { + //这里应该是单独的线程去处理 + for(JsonNode JsonNode :result) { + AudienceUser au=new AudienceUser(); + au.setId(JsonNode.get("id").asText()); + au.setName(getNodeText(JsonNode.get("userName"))); + au.setCode(getNodeText(JsonNode.get("userNo"))); + list.add(au); + } + } + } catch (Exception e) { + log.error("获取受众用户列表错误",e); + } + return list; + } + + + @Override + public UserData getUserInfoByUserId(String userId) { + + String token = TokenProxy.getToken(request); + String type="application/json"; + String[] headers=new String[] {"token",token,"Content-Type",type}; + String url= getBaseUrl("/user/info"); + ObjectMapper mapper=new ObjectMapper(); + try { + String responseStr = okHttpUtil.doPostJson(url,"{}", headers); + JsonNode rootNode= mapper.readTree(responseStr); + int code = rootNode.get("code").asInt(); + if(code!=200) { + log.error("获取当前用户信息返回结果错误:"+responseStr); + return null; + } + UserData user=new UserData(); + JsonNode result = rootNode.get("result"); + if(rootNode.get("result")!=null & rootNode.get("result").isObject()) { + //这里应该是单独的线程去处理 + user.setId(getNodeText(result.get("id"))); + String band=getNodeText(result.get("bandCode")); + if(StringUtils.isNotBlank(band) && band.length()>4) { + String bandNum=band.substring(4); + user.setBandLevel(Integer.valueOf(bandNum)); + }else { + user.setBandLevel(0); + } + user.setAvatar(""); + user.setCode(getNodeText(result.get("userNo"))); + user.setDeleted(result.get("deleted").asBoolean()); + user.setDepartId(getNodeText(result.get("departId"))); + user.setDepartName("");//无此字段 + user.setGender(1);//少此字段 + user.setKid(getNodeText(result.get("kid"))); + user.setLearningDuration(result.get("learningDuration").asInt()); + user.setName(result.get("realName").asText()); + user.setOrgNamePath(result.get("orgNamePath").asText()); + user.setUserType(1);//直接设置为学员 + if(StringUtils.isBlank(user.getCode())) { + log.error("通过接口获取当前用户信息【"+user.getId()+"】"+user.getName()+",工号为空,不能使用"); + throw new RuntimeException("通过接口获取当前用户信息,工号为空,不能使用"); + } + + } + return user; + } catch (Exception e) { + log.error("获取当前用户信息错误",e); + } + return null; + } + + private String getBaseUrl(String url) { + String baseUrl=SysConstant.getConfigValue("xboe.server.userbasic.url"); + if(StringUtils.isBlank(baseUrl)) { + log.error("调用用户接口错误,未配置用户服务的地址【xboe.server.userbasic.url】"); + throw new RuntimeException("获取用户信息错误,未配置用户服务的地址"); + } + String reqUrl= baseUrl+"/user/info"; + return reqUrl; + } + +} diff --git a/servers/boe-server-all/src/main/java/com/xboe/data/service/IDataUserSyncService.java b/servers/boe-server-all/src/main/java/com/xboe/data/service/IDataUserSyncService.java new file mode 100644 index 00000000..a075ed84 --- /dev/null +++ b/servers/boe-server-all/src/main/java/com/xboe/data/service/IDataUserSyncService.java @@ -0,0 +1,21 @@ +package com.xboe.data.service; + +import com.xboe.account.entity.Account; +import com.xboe.system.organization.entity.Organization; +import com.xboe.system.user.entity.User; + +/** + * 用户数据的更橷 + * + */ +public interface IDataUserSyncService { + + /** + * 同步用户,账号,机构等信息 + * @param a + * @param u + * @param org + * @return + */ + void syncUserFull(Account a,User u,Organization org); +} diff --git a/servers/boe-server-all/src/main/java/com/xboe/data/service/impl/DataUserSyncServiceImpl.java b/servers/boe-server-all/src/main/java/com/xboe/data/service/impl/DataUserSyncServiceImpl.java new file mode 100644 index 00000000..db5cdf96 --- /dev/null +++ b/servers/boe-server-all/src/main/java/com/xboe/data/service/impl/DataUserSyncServiceImpl.java @@ -0,0 +1,60 @@ +package com.xboe.data.service.impl; + +import javax.transaction.Transactional; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import com.xboe.account.dao.AccountDao; +import com.xboe.account.entity.Account; +import com.xboe.data.service.IDataUserSyncService; +import com.xboe.module.teacher.dao.TeacherDao; +import com.xboe.module.teacher.entity.Teacher; +import com.xboe.system.organization.dao.OrganizationDao; +import com.xboe.system.organization.entity.Organization; +import com.xboe.system.user.dao.UserDao; +import com.xboe.system.user.entity.User; + +@Service +public class DataUserSyncServiceImpl implements IDataUserSyncService{ + + @Autowired + AccountDao accountDao; + + @Autowired + UserDao userDao; + + @Autowired + OrganizationDao orgDao; + + @Autowired + TeacherDao teacherDao; + + @Override + @Transactional + public void syncUserFull(Account a, User u, Organization org) { + accountDao.saveOrUpdate(a); + userDao.saveOrUpdate(u); + if(org!=null) { + orgDao.saveOrUpdate(org); + } + //老师信息 + if(u.getUserType()!=null && u.getUserType()==2) { + Teacher t = teacherDao.get(u.getId()); + if(t==null) { + t=new Teacher(); + t.setId(u.getId()); + t.setDepartId(u.getDepartId()); + t.setDeleted(false); + t.setGender(u.getGender()); + t.setName(u.getName()); + t.setStatus(1); + t.setWaitStatus(0); + t.setUser(u); + teacherDao.save(t); + } + } + + } + +} diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/entity/Cases.java b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/entity/Cases.java index 83731470..9aec3360 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/boecase/entity/Cases.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/boecase/entity/Cases.java @@ -223,6 +223,8 @@ public class Cases extends BaseEntity { @Column(name = "case_value") private String caseValue; + + @Transient private List majorIds; diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/course/service/impl/CourseServiceImpl.java b/servers/boe-server-all/src/main/java/com/xboe/module/course/service/impl/CourseServiceImpl.java index 6bfbb8b8..4def5285 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/course/service/impl/CourseServiceImpl.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/course/service/impl/CourseServiceImpl.java @@ -472,12 +472,6 @@ public class CourseServiceImpl implements ICourseService { //同时添加发布事件,这里的创建人需要修改为教师 Course c=courseDao.get(id); //删除分两种情况,一个是管理员删除,一个是自己删除 ,所以这里的处理移到前端了 -// if(eventSender!=null) { -// eventSender.send("删除课程","DeleteCourse", "删除课程【"+c.getName()+"】", c.getId(), "1", c.getName(), c.getSysCreateAid(), c.getSysCreateBy(),""); -// }else { -// log.error("未配置事件消息发送的实现"); -// } - //删除 if(c.getFullTextId()!=null) { try { fullTextSearch.remove(ICourseFullTextSearch.DEFAULT_INDEX_NAME,c.getFullTextId()); @@ -485,6 +479,26 @@ public class CourseServiceImpl implements ICourseService { log.error("删除课程时删除全文索引错误",e); } } + //只有速有全文检索返回标识的,才算是发布过再删除的,删除消息 + if(StringUtils.isNotBlank(c.getFullTextId())){ + if(eventSender!=null) { + List teachers = courseTeacherDao.findList(FieldFilters.eq("courseId", id)); + if(teachers.size()>0) { + String authorIds=""; + for(CourseTeacher cteacher:teachers) { + if(authorIds.equals("")) { + authorIds+=cteacher.getTeacherId(); + }else { + authorIds+="|"+cteacher.getTeacherId(); + } + } + String txt="管理删除课程"; + eventSender.send(txt,"CourseDelete", "管理删除课程", c.getId(), "1", c.getName(), aid, name,"authors:"+authorIds); + } + }else { + log.error("未配置事件消息发送的实现"); + } + } }else { //彻底删除,课件设置为无课程状态 courseDao.setDeleted(id); @@ -834,12 +848,23 @@ public class CourseServiceImpl implements ICourseService { //发布到全文检索中 Course c=courseDao.get(courseId); if(fullTextSearch!=null) { - this.fullTextPublish(c); } //同时添加发布事件,这里的创建人需要修改为教师 if(eventSender!=null) { - eventSender.send("发布课程","PublishCourse", "发布课程【"+c.getName()+"】", c.getId(), "1", c.getName(), c.getSysCreateAid(), c.getSysCreateBy(),""); + List teachers = courseTeacherDao.findList(FieldFilters.eq("courseId", courseId)); + if(teachers.size()>0) { + String authorIds=""; + for(CourseTeacher cteacher:teachers) { + if(authorIds.equals("")) { + authorIds+=cteacher.getTeacherId(); + }else { + authorIds+="|"+cteacher.getTeacherId(); + } + } + eventSender.send("发布课程","PublishCourse", "发布课程【"+c.getName()+"】", c.getId(), "1", c.getName(), aid,name,"authors:"+authorIds); + } + }else { log.error("未配置事件消息发送的实现"); } @@ -943,7 +968,7 @@ public class CourseServiceImpl implements ICourseService { @Override public List findTeachersByCourseId(String courseId) { - return courseTeacherDao.findList(FieldFilters.eq("courseId", courseId)); + return courseTeacherDao.findList(OrderCondition.desc("teacherId"),FieldFilters.eq("courseId", courseId)); } @Override @@ -961,7 +986,7 @@ public class CourseServiceImpl implements ICourseService { @Override public List findTeachersByCourseIds(List ids) { - return courseTeacherDao.findList(FieldFilters.in("courseId",ids)); + return courseTeacherDao.findList(OrderCondition.desc("teacherId"),FieldFilters.in("courseId",ids)); } @Override diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/course/service/impl/CourseTeacherServiceImpl.java b/servers/boe-server-all/src/main/java/com/xboe/module/course/service/impl/CourseTeacherServiceImpl.java index b9bd2d7b..b9f8de01 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/course/service/impl/CourseTeacherServiceImpl.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/course/service/impl/CourseTeacherServiceImpl.java @@ -10,6 +10,7 @@ import javax.annotation.Resource; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import com.xboe.common.OrderCondition; import com.xboe.core.orm.FieldFilters; import com.xboe.core.orm.QueryBuilder; import com.xboe.module.course.dao.CourseTeacherDao; @@ -39,7 +40,7 @@ public class CourseTeacherServiceImpl implements ICourseTeacherService { public CourseTeacherDto getTeacherByCourseId(String courseId) { CourseTeacherDto dto = null; - List list = dao.findList(FieldFilters.eq("courseId",courseId)); + List list = dao.findList(OrderCondition.desc("teacherId"),FieldFilters.eq("courseId",courseId)); if(list != null && !list.isEmpty()){ dto=new CourseTeacherDto(); dto.setCourseId(courseId); @@ -60,7 +61,7 @@ public class CourseTeacherServiceImpl implements ICourseTeacherService { public List queryTeacher(Collection ids) { List teacherDtos = null; if (ids != null && !ids.isEmpty()) { - List list = dao.findList(FieldFilters.in("courseId",ids)); + List list = dao.findList(OrderCondition.desc("teacherId"),FieldFilters.in("courseId",ids)); if(list != null && !list.isEmpty()) { teacherDtos = new ArrayList<>(); for (String s : ids) { diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/exam/entity/ExamPaper.java b/servers/boe-server-all/src/main/java/com/xboe/module/exam/entity/ExamPaper.java index 7e6125cd..6240fdd2 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/exam/entity/ExamPaper.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/exam/entity/ExamPaper.java @@ -78,6 +78,7 @@ public class ExamPaper extends BaseEntity { @Column(name = "counts") private Integer counts; + public ExamPaper(String testName, String paperType, Integer paperMode, String resOwner1, String resOwner2, String resOwner3,String sysCreateBy,LocalDateTime sysUpdateTime,String id,Integer counts) { this.testName = testName; diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/exam/entity/ExamTest.java b/servers/boe-server-all/src/main/java/com/xboe/module/exam/entity/ExamTest.java index b13fe4d9..cf4b3c5c 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/exam/entity/ExamTest.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/exam/entity/ExamTest.java @@ -156,6 +156,7 @@ public class ExamTest extends BaseEntity { @Column(name = "deadline_time") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private LocalDateTime deadlineTime; + @Transient private String paperName; diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/exam/entity/ExamUserTask.java b/servers/boe-server-all/src/main/java/com/xboe/module/exam/entity/ExamUserTask.java index c420617c..cd63e1a0 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/exam/entity/ExamUserTask.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/exam/entity/ExamUserTask.java @@ -49,7 +49,7 @@ public class ExamUserTask extends IdBaseEntity{ /** * 群组,受众id */ - @Column(name = "group_id",nullable=false,length=20) + @Column(name = "group_id",nullable=false,length=36) private String groupId; /** diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/exam/service/impl/ExamUserTaskServiceImpl.java b/servers/boe-server-all/src/main/java/com/xboe/module/exam/service/impl/ExamUserTaskServiceImpl.java index c97ee803..0ed9e8c8 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/exam/service/impl/ExamUserTaskServiceImpl.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/exam/service/impl/ExamUserTaskServiceImpl.java @@ -10,13 +10,14 @@ import javax.transaction.Transactional; import org.springframework.stereotype.Service; import com.xboe.core.orm.FieldFilters; +import com.xboe.data.dto.AudienceUser; +import com.xboe.data.outside.IOutSideDataService; import com.xboe.module.exam.dao.AloneExamAnswerDao; import com.xboe.module.exam.dao.AloneExamDao; import com.xboe.module.exam.dao.ExamUserTaskDao; import com.xboe.module.exam.dto.ExamTestDto; import com.xboe.module.exam.entity.AloneExam; import com.xboe.module.exam.entity.AloneExamAnswer; -import com.xboe.module.exam.entity.ExamPaper; import com.xboe.module.exam.entity.ExamTest; import com.xboe.module.exam.entity.ExamUserTask; import com.xboe.module.exam.service.IExamUserTaskService; @@ -41,6 +42,9 @@ public class ExamUserTaskServiceImpl implements IExamUserTaskService{ @Resource AloneExamDao aloneExamDao; + + @Resource + IOutSideDataService outSideService; @Override @Transactional @@ -54,13 +58,13 @@ public class ExamUserTaskServiceImpl implements IExamUserTaskService{ examUserTask.setTaskTime(LocalDateTime.now()); examUserTask.setStatus(ExamUserTask.STATUS_FINISH); dao.save(examUserTask); + // 下面的代码应该调用rePushTask //执行推送,当前因为是固定人,所以这里直接添加处理,按受众添加到每个人中 //查询受众的信息 List items = ugroupDao.findList("groupId", task.getGroupId()); if(items.size()>0) { //防止加入两条的问题,应该是先查询,再添加 Map amap= aloneExamDao.findMap("aid", "name",FieldFilters.eq("testId", task.getTestId())); - //这里应该是单独的线程去处理 for(UserGroupItem item :items) { if(amap.containsKey(item.getAid())) { @@ -90,7 +94,7 @@ public class ExamUserTaskServiceImpl implements IExamUserTaskService{ @Transactional public void rePushTask(ExamTestDto task) { //执行推送,当前因为是固定人,所以这里直接添加处理,按受众添加到每个人中 - //查询受众的信息 + //查询受众的信息,2022、11、30 这个的返回需要从接口获取人员信息,然后推送 List items = ugroupDao.findList("groupId", task.getGroupId()); if(items.size()>0) { //防止加入两条的问题,应该是先查询,再添加 @@ -115,6 +119,33 @@ public class ExamUserTaskServiceImpl implements IExamUserTaskService{ aloneExamDao.save(aloneExam); } } + + //调用用户服务的接口,在启用下面的代码前,需要 +// List sudienceUsers=outSideService.getUsersByAudienceId(task.getGroupId()); +// if(sudienceUsers.size()>0) { +// //防止加入两条的问题,应该是先查询,再添加 +// Map amap= aloneExamDao.findMap("aid", "name",FieldFilters.eq("testId", task.getTestId())); +// //这里应该是单独的线程去处理 +// for(AudienceUser item :sudienceUsers) { +// if(amap.containsKey(item.getId())) { +// continue; +// } +// //检查是否存在 +// AloneExam aloneExam = new AloneExam(); +// aloneExam.setAid(item.getId()); +// aloneExam.setTestId(task.getTestId()); +// aloneExam.setTestName(task.getTestName()); +// aloneExam.setName(item.getName()); +// aloneExam.setUcode(item.getCode()); +// aloneExam.setTestDuration(task.getDuration()); +// aloneExam.setTaskTime(LocalDateTime.now()); +// aloneExam.setStartTime(task.getStartTime()); +// aloneExam.setStatus(AloneExamAnswer.STATUS_NONE);//未考试过 +// aloneExam.setScore(0f); +// aloneExamDao.save(aloneExam); +// } +// } + //examUserTask.setStatus(ExamUserTask.STATUS_FINISH); //dao.update(examUserTask); diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/interaction/api/CourseGradeApi.java b/servers/boe-server-all/src/main/java/com/xboe/module/interaction/api/CourseGradeApi.java index 87a24788..2b8dd7d0 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/interaction/api/CourseGradeApi.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/interaction/api/CourseGradeApi.java @@ -2,6 +2,7 @@ package com.xboe.module.interaction.api; import javax.annotation.Resource; +import org.apache.commons.lang3.StringUtils; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; @@ -15,6 +16,8 @@ import com.xboe.module.interaction.service.ICourseGradeService; import lombok.extern.slf4j.Slf4j; +import java.util.Map; + @Slf4j @RestController @RequestMapping(value = "/xboe/m/grade") @@ -50,5 +53,23 @@ public class CourseGradeApi extends ApiBaseController { return success(has); } + /** + * 查询当前用户评分的课程 分数 + * */ + @PostMapping("/score") + public JsonResponse score(String courseId,String aid){ + if(StringUtils.isBlank(courseId)){ + return badRequest("参数异常"); + } + if(StringUtils.isBlank(aid)){ + aid=this.getCurrent().getAccountId(); + } + CourseGrade score = service.score(courseId, aid); + if(score==null) { + return notfound(); + } + return success(score); + } + } diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/interaction/service/ICourseGradeService.java b/servers/boe-server-all/src/main/java/com/xboe/module/interaction/service/ICourseGradeService.java index 663185d7..329dbd49 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/interaction/service/ICourseGradeService.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/interaction/service/ICourseGradeService.java @@ -4,6 +4,8 @@ import com.xboe.common.PageList; import com.xboe.module.course.entity.Course; import com.xboe.module.interaction.entity.CourseGrade; +import java.util.Map; + public interface ICourseGradeService { @@ -20,4 +22,9 @@ public interface ICourseGradeService { * 查询当前用户是否评分 * */ Boolean has(String courseId,String aid); + + /** + * 查询当前用户评分的课程 + * */ + CourseGrade score(String courseId,String aid); } diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/interaction/service/impl/CourseGradeServiceImpl.java b/servers/boe-server-all/src/main/java/com/xboe/module/interaction/service/impl/CourseGradeServiceImpl.java index 4695cf9e..6efd7bae 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/interaction/service/impl/CourseGradeServiceImpl.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/interaction/service/impl/CourseGradeServiceImpl.java @@ -1,9 +1,12 @@ package com.xboe.module.interaction.service.impl; +import java.util.HashMap; import java.util.List; +import java.util.Map; import javax.annotation.Resource; +import com.xboe.core.orm.FieldFilters; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -77,6 +80,13 @@ public class CourseGradeServiceImpl implements ICourseGradeService { } } + @Override + public CourseGrade score(String courseId, String aid) { + + CourseGrade cg = courseGradeDao.findOne(FieldFilters.eq("courseId", courseId), FieldFilters.eq("sysCreateAid", aid)); + + return cg; + } } diff --git a/servers/boe-server-all/src/main/java/com/xboe/module/usergroup/entity/UserGroupItem.java b/servers/boe-server-all/src/main/java/com/xboe/module/usergroup/entity/UserGroupItem.java index fcabdd87..6b1b37bd 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/module/usergroup/entity/UserGroupItem.java +++ b/servers/boe-server-all/src/main/java/com/xboe/module/usergroup/entity/UserGroupItem.java @@ -23,7 +23,7 @@ public class UserGroupItem extends IdEntity { /** * 受众ID */ - @Column(name = "group_Id", nullable = false, length = 20) + @Column(name = "group_Id", nullable = false, length = 36) private String groupId; /** diff --git a/servers/boe-server-all/src/main/java/com/xboe/stat/EventDataSender.java b/servers/boe-server-all/src/main/java/com/xboe/stat/EventDataSender.java index 1882b8a7..3407d50a 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/stat/EventDataSender.java +++ b/servers/boe-server-all/src/main/java/com/xboe/stat/EventDataSender.java @@ -35,7 +35,7 @@ public class EventDataSender implements IEventDataSender{ @Override public void send(String title, String eventKey, String content, String objId, String objType, String objInfo, - String aid, String aname,String author) { + String aid, String aname,String parameters) { String statBaseUrl=SysConstant.getConfigValue("xboe.stat.base.url"); if(StringUtils.isBlank(statBaseUrl)) { log.error("发送事件失败:未配置【xboe.stat.base.url】的值"); @@ -58,7 +58,7 @@ public class EventDataSender implements IEventDataSender{ params.put("objInfo", objInfo); params.put("aid", aid); params.put("aname", aname); - params.put("parameters",""); + params.put("parameters",parameters); String token = TokenProxy.getToken(request); //最后采用异常发送,不影响当前进程 diff --git a/servers/boe-server-all/src/main/java/com/xboe/system/api/SysLoginApi.java b/servers/boe-server-all/src/main/java/com/xboe/system/api/SysLoginApi.java index 1c66f8db..2652dcb9 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/system/api/SysLoginApi.java +++ b/servers/boe-server-all/src/main/java/com/xboe/system/api/SysLoginApi.java @@ -81,24 +81,6 @@ public class SysLoginApi extends ApiBaseController { return success(map); } - @GetMapping("/login/send") - public JsonResponse> sendMessage() { - Map rs=new HashMap(); - - if(eventSender!=null) { - try { - eventSender.send("测试消息","keykey", "all测试消息","1231231", "1", "aaaa", "asdqadqw","wqwrqre",""); - }catch(Exception e) { - e.printStackTrace(); - return error("发送失败"+e.getMessage()); - } - }else { - //log.error(); - return error("未配置事件消息发送的实现"); - } - return success(rs); - } - /** * 根据用户名和密码登录 * @@ -117,6 +99,9 @@ public class SysLoginApi extends ApiBaseController { if (!code.toLowerCase().equals(verCode)) { return error("验证码错误"); } + + + // 检查系统用户是否存在 Account account = accountService.check(loginName,null); String passStr = ""; @@ -124,8 +109,27 @@ public class SysLoginApi extends ApiBaseController { passStr = MD5Util.MD5Encode(password + account.getPassKey()); } + // 从redis缓存中获取5分钟内登陆错误的次数 + String loginErrorNum = redisTemplate.opsForValue().get(CacheName.NAME_USER_LOGIN_ERROR_NUM+account); + Integer loginErrorCount = 0; + if(loginErrorNum != null){ + loginErrorCount = Integer.parseInt(loginErrorNum); + } + if (account == null || StringUtil.isBlank(passStr) || !passStr.equals(account.getPassValue())) { - return error("用户名或密码错误"); + if(loginErrorCount >=5){ + redisTemplate.opsForValue().set(CacheName.NAME_USER_LOGIN_ERROR_NUM+account, "5", 5, TimeUnit.MINUTES); + return error("由于您登录失败次数过多,账号已被锁定!"); + }else{ + loginErrorCount = loginErrorCount + 1; + redisTemplate.opsForValue().set(CacheName.NAME_USER_LOGIN_ERROR_NUM+account, loginErrorCount+"", 5, TimeUnit.MINUTES); + int next = (6-loginErrorCount); + if(next == 0){ + return error("账号已被锁定"); + } + return error("用户名或密码错误,您还有"+(6-loginErrorCount)+"次登录机会"); + } +// return error("用户名或密码错误"); } if (account.getStatus().equals(Constants.ACCOUNT_STATUS_DEACTIVATE)) { diff --git a/servers/boe-server-all/src/main/java/com/xboe/system/filter/AuthenticationFilter.java b/servers/boe-server-all/src/main/java/com/xboe/system/filter/AuthenticationFilter.java index 20d5a59b..33d9e7c3 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/system/filter/AuthenticationFilter.java +++ b/servers/boe-server-all/src/main/java/com/xboe/system/filter/AuthenticationFilter.java @@ -65,7 +65,7 @@ public class AuthenticationFilter extends OncePerRequestFilter { String url = request.getServletPath(); //当前先写固定的url判断 //以下是针对于url规划的判断,这里简写 - if(url.startsWith("/xboe/account/captcha") || url.startsWith("/xboe/account/login") || url.startsWith("/xboe/account/boelogin") || url.startsWith("/xboe/account/mobile-login") || url.startsWith("/xboe/account/logout") || url.startsWith("/xboe/system/captcha") || url.startsWith("/xboe/system/logout") || url.startsWith("/xboe/system/login") || url.startsWith("/xboe/sys/user/sync-all")){ + if(url.startsWith("/inner/data") || url.startsWith("/xboe/account/captcha") || url.startsWith("/xboe/account/login") || url.startsWith("/xboe/account/boelogin") || url.startsWith("/xboe/account/mobile-login") || url.startsWith("/xboe/account/logout") || url.startsWith("/xboe/system/captcha") || url.startsWith("/xboe/system/logout") || url.startsWith("/xboe/system/login") || url.startsWith("/xboe/sys/user/sync-all")){ filterChain.doFilter(request, response); return; } diff --git a/servers/boe-server-all/src/main/java/com/xboe/system/organization/entity/Organization.java b/servers/boe-server-all/src/main/java/com/xboe/system/organization/entity/Organization.java index 8462eea7..61bf4fec 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/system/organization/entity/Organization.java +++ b/servers/boe-server-all/src/main/java/com/xboe/system/organization/entity/Organization.java @@ -35,7 +35,7 @@ public class Organization extends BaseEntity { /** * 组织部门代码 */ - @Column(name = "code", nullable = false, length = 50) + @Column(name = "code", nullable = true, length = 50) private String code; /** diff --git a/servers/boe-server-all/src/main/java/com/xboe/system/user/service/impl/UserServiceImpl.java b/servers/boe-server-all/src/main/java/com/xboe/system/user/service/impl/UserServiceImpl.java index 440277d9..94a48b11 100644 --- a/servers/boe-server-all/src/main/java/com/xboe/system/user/service/impl/UserServiceImpl.java +++ b/servers/boe-server-all/src/main/java/com/xboe/system/user/service/impl/UserServiceImpl.java @@ -287,6 +287,7 @@ public class UserServiceImpl implements IUserService { return user.getAccount(); } + @Override public void syncUpdateUser(UserVo uv)throws XaskException{ diff --git a/servers/boe-server-all/src/main/resources/application-dev.properties b/servers/boe-server-all/src/main/resources/application-dev.properties index 340d898f..55bf09ee 100644 --- a/servers/boe-server-all/src/main/resources/application-dev.properties +++ b/servers/boe-server-all/src/main/resources/application-dev.properties @@ -43,6 +43,8 @@ xboe.externalinterface.url.system=http://localhost:9091 ## 新增加的教师的内部调用接口 xboe.old.base.url=https://u-pre.boe.com +xboe.server.userbasic.url=https://u-pre.boe.com/userbasic + ## 用户统计接口的api地址 xboe.stat.base.url=http://127.0.0.1:9080 diff --git a/servers/boe-server-case/pom.xml b/servers/boe-server-case/pom.xml deleted file mode 100644 index 1297dafc..00000000 --- a/servers/boe-server-case/pom.xml +++ /dev/null @@ -1,180 +0,0 @@ - - - 4.0.0 - - org.springframework.boot - spring-boot-starter-parent - 2.6.3 - - - com.xboe - boe-server-case - 2.0.0 - boe-server-case - BOEDX项目的任务处理服务 - - 1.8 - - - - - com.xboe - xboe-core - 1.0.0 - - - com.boe - httpsdk - system - 1.0.0 - ${project.basedir}/src/main/resources/libs/httpsdk-1.0.0.jar - - - - com.auth0 - java-jwt - 3.18.3 - - - - - org.apache.commons - commons-lang3 - - - commons-codec - commons-codec - - - - - - - org.springframework.boot - spring-boot-starter-data-jpa - - - org.springframework.boot - spring-boot-starter-web - - - mysql - mysql-connector-java - 5.1.27 - - - - org.projectlombok - lombok - true - - - - com.aspose - slides - 15.9.0 - system - ${project.basedir}/src/main/resources/aspose/aspose.slides-15.9.0.jar - - - com.aspose - words - 15.8.0 - system - ${project.basedir}/src/main/resources/aspose/aspose-words-15.8.0.jar - - - com.aspose - cells - 18.11 - system - ${project.basedir}/src/main/resources/aspose/aspose-cells-java-18.11.jar - - - - - com.github.ulisesbocchio - jasypt-spring-boot-starter - 3.0.3 - - - - - - true - src/main/resources - - application-${profileActive}.properties - application.properties - - - - false - src/main/resources - - *.properties - - - - - - org.apache.maven.plugins - maven-compiler-plugin - - - 1.8 - 1.8 - - - - org.springframework.boot - spring-boot-maven-plugin - - - - org.projectlombok - lombok - - - true - - - - - - - pro - - pro - - - - pre - - pre - - - - test - - test - - - - dev - - dev - - - true - - - - diff --git a/servers/boe-server-case/src/main/java/com/xboe/BoeServerCaseApplication.java b/servers/boe-server-case/src/main/java/com/xboe/BoeServerCaseApplication.java deleted file mode 100644 index 61901463..00000000 --- a/servers/boe-server-case/src/main/java/com/xboe/BoeServerCaseApplication.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.xboe; - -import java.io.File; -import java.io.IOException; - -import javax.annotation.PostConstruct; - -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.boot.system.ApplicationPid; -import org.springframework.cache.annotation.EnableCaching; -import org.springframework.context.annotation.Configuration; - -@Configuration -@SpringBootApplication -@EnableCaching -public class BoeServerCaseApplication { - - public static void main(String[] args) { - System.setProperty("jasypt.encryptor.password","jasypt"); - SpringApplication.run(BoeServerCaseApplication.class, args); - } - - @PostConstruct - private void handlePid() throws IOException { - File file = new File("application-case.pid"); - new ApplicationPid().write(file); - file.deleteOnExit(); - } - - -} diff --git a/servers/boe-server-case/src/main/java/com/xboe/ResultNullToEmptyConfig.java b/servers/boe-server-case/src/main/java/com/xboe/ResultNullToEmptyConfig.java deleted file mode 100644 index 12de9ef2..00000000 --- a/servers/boe-server-case/src/main/java/com/xboe/ResultNullToEmptyConfig.java +++ /dev/null @@ -1,38 +0,0 @@ -package com.xboe; - -import java.io.IOException; - -import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Primary; -import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder; - -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.SerializerProvider; - -/** - * 返回的数据中如果是null 就会转化成空字符串 - * - */ -@Configuration -public class ResultNullToEmptyConfig { - - @Bean - @Primary - @ConditionalOnMissingBean(ObjectMapper.class) - public ObjectMapper jacksonObjectMapper(Jackson2ObjectMapperBuilder builder) { - ObjectMapper objectMapper = builder.createXmlMapper(false).build(); - objectMapper.getSerializerProvider().setNullValueSerializer(new JsonSerializer() { - @Override - public void serialize(Object o, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) - throws IOException, JsonProcessingException { - jsonGenerator.writeString(""); - } - }); - return objectMapper; - } -} diff --git a/servers/boe-server-case/src/main/java/com/xboe/casetask/CaseApiConfig.java b/servers/boe-server-case/src/main/java/com/xboe/casetask/CaseApiConfig.java deleted file mode 100644 index bfb419bb..00000000 --- a/servers/boe-server-case/src/main/java/com/xboe/casetask/CaseApiConfig.java +++ /dev/null @@ -1,34 +0,0 @@ -package com.xboe.casetask; - -import org.springframework.beans.factory.annotation.Value; -import org.springframework.context.annotation.Configuration; - -import lombok.Data; - -@Data -@Configuration -public class CaseApiConfig { - - @Value("${xboe.case.sync.init}") - private Boolean init; - - @Value("${xboe.case.sync.api.url}") - private String apiUrl; - - @Value("${xboe.case.sync.api.name}") - private String apiName; - - @Value("${xboe.case.sync.api.version}") - private String apiVersion; - - @Value("${xboe.case.sync.api.method}") - private String apiMethod; - - @Value("${xboe.case.sync.api.ak}") - private String apiAK; - - @Value("${xboe.case.sync.api.sk}") - private String apiSK; - - -} diff --git a/servers/boe-server-case/src/main/java/com/xboe/casetask/CaseDataStartRunner.java b/servers/boe-server-case/src/main/java/com/xboe/casetask/CaseDataStartRunner.java deleted file mode 100644 index f73962a8..00000000 --- a/servers/boe-server-case/src/main/java/com/xboe/casetask/CaseDataStartRunner.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.xboe.casetask; - -import javax.annotation.Resource; - -import org.springframework.boot.ApplicationArguments; -import org.springframework.boot.ApplicationRunner; -import org.springframework.stereotype.Component; - -import com.xboe.casetask.service.ICaseSyncService; - -import lombok.extern.slf4j.Slf4j; - -@Slf4j -@Component -public class CaseDataStartRunner implements ApplicationRunner { - - @Resource - ICaseSyncService syncService; - - @Resource - CaseApiConfig config; - - @Resource - CaseDataSyncRunner runner; - - @Override - public void run(ApplicationArguments args) throws Exception { - - if(config.getInit() ==null || !config.getInit()) { - return; - } - -// String json="{\"TYLC07QueryServiceResponse\":{\"return\":{\"msg\":\"success\",\"code\":0,\"data\":[{\"approvalNumber\":\"188322041200009\", \"confidentialityLevel\":\"内部\"}]}}}"; -// String json="{ \"TYLC07QueryServiceResponse\": { \"return\": { \"msg\": \"success\", \"code\": 0, \"data\": [ { \"caseFlow\": \"1.0 集成产品开发(IPD)\", \"caseType1\": \"典型场景\", \"caseOtherContributor\": \"152968<李娜>\", \"keyword5\": 1, \"caseOwner\": \"160379<白瑞兵>\", \"keyword3\": 1, \"keyword4\": 1, \"keyword1\": 1, \"keyword2\": 1, \"caseTheme2\": \"物联网转型案例\", \"caseThemeDescription2\": \"\", \"caseTheme1\": \"管理决策案例\", \"caseThemeDescription1\": \"\", \"caseScope\": \"默认全员公开\", \"caseSummary\": \"测试\", \"confidentialityLevel\": \"内部\", \"caseType\": \"关键主题\", \"caseType2\": \"关键主题\", \"attachment\": { \"attachmentUrl\": \"http://localhost:8091/upload/case/会议纪要03-29.docx\", \"attachmentName\": \"149353-徐博-测试.docx\" }, \"caseOwnerOrg\": \"CPIO\", \"contactNumber\": \"12345678911(000001234)\", \"caseName\": \"测试\", \"caseValue\": \"测试\", \"approvalRecord\": [ { \"MSG\": \"\", \"USERNAMES\": \"/\", \"CREATEDATE\": \"2022-06-07 09:48:22.0\", \"ACTIONNAME\": \"-\", \"ACTIVITYNAME\": \"起草人\" }, { \"MSG\": \"\", \"USERNAMES\": \"/\", \"CREATEDATE\": \"2022-06-07 09:49:21.0\", \"ACTIONNAME\": \"通过\", \"ACTIVITYNAME\": \"案例推进人审议\" }, { \"MSG\": \"\", \"USERNAMES\": \"/\", \"CREATEDATE\": \"2022-06-07 09:49:52.0\", \"ACTIONNAME\": \"通过\", \"ACTIVITYNAME\": \"正式入库前确认\" }, { \"MSG\": \"\", \"USERNAMES\": \"/\", \"CREATEDATE\": \"2022-06-07 09:49:02.0\", \"ACTIONNAME\": \"通过\", \"ACTIVITYNAME\": \"部长审批\" } ], \"department\": \"京东方科技集团股份有限公司/显示事业/制造中台/LCD制造中心/B4/Module部/技术1科/\", \"draftingTime\": \"2022-06-07 09:11:21\", \"email\": \"boeboeboe@boe.com.cn\", \"caseTheme\": \"物联网转型案例\", \"caseOwnerPhone\": \"000001234\", \"isLeadershipPlan\": \"是\", \"approvalNumber\": 188322060700001, \"caseChannel\": \"智力资本建设个人案例(Band10级及以上)\", \"drafter\": \"徐博/149353设备运营岗\", \"caseSpecialtySequence\": \"经营管理(一级、二级经营责任者撰写),管理(团队、绩效、沟通、目标),信息技术(信息技术企划、IT解决方案、数据与信息安全、运维服务)\", \"caseThemeDescription\": \"\", \"caseOwnerEmail\": \"boeboeboe@boe.com.cn\", \"readers\": \"管理岗人员\", \"caseOwnerDepartment\": \"京东方科技集团股份有限公司/显示事业/制造中台/LCD制造中心/B4/Module部/技术1科/\", \"endTime\": \"2022-06-07 09:49:53.0\", \"remarks\": \"\" }, { \"caseFlow\": \"1.0 集成产品开发(IPD)\", \"caseType1\": \"\", \"caseOtherContributor\": \"\", \"keyword5\": \"\", \"caseOwner\": \"10484940<张颖露>\", \"keyword3\": \"发发发反反复\", \"keyword4\": \"\", \"keyword1\": \"啊啊啊啊啊\", \"keyword2\": \"的点点滴滴多多\", \"caseTheme2\": \"\", \"caseThemeDescription2\": \"\", \"caseTheme1\": \"\", \"caseThemeDescription1\": \"\", \"caseScope\": \"默认全员公开\", \"caseSummary\": \"嘎嘎嘎嘎嘎嘎过过过过过过过过过过过过过过过过过过过过过过多多多多多多多多多多多多多多多多多多\", \"confidentialityLevel\": \"内部\", \"caseType\": \"关键主题\", \"caseType2\": \"\", \"attachment\": [ { \"attachmentUrl\": \"http://bpmpre.boe.com.cn/portal/apps/com.awspaas.user.apps.showfj/temp/tylc07_boealfjdz/10484940-张颖露-BOE(京东方)携手创维电视亮相\\u201c护眼显示周\\u201d 超高刷技术助力健康显示新未来.docx\", \"attachmentName\": \"10484940-张颖露-BOE(京东方)携手创维电视亮相\\u201c护眼显示周\\u201d 超高刷技术助力健康显示新未来.docx\" }, { \"attachmentUrl\": \"http://bpmpre.boe.com.cn/portal/apps/com.awspaas.user.apps.showfj/temp/tylc07_boealfjdz/20220601-144236.xls\", \"attachmentName\": \"20220601-144236.xls\" }, { \"attachmentUrl\": \"http://bpmpre.boe.com.cn/portal/apps/com.awspaas.user.apps.showfj/temp/tylc07_boealfjdz/传感器实验线项目设备采购流程说明20220316.pptx\", \"attachmentName\": \"传感器实验线项目设备采购流程说明20220316.pptx\" }, { \"attachmentUrl\": \"http://bpmpre.boe.com.cn/portal/apps/com.awspaas.user.apps.showfj/temp/tylc07_boealfjdz/归档开发说明文档 (2).pdf\", \"attachmentName\": \"归档开发说明文档 (2).pdf\" } ], \"caseOwnerOrg\": \"CTIO\", \"contactNumber\": \"12345678911(000001234)\", \"caseName\": \"BOE(京东方)携手创维电视亮相\\u201c护眼显示周\\u201d 超高刷技术助力健康显示新未来\", \"caseValue\": \"执照制造做做做做做做做做做多多多多多多多多多多做做做做做做做做做做做做做做做做做做做做\", \"approvalRecord\": [ { \"MSG\": \"\", \"USERNAMES\": \"/\", \"CREATEDATE\": \"2022-06-10 11:17:45.0\", \"ACTIONNAME\": \"-\", \"ACTIVITYNAME\": \"起草人\" }, { \"MSG\": \"\", \"USERNAMES\": \"/\", \"CREATEDATE\": \"2022-06-10 11:18:50.0\", \"ACTIONNAME\": \"通过\", \"ACTIVITYNAME\": \"正式入库前确认\" }, { \"MSG\": \"\", \"USERNAMES\": \"/\", \"CREATEDATE\": \"2022-06-10 11:18:29.0\", \"ACTIONNAME\": \"通过\", \"ACTIVITYNAME\": \"部长审批\" } ], \"department\": \"京东方科技集团股份有限公司/业务支援体系/CTIO组织/CXO ITBP中心/办公ITBP部/\", \"draftingTime\": \"2022-06-10 11:05:05\", \"email\": \"liuzx@boe.com.cn\", \"caseTheme\": \"数字化变革案例\", \"caseOwnerPhone\": \"000001234\", \"isLeadershipPlan\": \"否\", \"approvalNumber\": 188322061000001, \"caseChannel\": \"其他案例\", \"drafter\": \"张颖露/10484940应用解决方案岗\", \"caseSpecialtySequence\": \"生产技术(工程技术、生产管理),信息技术(信息技术企划、IT解决方案、数据与信息安全、运维服务)\", \"caseThemeDescription\": \"\", \"caseOwnerEmail\": \"liuzx@boe.com.cn\", \"readers\": \"管理岗人员,信息技术人员(信息技术企划、IT解决方案、数据与信息安全、运维服务)\", \"caseOwnerDepartment\": \"京东方科技集团股份有限公司/业务支援体系/CTIO组织/CXO ITBP中心/办公ITBP部/\", \"endTime\": \"2022-06-10 11:18:50.0\", \"remarks\": \"\" }, { \"caseFlow\": \"3.0 问题到解决(PTR)\", \"caseType1\": \"典型场景\", \"caseOtherContributor\": \"152968<李娜>\", \"keyword5\": 11, \"caseOwner\": \"12345601<代海兴>\", \"keyword3\": 1, \"keyword4\": 1, \"keyword1\": 1, \"keyword2\": 1, \"caseTheme2\": \"新技术/新品开发案例\", \"caseThemeDescription2\": \"\", \"caseTheme1\": \"管理决策案例\", \"caseThemeDescription1\": \"\", \"caseScope\": \"默认全员公开\", \"caseSummary\": 1, \"confidentialityLevel\": \"内部\", \"caseType\": \"典型场景\", \"caseType2\": \"业务痛点\", \"attachment\": { \"attachmentUrl\": \"http://localhost:8091/upload/case/测试数据文件.xlsx\", \"attachmentName\": \"149353-徐博-测试.txt\" }, \"caseOwnerOrg\": \"CLO\", \"contactNumber\": \"12345678911(000001234)\", \"caseName\": \"测试\", \"caseValue\": 1, \"approvalRecord\": [ { \"MSG\": \"\", \"USERNAMES\": \"/\", \"CREATEDATE\": \"2022-06-07 10:11:52.0\", \"ACTIONNAME\": \"-\", \"ACTIVITYNAME\": \"起草人\" }, { \"MSG\": \"\", \"USERNAMES\": \"/\", \"CREATEDATE\": \"2022-06-07 10:12:08.0\", \"ACTIONNAME\": \"通过\", \"ACTIVITYNAME\": \"中心长审批\" }, { \"MSG\": \"\", \"USERNAMES\": \"/\", \"CREATEDATE\": \"2022-06-07 10:12:24.0\", \"ACTIONNAME\": \"通过\", \"ACTIVITYNAME\": \"中心长审批\" }, { \"MSG\": \"\", \"USERNAMES\": \"/\", \"CREATEDATE\": \"2022-06-07 10:12:55.0\", \"ACTIONNAME\": \"通过\", \"ACTIVITYNAME\": \"正式入库前确认\" } ], \"department\": \"京东方科技集团股份有限公司/显示事业/制造中台/LCD制造中心/B4/Module部/技术1科/\", \"draftingTime\": \"2022-06-07 10:10:44\", \"email\": \"boeboeboe@boe.com.cn\", \"caseTheme\": \"客户需求识别案例\", \"caseOwnerPhone\": \"000001234\", \"isLeadershipPlan\": \"否\", \"approvalNumber\": 188322060700002, \"caseChannel\": \"组织案例\", \"drafter\": \"徐博/149353设备运营岗\", \"caseSpecialtySequence\": \"经营管理(一级、二级经营责任者撰写)\", \"caseThemeDescription\": \"\", \"caseOwnerEmail\": \"boeboeboe@boe.com.cn\", \"readers\": \"研发人员(技术研究、硬件开发、软件开发)\", \"caseOwnerDepartment\": \"京东方科技集团股份有限公司/显示事业/制造中台/LCD制造中心/B4/Module部/技术1科/\", \"endTime\": \"2022-06-07 10:12:55.0\", \"remarks\": \"\" } ] } } }"; -// String json="{\"TYLC07QueryServiceResponse\":{\"return\":{\"msg\":\"success\",\"code\":0,\"data\":[{\"caseFlow\":\"1.0 集成产品开发(IPD)\",\"caseType1\":\"业务提出明确需求案例\",\"caseOtherContributor\":\"10107610<陈仕超> 10153262<段泽高>\",\"keyword5\":1,\"caseOwner\":\"10107610<陈仕超>\",\"keyword3\":1,\"keyword4\":1,\"keyword1\":1,\"keyword2\":1,\"caseTheme2\":\"自定义主题\",\"caseThemeDescription2\":\"测试\",\"caseTheme1\":\"检讨&开发过程中的技术部门沟通\",\"caseThemeDescription1\":\"\",\"caseScope\":\"默认全员公开\",\"caseSummary\":1,\"confidentialityLevel\":\"内部\",\"caseType\":\"业务痛点\",\"caseType2\":\"关键主题\",\"attachment\":{\"attachmentUrl\":\"http://bpmpre.boe.com.cn/portal/apps/com.awspaas.user.apps.showfj/temp/tylc07_boealfjdz/报废实物处置结算审批单V1.0.txt\",\"attachmentName\":\"报废实物处置结算审批单V1.0.txt\"},\"caseOwnerOrg\":\"CFO\",\"contactNumber\":\"000001234\",\"caseName\":1,\"caseValue\":1,\"approvalRecord\":[{\"MSG\":\"\",\"USERNAMES\":\"/\",\"CREATEDATE\":\"2022-04-12 10:51:31.0\",\"ACTIONNAME\":\"-\",\"ACTIVITYNAME\":\"起草人\"},{\"MSG\":\"\",\"USERNAMES\":\"/\",\"CREATEDATE\":\"2022-04-12 10:52:28.0\",\"ACTIONNAME\":\"通过\",\"ACTIVITYNAME\":\"中心长审批\"},{\"MSG\":\"\",\"USERNAMES\":\"/\",\"CREATEDATE\":\"2022-04-12 10:53:30.0\",\"ACTIONNAME\":\"通过\",\"ACTIVITYNAME\":\"中心长审批\"},{\"MSG\":\"\",\"USERNAMES\":\"/\",\"CREATEDATE\":\"2022-04-12 10:53:49.0\",\"ACTIONNAME\":\"通过\",\"ACTIVITYNAME\":\"正式入库前确认\"},{\"MSG\":\"\",\"USERNAMES\":\"/\",\"CREATEDATE\":\"2022-04-12 10:54:12.0\",\"ACTIONNAME\":\"通过\",\"ACTIVITYNAME\":\"正式入库前确认\"}],\"department\":\"京东方科技集团股份有限公司/显示事业/制造中台/OLED制造中心/B7/智造技术部/IE科/\",\"draftingTime\":\"2022-04-12 10:49:43\",\"email\":\"boeboeboe@boe.com.cn\",\"caseTheme\":\"流程优化案例\",\"caseOwnerPhone\":\"000001234\",\"isLeadershipPlan\":\"是\",\"approvalNumber\":188322041200009,\"caseChannel\":\"组织案例\",\"drafter\":\"刘政/10165291效能提升岗\",\"caseSpecialtySequence\":\"经营管理(一级、二级经营责任者撰写),采购(采购、物流关务、供应链管理),支持(园区支持、后勤支持)\",\"caseThemeDescription\":\"\",\"caseOwnerEmail\":\"boeboeboe@boe.com.cn\",\"readers\":\"经营管理者(一级、二级经营责任者)\",\"caseOwnerDepartment\":\"京东方科技集团股份有限公司/显示事业/制造中台/OLED制造中心/B7/智造技术部/IE科/\",\"endTime\":\"2022-04-12 10:54:13.0\",\"remarks\":\"\"},{\"caseFlow\":\"4.0 智慧系统创新服务(SSI)\",\"caseType1\":\"业务提出明确需求案例\",\"caseOtherContributor\":\"1200343<朴进山>\",\"keyword5\":1,\"caseOwner\":\"1200343<朴进山>\",\"keyword3\":1,\"keyword4\":1,\"keyword1\":1,\"keyword2\":1,\"caseTheme2\":\"自定义主题\",\"caseThemeDescription2\":1,\"caseTheme1\":\"MicrOLED项目管理\",\"caseThemeDescription1\":\"\",\"caseScope\":\"默认全员公开\",\"caseSummary\":1,\"confidentialityLevel\":\"内部\",\"caseType\":\"业务痛点\",\"caseType2\":\"典型场景\",\"attachment\":{\"attachmentUrl\":\"http://bpmpre.boe.com.cn/portal/apps/com.awspaas.user.apps.showfj/temp/tylc07_boealfjdz/测试中心 PE Lab委托测试申请单(MO)V1.3.txt\",\"attachmentName\":\"测试中心 PE Lab委托测试申请单(MO)V1.3.txt\"},\"caseOwnerOrg\":\"CFO\",\"contactNumber\":\"000001234\",\"caseName\":\"测试\",\"caseValue\":1,\"approvalRecord\":[{\"MSG\":\"\",\"USERNAMES\":\"/\",\"CREATEDATE\":\"2022-04-12 14:28:07.0\",\"ACTIONNAME\":\"-\",\"ACTIVITYNAME\":\"起草人\"},{\"MSG\":\"\",\"USERNAMES\":\"/\",\"CREATEDATE\":\"2022-04-12 14:28:28.0\",\"ACTIONNAME\":\"通过\",\"ACTIVITYNAME\":\"正式入库前确认\"},{\"MSG\":\"\",\"USERNAMES\":\"/\",\"CREATEDATE\":\"2022-04-12 14:28:49.0\",\"ACTIONNAME\":\"通过\",\"ACTIVITYNAME\":\"正式入库前确认\"}],\"department\":\"京东方科技集团股份有限公司/显示事业/制造中台/OLED制造中心/B7/\",\"draftingTime\":\"2022-04-12 14:26:40\",\"email\":\"boeboeboe@boe.com.cn\",\"caseTheme\":\"自定义主题\",\"caseOwnerPhone\":\"000001234\",\"isLeadershipPlan\":\"是\",\"approvalNumber\":188322041200036,\"caseChannel\":\"组织案例\",\"drafter\":\"张宇/1200179总经理\",\"caseSpecialtySequence\":\"质量(品质、客服、合规)\",\"caseThemeDescription\":1,\"caseOwnerEmail\":\"boeboeboe@boe.com.cn\",\"readers\":\"研发人员(技术研究、硬件开发、软件开发)\",\"caseOwnerDepartment\":\"京东方科技集团股份有限公司/显示事业/制造中台/OLED制造中心/B7/\",\"endTime\":\"2022-04-12 14:28:49.0\",\"remarks\":\"\"},{\"caseFlow\":\"2.0 线索到回款(LTC)\",\"caseType1\":\"业务提出明确需求案例\",\"caseOtherContributor\":\"10593755<韩涛>\",\"keyword5\":1,\"caseOwner\":\"10107610<陈仕超>\",\"keyword3\":1,\"keyword4\":1,\"keyword1\":1,\"keyword2\":1,\"caseTheme2\":\"安全管理案例\",\"caseThemeDescription2\":\"\",\"caseTheme1\":\"检讨&开发过程中的技术部门沟通\",\"caseThemeDescription1\":\"\",\"caseScope\":\"默认全员公开\",\"caseSummary\":1,\"confidentialityLevel\":\"内部\",\"caseType\":\"业务提出明确需求案例\",\"caseType2\":\"业务痛点\",\"attachment\":{\"attachmentUrl\":\"http://bpmpre.boe.com.cn/portal/apps/com.awspaas.user.apps.showfj/temp/tylc07_boealfjdz/测试中心 PE Lab委托测试申请单(MO)V1.3.txt\",\"attachmentName\":\"测试中心 PE Lab委托测试申请单(MO)V1.3.txt\"},\"caseOwnerOrg\":\"CFO\",\"contactNumber\":\"000001234\",\"caseName\":\"测试\",\"caseValue\":1,\"approvalRecord\":[{\"MSG\":\"\",\"USERNAMES\":\"/\",\"CREATEDATE\":\"2022-04-12 14:33:14.0\",\"ACTIONNAME\":\"-\",\"ACTIVITYNAME\":\"起草人\"},{\"MSG\":\"\",\"USERNAMES\":\"/\",\"CREATEDATE\":\"2022-04-12 14:37:41.0\",\"ACTIONNAME\":\"通过\",\"ACTIVITYNAME\":\"正式入库前确认\"},{\"MSG\":\"\",\"USERNAMES\":\"/\",\"CREATEDATE\":\"2022-04-12 14:38:12.0\",\"ACTIONNAME\":\"通过\",\"ACTIVITYNAME\":\"正式入库前确认\"},{\"MSG\":\"\",\"USERNAMES\":\"/\",\"CREATEDATE\":\"2022-04-12 14:37:23.0\",\"ACTIONNAME\":\"通过\",\"ACTIVITYNAME\":\"部长审批\"}],\"department\":\"京东方科技集团股份有限公司/显示事业/制造中台/OLED制造中心/B7/智造技术部/IE科/\",\"draftingTime\":\"2022-04-12 14:32:05\",\"email\":\"boeboeboe@boe.com.cn\",\"caseTheme\":\"检讨&开发过程中的技术部门沟通\",\"caseOwnerPhone\":\"000001234\",\"isLeadershipPlan\":\"是\",\"approvalNumber\":188322041200037,\"caseChannel\":\"其他案例\",\"drafter\":\"刘政/10165291效能提升岗\",\"caseSpecialtySequence\":\"采购(采购、物流关务、供应链管理)\",\"caseThemeDescription\":\"\",\"caseOwnerEmail\":\"boeboeboe@boe.com.cn\",\"readers\":\"管理岗人员\",\"caseOwnerDepartment\":\"京东方科技集团股份有限公司/显示事业/制造中台/OLED制造中心/B7/智造技术部/IE科/\",\"endTime\":\"2022-04-12 14:38:13.0\",\"remarks\":\"\"},{\"caseFlow\":\"2.0 线索到回款(LTC)\",\"caseType1\":\"业务提出明确需求案例\",\"caseOtherContributor\":\"1200258<冯涛> 1219330<黄倩>\",\"keyword5\":1,\"caseOwner\":\"1219330<黄倩>\",\"keyword3\":1,\"keyword4\":1,\"keyword1\":1,\"keyword2\":1,\"caseTheme2\":\"自定义主题\",\"caseThemeDescription2\":1,\"caseTheme1\":\"自定义主题\",\"caseThemeDescription1\":1,\"caseScope\":\"默认全员公开\",\"caseSummary\":1,\"confidentialityLevel\":\"内部\",\"caseType\":\"业务痛点\",\"caseType2\":\"关键主题\",\"attachment\":{\"attachmentUrl\":\"http://bpmpre.boe.com.cn/portal/apps/com.awspaas.user.apps.showfj/temp/tylc07_boealfjdz/测试中心 PE Lab委托测试申请单(MO)V1.3.txt\",\"attachmentName\":\"测试中心 PE Lab委托测试申请单(MO)V1.3.txt\"},\"caseOwnerOrg\":\"CFO\",\"contactNumber\":\"000001234\",\"caseName\":\"测试\",\"caseValue\":1,\"approvalRecord\":[{\"MSG\":\"\",\"USERNAMES\":\"/\",\"CREATEDATE\":\"2022-04-12 11:19:58.0\",\"ACTIONNAME\":\"-\",\"ACTIVITYNAME\":\"起草人\"},{\"MSG\":\"\",\"USERNAMES\":\"/\",\"CREATEDATE\":\"2022-04-12 11:20:32.0\",\"ACTIONNAME\":\"通过\",\"ACTIVITYNAME\":\"中心长审批\"},{\"MSG\":\"\",\"USERNAMES\":\"/\",\"CREATEDATE\":\"2022-04-12 11:21:05.0\",\"ACTIONNAME\":\"通过\",\"ACTIVITYNAME\":\"中心长审批\"},{\"MSG\":\"\",\"USERNAMES\":\"/\",\"CREATEDATE\":\"2022-04-12 11:21:24.0\",\"ACTIONNAME\":\"通过\",\"ACTIVITYNAME\":\"正式入库前确认\"},{\"MSG\":\"\",\"USERNAMES\":\"/\",\"CREATEDATE\":\"2022-04-12 11:21:44.0\",\"ACTIONNAME\":\"通过\",\"ACTIVITYNAME\":\"正式入库前确认\"}],\"department\":\"京东方科技集团股份有限公司/显示事业/制造中台/OLED制造中心/B7/智造技术部/\",\"draftingTime\":\"2022-04-12 11:16:33\",\"email\":\"boeboeboe@boe.com.cn\",\"caseTheme\":\"自定义主题\",\"caseOwnerPhone\":\"000001234\",\"isLeadershipPlan\":\"是\",\"approvalNumber\":188322041200014,\"caseChannel\":\"智力资本建设个人案例(Band10级及以上)\",\"drafter\":\"韩大伟/1200164部长\",\"caseSpecialtySequence\":\"经营管理(一级、二级经营责任者撰写),质量(品质、客服、合规),园区管理(园区TS方案、园区运营)\",\"caseThemeDescription\":1,\"caseOwnerEmail\":\"boeboeboe@boe.com.cn\",\"readers\":\"管理岗人员\",\"caseOwnerDepartment\":\"京东方科技集团股份有限公司/显示事业/制造中台/OLED制造中心/B7/智造技术部/\",\"endTime\":\"2022-04-12 11:21:45.0\",\"remarks\":\"\"},{\"caseFlow\":\"2.0 线索到回款(LTC)\",\"caseType1\":\"业务提出明确需求案例\",\"caseOtherContributor\":\"1200343<朴进山>\",\"keyword5\":1,\"caseOwner\":\"1200343<朴进山>\",\"keyword3\":1,\"keyword4\":1,\"keyword1\":1,\"keyword2\":1,\"caseTheme2\":\"成本控制案例\",\"caseThemeDescription2\":\"\",\"caseTheme1\":\"检讨&开发过程中的技术部门沟通\",\"caseThemeDescription1\":\"\",\"caseScope\":\"默认全员公开\",\"caseSummary\":1,\"confidentialityLevel\":\"内部\",\"caseType\":\"业务提出明确需求案例\",\"caseType2\":\"业务痛点\",\"attachment\":{\"attachmentUrl\":\"http://bpmpre.boe.com.cn/portal/apps/com.awspaas.user.apps.showfj/temp/tylc07_boealfjdz/测试中心 PE Lab委托测试申请单(MO)V1.3.txt\",\"attachmentName\":\"测试中心 PE Lab委托测试申请单(MO)V1.3.txt\"},\"caseOwnerOrg\":\"CFO\",\"contactNumber\":\"000001234\",\"caseName\":\"测试\",\"caseValue\":1,\"approvalRecord\":[{\"MSG\":\"\",\"USERNAMES\":\"/\",\"CREATEDATE\":\"2022-04-12 14:41:03.0\",\"ACTIONNAME\":\"-\",\"ACTIVITYNAME\":\"起草人\"},{\"MSG\":\"\",\"USERNAMES\":\"/\",\"CREATEDATE\":\"2022-04-12 14:48:27.0\",\"ACTIONNAME\":\"-\",\"ACTIVITYNAME\":\"起草人\"},{\"MSG\":\"被(张宇)收回,原因:1<\\/font>

操作人:张宇<\\/span>\",\"USERNAMES\":\"/\",\"CREATEDATE\":\"2022-04-12 14:48:04.0\",\"ACTIONNAME\":\"收回\",\"ACTIVITYNAME\":\"正式入库前确认\"},{\"MSG\":\"\",\"USERNAMES\":\"/\",\"CREATEDATE\":\"2022-04-12 14:48:41.0\",\"ACTIONNAME\":\"通过\",\"ACTIVITYNAME\":\"正式入库前确认\"},{\"MSG\":\"\",\"USERNAMES\":\"/\",\"CREATEDATE\":\"2022-04-12 14:48:57.0\",\"ACTIONNAME\":\"通过\",\"ACTIVITYNAME\":\"正式入库前确认\"}],\"department\":\"京东方科技集团股份有限公司/显示事业/制造中台/OLED制造中心/B7/\",\"draftingTime\":\"2022-04-12 14:40:03\",\"email\":\"boeboeboe@boe.com.cn\",\"caseTheme\":\"B18&B19品质形象提升\",\"caseOwnerPhone\":\"000001234\",\"isLeadershipPlan\":\"是\",\"approvalNumber\":188322041200038,\"caseChannel\":\"组织案例\",\"drafter\":\"张宇/1200179总经理\",\"caseSpecialtySequence\":\"管理(团队、绩效、沟通、目标)\",\"caseThemeDescription\":\"\",\"caseOwnerEmail\":\"boeboeboe@boe.com.cn\",\"readers\":\"信息技术人员(信息技术企划、IT解决方案、数据与信息安全、运维服务)\",\"caseOwnerDepartment\":\"京东方科技集团股份有限公司/显示事业/制造中台/OLED制造中心/B7/\",\"endTime\":\"2022-04-12 14:48:57.0\",\"remarks\":\"\"},{\"caseFlow\":\"1.0 集成产品开发(IPD)\",\"caseType1\":\"业务痛点\",\"caseOtherContributor\":\"10107610<陈仕超> 10077624<谌浩>\",\"keyword5\":1,\"caseOwner\":\"10593755<韩涛>\",\"keyword3\":1,\"keyword4\":1,\"keyword1\":1,\"keyword2\":1,\"caseTheme2\":\"自定义主题\",\"caseThemeDescription2\":\"\",\"caseTheme1\":\"流程优化案例\",\"caseThemeDescription1\":\"\",\"caseScope\":\"默认全员公开\",\"caseSummary\":1,\"confidentialityLevel\":\"内部\",\"caseType\":\"业务痛点\",\"caseType2\":\"关键主题\",\"attachment\":{\"attachmentUrl\":\"http://bpmpre.boe.com.cn/portal/apps/com.awspaas.user.apps.showfj/temp/tylc07_boealfjdz/BOE案例单号.txt\",\"attachmentName\":\"BOE案例单号.txt\"},\"caseOwnerOrg\":\"CFO\",\"contactNumber\":\"000001234\",\"caseName\":\"测试\",\"caseValue\":1,\"approvalRecord\":[{\"MSG\":\"\",\"USERNAMES\":\"/\",\"CREATEDATE\":\"2022-04-12 10:41:38.0\",\"ACTIONNAME\":\"-\",\"ACTIVITYNAME\":\"起草人\"},{\"MSG\":\"被(韩大伟)收回,原因:1<\\/font>

操作人:韩大伟<\\/span>\",\"USERNAMES\":\"/\",\"CREATEDATE\":\"2022-04-12 10:45:02.0\",\"ACTIONNAME\":\"收回\",\"ACTIVITYNAME\":\"正式入库前确认\"},{\"MSG\":\"\",\"USERNAMES\":\"/\",\"CREATEDATE\":\"2022-04-12 10:45:39.0\",\"ACTIONNAME\":\"通过\",\"ACTIVITYNAME\":\"案例推进人审议\"},{\"MSG\":\"\",\"USERNAMES\":\"/\",\"CREATEDATE\":\"2022-04-12 10:45:53.0\",\"ACTIONNAME\":\"通过\",\"ACTIVITYNAME\":\"正式入库前确认\"},{\"MSG\":\"\",\"USERNAMES\":\"/\",\"CREATEDATE\":\"2022-04-12 10:46:05.0\",\"ACTIONNAME\":\"通过\",\"ACTIVITYNAME\":\"正式入库前确认\"},{\"MSG\":\"\",\"USERNAMES\":\"/\",\"CREATEDATE\":\"2022-04-12 10:41:54.0\",\"ACTIONNAME\":\"通过\",\"ACTIVITYNAME\":\"部长审批\"},{\"MSG\":\"\",\"USERNAMES\":\"/\",\"CREATEDATE\":\"2022-04-12 10:45:24.0\",\"ACTIONNAME\":\"通过\",\"ACTIVITYNAME\":\"部长审批\"}],\"department\":\"京东方科技集团股份有限公司/显示事业/制造中台/OLED制造中心/B7/智造技术部/IE科/\",\"draftingTime\":\"2022-04-12 10:38:22\",\"email\":\"boeboeboe@boe.com.cn\",\"caseTheme\":\"安全管理案例\",\"caseOwnerPhone\":\"000001234\",\"isLeadershipPlan\":\"是\",\"approvalNumber\":188322041200008,\"caseChannel\":\"智力资本建设个人案例(Band10级及以上)\",\"drafter\":\"刘政/10165291效能提升岗\",\"caseSpecialtySequence\":\"经营管理(一级、二级经营责任者撰写),信息技术(信息技术企划、IT解决方案、数据与信息安全、运维服务)\",\"caseThemeDescription\":\"\",\"caseOwnerEmail\":\"boeboeboe@boe.com.cn\",\"readers\":\"管理岗人员\",\"caseOwnerDepartment\":\"京东方科技集团股份有限公司/显示事业/制造中台/OLED制造中心/B7/智造技术部/IE科/\",\"endTime\":\"2022-04-12 10:46:06.0\",\"remarks\":\"\"},{\"caseFlow\":\"1.0 集成产品开发(IPD)\",\"caseType1\":\"关键主题\",\"caseOtherContributor\":\"10234403<韵夏伟>\",\"keyword5\":1,\"caseOwner\":\"10105943<刘小舟>\",\"keyword3\":1,\"keyword4\":1,\"keyword1\":1,\"keyword2\":1,\"caseTheme2\":\"培养学者智慧案例\",\"caseThemeDescription2\":\"\",\"caseTheme1\":\"利剑项目及子项目案例\",\"caseThemeDescription1\":\"\",\"caseScope\":\"默认全员公开\",\"caseSummary\":1,\"confidentialityLevel\":\"内部\",\"caseType\":\"业务提出明确需求案例\",\"caseType2\":\"关键主题\",\"attachment\":{\"attachmentUrl\":\"http://bpmpre.boe.com.cn/portal/apps/com.awspaas.user.apps.showfj/temp/tylc07_boealfjdz/测试中心 PE Lab委托测试申请单(MO)V1.3.txt\",\"attachmentName\":\"测试中心 PE Lab委托测试申请单(MO)V1.3.txt\"},\"caseOwnerOrg\":\"CFO\",\"contactNumber\":\"000001234\",\"caseName\":\"测试\",\"caseValue\":1,\"approvalRecord\":[{\"MSG\":\"\",\"USERNAMES\":\"/\",\"CREATEDATE\":\"2022-04-12 14:51:46.0\",\"ACTIONNAME\":\"-\",\"ACTIVITYNAME\":\"起草人\"},{\"MSG\":\"\",\"USERNAMES\":\"/\",\"CREATEDATE\":\"2022-04-12 14:52:06.0\",\"ACTIONNAME\":\"通过\",\"ACTIVITYNAME\":\"中心长审批\"},{\"MSG\":\"\",\"USERNAMES\":\"/\",\"CREATEDATE\":\"2022-04-12 14:52:19.0\",\"ACTIONNAME\":\"通过\",\"ACTIVITYNAME\":\"正式入库前确认\"},{\"MSG\":\"\",\"USERNAMES\":\"/\",\"CREATEDATE\":\"2022-04-12 14:52:33.0\",\"ACTIONNAME\":\"通过\",\"ACTIVITYNAME\":\"正式入库前确认\"}],\"department\":\"京东方科技集团股份有限公司/MLED事业/晶芯科技/开发中心/MLED显示开发部/驱动开发科/\",\"draftingTime\":\"2022-04-12 14:50:20\",\"email\":\"boeboeboe@boe.com.cn\",\"caseTheme\":\"B18&B19品质形象提升\",\"caseOwnerPhone\":\"000001234\",\"isLeadershipPlan\":\"是\",\"approvalNumber\":188322041200039,\"caseChannel\":\"组织案例\",\"drafter\":\"高博/120892科长\",\"caseSpecialtySequence\":\"采购(采购、物流关务、供应链管理)\",\"caseThemeDescription\":\"\",\"caseOwnerEmail\":\"boeboeboe@boe.com.cn\",\"readers\":\"信息技术人员(信息技术企划、IT解决方案、数据与信息安全、运维服务)\",\"caseOwnerDepartment\":\"京东方科技集团股份有限公司/MLED事业/晶芯科技/开发中心/MLED显示开发部/驱动开发科/\",\"endTime\":\"2022-04-12 14:52:33.0\",\"remarks\":\"\"},{\"caseFlow\":\"4.0 智慧系统创新服务(SSI)\",\"caseType1\":\"业务痛点\",\"caseOtherContributor\":\"1200343<朴进山>\",\"keyword5\":1,\"caseOwner\":\"1200343<朴进山>\",\"keyword3\":1,\"keyword4\":1,\"keyword1\":1,\"keyword2\":1,\"caseTheme2\":\"自定义主题\",\"caseThemeDescription2\":1,\"caseTheme1\":\"自定义主题\",\"caseThemeDescription1\":1,\"caseScope\":\"默认全员公开\",\"caseSummary\":1,\"confidentialityLevel\":\"内部\",\"caseType\":\"业务提出明确需求案例\",\"caseType2\":\"业务痛点\",\"attachment\":{\"attachmentUrl\":\"http://bpmpre.boe.com.cn/portal/apps/com.awspaas.user.apps.showfj/temp/tylc07_boealfjdz/测试中心 PE Lab委托测试申请单(MO)V1.3.txt\",\"attachmentName\":\"测试中心 PE Lab委托测试申请单(MO)V1.3.txt\"},\"caseOwnerOrg\":\"CFO\",\"contactNumber\":\"000001234\",\"caseName\":\"测试\",\"caseValue\":1,\"approvalRecord\":[{\"MSG\":\"\",\"USERNAMES\":\"/\",\"CREATEDATE\":\"2022-04-12 11:28:28.0\",\"ACTIONNAME\":\"-\",\"ACTIVITYNAME\":\"起草人\"},{\"MSG\":\"\",\"USERNAMES\":\"/\",\"CREATEDATE\":\"2022-04-12 11:28:45.0\",\"ACTIONNAME\":\"通过\",\"ACTIVITYNAME\":\"正式入库前确认\"},{\"MSG\":\"\",\"USERNAMES\":\"/\",\"CREATEDATE\":\"2022-04-12 11:28:58.0\",\"ACTIONNAME\":\"通过\",\"ACTIVITYNAME\":\"正式入库前确认\"}],\"department\":\"京东方科技集团股份有限公司/显示事业/制造中台/OLED制造中心/B7/\",\"draftingTime\":\"2022-04-12 11:26:48\",\"email\":\"boeboeboe@boe.com.cn\",\"caseTheme\":\"B18&B19品质形象提升\",\"caseOwnerPhone\":\"000001234\",\"isLeadershipPlan\":\"是\",\"approvalNumber\":188322041200015,\"caseChannel\":\"智力资本建设个人案例(Band10级及以上)\",\"drafter\":\"张宇/1200179总经理\",\"caseSpecialtySequence\":\"质量(品质、客服、合规),投融资(投资管理、资金、股证)\",\"caseThemeDescription\":\"\",\"caseOwnerEmail\":\"boeboeboe@boe.com.cn\",\"readers\":\"信息技术人员(信息技术企划、IT解决方案、数据与信息安全、运维服务)\",\"caseOwnerDepartment\":\"京东方科技集团股份有限公司/显示事业/制造中台/OLED制造中心/B7/\",\"endTime\":\"2022-04-12 11:28:59.0\",\"remarks\":\"\"},{\"caseFlow\":\"1.0 集成产品开发(IPD)\",\"caseType1\":\"关键主题\",\"caseOtherContributor\":\"10742438<黄富强> 10077434<何小丽>\",\"keyword5\":1,\"caseOwner\":\"10153262<段泽高>\",\"keyword3\":1,\"keyword4\":1,\"keyword1\":1,\"keyword2\":1,\"caseTheme2\":\"自定义主题\",\"caseThemeDescription2\":\"测试\",\"caseTheme1\":\"商业模式创新案例\",\"caseThemeDescription1\":\"\",\"caseScope\":\"默认全员公开\",\"caseSummary\":1,\"confidentialityLevel\":\"内部\",\"caseType\":\"业务痛点\",\"caseType2\":\"业务提出明确需求案例\",\"attachment\":{\"attachmentUrl\":\"http://bpmpre.boe.com.cn/portal/apps/com.awspaas.user.apps.showfj/temp/tylc07_boealfjdz/测试中心 PE Lab委托测试申请单(MO)V1.3.txt\",\"attachmentName\":\"测试中心 PE Lab委托测试申请单(MO)V1.3.txt\"},\"caseOwnerOrg\":\"CASO\",\"contactNumber\":\"000001234\",\"caseName\":\"测试\",\"caseValue\":1,\"approvalRecord\":[{\"MSG\":\"\",\"USERNAMES\":\"/\",\"CREATEDATE\":\"2022-04-12 11:00:47.0\",\"ACTIONNAME\":\"-\",\"ACTIVITYNAME\":\"起草人\"},{\"MSG\":\"\",\"USERNAMES\":\"/\",\"CREATEDATE\":\"2022-04-12 11:01:34.0\",\"ACTIONNAME\":\"通过\",\"ACTIVITYNAME\":\"正式入库前确认\"},{\"MSG\":\"\",\"USERNAMES\":\"/\",\"CREATEDATE\":\"2022-04-12 11:02:00.0\",\"ACTIONNAME\":\"通过\",\"ACTIVITYNAME\":\"正式入库前确认\"},{\"MSG\":\"\",\"USERNAMES\":\"/\",\"CREATEDATE\":\"2022-04-12 11:01:19.0\",\"ACTIONNAME\":\"通过\",\"ACTIVITYNAME\":\"部长审批\"}],\"department\":\"京东方科技集团股份有限公司/显示事业/制造中台/OLED制造中心/B7/智造技术部/IE科/\",\"draftingTime\":\"2022-04-12 10:59:00\",\"email\":\"boeboeboe@boe.com.cn\",\"caseTheme\":\"成本控制案例\",\"caseOwnerPhone\":\"000001234\",\"isLeadershipPlan\":\"否\",\"approvalNumber\":188322041200011,\"caseChannel\":\"其他案例\",\"drafter\":\"刘政/10165291效能提升岗\",\"caseSpecialtySequence\":\"研发(技术研究、硬件开发、软件开发),采购(采购、物流关务、供应链管理)\",\"caseThemeDescription\":\"\",\"caseOwnerEmail\":\"boeboeboe@boe.com.cn\",\"readers\":\"研发人员(技术研究、硬件开发、软件开发)\",\"caseOwnerDepartment\":\"京东方科技集团股份有限公司/显示事业/制造中台/OLED制造中心/B7/智造技术部/IE科/\",\"endTime\":\"2022-04-12 11:02:01.0\",\"remarks\":\"\"},{\"caseFlow\":\"1.0 集成产品开发(IPD)\",\"caseType1\":\"业务提出明确需求案例\",\"caseOtherContributor\":\"10206447<黎明>\",\"keyword5\":1,\"caseOwner\":\"10593755<韩涛>\",\"keyword3\":1,\"keyword4\":1,\"keyword1\":1,\"keyword2\":1,\"caseTheme2\":\"自定义主题\",\"caseThemeDescription2\":1,\"caseTheme1\":\"自定义主题\",\"caseThemeDescription1\":1,\"caseScope\":\"默认全员公开\",\"caseSummary\":1,\"confidentialityLevel\":\"内部\",\"caseType\":\"业务痛点\",\"caseType2\":\"业务提出明确需求案例\",\"attachment\":{\"attachmentUrl\":\"http://bpmpre.boe.com.cn/portal/apps/com.awspaas.user.apps.showfj/temp/tylc07_boealfjdz/BOE案例单号.txt\",\"attachmentName\":\"BOE案例单号.txt\"},\"caseOwnerOrg\":\"CFO\",\"contactNumber\":\"000001234\",\"caseName\":\"测试\",\"caseValue\":1,\"approvalRecord\":[{\"MSG\":\"\",\"USERNAMES\":\"/\",\"CREATEDATE\":\"2022-04-12 16:45:57.0\",\"ACTIONNAME\":\"-\",\"ACTIVITYNAME\":\"起草人\"},{\"MSG\":\"\",\"USERNAMES\":\"/\",\"CREATEDATE\":\"2022-04-12 16:50:20.0\",\"ACTIONNAME\":\"通过\",\"ACTIVITYNAME\":\"案例推进人审议\"},{\"MSG\":\"\",\"USERNAMES\":\"/\",\"CREATEDATE\":\"2022-04-12 16:50:50.0\",\"ACTIONNAME\":\"通过\",\"ACTIVITYNAME\":\"正式入库前确认\"},{\"MSG\":\"\",\"USERNAMES\":\"/\",\"CREATEDATE\":\"2022-04-12 16:51:34.0\",\"ACTIONNAME\":\"通过\",\"ACTIVITYNAME\":\"正式入库前确认\"},{\"MSG\":\"\",\"USERNAMES\":\"/\",\"CREATEDATE\":\"2022-04-12 16:49:40.0\",\"ACTIONNAME\":\"通过\",\"ACTIVITYNAME\":\"部长审批\"}],\"department\":\"京东方科技集团股份有限公司/显示事业/制造中台/OLED制造中心/B7/智造技术部/IE科/\",\"draftingTime\":\"2022-04-12 16:44:08\",\"email\":\"boeboeboe@boe.com.cn\",\"caseTheme\":\"自定义主题\",\"caseOwnerPhone\":\"000001234\",\"isLeadershipPlan\":\"是\",\"approvalNumber\":188322041200042,\"caseChannel\":\"智力资本建设个人案例(Band10级及以上)\",\"drafter\":\"刘政/10165291效能提升岗\",\"caseSpecialtySequence\":\"经营管理(一级、二级经营责任者撰写),投融资(投资管理、资金、股证),园区管理(园区TS方案、园区运营)\",\"caseThemeDescription\":1,\"caseOwnerEmail\":\"boeboeboe@boe.com.cn\",\"readers\":\"信息技术人员(信息技术企划、IT解决方案、数据与信息安全、运维服务)\",\"caseOwnerDepartment\":\"京东方科技集团股份有限公司/显示事业/制造中台/OLED制造中心/B7/智造技术部/IE科/\",\"endTime\":\"2022-04-12 16:51:34.0\",\"remarks\":\"\"},{\"caseFlow\":\"2.0 线索到回款(LTC)\",\"caseType1\":\"关键主题\",\"caseOtherContributor\":\"1200343<朴进山>\",\"keyword5\":1,\"caseOwner\":\"1200343<朴进山>\",\"keyword3\":1,\"keyword4\":1,\"keyword1\":1,\"keyword2\":1,\"caseTheme2\":\"利剑项目及子项目案例\",\"caseThemeDescription2\":\"\",\"caseTheme1\":\"利剑项目及子项目案例\",\"caseThemeDescription1\":\"\",\"caseScope\":\"默认全员公开\",\"caseSummary\":1,\"confidentialityLevel\":\"内部\",\"caseType\":\"业务痛点\",\"caseType2\":\"关键主题\",\"attachment\":{\"attachmentUrl\":\"http://bpmpre.boe.com.cn/portal/apps/com.awspaas.user.apps.showfj/temp/tylc07_boealfjdz/测试中心 PE Lab委托测试申请单(MO)V1.3.txt\",\"attachmentName\":\"测试中心 PE Lab委托测试申请单(MO)V1.3.txt\"},\"caseOwnerOrg\":\"CFO\",\"contactNumber\":\"000001234\",\"caseName\":\"测试\",\"caseValue\":1,\"approvalRecord\":[{\"MSG\":\"\",\"USERNAMES\":\"/\",\"CREATEDATE\":\"2022-04-12 16:57:43.0\",\"ACTIONNAME\":\"-\",\"ACTIVITYNAME\":\"起草人\"},{\"MSG\":\"\",\"USERNAMES\":\"/\",\"CREATEDATE\":\"2022-04-12 16:58:50.0\",\"ACTIONNAME\":\"通过\",\"ACTIVITYNAME\":\"正式入库前确认\"},{\"MSG\":\"\",\"USERNAMES\":\"/\",\"CREATEDATE\":\"2022-04-12 16:59:08.0\",\"ACTIONNAME\":\"通过\",\"ACTIVITYNAME\":\"正式入库前确认\"}],\"department\":\"京东方科技集团股份有限公司/显示事业/制造中台/OLED制造中心/B7/\",\"draftingTime\":\"2022-04-12 16:55:03\",\"email\":\"boeboeboe@boe.com.cn\",\"caseTheme\":\"流程优化案例\",\"caseOwnerPhone\":\"000001234\",\"isLeadershipPlan\":\"是\",\"approvalNumber\":188322041200043,\"caseChannel\":\"组织案例\",\"drafter\":\"张宇/1200179总经理\",\"caseSpecialtySequence\":\"经营管理(一级、二级经营责任者撰写)\",\"caseThemeDescription\":\"\",\"caseOwnerEmail\":\"boeboeboe@boe.com.cn\",\"readers\":\"管理岗人员\",\"caseOwnerDepartment\":\"京东方科技集团股份有限公司/显示事业/制造中台/OLED制造中心/B7/\",\"endTime\":\"2022-04-12 16:59:08.0\",\"remarks\":\"\"},{\"caseFlow\":\"1.0 集成产品开发(IPD)\",\"caseType1\":\"业务提出明确需求案例\",\"caseOtherContributor\":\"1219330<黄倩>\",\"keyword5\":1,\"caseOwner\":\"1219330<黄倩>\",\"keyword3\":1,\"keyword4\":1,\"keyword1\":1,\"keyword2\":1,\"caseTheme2\":\"流程优化案例\",\"caseThemeDescription2\":\"\",\"caseTheme1\":\"检讨&开发过程中的技术部门沟通\",\"caseThemeDescription1\":\"\",\"caseScope\":\"默认全员公开\",\"caseSummary\":1,\"confidentialityLevel\":\"内部\",\"caseType\":\"业务痛点\",\"caseType2\":\"业务痛点\",\"attachment\":{\"attachmentUrl\":\"http://bpmpre.boe.com.cn/portal/apps/com.awspaas.user.apps.showfj/temp/tylc07_boealfjdz/测试中心 PE Lab委托测试申请单(MO)V1.3.txt\",\"attachmentName\":\"测试中心 PE Lab委托测试申请单(MO)V1.3.txt\"},\"caseOwnerOrg\":\"CFO\",\"contactNumber\":\"000001234\",\"caseName\":\"测试\",\"caseValue\":1,\"approvalRecord\":[{\"MSG\":\"\",\"USERNAMES\":\"/\",\"CREATEDATE\":\"2022-04-12 17:15:51.0\",\"ACTIONNAME\":\"-\",\"ACTIVITYNAME\":\"起草人\"},{\"MSG\":\"\",\"USERNAMES\":\"/\",\"CREATEDATE\":\"2022-04-12 17:16:16.0\",\"ACTIONNAME\":\"通过\",\"ACTIVITYNAME\":\"中心长审批\"},{\"MSG\":\"\",\"USERNAMES\":\"/\",\"CREATEDATE\":\"2022-04-12 17:16:33.0\",\"ACTIONNAME\":\"通过\",\"ACTIVITYNAME\":\"中心长审批\"},{\"MSG\":\"\",\"USERNAMES\":\"/\",\"CREATEDATE\":\"2022-04-12 17:16:45.0\",\"ACTIONNAME\":\"通过\",\"ACTIVITYNAME\":\"正式入库前确认\"},{\"MSG\":\"\",\"USERNAMES\":\"/\",\"CREATEDATE\":\"2022-04-12 17:16:58.0\",\"ACTIONNAME\":\"通过\",\"ACTIVITYNAME\":\"正式入库前确认\"}],\"department\":\"京东方科技集团股份有限公司/显示事业/制造中台/OLED制造中心/B7/智造技术部/\",\"draftingTime\":\"2022-04-12 17:13:52\",\"email\":\"boeboeboe@boe.com.cn\",\"caseTheme\":\"成本控制案例\",\"caseOwnerPhone\":\"000001234\",\"isLeadershipPlan\":\"是\",\"approvalNumber\":188322041200044,\"caseChannel\":\"智力资本建设个人案例(Band10级及以上)\",\"drafter\":\"韩大伟/1200164部长\",\"caseSpecialtySequence\":\"信息技术(信息技术企划、IT解决方案、数据与信息安全、运维服务),投融资(投资管理、资金、股证)\",\"caseThemeDescription\":\"\",\"caseOwnerEmail\":\"boeboeboe@boe.com.cn\",\"readers\":\"质量管理人员(品质、客服、合规)\",\"caseOwnerDepartment\":\"京东方科技集团股份有限公司/显示事业/制造中台/OLED制造中心/B7/智造技术部/\",\"endTime\":\"2022-04-12 17:16:59.0\",\"remarks\":\"\"},{\"caseFlow\":\"1.0 集成产品开发(IPD)\",\"caseType1\":\"典型场景\",\"caseOtherContributor\":\"1200121<杨国波>\",\"keyword5\":1,\"caseOwner\":\"1200121<杨国波>\",\"keyword3\":1,\"keyword4\":1,\"keyword1\":1,\"keyword2\":1,\"caseTheme2\":\"客户拜访案例\",\"caseThemeDescription2\":\"\",\"caseTheme1\":\"管理决策案例\",\"caseThemeDescription1\":\"\",\"caseScope\":\"默认全员公开\",\"caseSummary\":1,\"confidentialityLevel\":\"内部\",\"caseType\":\"典型场景\",\"caseType2\":\"典型场景\",\"attachment\":{\"attachmentUrl\":\"http://bpmpre.boe.com.cn/portal/apps/com.awspaas.user.apps.showfj/temp/tylc07_boealfjdz/测试中心 PE Lab委托测试申请单(MO)V1.3.txt\",\"attachmentName\":\"测试中心 PE Lab委托测试申请单(MO)V1.3.txt\"},\"caseOwnerOrg\":\"CFO\",\"contactNumber\":\"000001234\",\"caseName\":\"测试\",\"caseValue\":1,\"approvalRecord\":[{\"MSG\":\"\",\"USERNAMES\":\"/\",\"CREATEDATE\":\"2022-04-15 10:59:04.0\",\"ACTIONNAME\":\"-\",\"ACTIVITYNAME\":\"起草人\"},{\"MSG\":\"\",\"USERNAMES\":\"/\",\"CREATEDATE\":\"2022-04-15 10:59:16.0\",\"ACTIONNAME\":\"通过\",\"ACTIVITYNAME\":\"正式入库前确认\"},{\"MSG\":\"\",\"USERNAMES\":\"/\",\"CREATEDATE\":\"2022-04-15 10:59:29.0\",\"ACTIONNAME\":\"通过\",\"ACTIVITYNAME\":\"正式入库前确认\"}],\"department\":\"京东方科技集团股份有限公司/显示事业/制造中台/OLED制造中心/\",\"draftingTime\":\"2022-04-15 10:58:09\",\"email\":\"boeboeboe@boe.com.cn\",\"caseTheme\":\"管理决策案例\",\"caseOwnerPhone\":\"000001234\",\"isLeadershipPlan\":\"是\",\"approvalNumber\":188322041500030,\"caseChannel\":\"其他案例\",\"drafter\":\"杨国波/1200121中心长\",\"caseSpecialtySequence\":\"生产技术(工程技术、生产管理)\",\"caseThemeDescription\":\"\",\"caseOwnerEmail\":\"boeboeboe@boe.com.cn\",\"readers\":\"质量管理人员(品质、客服、合规)\",\"caseOwnerDepartment\":\"京东方科技集团股份有限公司/显示事业/制造中台/OLED制造中心/\",\"endTime\":\"2022-04-15 10:59:29.0\",\"remarks\":\"\"},{\"caseFlow\":\"2.0 线索到回款(LTC)\",\"caseType1\":\"业务痛点\",\"caseOtherContributor\":\"10046177<丁涛> 1204127<高姗>\",\"keyword5\":1,\"caseOwner\":\"10102972<于海博>\",\"keyword3\":1,\"keyword4\":1,\"keyword1\":1,\"keyword2\":1,\"caseTheme2\":\"自定义主题\",\"caseThemeDescription2\":\"测试\",\"caseTheme1\":\"自定义主题\",\"caseThemeDescription1\":\"测试\",\"caseScope\":\"默认全员公开\",\"caseSummary\":1,\"confidentialityLevel\":\"内部\",\"caseType\":\"关键主题\",\"caseType2\":\"管理难点\",\"attachment\":{\"attachmentUrl\":\"http://bpmpre.boe.com.cn/portal/apps/com.awspaas.user.apps.showfj/temp/tylc07_boealfjdz/测试中心 PE Lab委托测试申请单(MO)V1.3.txt\",\"attachmentName\":\"测试中心 PE Lab委托测试申请单(MO)V1.3.txt\"},\"caseOwnerOrg\":\"CFO\",\"contactNumber\":\"000001234\",\"caseName\":\"测试\",\"caseValue\":1,\"approvalRecord\":[{\"MSG\":\"\",\"USERNAMES\":\"/\",\"CREATEDATE\":\"2022-04-15 10:25:35.0\",\"ACTIONNAME\":\"-\",\"ACTIVITYNAME\":\"起草人\"},{\"MSG\":\"\",\"USERNAMES\":\"/\",\"CREATEDATE\":\"2022-04-15 10:25:54.0\",\"ACTIONNAME\":\"通过\",\"ACTIVITYNAME\":\"中心长审批\"},{\"MSG\":\"\",\"USERNAMES\":\"/\",\"CREATEDATE\":\"2022-04-15 10:26:07.0\",\"ACTIONNAME\":\"通过\",\"ACTIVITYNAME\":\"正式入库前确认\"},{\"MSG\":\"\",\"USERNAMES\":\"/\",\"CREATEDATE\":\"2022-04-15 10:26:20.0\",\"ACTIONNAME\":\"通过\",\"ACTIVITYNAME\":\"正式入库前确认\"}],\"department\":\"京东方科技集团股份有限公司/显示事业/制造中台/OLED制造中心/B7/产品企划与客户导入推进办公室/\",\"draftingTime\":\"2022-04-15 10:19:28\",\"email\":\"boeboeboe@boe.com.cn\",\"caseTheme\":\"自定义主题\",\"caseOwnerPhone\":\"000001234\",\"isLeadershipPlan\":\"是\",\"approvalNumber\":188322041500022,\"caseChannel\":\"智力资本建设个人案例(Band10级及以上)\",\"drafter\":\"谭伟伟/1200142主任\",\"caseSpecialtySequence\":\"生产技术(工程技术、生产管理),建设与安全管理(EHS、动力、工程建设)\",\"caseThemeDescription\":\"测试\",\"caseOwnerEmail\":\"boeboeboe@boe.com.cn\",\"readers\":\"管理岗人员\",\"caseOwnerDepartment\":\"京东方科技集团股份有限公司/显示事业/制造中台/OLED制造中心/B7/产品企划与客户导入推进办公室/\",\"endTime\":\"2022-04-15 10:26:21.0\",\"remarks\":\"\"},{\"caseFlow\":\"1.0 集成产品开发(IPD)\",\"caseType1\":\"关键主题\",\"caseOtherContributor\":\"1218760<严雪梅> 10368772<柏丽娜>\",\"keyword5\":1,\"caseOwner\":\"10106316<孙萍>\",\"keyword3\":1,\"keyword4\":1,\"keyword1\":1,\"keyword2\":1,\"caseTheme2\":\"确保组织人员稳定和梯队建设案例\",\"caseThemeDescription2\":\"\",\"caseTheme1\":\"物联网转型案例\",\"caseThemeDescription1\":\"\",\"caseScope\":\"默认全员公开\",\"caseSummary\":1,\"confidentialityLevel\":\"内部\",\"caseType\":\"关键主题\",\"caseType2\":\"管理难点\",\"attachment\":{\"attachmentUrl\":\"http://bpmpre.boe.com.cn/portal/apps/com.awspaas.user.apps.showfj/temp/tylc07_boealfjdz/测试中心 PE Lab委托测试申请单(MO)V1.3.txt\",\"attachmentName\":\"测试中心 PE Lab委托测试申请单(MO)V1.3.txt\"},\"caseOwnerOrg\":\"CFO\",\"contactNumber\":\"000001234\",\"caseName\":\"测试\",\"caseValue\":1,\"approvalRecord\":[{\"MSG\":\"\",\"USERNAMES\":\"/\",\"CREATEDATE\":\"2022-04-15 10:39:18.0\",\"ACTIONNAME\":\"-\",\"ACTIVITYNAME\":\"起草人\"},{\"MSG\":\"\",\"USERNAMES\":\"/\",\"CREATEDATE\":\"2022-04-15 10:40:49.0\",\"ACTIONNAME\":\"通过\",\"ACTIVITYNAME\":\"案例推进人审议\"},{\"MSG\":\"\",\"USERNAMES\":\"/\",\"CREATEDATE\":\"2022-04-15 10:41:02.0\",\"ACTIONNAME\":\"通过\",\"ACTIVITYNAME\":\"正式入库前确认\"},{\"MSG\":\"\",\"USERNAMES\":\"/\",\"CREATEDATE\":\"2022-04-15 10:41:15.0\",\"ACTIONNAME\":\"通过\",\"ACTIVITYNAME\":\"正式入库前确认\"},{\"MSG\":\"\",\"USERNAMES\":\"/\",\"CREATEDATE\":\"2022-04-15 10:40:35.0\",\"ACTIONNAME\":\"通过\",\"ACTIVITYNAME\":\"部长审批\"}],\"department\":\"京东方科技集团股份有限公司/显示事业/制造中台/OLED制造中心/B7/EAC技术部/\",\"draftingTime\":\"2022-04-15 10:38:10\",\"email\":\"boeboeboe@boe.com.cn\",\"caseTheme\":\"数字化变革案例\",\"caseOwnerPhone\":\"000001234\",\"isLeadershipPlan\":\"是\",\"approvalNumber\":188322041500025,\"caseChannel\":\"智力资本建设个人案例(Band10级及以上)\",\"drafter\":\"王向楠/1201302副部长\",\"caseSpecialtySequence\":\"信息技术(信息技术企划、IT解决方案、数据与信息安全、运维服务),战略预算(战略企划与执行、预算)\",\"caseThemeDescription\":\"\",\"caseOwnerEmail\":\"boeboeboe@boe.com.cn\",\"readers\":\"管理岗人员\",\"caseOwnerDepartment\":\"京东方科技集团股份有限公司/显示事业/制造中台/OLED制造中心/B7/EAC技术部/\",\"endTime\":\"2022-04-15 10:41:16.0\",\"remarks\":\"\"}]}}}"; - -// try { -// //runner.run(); -// //初始化数据 -// //runner.runByTime("2022-01-01", "2022-06-14"); -// //runner.doParser(json); -// -// } catch (Exception e) { -// log.error("同步案例错误",e); -// } -// - } - - - -} diff --git a/servers/boe-server-case/src/main/java/com/xboe/casetask/CaseDataSyncRunner.java b/servers/boe-server-case/src/main/java/com/xboe/casetask/CaseDataSyncRunner.java deleted file mode 100644 index a87aaeba..00000000 --- a/servers/boe-server-case/src/main/java/com/xboe/casetask/CaseDataSyncRunner.java +++ /dev/null @@ -1,436 +0,0 @@ -package com.xboe.casetask; - -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.InputStream; -import java.net.URLEncoder; -import java.time.LocalDate; -import java.time.LocalDateTime; -import java.time.format.DateTimeFormatter; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import javax.annotation.Resource; - -import org.apache.commons.lang3.StringUtils; -import org.springframework.stereotype.Component; - -import com.aspose.cells.PdfSaveOptions; -import com.aspose.cells.Workbook; -import com.aspose.slides.Presentation; -import com.aspose.words.Document; -import com.boe.csb.sdk.HttpCaller; -import com.xboe.casetask.entity.CaseSyncCustomize; -import com.xboe.casetask.entity.CaseSyncLog; -import com.xboe.casetask.entity.CaseSyncRecord; -import com.xboe.casetask.entity.DictItem; -import com.xboe.casetask.entity.User; -import com.xboe.casetask.service.ICaseSyncLogService; -import com.xboe.casetask.service.ICaseSyncService; -import com.xboe.common.utils.StringUtil; -import com.xboe.core.SysConstant; - -import lombok.extern.slf4j.Slf4j; - -/** - * 案例同步运行者 - * - */ -@Slf4j -@Component -public class CaseDataSyncRunner { - - private static final String FILETYPE=".pdf"; - - @Resource - ICaseSyncService syncService; - - @Resource - ICaseSyncLogService syncLogService; - - @Resource - CaseApiConfig config; - - /** - * 指定时间参数 - * @param start - * @param end - */ - @SuppressWarnings("deprecation") - public void runByTime(String start,String end) throws Exception { - - log.info("开始执行案例同步数据任务"); - String httpUrl=config.getApiUrl(); - String version=config.getApiVersion(); - String reqMethod=config.getApiMethod(); - String API_NAME = config.getApiName(); - String ak = config.getApiAK(); - String sk = config.getApiSK(); - - Map data = new HashMap(); - data.put("TYLC07QueryService","{\"header\":{\"startTime\":\""+start+"\",\"endTime\":\""+end+"\"}}"); - String result = null; - if("get".equals(reqMethod.toLowerCase())){ - result = HttpCaller.doGet(httpUrl, API_NAME, version, data, ak, sk); - }else if("post".equals(reqMethod.toLowerCase())){ - result = HttpCaller.doPost(httpUrl, API_NAME, version, data, ak, sk); - } - - try { - CaseSyncLog csl=new CaseSyncLog(); - csl.setLogTime(LocalDateTime.now()); - csl.setRequest("{\"header\":{\"startTime\":\""+start+"\",\"endTime\":\""+end+"\"}}"); - csl.setResponse(result); - syncLogService.save(csl); - }catch(Exception e) { - log.error("记录请求日志错误",e); - } - - if (StringUtils.isNotBlank(result)) { - //记录结果字符串 - //System.out.println(result); - log.info(result); - //解析等处理 - doParser(result); - // - }else { - log.error("同步案例数据错误,未返回任何数据"); - } - - } - - /** - * 直接运行,自动计算一天天 - * @throws Exception - */ - public void run() throws Exception { - - LocalDate today=LocalDate.now(); - DateTimeFormatter formatter=DateTimeFormatter.ofPattern("yyyy-MM-dd"); - String start=formatter.format(today); - String end=formatter.format(today.plusDays(1)); - runByTime(start,end); - } - - private void appendError(CaseSyncRecord csr,String error) { - csr.setStatus(1); - csr.setErrorInfo(csr.getErrorInfo()+","+error); - } - - private void downFile(CaseSyncRecord csr,JsonResultParser parser) { - String rootPath=SysConstant.getConfigValue(SysConstant.CONFIG_UPLOAD_FILES_SAVEPATH); - int lastIndex=csr.getAttachmentName().lastIndexOf("."); - if(lastIndex>0) { - String fileType=csr.getAttachmentName().substring(lastIndex); - //System.out.println("fileType="+fileType); - String savePathName=csr.getApprovalNumber()+fileType;//原文件名 - String savePdfName=csr.getApprovalNumber()+FILETYPE;//保存的pdf名 - - LocalDate localDate=LocalDate.now(); - String year=String.valueOf(localDate.getYear()); - String month=String.valueOf(localDate.getMonthValue()); - - String savePath=rootPath+"/case/"+year+"/"+month; - - File f=new File(savePath); - if(!f.exists()) { - f.mkdirs(); - } - String fileUrl=csr.getAttachmentUrl(); - try { - String beforePath=rootPath+"/case/"+year+"/"+month+"/"+savePathName; - //把名称进行转码处理 - int urlLast=fileUrl.lastIndexOf("/"); - if(urlLast==-1) { - this.appendError(csr, "下载案例文件地址解析错误【"+csr.getAttachmentUrl()+"】"); - log.error("下载案例文件地址解析错误【"+csr.getAttachmentUrl()+"】"); - return; - } - String urlName=fileUrl.substring(urlLast+1); - fileUrl=fileUrl.substring(0, urlLast+1)+URLEncoder.encode(urlName, "UTF-8"); - fileUrl=fileUrl.replaceAll("\\+","%20"); - log.info("下载文件:"+fileUrl); - parser.download(fileUrl, beforePath); - //转化为pdf - File downFile=new File(beforePath); - if(downFile.exists()) { - String dbPath="/case/"+year+"/"+month+"/"+savePdfName; - - if(!fileType.toLowerCase().equals(FILETYPE)) { - log.info("转化pdf:"+beforePath); - this.convertPdf(fileType, beforePath,rootPath+dbPath); - } - csr.setFilePath(dbPath);//设置到存储数据库 - }else { - log.error("下载案例文件错误【"+csr.getAttachmentUrl()+"】"); - log.error("下载的处理之后的url路径【"+fileUrl+"】"); - this.appendError(csr, "下载案例文件错误【"+csr.getAttachmentUrl()+"】"); - } - - }catch(Exception e) { - log.error("下载案例文件错误【"+csr.getAttachmentUrl()+"】"); - log.error("下载的处理之后的url路径【"+fileUrl+"】"); - log.error("下载案例文件错误",e); - this.appendError(csr, "下载案例文件错误或转化PDF错误【"+csr.getAttachmentUrl()+"】"+e.getMessage()); - } - } - } - - private String getNameStr(String name) { - String first=name.replaceAll("\\(","("); - int index1=first.indexOf("("); - if(index1>0) { - first=first.substring(0,index1); - } - return first; - } - -// public static void main(String[] args) { -// String str="显示-前台SBU1__eol__(包括:前台:MNT SBU、NB SBU、TPC SBU、TV SBU、F1 SBU、Mobile SBU、产销管理中心、车载SBU、SC SBU、C SBU、显示事业数字化变革管理办公室;终端营销协调组:MNT终端产品线、TV终端产品线、NB终端产品线、TPC终端产品线、3D显示特战队;中台:产销管理中心)"; -// CaseDataSyncRunner runner=new CaseDataSyncRunner(); -// System.out.println(runner.getNameStr(str)); -// System.out.println("显示-前台SBU1__eol__"); -// } -// - - public void doParser(String json) throws Exception { - - JsonResultParser parser=new JsonResultParser(); - String rootPath=SysConstant.getConfigValue(SysConstant.CONFIG_UPLOAD_FILES_SAVEPATH); - - - List cases = parser.parseJson(json,rootPath); - if(cases.size()>0) { - Map majorTypeMap = syncService.getMajorTypes(); - //因为每次同步并不一定多,所以这里直接一条一条的查询比对 - for(CaseSyncRecord csr : cases) { - - String hasId=syncService.getIdByApprovalNumber(csr.getApprovalNumber()); - if(StringUtils.isNotBlank(hasId)){ - //已经存在,不再更新 - csr.setAddNew(false); - csr.setStatus(1); - csr.setErrorInfo(csr.getErrorInfo()+",内容已存在,不再替换"); - syncService.saveRecord(csr); - continue; - } - - try { - //下载附件文件 - if(StringUtils.isNotBlank(csr.getAttachmentUrl())){ - downFile(csr,parser); - }else { - if(csr.getAttachmentList()!=null) { - CaseSyncCustomize customize= syncService.getLastCustomizeByApprovalNumber(csr.getApprovalNumber()); - if(customize!=null && customize.getAttachmentIndex()!=null) { - if(csr.getAttachmentList().size()>customize.getAttachmentIndex()) { - String[] choose=csr.getAttachmentList().get(customize.getAttachmentIndex()); - if(choose[0].equals(customize.getAttachmentName())) { - csr.setAttachmentUrl(choose[1]); - csr.setAttachmentName(choose[0]); - downFile(csr,parser); - } - }else { - appendError(csr,"附件配置与返回结果有变化,无法清确匹配,需要重新指定"); - } - - }else { - appendError(csr,"附件处理失败"); - } - }else { - appendError(csr,"附件处理失败"); - } - } - - //组织领域,无根据名称查找 ,再根据找到filter 对应code去找上级的名称 - if(StringUtils.isNotBlank(csr.getCaseOwnerOrg())) { - String firstName=null; - DictItem dictItem=null; - List items=syncService.findDictItemByName(csr.getCaseOwnerOrg()); - if(!items.isEmpty()) { - dictItem=items.get(0); - firstName=csr.getCaseOwnerOrg(); - }else { - firstName=getNameStr(csr.getCaseOwnerOrg()); - List item2s=syncService.findDictItemByName(firstName); - if(!item2s.isEmpty()) { - dictItem=item2s.get(0); - } - } - - if(dictItem!=null) { - csr.setOrgDomain(firstName); - csr.setOrgDomainId(dictItem.getCode()); - //上级的名称 - DictItem parent=syncService.getDictItemByCode(dictItem.getFilter()); - if(parent==null) { - csr.setStatus(1); - csr.setErrorInfo(csr.getErrorInfo()+",未匹配到组织领域上级【"+csr.getCaseOwnerOrg()+"】"+firstName); - }else { - csr.setOrgDomainParent(parent.getName()); - csr.setOrgDomainParentId(parent.getCode()); - } - }else { - appendError(csr, "未匹配到组织领域【"+csr.getCaseOwnerOrg()+"】"+firstName); - } - - - }else { - appendError(csr,"无组织领域【"+csr.getCaseOwnerOrg()+"】"); - } - //专业分类 - if(StringUtil.isNotBlank(csr.getCaseSpecialtySequence()) ) { - //替换逗号 - String[] names=csr.getCaseSpecialtySequence().split(","); - csr.setMajorTypeIdList(new ArrayList<>()); - for(String sname :names) { - String first=getNameStr(sname); - if(majorTypeMap.containsKey(first)) { - String code=majorTypeMap.get(first); - csr.getMajorTypeIdList().add(code); -// csr.setMajorType(first); -// csr.setMajorTypeId(code); - } - } - - if(csr.getMajorTypeIdList().isEmpty()) { - this.appendError(csr, "未匹配到任何专业分类【"+csr.getCaseSpecialtySequence()+"】"); - } - - - //System.out.println("first="+first); -// if(majorTypeMap.containsKey(first)) { -// String code=majorTypeMap.get(first); -// csr.setMajorType(first); -// csr.setMajorTypeId(code); -// }else { -// csr.setStatus(1); -// this.appendError(csr, "未匹配到专业分类【"+csr.getCaseSpecialtySequence()+"】"); -// } - }else { - if(StringUtils.isBlank(csr.getMajorTypeId())) { - csr.setStatus(1); - csr.setErrorInfo(csr.getErrorInfo()+",未匹配到专业分类【"+csr.getCaseSpecialtySequence()+"】"); - } - } - - - //用户的转化处理,各种异常处理 - String owner =csr.getCaseOwner(); - if(StringUtils.isNotBlank(owner)) { - int leftIdx=owner.indexOf("<"); - if(leftIdx>-1) { - String no=owner.substring(0,leftIdx); - //String author=owner.substring(leftIdx+1,owner.length()-1); - //1010返回的json作者信息有变化,后面多了两个<>, 所以这里规则改一下 - String author=owner.substring(leftIdx+1,owner.indexOf(">")); - String id= syncService.getIdByUserNo(no); - if(id==null) { - csr.setStatus(1); - csr.setErrorInfo(csr.getErrorInfo()+",关联用户失败【"+csr.getCaseOwner()+"】"); - }else { - csr.setAuthorId(id); - csr.setAuthorName(author); - } - - }else { - //这种情况把它当成单独的工号处理 - User u= syncService.getByUserNo(owner); - if(u==null) { - csr.setStatus(1); - csr.setErrorInfo(csr.getErrorInfo()+",关联用户失败【"+csr.getCaseOwner()+"】"); - }else { - csr.setAuthorId(u.getId()); - csr.setAuthorName(u.getName()); - } -// csr.setStatus(1); -// csr.setErrorInfo(csr.getErrorInfo()+",caseOwner数据格式错误【"+owner+"】"); - } - }else { - csr.setStatus(1); - csr.setErrorInfo(csr.getErrorInfo()+",无caseOwner信息"); - } - //检查是否已存在,移到Service中 - //Cases has=syncService.getByApprovalNumber(csr.getApprovalNumber()); -// String hasId=syncService.getIdByApprovalNumber(csr.getApprovalNumber()); -// if(StringUtils.isBlank(hasId)){ -// csr.setAddNew(true); -// }else { -// //csr.setCaseInfo(has); -// csr.setAddNew(false); -// } - }catch(Exception ee) { - log.error("解决处理字段错误",ee); - this.appendError(csr,"处理字段错误:"+ee.getMessage()); - } - syncService.saveRecord(csr); - //单独的保存 - syncService.saveCase(csr); - } - - //syncService.saveCase(cases); - } - } - - private static boolean loadLicense = false; - - private boolean getLicense() { - if (!loadLicense) { - try { - InputStream is = this.getClass().getResourceAsStream("/aspose/license.xml"); - com.aspose.cells.License cellAposeLic = new com.aspose.cells.License(); - cellAposeLic.setLicense(is); - - is = this.getClass().getResourceAsStream("/aspose/license.xml"); - com.aspose.words.License wordAposeLic = new com.aspose.words.License(); - wordAposeLic.setLicense(is); - - is = this.getClass().getResourceAsStream("/aspose/license.xml"); - com.aspose.slides.License pptAposeLic = new com.aspose.slides.License(); - pptAposeLic.setLicense(is); - - loadLicense = true; - } catch (Exception e) { - log.error("读取aspose license文件失败",e); - } - } - return loadLicense; - } - - private void convertPdf(String fileType, String filePath,String pdfPath) throws Exception{ - if (this.getLicense()) { - File pdfFile = new File(pdfPath);// 输出路径 - FileOutputStream fileOS =null; - try { - if(".doc,.docx".indexOf(fileType)>-1) { - fileOS = new FileOutputStream(pdfFile); - Document doc = new Document(filePath);// - doc.save(fileOS, com.aspose.words.SaveFormat.PDF); - }else if(".xls,.xlsx".indexOf(fileType)>-1) { - fileOS = new FileOutputStream(pdfFile); - Workbook wb = new Workbook(filePath);// 原始excel路径 - //wb.save(fileOS, com.aspose.cells.SaveFormat.PDF); - PdfSaveOptions pdfSaveOptions = new PdfSaveOptions(); - pdfSaveOptions.setAllColumnsInOnePagePerSheet(true); - wb.save(fileOS, pdfSaveOptions); - }else if(".ppt,.pptx".indexOf(fileType)>-1) { - fileOS = new FileOutputStream(pdfFile); - InputStream slides = new FileInputStream(filePath);// 原始ppt路径 - Presentation pres = new Presentation(slides); - pres.save(fileOS, com.aspose.slides.SaveFormat.Pdf); - } - - }catch(Exception e) { - throw e; - }finally { - if(fileOS!=null) { - fileOS.close(); - } - } - } - - } -} diff --git a/servers/boe-server-case/src/main/java/com/xboe/casetask/CaseDataTimeSchedule.java b/servers/boe-server-case/src/main/java/com/xboe/casetask/CaseDataTimeSchedule.java deleted file mode 100644 index 262cd054..00000000 --- a/servers/boe-server-case/src/main/java/com/xboe/casetask/CaseDataTimeSchedule.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.xboe.casetask; - -import javax.annotation.Resource; - -import org.springframework.scheduling.annotation.EnableScheduling; -import org.springframework.scheduling.annotation.Scheduled; -import org.springframework.stereotype.Component; - -import lombok.extern.slf4j.Slf4j; - -/** - * 案例数据同步处理 - */ -@Slf4j -@EnableScheduling -@Component("com.xboe.casetask.CaseDataTimeSchedule") -public class CaseDataTimeSchedule{ - - @Resource - CaseDataSyncRunner runner; - - /**每隔12个小时执行一次*/ - @Scheduled(cron="0 0 12,22 * * ?") - public void execute() { - - - try { - runner.run(); - } catch (Exception e) { - log.error("同步案例数据错误",e); - } - - } - -} diff --git a/servers/boe-server-case/src/main/java/com/xboe/casetask/JsonResultParser.java b/servers/boe-server-case/src/main/java/com/xboe/casetask/JsonResultParser.java deleted file mode 100644 index 3d59fa65..00000000 --- a/servers/boe-server-case/src/main/java/com/xboe/casetask/JsonResultParser.java +++ /dev/null @@ -1,214 +0,0 @@ -package com.xboe.casetask; - -import java.io.File; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.time.LocalDateTime; -import java.time.format.DateTimeFormatter; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; - -import org.apache.http.HttpEntity; -import org.apache.http.HttpResponse; -import org.apache.http.client.HttpClient; -import org.apache.http.client.methods.HttpGet; -import org.apache.http.impl.client.HttpClients; - -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.xboe.casetask.entity.CaseSyncRecord; - -/** - * 案例的解析处理 - * 此类只是负责解析处理,不做业务逻辑判断 - */ -public class JsonResultParser { - - - private String getString(JsonNode node,String name, String def) { - if(node.has(name)) { - return node.get(name).asText(); - }else { - return def; - } - } - - private LocalDateTime getTime(JsonNode node,String name) { - if(node.has(name)) { - //System.out.println("node.get(name)="+node.get(name)); - String strTime=node.get(name).asText(); - if(strTime.lastIndexOf(".0")>-1) { - LocalDateTime dateTime=LocalDateTime.parse(node.get(name).asText(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.0")); - return dateTime; - }else { - LocalDateTime dateTime=LocalDateTime.parse(node.get(name).asText(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); - return dateTime; - } - - } - return null; - - } - - public void download(String url, String filepath) throws Exception{ - - InputStream is =null; - File file=null; - FileOutputStream fileout=null; - try { - HttpClient client = HttpClients.createDefault(); - HttpGet httpget = new HttpGet(url); - // 加入Referer,防止防盗链 - //httpget.setHeader("Referer", url); - httpget.setHeader("Referer", ""); - HttpResponse response = client.execute(httpget); - HttpEntity entity = response.getEntity(); - is=entity.getContent(); - - file = new File(filepath); - file.getParentFile().mkdirs(); - fileout = new FileOutputStream(file); - byte[] buffer = new byte[10240]; - int ch = 0; - while ((ch = is.read(buffer)) != -1) { - fileout.write(buffer, 0, ch); - } - fileout.flush(); - } catch (IOException e) { - throw e; - } catch (UnsupportedOperationException e) { - throw e; - } finally { - if(fileout!=null) { - try { - fileout.close(); - } catch (IOException e) { - e.printStackTrace(); - } - } - if(is!=null) { - try { - is.close(); - } catch (IOException e) { - e.printStackTrace(); - } - } - - } - - } - - public List parseJson(String json,String rootPath) throws Exception { - - JsonResultParser parser=new JsonResultParser(); - List cases=new ArrayList(); - - ObjectMapper mapper=new ObjectMapper(); - - JsonNode root = mapper.readTree(json); - JsonNode result=root.get("TYLC07QueryServiceResponse").get("return"); - int code=result.get("code").asInt(); - if(code!=0) { - //System.out.println("code:"+code+",msg="+result.get("msg")); - return null; - } - JsonNode dataList=result.get("data"); - //因为返回内容有null的情况 - if(dataList==null || dataList.isEmpty()) { - return cases; - } - - Iterator list=dataList.iterator(); - - while(list.hasNext()) { - JsonNode item=list.next(); - CaseSyncRecord c=new CaseSyncRecord(); - c.setStatus(0); - c.setAddNew(true); - c.setErrorInfo(""); - - c.setApprovalNumber(parser.getString(item,"approvalNumber","")); - c.setCaseChannel(parser.getString(item,"caseChannel","")); - c.setCaseFlow(parser.getString(item,"caseFlow","")); - c.setCaseOtherContributor(parser.getString(item,"caseOtherContributor","")); - c.setCaseOwner(parser.getString(item,"caseOwner","")); - c.setCaseOwnerDepartment(parser.getString(item,"caseOwnerDepartment","")); - c.setCaseOwnerOrg(parser.getString(item,"caseOwnerOrg","")); - c.setCaseOwnerPhone(parser.getString(item,"caseOwnerPhone","")); - c.setCaseScope(parser.getString(item,"caseScope","")); - c.setCaseSpecialtySequence(parser.getString(item,"caseSpecialtySequence","")); - - c.setCaseTheme(parser.getString(item,"caseTheme","")); - c.setCaseThemeDescription(parser.getString(item,"caseThemeDescription","")); - c.setCaseTheme1(parser.getString(item,"caseTheme1","")); - c.setCaseThemeDescription1(parser.getString(item,"caseThemeDescription1","")); - c.setCaseTheme2(parser.getString(item,"caseTheme2","")); - c.setCaseThemeDescription2(parser.getString(item,"caseThemeDescription2","")); - - c.setCaseType(parser.getString(item,"caseType","")); - c.setCaseType1(parser.getString(item,"caseType1","")); - c.setCaseType2(parser.getString(item,"caseType2","")); - - c.setCaseValue(parser.getString(item,"caseValue","")); - c.setConfidentialityLevel(parser.getString(item,"confidentialityLevel","")); - c.setContactNumber(parser.getString(item,"caseFlow","")); - c.setDrafter(parser.getString(item,"drafter","")); - c.setDrafter(parser.getString(item,"draftingTime","")); - - c.setEmail(parser.getString(item,"email","")); - - String isLeadershipPlan=parser.getString(item,"isLeadershipPlan",""); - c.setIsLeadershipPlan(isLeadershipPlan.equals("是")? true:false); - - c.setKeyword1(parser.getString(item,"keyword1","")); - c.setKeyword2(parser.getString(item,"keyword2","")); - c.setKeyword3(parser.getString(item,"keyword3","")); - c.setKeyword4(parser.getString(item,"keyword4","")); - c.setKeyword5(parser.getString(item,"keyword5","")); - c.setReaders(parser.getString(item,"readers","")); - c.setDepartment(parser.getString(item,"department","")); - c.setCaseName(parser.getString(item,"caseName","")); - c.setCaseSummary(parser.getString(item,"caseSummary","")); - - c.setDraftingTime(parser.getTime(item,"draftingTime")); - c.setEndTime(parser.getTime(item,"endTime")); - //approvalRecord 直接转化为json保存 - JsonNode approvalRecord=item.get("approvalRecord"); - if(approvalRecord!=null) { - c.setApprovalRecord(approvalRecord.toString()); - } - - JsonNode attachment=item.get("attachment"); - if(attachment!=null) { - if(attachment.isArray()) { - //多个附件的情况下,所附件弄成字符串保存起来 - c.setAttachment(attachment.toString()); - //在数据组中查找名字 - c.setAttachmentList(new ArrayList<>()); - Iterator fileList=attachment.iterator(); - while(fileList.hasNext()) { - JsonNode one=fileList.next(); - String[] values=new String[2]; - values[0]=parser.getString(one,"attachmentName",""); - values[1]=parser.getString(one,"attachmentUrl",""); - c.getAttachmentList().add(values); - } - }else { - c.setAttachmentName(parser.getString(item.get("attachment"),"attachmentName","")); - c.setAttachmentUrl(parser.getString(item.get("attachment"),"attachmentUrl","")); - } - }else { - c.setStatus(1);//附件处理失败 - c.setErrorInfo(c.getErrorInfo()+"附件字段attachment不存在"); - } - cases.add(c); - } - - - return cases; - - } - -} diff --git a/servers/boe-server-case/src/main/java/com/xboe/casetask/api/CaseTaskApi.java b/servers/boe-server-case/src/main/java/com/xboe/casetask/api/CaseTaskApi.java deleted file mode 100644 index 0866f67a..00000000 --- a/servers/boe-server-case/src/main/java/com/xboe/casetask/api/CaseTaskApi.java +++ /dev/null @@ -1,154 +0,0 @@ -package com.xboe.casetask.api; - -import java.time.LocalDateTime; -import java.time.format.DateTimeFormatter; - -import javax.annotation.Resource; - -import org.apache.commons.lang3.StringUtils; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import com.xboe.casetask.CaseDataSyncRunner; -import com.xboe.casetask.entity.CaseSyncCustomize; -import com.xboe.casetask.entity.CaseSyncLog; -import com.xboe.casetask.entity.CaseSyncRecord; -import com.xboe.casetask.service.ICaseSyncLogService; -import com.xboe.casetask.service.ICaseSyncService; -import com.xboe.common.PageList; -import com.xboe.common.Pagination; -import com.xboe.core.JsonResponse; -import com.xboe.core.api.ApiBaseController; - -import lombok.extern.slf4j.Slf4j; - -@Slf4j -@RestController -@RequestMapping(value = "/inner/task/cases") -public class CaseTaskApi extends ApiBaseController{ - - @Resource - ICaseSyncService service; - - @Resource - ICaseSyncLogService logService; - - @Resource - CaseDataSyncRunner runner; - - - @PostMapping("/logs") - public JsonResponse> logs(Pagination page) { - - PageList result = logService.findPage(page.getPageIndex(),page.getPageSize()); - - return success(result); - } - - @GetMapping("/logs-clear") - public JsonResponse logsClear() { - - logService.clearLogs(); - - return success(true); - } - - @PostMapping("/records") - public JsonResponse> records(Pagination page, CaseSyncRecord record) { - - PageList result = service.findPage(page.getPageIndex(),page.getPageSize(), record); - - return success(result); - } - - @PostMapping("/records-delete") - public JsonResponse recordDelete(String id) { - if(StringUtils.isBlank(id)) { - return error("未指定id"); - } - - service.deleteRecord(id); - return success(true); - } - - @PostMapping("/save-config") - public JsonResponse saveConfig(CaseSyncCustomize csc) { - if (StringUtils.isBlank(csc.getApprovalNumber())) { - return error("未批定审批单号"); - } - if (csc.getAttachmentIndex()==null) { - return error("未指定附件记录"); - } - try { - service.saveCaseSyncCustomize(csc); - return success(csc); - }catch(Exception e) { - log.error("保存同步附件设置错误",e); - return error("保存同步附件设置失败",e.getMessage()); - } - } - - /** - * 按指定时间同步处理 - * @param start - * @param end - * @return - */ - @PostMapping("/sync-start-end") - public JsonResponse runByStartEnd(String start,String end) { - if (StringUtils.isBlank(start)) { - return error("缺少必要参数"); - } - if (StringUtils.isBlank(end)) { - return error("缺少必要参数"); - } - - try { - runner.runByTime(start, end); - return success(true); - }catch(Exception e) { - log.error("指定时间同步案例错误",e); - return error("同步案例失败",e.getMessage(),false); - } - } - - /** - * 按时间执行 - * @param start - * @param end - * @return - */ - @PostMapping("/sync-by-time") - public JsonResponse runByTime(String id,String time) { - if (StringUtils.isBlank(id)) { - return error("缺少必要参数"); - } - if (StringUtils.isBlank(time)) { - return error("缺少必要参数"); - } - - try { - - //转化时间 - LocalDateTime dateTime=null; - if(time.lastIndexOf(".0")>-1) { - dateTime=LocalDateTime.parse(time, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.0")); - }else { - dateTime=LocalDateTime.parse(time, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); - } - - DateTimeFormatter formatter=DateTimeFormatter.ofPattern("yyyy-MM-dd"); - //通过前后10分钟上设置查询区间 - String start=formatter.format(dateTime); - //String end=formatter.format(dateTime.plusMinutes(10)); - - runner.runByTime(start, start); - return success(true); - }catch(Exception e) { - log.error("指定时间同步案例错误",e); - return error("同步案例失败",e.getMessage(),false); - } - } -} diff --git a/servers/boe-server-case/src/main/java/com/xboe/casetask/dao/CaseSyncCustomizeDao.java b/servers/boe-server-case/src/main/java/com/xboe/casetask/dao/CaseSyncCustomizeDao.java deleted file mode 100644 index afdbf35f..00000000 --- a/servers/boe-server-case/src/main/java/com/xboe/casetask/dao/CaseSyncCustomizeDao.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.xboe.casetask.dao; - -import org.springframework.stereotype.Repository; - -import com.xboe.casetask.entity.CaseSyncCustomize; -import com.xboe.core.orm.BaseDao; - -@Repository -public class CaseSyncCustomizeDao extends BaseDao{ - -} diff --git a/servers/boe-server-case/src/main/java/com/xboe/casetask/dao/CaseSyncLogDao.java b/servers/boe-server-case/src/main/java/com/xboe/casetask/dao/CaseSyncLogDao.java deleted file mode 100644 index bdd7b04c..00000000 --- a/servers/boe-server-case/src/main/java/com/xboe/casetask/dao/CaseSyncLogDao.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.xboe.casetask.dao; - -import org.springframework.stereotype.Repository; - -import com.xboe.casetask.entity.CaseSyncLog; -import com.xboe.core.orm.BaseDao; - -@Repository -public class CaseSyncLogDao extends BaseDao{ - -} diff --git a/servers/boe-server-case/src/main/java/com/xboe/casetask/dao/CaseSyncRecordDao.java b/servers/boe-server-case/src/main/java/com/xboe/casetask/dao/CaseSyncRecordDao.java deleted file mode 100644 index 155ac2bf..00000000 --- a/servers/boe-server-case/src/main/java/com/xboe/casetask/dao/CaseSyncRecordDao.java +++ /dev/null @@ -1,114 +0,0 @@ -package com.xboe.casetask.dao; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import org.springframework.stereotype.Repository; - -import com.xboe.casetask.entity.CaseSyncRecord; -import com.xboe.casetask.entity.DictItem; -import com.xboe.core.orm.BaseDao; -import com.xboe.standard.BaseConstant; - -@Repository -public class CaseSyncRecordDao extends BaseDao{ - - public List findDictItemByName(String name){ - //Map keys=new HashMap(); - String sql="Select code,name,filter from "+BaseConstant.DICTIONARY_TABLE_NAMEPRE+"org_domain where name=?1"; - - @SuppressWarnings("unchecked") - List list = this.sqlFindList(sql,name); - List items=new ArrayList(); - for(Object[] objs : list) { - DictItem item=new DictItem(); - item.setCode((String)objs[0]); - item.setName((String)objs[1]); - item.setFilter((String)objs[2]); - items.add(item); - } - return items; - } - - public List findDictItemByName(String name1,String name2){ - //Map keys=new HashMap(); - String sql="Select code,name,filter from "+BaseConstant.DICTIONARY_TABLE_NAMEPRE+"org_domain where name=?1 or name=?2"; - - @SuppressWarnings("unchecked") - List list = this.sqlFindList(sql,name1,name2); - List items=new ArrayList(); - for(Object[] objs : list) { - DictItem item=new DictItem(); - item.setCode((String)objs[0]); - item.setName((String)objs[1]); - item.setFilter((String)objs[2]); - items.add(item); - } - return items; - } - - public DictItem findDictItemByCode(String code){ - //Map keys=new HashMap(); - String sql="Select code,name,filter from "+BaseConstant.DICTIONARY_TABLE_NAMEPRE+"org_domain where code=?1"; - - @SuppressWarnings("unchecked") - List list = this.sqlFindList(sql,code); - if(list!=null && !list.isEmpty()) { - Object[] objs=list.get(0); - DictItem item=new DictItem(); - item.setCode((String)objs[0]); - item.setName((String)objs[1]); - item.setFilter((String)objs[2]); - return item; - } - - return null; - } - - public Map getOrgDomains(){ - //Map keys=new HashMap(); - String sql="Select code,name,filter from "+BaseConstant.DICTIONARY_TABLE_NAMEPRE+"org_domain"; - @SuppressWarnings("unchecked") - List list = this.sqlFindList(sql); - Map maps=new HashMap(); - - for(Object[] objs : list) { - DictItem item=new DictItem(); - item.setCode((String)objs[0]); - item.setName((String)objs[1]); - item.setFilter((String)objs[2]); - maps.put(item.getName(), item); - } -// for(Object[] objs : list) { -// String code=(String)objs[0]; -// String filter=(String)objs[2]; -// DictItem current=maps.get(code); -// DictItem parent=maps.get(filter); -// if(parent!=null) { -// keys.put(current.getName(), parent.getName()); -// } -// } - return maps; - } - - public Map getMajorTypes(){ - //Map keys=new HashMap(); - String sql="Select code,name,filter from "+BaseConstant.DICTIONARY_TABLE_NAMEPRE+"major_type"; - @SuppressWarnings("unchecked") - List list = this.sqlFindList(sql); - Map maps=new HashMap(); - - for(Object[] objs : list) { - DictItem item=new DictItem(); - item.setCode((String)objs[0]); - item.setName((String)objs[1]); - item.setFilter((String)objs[2]); - maps.put(item.getName(), item.getCode()); - } - - return maps; - } - -} diff --git a/servers/boe-server-case/src/main/java/com/xboe/casetask/dao/CasesDao.java b/servers/boe-server-case/src/main/java/com/xboe/casetask/dao/CasesDao.java deleted file mode 100644 index 89331780..00000000 --- a/servers/boe-server-case/src/main/java/com/xboe/casetask/dao/CasesDao.java +++ /dev/null @@ -1,12 +0,0 @@ -package com.xboe.casetask.dao; - -import org.springframework.stereotype.Repository; - -import com.xboe.casetask.entity.Cases; -import com.xboe.core.orm.BaseDao; - -@Repository -public class CasesDao extends BaseDao { - - -} diff --git a/servers/boe-server-case/src/main/java/com/xboe/casetask/dao/CasesMajorTypeDao.java b/servers/boe-server-case/src/main/java/com/xboe/casetask/dao/CasesMajorTypeDao.java deleted file mode 100644 index e4b665f6..00000000 --- a/servers/boe-server-case/src/main/java/com/xboe/casetask/dao/CasesMajorTypeDao.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.xboe.casetask.dao; - -import org.springframework.stereotype.Repository; - -import com.xboe.casetask.entity.CasesMajorType; -import com.xboe.core.orm.BaseDao; - -@Repository -public class CasesMajorTypeDao extends BaseDao { -} diff --git a/servers/boe-server-case/src/main/java/com/xboe/casetask/dao/UserDao.java b/servers/boe-server-case/src/main/java/com/xboe/casetask/dao/UserDao.java deleted file mode 100644 index 55c2aa0b..00000000 --- a/servers/boe-server-case/src/main/java/com/xboe/casetask/dao/UserDao.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.xboe.casetask.dao; - -import org.springframework.stereotype.Repository; - -import com.xboe.casetask.entity.User; -import com.xboe.core.orm.BaseDao; - -/** - * 用户DAO - */ -@Repository -public class UserDao extends BaseDao { - - -} diff --git a/servers/boe-server-case/src/main/java/com/xboe/casetask/entity/CaseSyncCustomize.java b/servers/boe-server-case/src/main/java/com/xboe/casetask/entity/CaseSyncCustomize.java deleted file mode 100644 index 5f6472d0..00000000 --- a/servers/boe-server-case/src/main/java/com/xboe/casetask/entity/CaseSyncCustomize.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.xboe.casetask.entity; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Table; - -import com.xboe.core.SysConstant; -import com.xboe.core.orm.IdEntity; - -import lombok.Data; -import lombok.EqualsAndHashCode; - -/** - * 同步自定义指定 - */ -@Data -@Entity -@EqualsAndHashCode(callSuper = false) -@Table(name = SysConstant.TABLE_PRE+"case_sync_customize") -public class CaseSyncCustomize extends IdEntity{ - - private static final long serialVersionUID = 1L; - - @Column(name = "approval_number",length = 100) - private String approvalNumber; - - /** - * 要使用的附件的索引 - */ - @Column(name = "attachment_index",length = 1) - private Integer attachmentIndex; - - /** - * 要使用的附件的名称 - */ - @Column(name = "attachment_name",length =300) - private String attachmentName; - - -} diff --git a/servers/boe-server-case/src/main/java/com/xboe/casetask/entity/CaseSyncLog.java b/servers/boe-server-case/src/main/java/com/xboe/casetask/entity/CaseSyncLog.java deleted file mode 100644 index 908e3cbe..00000000 --- a/servers/boe-server-case/src/main/java/com/xboe/casetask/entity/CaseSyncLog.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.xboe.casetask.entity; - -import java.time.LocalDateTime; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Table; - -import com.fasterxml.jackson.annotation.JsonFormat; -import com.xboe.core.SysConstant; -import com.xboe.core.orm.IdEntity; - -import lombok.Data; -import lombok.EqualsAndHashCode; - -@Data -@Entity -@EqualsAndHashCode(callSuper = false) -@Table(name = SysConstant.TABLE_PRE+"case_sync_log") -public class CaseSyncLog extends IdEntity{ - - private static final long serialVersionUID = 1L; - - @Column(name = "log_time",nullable = false,length = 100) - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private LocalDateTime logTime; - - @Column(name = "request",length = 200) - private String request; - - @Column(name = "response",columnDefinition = "mediumtext") - private String response; -} diff --git a/servers/boe-server-case/src/main/java/com/xboe/casetask/entity/CaseSyncRecord.java b/servers/boe-server-case/src/main/java/com/xboe/casetask/entity/CaseSyncRecord.java deleted file mode 100644 index 4d4b16a3..00000000 --- a/servers/boe-server-case/src/main/java/com/xboe/casetask/entity/CaseSyncRecord.java +++ /dev/null @@ -1,243 +0,0 @@ -package com.xboe.casetask.entity; - -import java.time.LocalDateTime; -import java.util.List; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Table; -import javax.persistence.Transient; - -import com.fasterxml.jackson.annotation.JsonFormat; -import com.xboe.core.SysConstant; -import com.xboe.core.orm.IdEntity; - -import lombok.Data; -import lombok.EqualsAndHashCode; - -/** - * 案例同步记录 - * @author seastar - * - */ -@Data -@Entity -@EqualsAndHashCode(callSuper = false) -@Table(name = SysConstant.TABLE_PRE+"case_sync_record") -public class CaseSyncRecord extends IdEntity{ - - private static final long serialVersionUID = 1L; - - //以下几项,是转化后的结果数据 - @Column(name = "org_domain_id",length =30) - private String orgDomainId; - - @Column(name = "org_domain",length =30) - private String orgDomain; - - @Column(name = "org_domain_parent_id",length =30) - private String orgDomainParentId; - - @Column(name = "org_domain_parent",length =30) - private String orgDomainParent; - - @Column(name = "major_type_code",length =30) - private String majorTypeId; - - @Column(name = "major_type",length =30) - private String majorType; - - @Column(name = "file_path",length =200) - private String filePath; - - @Column(name = "author_id",length =50) - private String authorId; - - @Column(name = "author_name",length =50) - private String authorName; - - @Column(name = "add_new",length = 1) - private Boolean addNew; - - @Transient - private Cases caseInfo; - - @Transient - private List attachmentList; - - @Transient - private List majorTypeIdList; - - - //以下是接收的内容 - /**审批单号*/ - @Column(name = "approval_number",length = 100) - private String approvalNumber; - - @Column(name = "case_name",length = 200) - private String caseName; - - /**摘要,对应数据对接中的,caseSummary字段*/ - @Column(name = "case_summary", nullable = true, columnDefinition = "text") - private String caseSummary; - - /**保密级别*/ - @Column(name = "confidentiality_level",length = 100) - private String confidentialityLevel; - - /**起草时间*/ - @Column(name = "drafting_time") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private LocalDateTime draftingTime; - - /**结束时间*/ - @Column(name = "end_time") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private LocalDateTime endTime; - - /**起草人*/ - @Column(name = "drafter") - private String drafter; - - /**部门*/ - @Column(name = "department") - private String department; - - /**联系电话*/ - @Column(name = "contact_number") - private String contactNumber; - - @Column(name = "email") - private String email; - - /**案例渠道,需要字典数据,当前系统未使用此字段,只是记录*/ - @Column(name = "case_channel") - private String caseChannel; - - /**是否为关联管理职级晋升的领导力方案*/ - @Column(name = "is_leadership_plan") - private Boolean isLeadershipPlan; - - /**案例公开范围,默认全员公开*/ - @Column(name = "case_scope") - private String caseScope; - - /**案例涉及流程*/ - @Column(name = "case_flow") - private String caseFlow; - - /**实际案例主*/ - @Column(name = "case_owner") - private String caseOwner; - - /**案主所在部门*/ - @Column(name = "case_owner_department") - private String caseOwnerDepartment; - - /**案主电话*/ - @Column(name = "case_owner_phone") - private String caseOwnerPhone; - - /**案例其他主要贡献人*/ - @Column(name = "case_other_contributor") - private String caseOtherContributor; - - @Column(name = "case_specialty_sequence") - private String caseSpecialtySequence; - - /**案主所属组织*/ - @Column(name = "case_owner_org") - private String caseOwnerOrg; - - /**案例类型,需要字典数据*/ - @Column(name = "case_type") - private String caseType; - - @Column(name = "case_type1") - private String caseType1; - - @Column(name = "case_type2") - private String caseType2; - - /**案例主题,需要字典数据*/ - @Column(name = "case_theme") - private String caseTheme; - - /**案例主题为“自定义”时,会返回案例说明,caseTheme在什么情况下才自定义*/ - @Column(name = "case_theme_description") - private String caseThemeDescription; - - /**案例主题,需要字典数据*/ - @Column(name = "case_theme1") - private String caseTheme1; - - /**案例主题为“自定义”时,会返回案例说明,caseTheme在什么情况下才自定义*/ - @Column(name = "case_theme_description1") - private String caseThemeDescription1; - - /**案例主题,需要字典数据*/ - @Column(name = "case_theme2") - private String caseTheme2; - - /**案例主题为“自定义”时,会返回案例说明,caseTheme在什么情况下才自定义*/ - @Column(name = "case_theme_description2") - private String caseThemeDescription2; - - @Column(name = "keyword1") - private String keyword1; - - @Column(name = "keyword2") - private String keyword2; - - @Column(name = "keyword3") - private String keyword3; - - @Column(name = "keyword4") - private String keyword4; - - - - @Column(name = "keyword5") - private String keyword5; - - @Column(name = "readers") - private String readers; - - - @Column(name = "case_value") - private String caseValue; - - /**对就的attachment内容的json字符串*/ - @Column(name = "attachment",columnDefinition = "text") - private String attachment; - - @Column(name = "attachment_url",length = 500) - private String attachmentUrl; - - @Column(name = "attachment_name",length = 200) - private String attachmentName; - - /**对就的approvalRecord内容的json字符串*/ - @Column(name = "approval_record",columnDefinition = "text") - private String approvalRecord; - - /**0表执行成功,1表数据解析失败*/ - @Column(name = "status",length=2) - private Integer status; - - /**0表执行成功,1表数据接收失败,2表数据解析失败,3组织领域关联失败,4表专业分类关联失败,5表用户关联失败,6表文件识别失败,7表文件下载失败*/ - @Column(name = "error_info") - private String errorInfo; - - /**执行时间*/ - @Column(name = "sync_time") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private LocalDateTime syncTime; - - /** - * 入库的id - */ - @Column(name = "case_id",length=19) - private String caseId; - -} diff --git a/servers/boe-server-case/src/main/java/com/xboe/casetask/entity/Cases.java b/servers/boe-server-case/src/main/java/com/xboe/casetask/entity/Cases.java deleted file mode 100644 index e55b521f..00000000 --- a/servers/boe-server-case/src/main/java/com/xboe/casetask/entity/Cases.java +++ /dev/null @@ -1,228 +0,0 @@ -package com.xboe.casetask.entity; - -import java.time.LocalDateTime; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Table; - -import com.fasterxml.jackson.annotation.JsonFormat; -import com.xboe.core.SysConstant; -import com.xboe.core.orm.BaseEntity; - -import lombok.Data; -import lombok.EqualsAndHashCode; - -/** - * 案例表 - * */ -@Data -@Entity -@EqualsAndHashCode(callSuper = false) -@Table(name = SysConstant.TABLE_PRE+"cases") -public class Cases extends BaseEntity { - - private static final long serialVersionUID = 1L; - - /**标题*/ - @Column(name = "title",nullable = false,length = 100) - private String title; - - /**企业ID, 多企业使用*/ - @Column(name = "company_id", length = 36) - private String companyId; - - /**内容*/ - @Column(name = "content",nullable = true,columnDefinition = "text") - private String content; - - /**文件的路径*/ - @Column(name = "file_path") - private String filePath; - - @Column(name = "file_name") - private String fileName; - - - /**作者id,对应案主ID,原数据 caseOwner 对应是原系统数据,这里是当前系统的用户id,需要一个转化*/ - @Column(name = "author_id") - private String authorId; - - /**作者名称*/ - @Column(name = "author_name") - private String authorName; - - /** 封面图地址*/ - @Column(name = "cover_url",length = 400) - private String coverUrl; - - /**是否推荐 0:未推荐 1:推荐*/ - @Column(name = "bre_commend",length = 1) - private Integer breCommend; - - /**推荐时间*/ - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @Column(name = "recommend_time") - private LocalDateTime recommendTime; - - /**是否置顶 0:未置顶,1:已置顶*/ - @Column(name = "is_top",length = 1) - private Boolean isTop; - - /**置顶时间*/ - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - @Column(name = "top_time") - private LocalDateTime topTime; - - /** - * 状态 0:草稿 - * 1:待审核 - * 2:已审核未通过 - * 3:已审核通过 - * */ -// @Column(name = "status",length = 1) -// private Integer status; - - @Column(name = "views", nullable = false) - private Integer views; - - @Column(name = "comments", nullable = false) - private Integer comments; - - @Column(name = "praises", nullable = false) - private Integer praises; - - @Column(name = "shares", nullable = false) - private Integer shares; - - @Column(name = "favorites", nullable = false) - private Integer favorites; - - /**摘要,对应数据对接中的,caseSummary字段*/ - @Column(name = "summary", nullable = true, length = 400) - private String summary; - - /**组织领域二级 对应原数据 caseOwnerOrg 案主所属组织*/ - @Column(name = "org_domain") - private String orgDomain; - - /**组织领域一级 对应原数据 二级对应的关系上级的名称*/ - @Column(name = "org_domain_parent") - private String orgDomainParent; - - /**专业分类,原数据 案例专业序列caseSpecialtySequence*/ - @Column(name = "major_type") - private String majorType; - - /**审批单号*/ - @Column(name = "approval_number",length = 100) - private String approvalNumber; - - /**保密级别*/ - @Column(name = "confidentiality_level",length = 100) - private String confidentialityLevel; - - /**起草时间*/ - @Column(name = "drafting_time") - private LocalDateTime draftingTime; - - /**结束时间*/ - @Column(name = "end_time") - private LocalDateTime endTime; - - /**起草人*/ - @Column(name = "drafter") - private String drafter; - - /**部门*/ - @Column(name = "department") - private String department; - - /**联系电话*/ - @Column(name = "contact_number") - private String contactNumber; - - @Column(name = "email") - private String email; - - /**案例渠道,需要字典数据,当前系统未使用此字段,只是记录*/ - @Column(name = "case_channel") - private String caseChannel; - - /**是否为关联管理职级晋升的领导力方案*/ - @Column(name = "is_leadership_plan") - private Boolean isLeadershipPlan; - - /**案例公开范围,默认全员公开*/ - @Column(name = "case_scope") - private String caseScope; - - /**案例涉及流程*/ - @Column(name = "case_flow") - private String caseFlow; - - /**实际案例主*/ - @Column(name = "case_owner") - private String caseOwner; - - /**案主所在部门*/ - @Column(name = "case_owner_department") - private String caseOwnerDepartment; - - /**案主电话*/ - @Column(name = "case_owner_phone") - private String caseOwnerPhone; - - /**案例其他主要贡献人*/ - @Column(name = "case_other_contributor") - private String caseOtherContributor; - - @Column(name = "case_specialty_sequence") - private String caseSpecialtySequence; - - /**案主所属组织*/ - @Column(name = "case_owner_org") - private String caseOwnerOrg; - - /**案例类型,需要字典数据*/ - @Column(name = "case_type") - private String caseType; - - @Column(name = "case_type1") - private String caseType1; - - @Column(name = "case_type2") - private String caseType2; - - /**案例主题,需要字典数据*/ - @Column(name = "case_theme") - private String caseTheme; - - /**案例主题为“自定义”时,会返回案例说明,caseTheme在什么情况下才自定义*/ - @Column(name = "case_theme_description") - private String caseThemeDescription; - - @Column(name = "keyword1") - private String keyword1; - - @Column(name = "keyword2") - private String keyword2; - - @Column(name = "keyword3") - private String keyword3; - - @Column(name = "keyword4") - private String keyword4; - - @Column(name = "keyword5") - private String keyword5; - - @Column(name = "readers") - private String readers; - - /**案例价值和应用场景*/ - @Column(name = "case_value") - private String caseValue; - - -} diff --git a/servers/boe-server-case/src/main/java/com/xboe/casetask/entity/CasesMajorType.java b/servers/boe-server-case/src/main/java/com/xboe/casetask/entity/CasesMajorType.java deleted file mode 100644 index a72dc8b5..00000000 --- a/servers/boe-server-case/src/main/java/com/xboe/casetask/entity/CasesMajorType.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.xboe.casetask.entity; - -import com.xboe.core.SysConstant; -import com.xboe.core.orm.IdEntity; -import lombok.Data; -import lombok.EqualsAndHashCode; - -import javax.persistence.*; -import java.io.Serializable; -import java.util.List; -import java.util.Set; - -/** - * 中间表 - * */ - -@Data -@Entity -@EqualsAndHashCode(callSuper = false) -@Table(name = SysConstant.TABLE_PRE+"cases_major_type") -public class CasesMajorType extends IdEntity{ - - private static final long serialVersionUID = 1L; - - - /** - * 内容分类id - * */ - - @Column(name = "major_id",length = 20) - private String majorId; - - - /** - * 案例id - * */ - @Column(name = "case_id",length = 20) -// @ManyToOne(optional = true) -// @JoinColumn(name = "id") - private String caseId; -} diff --git a/servers/boe-server-case/src/main/java/com/xboe/casetask/entity/DictItem.java b/servers/boe-server-case/src/main/java/com/xboe/casetask/entity/DictItem.java deleted file mode 100644 index 3eb502b4..00000000 --- a/servers/boe-server-case/src/main/java/com/xboe/casetask/entity/DictItem.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.xboe.casetask.entity; - -import lombok.Data; - -import javax.persistence.Transient; -import java.util.List; - -/** - * 字典条目 - * - */ -@Data -public class DictItem implements java.io.Serializable{ - - private static final long serialVersionUID = 1L; - - /**代码*/ - private String code; - - /**中文名称*/ - private String name; - - /**过滤条件,一般是code,用于字典关联,比如省市县*/ - private String filter; - - /**分组说明*/ - private String group; - - private String explanation; - - /**显示顺序*/ - private Integer norder; - - /**是否允许删除*/ - private Boolean deletable; - - /**是否已删除*/ - private Boolean deleted; - - /** - * 二级 - * */ - @Transient - private List list; - -} diff --git a/servers/boe-server-case/src/main/java/com/xboe/casetask/entity/User.java b/servers/boe-server-case/src/main/java/com/xboe/casetask/entity/User.java deleted file mode 100644 index 416fea07..00000000 --- a/servers/boe-server-case/src/main/java/com/xboe/casetask/entity/User.java +++ /dev/null @@ -1,223 +0,0 @@ -package com.xboe.casetask.entity; - -import java.time.LocalDate; -import java.time.LocalDateTime; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.Table; -import javax.persistence.Transient; - -import com.fasterxml.jackson.annotation.JsonFormat; -import com.xboe.core.SysConstant; -import com.xboe.core.orm.IdEntity; - -import lombok.Data; -import lombok.EqualsAndHashCode; - -/** - * 用户信息表 - * 存储所有的用户信息,原表中的部分信息 - */ -@Data -@EqualsAndHashCode(callSuper = false) -@Entity -@Table(name = SysConstant.TABLE_PRE + "user") -public class User extends IdEntity { - private static final long serialVersionUID = 1L; - - /** - * 旧系统id - */ - @Column(name = "sys_id", length = 36) - private String sysId; - - /** - * 旧系统机构id - */ - @Column(name = "sys_depart_id", length = 36) - private String sysDepartId; - - /** - * 姓名 - */ - @Column(name = "name", length = 30) - private String name; - - /** - * 员工编号 - */ - @Column(name = "user_no", length = 30) - private String userNo; - - /** - * 性别 1:男 2:女 - */ - @Column(name = "gender", length = 1) - private Integer gender; - - /** - * 生日 - */ - @Column(name = "birthday") - @JsonFormat(pattern = "yyyy-MM-dd") - private LocalDate birthday; - - /** - * 身份证号 - */ - @Column(name = "id_number", length = 18) - private String idNumber; - - /** - * 手机号 - */ - @Column(name = "mobile_no", length = 11) - private String mobileNo; - - /** - * 家庭电话 - */ - @Column(name = "home_phone_no", length = 50) - private String homePhoneNo; - - /** - * 国籍 - */ - @Column(name = "nationality", length = 50) - private String nationality; - - /** - * 毕业院校 - */ - @Column(name = "graduated_from", length = 50) - private String graduatedFrom; - - /** - * 毕业专业 - */ - @Column(name = "graduated_major", length = 50) - private String graduatedMajor; - - /** - * 最高学历 - */ - @Column(name = "highest_education", length = 50) - private String highestEducation; - - /** - * 办公电话 - */ - @Column(name = "telephone_no", length = 50) - private String telephoneNo; - - /** - * 职务 - */ - @Column(name = "duty", length = 50) - private String duty; - - /** - * 职级 - */ - @Column(name = "rank", length = 50) - private String rank; - - /** - * 描述 - */ - @Column(name = "description") - private String description; - - /** - * 所在公司 - */ - @Column(name = "company_id", length = 36) - private String companyId; - - /** - * 所在部门 - */ - @Column(name = "depart_id", length = 18) - private String departId; - - @Transient - private String departName; - - - /** - * 所在域 - */ - @Column(name = "domain_id", length = 36) - private String domainId; - - /** - * 扩展字段,多租户系统的标识值 - */ - @Column(name = "sass_id", length = 18) - private String sassId; - - /** - * 用户类型,1表学员,2表教师,3表管理员 - * 该字段暂用于表示是否前台管理员 - */ - @Column(name = "user_type", length = 1) - private Integer userType; - - /** - * 学习总时长 - */ - @Column(name = "study_total", length = 11) - private Integer studyTotal; - - /** - * boe的时长,和系统时长单独保存 - */ - @Column(name = "learning_Duration", length = 11) - private Integer learningDuration; - - /** - * 最近一次登录时间 - */ - @Column(name = "last_login_at") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private LocalDateTime lastLoginAt; - - /** - * 最近一次登录IP - */ - @Column(name = "last_login_ip", length = 30) - private String lastLoginIp; - - /** - * 最近一次登录MAC地址 - */ - @Column(name = "last_login_mac", length = 30) - private String lastLoginMac; - - /** - * 最近一次操作时间 - */ - @Column(name = "last_action_at") - @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private LocalDateTime lastActionAt; - - /** - * 最近一次操作IP - */ - @Column(name = "last_action_ip", length = 30) - private String lastActionIp; - - /** - * 最近一次操作MAC地址 - */ - @Column(name = "last_action_mac", length = 30) - private String lastActionMac; - - /** - * 在线状态; - * 0:离线,1:在线 - */ - @Column(name = "online", length = 1) - private Boolean online; -} diff --git a/servers/boe-server-case/src/main/java/com/xboe/casetask/service/ICaseSyncLogService.java b/servers/boe-server-case/src/main/java/com/xboe/casetask/service/ICaseSyncLogService.java deleted file mode 100644 index 8be53751..00000000 --- a/servers/boe-server-case/src/main/java/com/xboe/casetask/service/ICaseSyncLogService.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.xboe.casetask.service; - -import com.xboe.casetask.entity.CaseSyncLog; -import com.xboe.common.PageList; - -public interface ICaseSyncLogService{ - - void save(CaseSyncLog log); - - - PageList findPage(int pageIndex,int pageSize); - - void clearLogs(); -} diff --git a/servers/boe-server-case/src/main/java/com/xboe/casetask/service/ICaseSyncService.java b/servers/boe-server-case/src/main/java/com/xboe/casetask/service/ICaseSyncService.java deleted file mode 100644 index 8bf05c5c..00000000 --- a/servers/boe-server-case/src/main/java/com/xboe/casetask/service/ICaseSyncService.java +++ /dev/null @@ -1,109 +0,0 @@ -package com.xboe.casetask.service; - -import java.util.List; -import java.util.Map; - -import com.xboe.casetask.entity.CaseSyncCustomize; -import com.xboe.casetask.entity.CaseSyncRecord; -import com.xboe.casetask.entity.Cases; -import com.xboe.casetask.entity.DictItem; -import com.xboe.casetask.entity.User; -import com.xboe.common.PageList; - -public interface ICaseSyncService { - - /** - * 获取用户的id - * @param userNo - * @return - */ - String getIdByUserNo(String userNo); - - /** - * 根据工号,查询用户信息 - * @param userNo - * @return - */ - User getByUserNo(String userNo); - - /** - * 获得所有的组织领域 - * @return - */ - Map getOrgDomains(); - - List findDictItemByName(String name); - - List findDictItemByNames(String name1,String name2); - - DictItem getDictItemByCode(String code); - - /** - * 获取专业分类 - * @return - */ - Map getMajorTypes(); - - /** - * 根据审批单号查询案例信息 - * @param approvalNumber - * @return - */ - Cases getByApprovalNumber(String approvalNumber); - - /** - * 根据单号得到案例的id - * @param approvalNumber - * @return - */ - String getIdByApprovalNumber(String approvalNumber); - - /** - * 保存案例信息 - * @param records - */ -// void saveCase(List records); - - /** - * 单独的同步保存 - * @param csr - */ - void saveCase(CaseSyncRecord csr); - - /** - * 保存记录 - * @param record - */ - void saveRecord(CaseSyncRecord record); - - void deleteRecord(String id); - - /** - * 更新同步记录 - * @param id - * @param status - * @param error - */ - void updateRecord(String id,int status,String error); - - /** - * 查询案例的同步记录 - * @param pageIndex - * @param pageSize - * @return - */ - PageList findPage(int pageIndex,int pageSize,CaseSyncRecord record); - - /** - * 保存用户的配置 - * @param customize - */ - void saveCaseSyncCustomize(CaseSyncCustomize customize); - - /** - * 通过审核批单号查询用户定义配置 - * @param approvalNumber - * @return - */ - CaseSyncCustomize getLastCustomizeByApprovalNumber(String approvalNumber); -} diff --git a/servers/boe-server-case/src/main/java/com/xboe/casetask/service/impl/CaseSyncLogServiceImpl.java b/servers/boe-server-case/src/main/java/com/xboe/casetask/service/impl/CaseSyncLogServiceImpl.java deleted file mode 100644 index 3234c54d..00000000 --- a/servers/boe-server-case/src/main/java/com/xboe/casetask/service/impl/CaseSyncLogServiceImpl.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.xboe.casetask.service.impl; - -import javax.annotation.Resource; -import javax.transaction.Transactional; - -import org.springframework.stereotype.Service; - -import com.xboe.casetask.dao.CaseSyncLogDao; -import com.xboe.casetask.entity.CaseSyncLog; -import com.xboe.casetask.service.ICaseSyncLogService; -import com.xboe.common.OrderCondition; -import com.xboe.common.PageList; -import com.xboe.core.orm.FieldFilters; - -@Service -public class CaseSyncLogServiceImpl implements ICaseSyncLogService{ - - @Resource - CaseSyncLogDao dao; - - @Override - @Transactional - public void save(CaseSyncLog log) { - dao.save(log); - - } - - @Override - public PageList findPage(int pageIndex, int pageSize) { - - return dao.findPage(pageIndex, pageSize,OrderCondition.desc("id")); - } - - @Override - @Transactional - public void clearLogs() { - //dao.deleteByField("1",1); - dao.deleteByFilter(FieldFilters.eq("1","1")); - } - -} diff --git a/servers/boe-server-case/src/main/java/com/xboe/casetask/service/impl/CaseSyncServiceImpl.java b/servers/boe-server-case/src/main/java/com/xboe/casetask/service/impl/CaseSyncServiceImpl.java deleted file mode 100644 index 0d403c93..00000000 --- a/servers/boe-server-case/src/main/java/com/xboe/casetask/service/impl/CaseSyncServiceImpl.java +++ /dev/null @@ -1,361 +0,0 @@ -package com.xboe.casetask.service.impl; - -import java.time.LocalDateTime; -import java.util.List; -import java.util.Map; - -import javax.annotation.Resource; -import javax.transaction.Transactional; - -import org.apache.commons.lang3.StringUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import com.xboe.casetask.dao.CaseSyncCustomizeDao; -import com.xboe.casetask.dao.CaseSyncRecordDao; -import com.xboe.casetask.dao.CasesDao; -import com.xboe.casetask.dao.CasesMajorTypeDao; -import com.xboe.casetask.dao.UserDao; -import com.xboe.casetask.entity.CaseSyncCustomize; -import com.xboe.casetask.entity.CaseSyncRecord; -import com.xboe.casetask.entity.Cases; -import com.xboe.casetask.entity.CasesMajorType; -import com.xboe.casetask.entity.DictItem; -import com.xboe.casetask.entity.User; -import com.xboe.casetask.service.ICaseSyncService; -import com.xboe.common.OrderCondition; -import com.xboe.common.PageList; -import com.xboe.core.event.IEventDataSender; -import com.xboe.core.orm.FieldFilters; -import com.xboe.core.orm.QueryBuilder; -import com.xboe.core.orm.UpdateBuilder; - -@Service -public class CaseSyncServiceImpl implements ICaseSyncService{ - - @Resource - private CasesDao caseDao; - - @Resource - private CasesMajorTypeDao majorDao; - - @Resource - private CaseSyncRecordDao recordDao; - - @Resource - private CaseSyncCustomizeDao customizeDao; - - @Resource - private UserDao userDao; - - @Autowired(required = false) - private IEventDataSender eventSender; - -// @Override -// @Transactional -// public void saveCase(List records) { -// //用于控制重复的记录 -// Set hasNumber=new HashSet<>(); -// for(CaseSyncRecord csr : records) { -// if(csr.getStatus()==0) { -// if(hasNumber.contains(csr.getApprovalNumber())) { -// continue; -// } -// hasNumber.add(csr.getApprovalNumber()); -// -// String hasId=getIdByApprovalNumber(csr.getApprovalNumber()); -// if(StringUtils.isNotBlank(hasId)){ -// //已经存在,不再更新 -// continue; -// } -// -// Cases c=new Cases(); -// c.setTitle(csr.getCaseName());//设置标题 -// -// c.setFileName(csr.getAttachmentName()); -// c.setApprovalNumber(csr.getApprovalNumber()); -// c.setAuthorId(csr.getAuthorId()); -// c.setAuthorName(csr.getAuthorName()); -// c.setCaseChannel(csr.getCaseChannel()); -// c.setCaseFlow(csr.getCaseFlow()); -// c.setCaseOtherContributor(csr.getCaseOtherContributor()); -// c.setCaseOwner(csr.getCaseOwner()); -// c.setCaseOwnerDepartment(csr.getCaseOwnerDepartment()); -// c.setCaseOwnerOrg(csr.getCaseOwnerOrg()); -// c.setCaseOwnerPhone(csr.getCaseOwnerPhone()); -// c.setCaseScope(csr.getCaseScope()); -// c.setCaseSpecialtySequence(csr.getCaseSpecialtySequence()); -// c.setCaseTheme(csr.getCaseTheme()); -// c.setCaseThemeDescription(csr.getCaseThemeDescription()); -// c.setCaseType(csr.getCaseType()); -// c.setCaseType1(csr.getCaseType1()); -// c.setCaseType2(csr.getCaseType2()); -// c.setCaseValue(csr.getCaseValue()); -// c.setConfidentialityLevel(csr.getConfidentialityLevel()); -// c.setContactNumber(csr.getContactNumber()); -// c.setContent(""); -// c.setDepartment(csr.getDepartment()); -// c.setDrafter(csr.getDrafter()); -// c.setDraftingTime(csr.getDraftingTime()); -// c.setEmail(csr.getEmail()); -// c.setEndTime(csr.getEndTime()); -// c.setFileName(csr.getAttachmentName()); -// c.setFilePath(csr.getFilePath()); -// c.setIsLeadershipPlan(csr.getIsLeadershipPlan()); -// c.setKeyword1(csr.getKeyword1()); -// c.setKeyword2(csr.getKeyword2()); -// c.setKeyword3(csr.getKeyword3()); -// c.setKeyword4(csr.getKeyword4()); -// c.setKeyword5(csr.getKeyword5()); -// c.setReaders(csr.getReaders()); -// c.setSummary(csr.getCaseSummary()); -// -// // -// c.setOrgDomain(csr.getOrgDomainId()); -// c.setOrgDomainParent(csr.getOrgDomainParentId()); -// c.setMajorType(csr.getMajorTypeId()); -// //设置创建时间是endtime对应的时间 -// c.setSysCreateTime(csr.getEndTime()); -// //默认值 -// c.setSysCreateAid(csr.getAuthorId()); -// c.setSysCreateBy(csr.getAuthorName()); -// c.setSysUpdateBy(csr.getAuthorName()); -// c.setComments(0); -// c.setBreCommend(0); -// c.setFavorites(0); -// c.setPraises(0); -// c.setShares(0); -// c.setTopTime(null); -// c.setViews(0); -// c.setRecommendTime(null); -// c.setIsTop(false); -// c.setCoverUrl(""); -// c.setDeleted(false); -// //通过字典关系 ,找到上级的名称 ,加进去 -// caseDao.save(c); -// if(csr.getMajorTypeIdList()!=null && !csr.getMajorTypeIdList().isEmpty()) { -// for(String s : csr.getMajorTypeIdList()) { -// CasesMajorType cmt=new CasesMajorType(); -// cmt.setCaseId(c.getId()); -// cmt.setMajorId(s); -// majorDao.save(cmt); -// } -// } -// recordDao.updateFieldById(csr.getId(), "caseId", c.getId()); -// -// } -// } -// } - - @Override - @Transactional - public void saveCase(CaseSyncRecord csr) { - //用于控制重复的记录 - if(csr.getStatus()==0) { - String hasId=getIdByApprovalNumber(csr.getApprovalNumber()); - if(StringUtils.isNotBlank(hasId)){ - //已经存在,不再更新 - return; - } - - Cases c=new Cases(); - c.setTitle(csr.getCaseName());//设置标题 - - c.setFileName(csr.getAttachmentName()); - c.setApprovalNumber(csr.getApprovalNumber()); - c.setAuthorId(csr.getAuthorId()); - c.setAuthorName(csr.getAuthorName()); - c.setCaseChannel(csr.getCaseChannel()); - c.setCaseFlow(csr.getCaseFlow()); - c.setCaseOtherContributor(csr.getCaseOtherContributor()); - c.setCaseOwner(csr.getCaseOwner()); - c.setCaseOwnerDepartment(csr.getCaseOwnerDepartment()); - c.setCaseOwnerOrg(csr.getCaseOwnerOrg()); - c.setCaseOwnerPhone(csr.getCaseOwnerPhone()); - c.setCaseScope(csr.getCaseScope()); - c.setCaseSpecialtySequence(csr.getCaseSpecialtySequence()); - c.setCaseTheme(csr.getCaseTheme()); - c.setCaseThemeDescription(csr.getCaseThemeDescription()); - c.setCaseType(csr.getCaseType()); - c.setCaseType1(csr.getCaseType1()); - c.setCaseType2(csr.getCaseType2()); - c.setCaseValue(csr.getCaseValue()); - c.setConfidentialityLevel(csr.getConfidentialityLevel()); - c.setContactNumber(csr.getContactNumber()); - c.setContent(""); - c.setDepartment(csr.getDepartment()); - c.setDrafter(csr.getDrafter()); - c.setDraftingTime(csr.getDraftingTime()); - c.setEmail(csr.getEmail()); - c.setEndTime(csr.getEndTime()); - c.setFileName(csr.getAttachmentName()); - c.setFilePath(csr.getFilePath()); - c.setIsLeadershipPlan(csr.getIsLeadershipPlan()); - c.setKeyword1(csr.getKeyword1()); - c.setKeyword2(csr.getKeyword2()); - c.setKeyword3(csr.getKeyword3()); - c.setKeyword4(csr.getKeyword4()); - c.setKeyword5(csr.getKeyword5()); - c.setReaders(csr.getReaders()); - c.setSummary(csr.getCaseSummary()); - - // - c.setOrgDomain(csr.getOrgDomainId()); - c.setOrgDomainParent(csr.getOrgDomainParentId()); - c.setMajorType(csr.getMajorTypeId()); - //设置创建时间是endtime对应的时间 - c.setSysCreateTime(csr.getEndTime()); - //默认值 - c.setSysCreateAid(csr.getAuthorId()); - c.setSysCreateBy(csr.getAuthorName()); - c.setSysUpdateBy(csr.getAuthorName()); - c.setComments(0); - c.setBreCommend(0); - c.setFavorites(0); - c.setPraises(0); - c.setShares(0); - c.setTopTime(null); - c.setViews(0); - c.setRecommendTime(null); - c.setIsTop(false); - c.setCoverUrl(""); - c.setDeleted(false); - //通过字典关系 ,找到上级的名称 ,加进去 - caseDao.save(c); - if(csr.getMajorTypeIdList()!=null && !csr.getMajorTypeIdList().isEmpty()) { - for(String s : csr.getMajorTypeIdList()) { - CasesMajorType cmt=new CasesMajorType(); - cmt.setCaseId(c.getId()); - cmt.setMajorId(s); - majorDao.save(cmt); - } - } - recordDao.updateFieldById(csr.getId(), "caseId", c.getId()); - if(eventSender!=null) { - eventSender.send("发布案例", "SyncCase",c.getTitle(), c.getId(), "3",c.getTitle(),c.getSysCreateAid(), c.getSysCreateBy(),""); - }else { - System.out.print("未配置事件消息发送的实现"); - } - - } - - } - - @Override - @Transactional - public void saveRecord(CaseSyncRecord record) { - record.setSyncTime(LocalDateTime.now()); - recordDao.save(record); - } - - @Override - @Transactional - public void updateRecord(String id, int status, String error) { - recordDao.updateMultiFieldById(id,UpdateBuilder.create("status", status),UpdateBuilder.create("errorInfo", error)); - } - - @Override - public Map getOrgDomains() { - - return recordDao.getOrgDomains(); - } - - @Override - public List findDictItemByName(String name) { - - return recordDao.findDictItemByName(name); - } - - @Override - public DictItem getDictItemByCode(String code) { - - return recordDao.findDictItemByCode(code); - } - - @Override - public Map getMajorTypes() { - - return recordDao.getMajorTypes(); - } - - @Override - public Cases getByApprovalNumber(String approvalNumber) { - Cases c=caseDao.findOne(FieldFilters.eq("approvalNumber", approvalNumber)); - return c; - } - - @Override - public String getIdByUserNo(String userNo) { - Object id=userDao.findField("id",FieldFilters.eq("userNo", userNo)); - return (String)id; - } - - @Override - public String getIdByApprovalNumber(String approvalNumber) { - Object id=caseDao.findField("id",FieldFilters.eq("approvalNumber", approvalNumber),FieldFilters.eq("deleted", false)); - return (String)id; -// List list =caseDao.findListField("id", FieldFilters.eq("approvalNumber", approvalNumber)); -// if(list!=null && !list.isEmpty()) { -// return list.get(0).toString(); -// }else { -// return null; -// } - } - - @Override - public PageList findPage(int pageIndex, int pageSize, CaseSyncRecord record) { - QueryBuilder query=QueryBuilder.from(CaseSyncRecord.class); - query.setPageIndex(pageIndex); - query.setPageSize(pageSize); - query.addOrder(OrderCondition.desc("id")); - if(record!=null) { - if(StringUtils.isNotBlank(record.getCaseName())) { - query.addFilter(FieldFilters.like("caseName", record.getCaseName())); - } - if(record.getStatus()!=null) { - query.addFilter(FieldFilters.eq("status", record.getStatus())); - } - //特定的需求过滤 - if(StringUtils.isNotBlank(record.getErrorInfo())) { - query.addFilter(FieldFilters.ne("errorInfo", record.getErrorInfo())); - } - } - - return recordDao.findPage(query.builder()); - } - - @Override - @Transactional - public void saveCaseSyncCustomize(CaseSyncCustomize customize) { - customizeDao.save(customize); - } - - @Override - @Transactional - public CaseSyncCustomize getLastCustomizeByApprovalNumber(String approvalNumber) { - List list=customizeDao.findList(1,OrderCondition.desc("id"),FieldFilters.eq("approvalNumber", approvalNumber)); - if(!list.isEmpty()) { - return list.get(0); - } - return null; - } - - @Override - @Transactional - public void deleteRecord(String id) { - recordDao.deleteById(id); - } - - @Override - public List findDictItemByNames(String name1, String name2) { - // TODO Auto-generated method stub - return recordDao.findDictItemByName(name1, name2); - } - - @Override - public User getByUserNo(String userNo) { - User user=userDao.findOne(FieldFilters.eq("userNo", userNo)); - return user; - } - -} diff --git a/servers/boe-server-case/src/main/java/com/xboe/stat/EventDataSender.java b/servers/boe-server-case/src/main/java/com/xboe/stat/EventDataSender.java deleted file mode 100644 index 1882b8a7..00000000 --- a/servers/boe-server-case/src/main/java/com/xboe/stat/EventDataSender.java +++ /dev/null @@ -1,85 +0,0 @@ -package com.xboe.stat; - -import java.util.HashMap; -import java.util.Map; - -import javax.servlet.http.HttpServletRequest; - -import org.apache.commons.lang3.StringUtils; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Component; - -import com.fasterxml.jackson.databind.ObjectMapper; -import com.xboe.core.SysConstant; -import com.xboe.core.api.TokenProxy; -import com.xboe.core.event.IEventDataSender; -import com.xboe.core.utils.OkHttpUtil; -import com.xboe.standard.BaseConstant; - -import lombok.extern.slf4j.Slf4j; - -/** - * 事件数据发送实现,如果是云环境,只需要修改此类的实现就可以了 - * @author seastar - * - */ -@Slf4j -@Component -public class EventDataSender implements IEventDataSender{ - - @Autowired - private OkHttpUtil okHttpUtil; - - @Autowired - private HttpServletRequest request; - - @Override - public void send(String title, String eventKey, String content, String objId, String objType, String objInfo, - String aid, String aname,String author) { - String statBaseUrl=SysConstant.getConfigValue("xboe.stat.base.url"); - if(StringUtils.isBlank(statBaseUrl)) { - log.error("发送事件失败:未配置【xboe.stat.base.url】的值"); - return; - } - String urlPre="/xboe/m/stat/event/send"; - //案例同步不需要token - if(eventKey.equals("SyncCase")) { - urlPre ="/inner/stat/event/send"; - } - - final String url = statBaseUrl + urlPre; - Map params = new HashMap<>(); - params.put("title", title); - params.put("source", "all"); - params.put("content", content); - params.put("objId", objId); - params.put("key", eventKey); - params.put("objType", objType); - params.put("objInfo", objInfo); - params.put("aid", aid); - params.put("aname", aname); - params.put("parameters",""); - String token = TokenProxy.getToken(request); - //最后采用异常发送,不影响当前进程 - - new Thread(()->{ - try { - ObjectMapper mapper=new ObjectMapper(); - String json =mapper.writeValueAsString(params); - //String[] headers=new String[] {"token",token}; - String[] headers=new String[] {BaseConstant.HTTP_ACCESS_TOKEN,token}; - - String responseStr = okHttpUtil.doPostJson(url, json,headers); - if(responseStr.indexOf("\"status\":200")==-1) { - log.error("发送事件失败:"+responseStr); - log.info("【发送的token】"+headers[0]+": "+headers[1]); - } - }catch(Exception e) { - log.error("发送事件错误",e); - } - }).start(); - - } - - -} diff --git a/servers/boe-server-case/src/main/resources/application-dev.properties b/servers/boe-server-case/src/main/resources/application-dev.properties deleted file mode 100644 index 4826ff29..00000000 --- a/servers/boe-server-case/src/main/resources/application-dev.properties +++ /dev/null @@ -1,32 +0,0 @@ -## datasource config -spring.datasource.driverClassName=com.mysql.jdbc.Driver -# spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver -spring.datasource.url=jdbc:mysql://127.0.0.1:3306/boeu_base?useSSL=false&useUnicode=true&characterEncoding=UTF8&zeroDateTimeBehavior=convertToNull -spring.datasource.username=root -spring.datasource.password=ENC(lAoFOYuc8CAypPtigTNLYg==) - -logging.level.org.hibernate.SQL=DEBUG -logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE - - - -## xboe config -xboe.api.cross_filter=true - -## 案例同步发事件的接口 -xboe.stat.base.url=http://127.0.0.1:9090 - - -## 案例接口配置,init 是否需要初始化 -xboe.case.sync.init=true -xboe.case.sync.api.url=https://csb-broker.boe.com.cn:8086/test -xboe.case.sync.api.name=BoeCaseQueryService -xboe.case.sync.api.version=1.0.0 -xboe.case.sync.api.method=POST -xboe.case.sync.api.ak=2fc434b249a9402baa070f4cf162bd01 -xboe.case.sync.api.sk=HSrZqDJfkQg2LmHP1uwOi5BOA2I= - -#加密盐 -#jasypt.encryptor.password=jasypt -jasypt.encryptor.algorithm=PBEWithMD5AndDES -jasypt.encryptor.iv-generator-classname=org.jasypt.iv.NoIvGenerator diff --git a/servers/boe-server-case/src/main/resources/application-pre.properties b/servers/boe-server-case/src/main/resources/application-pre.properties deleted file mode 100644 index 20b001fb..00000000 --- a/servers/boe-server-case/src/main/resources/application-pre.properties +++ /dev/null @@ -1,48 +0,0 @@ -## redis -spring.redis.database=3 -spring.redis.host=10.251.129.122 -spring.redis.password=qwert!W588 -spring.redis.port=6379 -## datasource config -spring.datasource.driverClassName=com.mysql.jdbc.Driver -# spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver -spring.datasource.url=jdbc:mysql://10.251.129.126:3306/boe_base?useSSL=false&useUnicode=true&characterEncoding=UTF8&zeroDateTimeBehavior=convertToNull -spring.datasource.username=admin -spring.datasource.password=boeRds01 - -logging.level.org.hibernate.SQL=ERROR -# logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE - -## 静态文件目录,默认是在static下面,以后独立到nginx下面配置 -spring.web.resources.static-locations=file:E:/Projects/BOE/java/static - -## xboe config -xboe.api.cross_filter=true - -## 上传相磁的路径配置 -xboe.upload.file.temp_path=/tmp -xboe.upload.file.save_path=/home/www/elearning/upload -xboe.upload.file.http_path=https://u.boe.com/upload - -## 外部接口调用地址 旧系统机构及用户数据接口 -xboe.externalinterface.url.system=http://127.0.0.1:9091 -xboe.old.base.url=https://u.boe.com - -## 案例同步发事件的接口 -xboe.stat.base.url=https://u.boe.com/statApi - -## 案例接口配置 -## 案例接口配置,init 是否需要初始化 -xboe.case.sync.init=false -xboe.case.sync.api.url=https://api-csb-broker.boe.com.cn:8086/test -xboe.case.sync.api.name=BoeCaseQueryService -xboe.case.sync.api.version=1.0.0 -xboe.case.sync.api.method=POST -xboe.case.sync.api.ak=62f60d4cde0c4e8aa08517081649fdb7 -xboe.case.sync.api.sk=Qg9sVwQI55vmU3/EQ0yPJJxU92E= - -#加密盐 -#jasypt.encryptor.password=jasypt -jasypt.encryptor.algorithm=PBEWithMD5AndDES -jasypt.encryptor.iv-generator-classname=org.jasypt.iv.NoIvGenerator - diff --git a/servers/boe-server-case/src/main/resources/application-test.properties b/servers/boe-server-case/src/main/resources/application-test.properties deleted file mode 100644 index 9ca55e7a..00000000 --- a/servers/boe-server-case/src/main/resources/application-test.properties +++ /dev/null @@ -1,32 +0,0 @@ -## datasource config -spring.jpa.show-sql = false -spring.jpa.hibernate.ddl-auto=none -spring.datasource.driverClassName=com.mysql.jdbc.Driver -# spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver -spring.datasource.url=jdbc:mysql://127.0.0.1:3306/boe_base?useSSL=false&useUnicode=true&characterEncoding=UTF8&zeroDateTimeBehavior=convertToNull -spring.datasource.username=boe_base -spring.datasource.password=ENC(MaC28GJw2JcbH8Lil0CrqSDTYxX49FJ0rxcmHH2pX0k=) - - - -## xboe config -xboe.api.cross_filter=true - -## 案例同步发事件的接口 -xboe.stat.base.url=https://u-pre.boe.com/statApi - - -## 案例接口配置 -## 案例接口配置,init 是否需要初始化 -xboe.case.sync.init=true -xboe.case.sync.api.url=https://csb-broker.boe.com.cn:8086/test -xboe.case.sync.api.name=BoeCaseQueryService -xboe.case.sync.api.version=1.0.0 -xboe.case.sync.api.method=POST -xboe.case.sync.api.ak=2fc434b249a9402baa070f4cf162bd01 -xboe.case.sync.api.sk=HSrZqDJfkQg2LmHP1uwOi5BOA2I= - -#加密盐 -#jasypt.encryptor.password=jasypt -jasypt.encryptor.algorithm=PBEWithMD5AndDES -jasypt.encryptor.iv-generator-classname=org.jasypt.iv.NoIvGenerator \ No newline at end of file diff --git a/servers/boe-server-case/src/main/resources/application.properties b/servers/boe-server-case/src/main/resources/application.properties deleted file mode 100644 index 25721cb4..00000000 --- a/servers/boe-server-case/src/main/resources/application.properties +++ /dev/null @@ -1,62 +0,0 @@ -spring.profiles.active=@profileActive@ -spring.application.name=boe-server-case -server.port=9093 -server.servlet.session.timeout=30m - - -server.servlet.encoding.charset=UTF-8 -server.servlet.encoding.enabled=true -server.servlet.encoding.force=true - -server.tomcat.uri-encoding=UTF-8 - - - -ok.http.connect-timeout=30 -ok.http.read-timeout=30 -ok.http.write-timeout=30 -# 连接池中整体的空闲连接的最大数量 -ok.http.max-idle-connections=200 -# 连接空闲时间最多为 300 秒 -ok.http.keep-alive-duration=300 - -#spring.jackson.locale= -#spring.jackson.date-format=yyyy-MM-dd HH:mm:ss -# spring.jackson.default-property-inclusion=NON_NULL -spring.jackson.time-zone=GMT+8 - -spring.servlet.multipart.max-file-size=1024MB -spring.servlet.multipart.max-request-size=1024MB - -## 静态文件目录,默认是在static下面,以后独立到nginx下面配置 -spring.mvc.static-path-pattern=/cdn/** - - -spring.redis.lettuce.pool.max-active=8 -spring.redis.lettuce.pool.min-idle=0 -spring.redis.lettuce.pool.max-idle=30 -spring.redis.lettuce.pool.max-wait=10000ms -spring.redis.lettuce.shutdown-timeout=100ms - -# 上传的临时目录,部署到服务器必须指定 -# spring.servlet.multipart.location= - -# jpa config -spring.jpa.database = MYSQL -spring.jpa.show-sql = false -# spring.jpa.properties.hibernate.cache.use_second_level_cache=true -# spring.jpa.properties.hibernate.cache.region.factory_class=org.hibernate.cache.ehcache.EhCacheRegionFactory -spring.jpa.hibernate.ddl-auto=none -spring.jpa.properties.hibernate.naming_strategy=org.hibernate.cfg.EJB3NamingStrategy -spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect -spring.jpa.database-platform=org.hibernate.dialect.MySQL5InnoDBDialect -#spring.transaction -# spring.jpa.properties.hibernate.allow_update_outside_transaction=true -# spring.jpa.properties.hibernate.current_session_context_class=org.springframework.orm.hibernate5.SpringSessionContext -spring.jpa.properties.hibernate.current_session_context_class=org.springframework.orm.hibernate5.SpringSessionContext - - -# 设置logback.xml位置 -logging.config=classpath:log/logback-@profileActive@.xml - - diff --git a/servers/boe-server-case/src/main/resources/aspose/aspose-cells-java-18.11.jar b/servers/boe-server-case/src/main/resources/aspose/aspose-cells-java-18.11.jar deleted file mode 100644 index 36f3ddc1..00000000 Binary files a/servers/boe-server-case/src/main/resources/aspose/aspose-cells-java-18.11.jar and /dev/null differ diff --git a/servers/boe-server-case/src/main/resources/aspose/aspose-words-15.8.0.jar b/servers/boe-server-case/src/main/resources/aspose/aspose-words-15.8.0.jar deleted file mode 100644 index c0e699fc..00000000 Binary files a/servers/boe-server-case/src/main/resources/aspose/aspose-words-15.8.0.jar and /dev/null differ diff --git a/servers/boe-server-case/src/main/resources/aspose/aspose.slides-15.9.0.jar b/servers/boe-server-case/src/main/resources/aspose/aspose.slides-15.9.0.jar deleted file mode 100644 index fc8ce82e..00000000 Binary files a/servers/boe-server-case/src/main/resources/aspose/aspose.slides-15.9.0.jar and /dev/null differ diff --git a/servers/boe-server-case/src/main/resources/aspose/license.xml b/servers/boe-server-case/src/main/resources/aspose/license.xml deleted file mode 100644 index ca95c8fb..00000000 --- a/servers/boe-server-case/src/main/resources/aspose/license.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - Aspose.Total for Java - Aspose.Words for Java - - Enterprise - 20991231 - 20991231 - 8bfe198c-7f0c-4ef8-8ff0-acc3237bf0d7 - - sNLLKGMUdF0r8O1kKilWAGdgfs2BvJb/2Xp8p5iuDVfZXmhppo+d0Ran1P9TKdjV4ABwAgKXxJ3jcQTqE/2IRfqwnPf8itN8aFZlV3TJPYeD3yWE7IT55Gz6EijUpC7aKeoohTb4w2fpox58wWoF3SNp6sK6jDfiAUGEHYJ9pjU= - - \ No newline at end of file diff --git a/servers/boe-server-case/src/main/resources/libs/httpsdk-1.0.0.jar b/servers/boe-server-case/src/main/resources/libs/httpsdk-1.0.0.jar deleted file mode 100644 index 12eb51c8..00000000 Binary files a/servers/boe-server-case/src/main/resources/libs/httpsdk-1.0.0.jar and /dev/null differ diff --git a/servers/boe-server-case/src/main/resources/log/logback-dev.xml b/servers/boe-server-case/src/main/resources/log/logback-dev.xml deleted file mode 100644 index 4a26a112..00000000 --- a/servers/boe-server-case/src/main/resources/log/logback-dev.xml +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - - - - - - - - - ${CONSOLE_LOG_PATTERN} - - - - - - ${log.path}/debug.log - - ${log.path}/%d{yyyy-MM, aux}/debug.%d{yyyy-MM-dd}.%i.log.gz - 50MB - 30 - - - %date [%thread] %-5level [%logger{50}] %file:%line - %msg%n - - - - - - ${log.path}/error.log - - ${log.path}/%d{yyyy-MM}/error.%d{yyyy-MM-dd}.%i.log.gz - 50MB - 30 - - - %date [%thread] %-5level [%logger{50}] %file:%line - %msg%n - - - ERROR - - - - - - - - diff --git a/servers/boe-server-case/src/main/resources/log/logback-pre.xml b/servers/boe-server-case/src/main/resources/log/logback-pre.xml deleted file mode 100644 index 9e408463..00000000 --- a/servers/boe-server-case/src/main/resources/log/logback-pre.xml +++ /dev/null @@ -1,55 +0,0 @@ - - - - - - - - - - - - - - ${CONSOLE_LOG_PATTERN} - - - - - - ${log.path}/debug.log - - ${log.path}/%d{yyyy-MM, aux}/debug.%d{yyyy-MM-dd}.%i.log.gz - 50MB - 30 - - - %date [%thread] %-5level [%logger{50}] %file:%line - %msg%n - - - - - - ${log.path}/error.log - - ${log.path}/%d{yyyy-MM}/error.%d{yyyy-MM-dd}.%i.log.gz - 50MB - 30 - - - %date [%thread] %-5level [%logger{50}] %file:%line - %msg%n - - - ERROR - - - - - - - - - diff --git a/servers/boe-server-case/src/main/resources/log/logback-pro.xml b/servers/boe-server-case/src/main/resources/log/logback-pro.xml deleted file mode 100644 index 9e408463..00000000 --- a/servers/boe-server-case/src/main/resources/log/logback-pro.xml +++ /dev/null @@ -1,55 +0,0 @@ - - - - - - - - - - - - - - ${CONSOLE_LOG_PATTERN} - - - - - - ${log.path}/debug.log - - ${log.path}/%d{yyyy-MM, aux}/debug.%d{yyyy-MM-dd}.%i.log.gz - 50MB - 30 - - - %date [%thread] %-5level [%logger{50}] %file:%line - %msg%n - - - - - - ${log.path}/error.log - - ${log.path}/%d{yyyy-MM}/error.%d{yyyy-MM-dd}.%i.log.gz - 50MB - 30 - - - %date [%thread] %-5level [%logger{50}] %file:%line - %msg%n - - - ERROR - - - - - - - - - diff --git a/servers/boe-server-case/src/main/resources/log/logback-test.xml b/servers/boe-server-case/src/main/resources/log/logback-test.xml deleted file mode 100644 index f2b97986..00000000 --- a/servers/boe-server-case/src/main/resources/log/logback-test.xml +++ /dev/null @@ -1,55 +0,0 @@ - - - - - - - - - - - - - - ${CONSOLE_LOG_PATTERN} - - - - - - ${log.path}/debug.log - - ${log.path}/%d{yyyy-MM, aux}/debug.%d{yyyy-MM-dd}.%i.log.gz - 50MB - 30 - - - %date [%thread] %-5level [%logger{50}] %file:%line - %msg%n - - - - - - ${log.path}/error.log - - ${log.path}/%d{yyyy-MM}/error.%d{yyyy-MM-dd}.%i.log.gz - 50MB - 30 - - - %date [%thread] %-5level [%logger{50}] %file:%line - %msg%n - - - ERROR - - - - - - - - - diff --git a/servers/boe-server-case/src/test/java/com/xboe/AttachmentUrlTest.java b/servers/boe-server-case/src/test/java/com/xboe/AttachmentUrlTest.java deleted file mode 100644 index 9e85443d..00000000 --- a/servers/boe-server-case/src/test/java/com/xboe/AttachmentUrlTest.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.xboe; - -public class AttachmentUrlTest { - -// public static String getNameStr(String name) { -// String first=name.replaceAll("\\(","("); -// int index1=first.indexOf("("); -// if(index1>0) { -// first=first.substring(0,index1); -// } -// return first; -// } -// -// public static void main(String[] args) throws Exception { -//// String fileUrl="http://bpm.boe.com.cn/portal/apps/com.awspaas.user.apps.showfj/temp/tylc07_boealfjdz/00002770-张玉欣-专利包质量基准.docx"; -//// int urlLast=fileUrl.lastIndexOf("/"); -//// -//// String urlName=fileUrl.substring(urlLast+1); -//// -//// fileUrl=fileUrl.substring(0, urlLast+1)+URLEncoder.encode(urlName, "UTF-8"); -//// System.out.println(fileUrl); -//// fileUrl=fileUrl.replaceAll("\\+","%20"); -//// System.out.println(fileUrl); -// -// String caseName="经营管理(一级、二级经营责任者撰写),战略预算(战略企划与执行、预算),投融资(投资管理、资金、股证)】,未匹配到专业分类【经营管理(一级、二级经营责任者撰写),战略预算(战略企划与执行、预算),投融资(投资管理、资金、股证)"; -// System.out.println(caseName.replaceAll("\\(","(")); -// System.out.println(AttachmentUrlTest.getNameStr(caseName)); -// //替换英文的括号为中文的括号 -// //caseName=caseName.replaceAll("(","("); -// -// -// -// } - - -}