server/dmvisit_admin/src/main/java/com/doumee/api/business/MemberController.java
@@ -109,7 +109,7 @@ } @ApiOperation("批量拉黑/冻结") @ApiOperation("批量拉黑") @GetMapping("/batchBlock") @RequiresPermissions("business:member:delete") public ApiResponse batchBlock(@RequestParam String ids) { @@ -118,10 +118,24 @@ for (String id : idArray) { idList.add(Integer.valueOf(id)); } memberService.batchBlock(idList); memberService.batchBlock(idList,2); return ApiResponse.success(null); } @ApiOperation("批量冻结") @GetMapping("/batchFreeze") @RequiresPermissions("business:member:delete") public ApiResponse batchFreeze(@RequestParam String ids) { String [] idArray = ids.split(","); List<Integer> idList = new ArrayList<>(); for (String id : idArray) { idList.add(Integer.valueOf(id)); } memberService.batchBlock(idList,1); return ApiResponse.success(null); } @ApiOperation("是否可拜访状态修改") @PostMapping("/updateCanVisitById") server/dmvisit_admin/src/main/java/com/doumee/api/system/SystemDictDataController.java
@@ -142,18 +142,18 @@ */ @ApiOperation(value = "劳务来访配置" ) @GetMapping("/getLaborConfigDTO") public ApiResponse<LaborConfigDTO> getLaborConfigDTO(){ public ApiResponse<VisitConfigDTO> getLaborConfigDTO(){ return ApiResponse.success(systemDictDataService.getLaborConfigDTO()); }; /** * 修改劳务来访配置 * @param miniProgrammeDTO * @param visitConfigDTO */ @ApiOperation(value = "修改劳务来访配置" ) @PostMapping("/updateLaborConfigDTO") public ApiResponse updateLaborConfigDTO(@RequestBody LaborConfigDTO miniProgrammeDTO){ systemDictDataService.updateLaborConfigDTO(miniProgrammeDTO); public ApiResponse updateLaborConfigDTO(@RequestBody VisitConfigDTO visitConfigDTO){ systemDictDataService.updateLaborConfigDTO(visitConfigDTO); return ApiResponse.success(null); }; } server/dmvisit_admin/src/main/resources/application.yml
@@ -67,7 +67,7 @@ compression: enabled: true mime-types: application/json port: 10013 port: 10028 tomcat: max-swallow-size: -1 servlet: server/dmvisit_service/src/main/java/com/doumee/core/erp/model/openapi/request/ApproveNoticeRequest.java
@@ -14,7 +14,7 @@ @ApiModel("访客申请审批结果通知请求信息") public class ApproveNoticeRequest extends BaseRequst { @ApiModelProperty(value = "审批记录唯一标识(ERP端ID)" ,example = "1") private Integer id; private String id; @ApiModelProperty(value = "审批结果 0-不通过 1-通过,默认 0" ,example = "1") private Integer status; @ApiModelProperty(value = "审核时间 yyyy-MM-dd HH:mm:ss" ) server/dmvisit_service/src/main/java/com/doumee/core/utils/Constants.java
@@ -34,6 +34,8 @@ //被拜访人信息校验方式(0手机号单独校验 1手机号和姓名组合校验) public static final String BEVISITED_USER_VALID = "BEVISITED_USER_VALID"; public static final String LW_BEVISITED_USER_VALID = "LW_BEVISITED_USER_VALID"; public static final String SELECT_DOORS_VISIT_REQUIRED = "SELECT_DOORS_VISIT_REQUIRED"; public static final String SELECT_DOORS_LW_REQUIRED = "SELECT_DOORS_LW_REQUIRED"; public static final String PROBLEM_LW_REQUIRED = "PROBLEM_LW_REQUIRED"; @@ -46,6 +48,16 @@ // 访客来访配置 public static final String VISIT_CONFIG = "VISIT_CONFIG"; public static final String MEMBER_IMG = "MEMBER_IMG"; //健康证配置 public static final String LW_HEALTH_CARD = "LW_HEALTH_CARD"; public static final String HEALTH_CARD = "HEALTH_CARD"; //答题说明 public static final String LW_DESCRIPTION = "LW_DESCRIPTION"; public static final String DESCRIPTION = "DESCRIPTION"; //答题主题 public static final String LW_THEME = "LW_THEME"; public static final String THEME = "THEME"; // 劳务来访配置 public static final String LABOR_CONFIG = "LABOR_CONFIG"; public static final String VISIT_EVENT_IMG = "VISIT_EVENT_IMG"; server/dmvisit_service/src/main/java/com/doumee/core/wx/wxPlat/WxPlatNotice.java
@@ -45,6 +45,10 @@ thing1 = "审核通过"; }else if(visits.getStatus()==3){ thing1 = "审核不通过"; }else if(visits.getStatus()==5){ thing1 = "设备授权成功"; }else if(visits.getStatus()==6){ thing1 = "设备授权未成功"; } // 添加模板数据 templateMessage.addData(new WxMpTemplateData("thing1", thing1)) server/dmvisit_service/src/main/java/com/doumee/dao/admin/request/MemberQuery.java
@@ -16,7 +16,7 @@ public class MemberQuery implements Serializable { @ApiModelProperty(value = "姓名/手机号/工号") private String keyWords; private String keyword; @ApiModelProperty(value = "是否有人脸 0 否 1 是") private Integer hasFace; @@ -52,4 +52,9 @@ @ApiModelProperty(value = "操作人员 ") private Integer createrId; @ApiModelProperty(value = "erp机构主键 ") private String erpOrgId; } server/dmvisit_service/src/main/java/com/doumee/dao/admin/request/VisitConfigDTO.java
@@ -18,35 +18,22 @@ @ApiModel("劳务来访配置") public class VisitConfigDTO { @ApiModelProperty(value = "来访预约方式 0否,1是") private Integer reservationWay; @ApiModelProperty(value = "参数对象") private VisitConfigParam visitConfigParam; @ApiModelProperty(value = "被访人校验方式 0手机号单独校验 1手机号和姓名组合校验") private Integer checkVisit; @ApiModelProperty(value = "劳务答题主题") private String theme = ""; @ApiModelProperty(value = "健康证是否必填 0=否;1=是") private Integer healthCard; @ApiModelProperty(value = "劳务答题说明") private String description = ""; @ApiModelProperty(value = "是否答题 0不需要,1需要" ) private Integer isAnswer; // /** // * 对象驼峰属性转下划线 // * @param object // * @return // * @throws JsonProcessingException // */ // public static String toUnderlineJSONString(Object object) throws JsonProcessingException { // ObjectMapper mapper = new ObjectMapper(); // mapper.setPropertyNamingStrategy(PropertyNamingStrategy.SNAKE_CASE); // mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); // String reqJson = mapper.writeValueAsString(object); // return reqJson; // } // // // public static <T> T toSnakeObject(String json, Class<T> clazz) throws IOException { // ObjectMapper mapper = new ObjectMapper(); // mapper.setPropertyNamingStrategy(PropertyNamingStrategy.SNAKE_CASE); // T reqJson = mapper.readValue(json, clazz); // return reqJson; // } @ApiModelProperty(value = "答题主题") private String theme; @ApiModelProperty(value = "答题说明") private String description; } server/dmvisit_service/src/main/java/com/doumee/dao/admin/response/MemberInfoDTO.java
@@ -9,6 +9,7 @@ import java.io.Serializable; import java.util.Date; import java.util.List; /** * @author T14 @@ -112,11 +113,16 @@ @TableField(exist = false) private Date visitsLastDate; @ApiModelProperty(value = "最后冻结时间") @ApiModelProperty(value = "最后冻结/拉黑时间") @TableField(exist = false) private Date userActionType1; private Date optTime; @ApiModelProperty(value = "证件类型 0身份证 1港澳证件 2护照", example = "1") private Integer idcardType; @ApiModelProperty(value = "访客公司名称") private String visitCompanyName; @ApiModelProperty(value = "门禁组名称") private List<String> roleNames; } server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Member.java
@@ -201,6 +201,10 @@ @ExcelColumn(name="ERP组织编码") private String erpOrgId; @ApiModelProperty(value = "访客公司名称") @ExcelColumn(name="访客公司名称") private String visitCompanyName; @ApiModelProperty(value = "组织名称") @TableField(exist = false) private String companyName; server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Visits.java
@@ -35,7 +35,7 @@ @ApiModelProperty(value = "创建时间") @ExcelColumn(name="创建时间") @JsonFormat(pattern = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date createDate; @ApiModelProperty(value = "更新人编码", example = "1") @@ -262,10 +262,10 @@ @TableField(exist = false) private String receptMemberDepartment; @ApiModelProperty(value = "门禁集合", example = "1") @ExcelColumn(name="门禁集合") @ApiModelProperty(value = "门禁组集合", example = "1") @ExcelColumn(name="门禁组集合") @TableField(exist = false) private List<Device> deviceList; private List<DeviceRole> deviceRoleList; @ApiModelProperty(value = "随访人员列表", example = "1") @ExcelColumn(name="随访人员列表") server/dmvisit_service/src/main/java/com/doumee/service/business/MemberService.java
@@ -61,7 +61,7 @@ */ void deleteByIdInBatch(List<Integer> ids); void batchBlock(List<Integer> ids); void batchBlock(List<Integer> ids,Integer type); /** * 主键更新 server/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberCardServiceImpl.java
@@ -289,11 +289,11 @@ queryWrapper.orderByDesc(MemberCard::getCreateDate); //是否是数字 boolean number = Validator.isNumber(pageWrap.getModel().getKeyWords()); boolean number = Validator.isNumber(pageWrap.getModel().getKeyword()); //是否包含中文 boolean b = Validator.hasChinese(pageWrap.getModel().getKeyWords()); boolean b = Validator.hasChinese(pageWrap.getModel().getKeyword()); //是否包含英文 boolean hasWord = ReUtil.contains(PatternPool.WORD, pageWrap.getModel().getKeyWords()); boolean hasWord = ReUtil.contains(PatternPool.WORD, pageWrap.getModel().getKeyword()); queryWrapper.leftJoin(Member.class,Member::getId,MemberCard::getMemberId) .leftJoin(Company.class,Company::getId,Member::getCompanyId); @@ -305,8 +305,8 @@ queryWrapper.like(Objects.nonNull(pageWrap.getModel().getCode()),MemberCard::getCode,pageWrap.getModel().getCode()) .eq(Objects.nonNull(pageWrap.getModel().getStatus()),MemberCard::getStatus,pageWrap.getModel().getStatus()) .eq(Objects.nonNull(pageWrap.getModel().getStatus()),MemberCard::getStatus,pageWrap.getModel().getStatus()) .like(number,Member::getPhone,pageWrap.getModel().getKeyWords()) .like((b||hasWord),Member::getName,pageWrap.getModel().getKeyWords()); .like(number,Member::getPhone,pageWrap.getModel().getKeyword()) .like((b||hasWord),Member::getName,pageWrap.getModel().getKeyword()); IPage<MemberCard> memberCardIPage = memberCardJoinMapper.selectJoinPage(page, MemberCard.class,queryWrapper); if(null != memberCardIPage && memberCardIPage.getRecords().size() > 0) { memberCardIPage.setRecords(getDataPackage(memberCardIPage)); server/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
@@ -197,7 +197,7 @@ } @Override public void batchBlock(List<Integer> ids) { public void batchBlock(List<Integer> ids,Integer type) { if (CollectionUtils.isEmpty(ids)) { return; } @@ -206,10 +206,28 @@ for (Integer id:ids) { member = memberMapper.selectById(id); if(!Objects.isNull(member)&&member.getStatus()==Constants.ZERO){ UserAction userAction=new UserAction(); userAction.setBeforeStatus(member.getStatus()); member.setStatus(Constants.TWO); member.setEditor(loginUserInfo.getId()); member.setEditDate(new Date()); memberMapper.updateById(member); userAction.setIsdeleted(Constants.ZERO); userAction.setCreateDate(new Date()); userAction.setCreator(loginUserInfo.getId()); if(Constants.equalsInteger(type,Constants.ONE)){ userAction.setType(Constants.ONE); userAction.setRemark("由【"+loginUserInfo.getUsername()+"】于【操作时间"+new Date()+"】,进行【冻结】"); } if(Constants.equalsInteger(type,Constants.TWO)){ userAction.setType(Constants.TWO); userAction.setRemark("由【"+loginUserInfo.getUsername()+"】于【操作时间"+new Date()+"】,进行【拉黑】"); } userAction.setMemberId(id+""); userActionJoinMapper.insert(userAction); } } /* memberMapper.deleteBatchIds(ids);*/ @@ -559,43 +577,6 @@ @Override public PageData<MemberInfoDTO> findMemberInfoPage(PageWrap<MemberQuery> pageWrap) { /* //是否是数字 boolean number = Validator.isNumber(pageWrap.getModel().getKeyWords()); //是否包含中文 boolean b = Validator.hasChinese(pageWrap.getModel().getKeyWords()); //是否包含英文 boolean hasWord = ReUtil.contains(PatternPool.WORD, pageWrap.getModel().getKeyWords());*/ /* IPage<Member> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); MPJLambdaWrapper<Member> queryWrapper = new MPJLambdaWrapper<>(); MemberQuery model = pageWrap.getModel(); Utils.MP.blankToNull(model); queryWrapper.leftJoin(Company.class,Company::getId,Member::getCompanyId) .leftJoin(DeviceRole.class,DeviceRole::getId,Member::getRoleId); *//* .leftJoin(MemberCard.class,MemberCard::getMemberId,Member::getId);*//* queryWrapper.selectAll(Member.class) .selectAs(Company::getName,MemberInfoDTO::getCompanyName) .selectAs(DeviceRole::getName,MemberInfoDTO::getRoleName) *//* .select("count(t3.id) as memberCardCount ");*//* .select(""); queryWrapper.in(Objects.nonNull(model.getCompanyIds()),Member::getCompanyId,model.getCompanyIds()) *//* .like(number,Member::getPhone,model.getKeyWords()) .like((b||hasWord),Member::getPhone,model.getKeyWords())*//* .and(StringUtils.isNotBlank(pageWrap.getModel().getKeyWords()),ms->ms.like(Member::getPhone,model.getKeyWords()) .or().like(Member::getName,model.getKeyWords()) .or().like(Member::getCode,model.getKeyWords())) .isNull(Constants.equalsInteger(model.getHasFace(),Constants.ZERO),Member::getFaceId) .isNotNull(Constants.equalsInteger(model.getHasFace(),Constants.ONE),Member::getFaceId) .eq(Objects.nonNull(model.getCanVisit()),Member::getCanVisit,model.getCanVisit()) .eq(Objects.nonNull(model.getStatus()),Member::getStatus,model.getStatus()); IPage<MemberInfoDTO> memberIPage = memberJoinMapper.selectJoinPage(page, MemberInfoDTO.class,queryWrapper); if (!CollectionUtils.isEmpty(memberIPage.getRecords())){ memberIPage.getRecords().forEach(s->s.setSex(IdcardUtil.getGenderByIdCard(s.getIdcardDecode()))); }*/ IPage<Member> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); MPJLambdaWrapper<Member> queryWrapper = new MPJLambdaWrapper<>(); @@ -603,22 +584,60 @@ queryWrapper.leftJoin(Company.class,Company::getId,Member::getCompanyId); queryWrapper.in(Objects.nonNull(pageWrap.getModel().getCompanyIds())&&pageWrap.getModel().getCompanyIds().size()>0, Member::getCompanyId,pageWrap.getModel().getCompanyIds()) .and(StringUtils.isNotBlank(pageWrap.getModel().getKeyWords()),ms->ms.like(Member::getPhone,pageWrap.getModel().getKeyWords()) .or().like(Member::getName,pageWrap.getModel().getKeyWords()) .or().like(Member::getCode,pageWrap.getModel().getKeyWords())) .isNull(Constants.equalsInteger(pageWrap.getModel().getHasFace(),Constants.ZERO),Member::getFaceId) .isNotNull(Constants.equalsInteger(pageWrap.getModel().getHasFace(),Constants.ONE),Member::getFaceId) .and(StringUtils.isNotBlank(pageWrap.getModel().getKeyword()),ms->ms .like(Member::getPhone,pageWrap.getModel().getKeyword()) .or().like(Member::getName,pageWrap.getModel().getKeyword()) .or().like(Member::getCode,pageWrap.getModel().getKeyword())) .isNull(!Objects.isNull(pageWrap.getModel().getHasFace())&&Constants.equalsInteger(pageWrap.getModel().getHasFace(),Constants.ZERO),Member::getFaceId) .isNotNull(!Objects.isNull(pageWrap.getModel().getHasFace())&&Constants.equalsInteger(pageWrap.getModel().getHasFace(),Constants.ONE),Member::getFaceId) .eq(Objects.nonNull(pageWrap.getModel().getCanVisit()),Member::getCanVisit,pageWrap.getModel().getCanVisit()) .eq(Objects.nonNull(pageWrap.getModel().getStatus()),Member::getCanVisit,pageWrap.getModel().getStatus()) .eq(Objects.nonNull(pageWrap.getModel().getStatus()),Member::getStatus,pageWrap.getModel().getStatus()) .eq(StringUtils.isNotBlank(pageWrap.getModel().getErpOrgId()),Member::getErpOrgId,pageWrap.getModel().getErpOrgId()) .eq(Member::getIsdeleted,Constants.ZERO) .eq(Member::getStatus,Constants.Status.ENABLE.getValue()) // .eq(Member::getStatus,Constants.Status.ENABLE.getValue()) .eq(Member::getType,Constants.memberType.internal) .orderByDesc(Member::getCreateDate); IPage<MemberInfoDTO> memberIPage = memberJoinMapper.selectJoinPage(page, MemberInfoDTO.class,queryWrapper); if(CollectionUtils.isNotEmpty(memberIPage.getRecords())){ //FTP文件访问前缀 String prefixUrl = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode() + systemDictDataBiz.queryByCode(Constants.FTP,Constants.MEMBER_IMG).getCode(); //门禁组信息 List<DeviceRole> deviceRoleList = deviceRoleMapper.selectList(new QueryWrapper<DeviceRole>().lambda() .select(DeviceRole::getId,DeviceRole::getName) .eq(DeviceRole::getIsdeleted,Constants.ZERO)); for (MemberInfoDTO memberInfoDTO:memberIPage.getRecords()) { //获得门禁组名称数组 memberInfoDTO.setRoleNames(this.dealRoleDatas(memberInfoDTO.getRoleId(),deviceRoleList)); //拼接前缀 if(StringUtils.isNotBlank(memberInfoDTO.getFaceImg())){ memberInfoDTO.setFaceImg(prefixUrl + memberInfoDTO.getFaceImg()); } if(StringUtils.isNotBlank(memberInfoDTO.getImgurl())){ memberInfoDTO.setImgurl(prefixUrl + memberInfoDTO.getImgurl()); } } } return PageData.from(memberIPage); } public List<String> dealRoleDatas(String roleIds,List<DeviceRole> deviceRoleList){ List<String> stringList = new ArrayList<>(); if(StringUtils.isNotBlank(roleIds)){ roleIds = roleIds.replace("[","").replace("]",""); List<String> ids = Arrays.asList(roleIds.split(",")); ids.forEach(i->{ DeviceRole deviceRole = deviceRoleList.stream().filter(m->m.getId().toString().equals(i)).findFirst().get(); if(!Objects.isNull(deviceRole)){ stringList.add(deviceRole.getName()); } }); } return stringList; } @Override public PageData<MemberInfoDTO> findVisitPage(PageWrap<MemberQuery> pageWrap) { @@ -627,19 +646,20 @@ queryWrapper.leftJoin(Company.class,Company::getId,Member::getCompanyId); queryWrapper.selectAll(Member.class) .selectAs(Company::getName,MemberInfoDTO::getCompanyName) .select(" (select count(v.id) from visits v where v.MEMBER_ID=t.id and v.ISDELETED=0) as visitsCount") .select(" (select STARTTIME from visits v where v.MEMBER_ID=t.id and v.ISDELETED=0 order by CREATE_DATE limit 1) as visitsLastDate"); .select(" (select count(v.id) from visits v where v.MEMBER_ID=t.id and v.ISDELETED=0 and v.status = 2 ) as visitsCount") .select(" (select STARTTIME from visits v where v.MEMBER_ID=t.id and v.ISDELETED=0 and v.status = 2 order by CREATE_DATE limit 1) as visitsLastDate"); queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getName()),Member::getName,pageWrap.getModel().getName()) .like(StringUtils.isNotBlank(pageWrap.getModel().getPhone()),Member::getPhone,pageWrap.getModel().getPhone()) .like(StringUtils.isNotBlank(pageWrap.getModel().getCompanyName()),Company::getName,pageWrap.getModel().getCompanyName()) .and(StringUtils.isNotBlank(pageWrap.getModel().getCompanyName()), ms->ms.like(Member::getVisitCompanyName,pageWrap.getModel().getCompanyName()) .or().like(Company::getName,pageWrap.getModel().getCompanyName())) .like(StringUtils.isNotBlank(pageWrap.getModel().getIdcardNo()),Member::getIdcardNo,pageWrap.getModel().getIdcardNo()) .eq(StringUtils.isNotBlank(pageWrap.getModel().getErpOrgId()),Member::getErpOrgId,pageWrap.getModel().getErpOrgId()) .eq(Objects.isNull(pageWrap.getModel().getStatus()),Member::getStatus,Constants.Status.ENABLE.getValue()) .eq(!Objects.isNull(pageWrap.getModel().getStatus()),Member::getStatus,pageWrap.getModel().getStatus()) .eq(Member::getType,Constants.memberType.visitor) .eq(Member::getIsdeleted,Constants.ZERO) .orderByDesc(Member::getCreateDate); IPage<MemberInfoDTO> memberIPage = memberJoinMapper.selectJoinPage(page, MemberInfoDTO.class,queryWrapper); return PageData.from(memberIPage); @@ -654,17 +674,18 @@ queryWrapper.leftJoin(Company.class,Company::getId,Member::getCompanyId); queryWrapper.selectAll(Member.class) .selectAs(Company::getName,MemberInfoDTO::getCompanyName) .select(" (select ua.CREATE_DATE from user_action ua where ua.MEMBER_ID=t.id and ua.ISDELETED=0 and ua.type=1 order by ua.CREATE_DATE limit 1) as userActionType1") .select(" (select uac.remark from user_action uac where uac.MEMBER_ID=t.id and uac.ISDELETED=0 and uac.type=1 order by uac.CREATE_DATE limit 1) as creatorName") /* .select(" (select count(v.id) from visits v where v.MEMBER_ID=t.id and v.ISDELETED=0) as visitsCount")*/ .select(" (select STARTTIME from visits v where v.MEMBER_ID=t.id and v.ISDELETED=0 order by CREATE_DATE limit 1) as visitsLastDate"); .select(" (select ua.CREATE_DATE from user_action ua where ua.MEMBER_ID=t.id and ua.ISDELETED=0 order by ua.CREATE_DATE desc limit 1) as optTime") .select(" (select s.REALNAME from user_action uac left join system_user s on uac.CREATOR = s.ID where uac.MEMBER_ID=t.id and uac.ISDELETED=0 order by uac.CREATE_DATE desc limit 1) as creatorName") .select(" (select STARTTIME from visits v where v.MEMBER_ID=t.id and v.ISDELETED=0 order by CREATE_DATE desc limit 1) as visitsLastDate"); queryWrapper.eq(Objects.nonNull(pageWrap.getModel().getCreaterId()),Member::getEditor,pageWrap.getModel().getCreaterId()); queryWrapper.eq(Objects.nonNull(pageWrap.getModel().getType()),Member::getType,pageWrap.getModel().getType()); queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getName()),Member::getName,pageWrap.getModel().getName()) .and(StringUtils.isNotBlank(pageWrap.getModel().getKeyWords()),ms->ms.like(Member::getPhone,pageWrap.getModel().getName()) queryWrapper .and(StringUtils.isNotBlank(pageWrap.getModel().getName()),ms->ms.like(Member::getPhone,pageWrap.getModel().getName()) .or().like(Member::getName,pageWrap.getModel().getName())) .like(StringUtils.isNotBlank(pageWrap.getModel().getCompanyName()),Company::getName,pageWrap.getModel().getCompanyName()) .and(StringUtils.isNotBlank(pageWrap.getModel().getCompanyName()), ms->ms.like(Company::getName,pageWrap.getModel().getCompanyName()) .or().like(Member::getVisitCompanyName,pageWrap.getModel().getCompanyName())) .like(StringUtils.isNotBlank(pageWrap.getModel().getIdcardNo()),Member::getIdcardNo,pageWrap.getModel().getIdcardNo()) .eq(Member::getStatus,Constants.Status.FREEZE.getValue()) .eq(Objects.nonNull(pageWrap.getModel().getCode()),Member::getCode,pageWrap.getModel().getCode()) @@ -813,7 +834,7 @@ .ne(Member::getType,Constants.memberType.visitor) ); //非访客用户 进行判断是否存在用户 if(Objects.isNull(member)&&!member.getType().equals(Constants.memberType.visitor)){ if(!Objects.isNull(member)&&!member.getType().equals(Constants.memberType.visitor)){ if(member.getIsdeleted() == Constants.ONE){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"用户已删除,请联系管理员"); } server/dmvisit_service/src/main/java/com/doumee/service/business/impl/ProblemLogServiceImpl.java
@@ -179,6 +179,7 @@ problemLog.setCreateDate(new Date()); problemLog.setIsdeleted(Constants.ZERO); problemLog.setStatus(Constants.ZERO); problemLog.setOpenid(finishAnswerDTO.getOpenId()); if(finishAnswerDTO.getUseType().equals(Constants.ZERO)&&StringUtils.isNotBlank(finishAnswerDTO.getUserId())){ Member member = memberMapper.selectById(finishAnswerDTO.getUserId()); if(Objects.isNull(member)){ server/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java
@@ -134,6 +134,7 @@ String erpId = startSendErpCheck(visits,visitMember); if(StringUtils.isNotBlank(erpId)){ visits.setErpId(erpId); visits.setStatus(Constants.VisitStatus.submitCheck); visitsMapper.updateById(visits); }else{ throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "对不起,发起拜访审批申请失败!"); @@ -484,9 +485,9 @@ || visits.getReceptMemberId() == null){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "对不起,信息填写不正确!"); } if(visits.getStarttime().getTime() < System.currentTimeMillis()){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "对不起,预约开始时间必须大于当前时间!");// } // if(visits.getStarttime().getTime() < System.currentTimeMillis()){ // throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "对不起,预约开始时间必须大于当前时间!");// // } if(visits.getEndtime().getTime() <= visits.getStarttime().getTime()){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "对不起,预约结束时间必须大于开始时间!");// } @@ -532,6 +533,7 @@ private void initWithVisitInfo(Visits visits) { if(CollectionUtils.isNotEmpty(visits.getWithUserList())){ for(Visits v :visits.getWithUserList()){ v.setBirthday(Constants.getBirthdyByCardNo(v.getIdcardNo())); v.setParentId(visits.getId()); v.setStarttime(visits.getStarttime()); v.setEndtime(visits.getEndtime()); @@ -542,7 +544,7 @@ v.setIdcardNo(DESUtil.encrypt(Constants.EDS_PWD, v.getIdcardNo()));//身份证号加密 v.setErpId(visits.getErpId()); v.setHkStatus(Constants.ZERO); v.setStatus(Constants.ZERO); v.setStatus(Constants.VisitStatus.submitCheck); } //批量插入数据 visitsMapper.insertBatchSomeColumn(visits.getWithUserList()); @@ -652,6 +654,7 @@ //随访人员信息处理 if(visits.getWithUserList()!= null && visits.getWithUserList().size()>0){ for(Visits model:visits.getWithUserList()){ model.setBirthday(Constants.getBirthdyByCardNo(model.getIdcardNo())); model.setStarttime(visits.getStarttime()); model.setEndtime(visits.getEndtime()); //校验随访人员填报数据合法性 @@ -678,6 +681,11 @@ if(StringUtils.isNotBlank(visits.getCarNos())&&!Constants.checkCarNo(visits.getCarNos())){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "对不起,车牌号【"+visits.getCarNos()+"】不合法,请核实后重试~"); } if(Constants.equalsInteger(Constants.ZERO, visits.getIdcardType())&&cardno.length()!=18 //&&!IdcardUtil.isValidCard(cardno) ){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "对不起,身份证号码有误,请核实后重试!"); } Member member = memberMapper.selectOne(new QueryWrapper<Member>().lambda() .eq(Member::getType,Constants.memberType.visitor) .eq(Member::getIdcardType,visits.getIdcardType()) @@ -689,6 +697,7 @@ member.setCreateDate(visits.getCreateDate()); member.setIsdeleted(Constants.ZERO); member.setIdcardNo(visits.getIdcardNo()); member.setBirthday(Constants.getBirthdyByCardNo(cardno)); member.setIdcardDecode(visits.getIdcardDecode()); member.setIdcardNo(DESUtil.encrypt(Constants.EDS_PWD, cardno));//身份证号加密 member.setIdcardDecode(Constants.getTuominStr(cardno));//脱敏手机号 @@ -704,6 +713,7 @@ member.setSex(Constants.getSexByCardNo(cardno)); member.setHkStatus(Constants.ZERO); member.setErpStatus(Constants.ZERO); member.setVisitCompanyName(visits.getCompanyName()); // 新增访客记录 addList.add(member); }else{ @@ -726,6 +736,7 @@ member.setSex(Constants.getSexByCardNo(cardno)); member.setHkStatus(Constants.ZERO); member.setErpStatus(Constants.ZERO); member.setVisitCompanyName(visits.getCompanyName()); // 更新访客信息, editList.add(member); } @@ -909,7 +920,7 @@ queryWrapper.selectAs(Member::getName,Visits::getReceptMemberName); queryWrapper.selectAs(Company::getName,Visits::getReceptMemberDepartment); queryWrapper.leftJoin(Member.class,Member::getId,Visits::getReceptMemberId); queryWrapper.leftJoin(Company.class,Company::getId,Member::getCompanyId); queryWrapper.leftJoin(Company.class,Company::getErpId,Member::getErpOrgId); queryWrapper.eq(Visits::getId,id); Visits result = visitsJoinMapper.selectJoinOne(Visits.class,queryWrapper); @@ -917,10 +928,10 @@ if(result!=null){ if(StringUtils.isNotBlank(result.getDoors())){ String[] doorList=result.getDoors().split(","); MPJLambdaWrapper<Device> deviceQuery = new MPJLambdaWrapper<>(); deviceQuery.in(Device::getId,doorList); List<Device> deviceList= deviceJoinMapper.selectList(deviceQuery); result.setDeviceList(deviceList); MPJLambdaWrapper<DeviceRole> deviceQuery = new MPJLambdaWrapper<>(); deviceQuery.in(DeviceRole::getId,doorList); List<DeviceRole> deviceRoleList= deviceRoleMapper.selectList(deviceQuery); result.setDeviceRoleList(deviceRoleList); } } @@ -1067,7 +1078,7 @@ } visitDetailVO.setWithVisitsList( visitsMapper.selectList(new QueryWrapper<Visits>().lambda() .select(Visits::getName,Visits::getPhone,Visits::getFaceImg,Visits::getImgurl,Visits::getIdcardDecode) .select(Visits::getName,Visits::getPhone,Visits::getFaceImg,Visits::getImgurl,Visits::getIdcardDecode,Visits::getStatus) .eq(Visits::getParentId,id))); return visitDetailVO; } server/dmvisit_service/src/main/java/com/doumee/service/business/impl/erp/ErpSyncServiceImpl.java
@@ -26,6 +26,7 @@ import com.doumee.core.utils.DateUtil; import com.doumee.core.utils.Utils; import com.doumee.core.utils.redis.RedisUtil; import com.doumee.core.wx.wxPlat.WxPlatNotice; import com.doumee.dao.business.*; import com.doumee.dao.business.join.CarEventJoinMapper; import com.doumee.dao.business.join.DeviceEventJoinMapper; @@ -108,6 +109,9 @@ @Autowired private ErpTool erpTool; @Autowired private WxPlatNotice wxPlatNotice; @Override @PostConstruct @@ -1053,11 +1057,16 @@ List<Visits> visitsList = visitsMapper.selectList(new QueryWrapper<Visits>().lambda().eq(Visits::getErpId,param.getId())); if(CollectionUtils.isNotEmpty(visitsList)){ visitsList.forEach(i->{ i.setStatus(param.getStatus().equals(Constants.ZERO)?Constants.VisitStatus.pass:Constants.VisitStatus.noPass); i.setStatus(!param.getStatus().equals(Constants.ZERO)?Constants.VisitStatus.pass:Constants.VisitStatus.noPass); i.setEndCheckDate(DateUtil.StringToDate(param.getApproveDate(),"yyyy-MM-dd HH:mm:ss")); i.setHkStatus(Constants.ZERO); i.setRemark("待同步安防平台"); visitsMapper.updateById(i); if(Objects.isNull(i.getParentId())){ wxPlatNotice.sendVisitAuditTemplateNotice(i, systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_PREFIX).getCode(), systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_AUDIT_VISIT).getCode()); } }); } }catch (BusinessException e){ server/dmvisit_service/src/main/java/com/doumee/service/business/impl/hksync/HkSyncVisitServiceImpl.java
@@ -13,6 +13,7 @@ import com.doumee.core.utils.DESUtil; import com.doumee.core.utils.DateUtil; import com.doumee.core.utils.ImageBase64Util; import com.doumee.core.wx.wxPlat.WxPlatNotice; import com.doumee.dao.business.CompanyMapper; import com.doumee.dao.business.DeviceRoleMapper; import com.doumee.dao.business.MemberMapper; @@ -29,10 +30,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.UUID; import java.util.*; /** * 海康访客业务Service实现 @@ -48,7 +46,8 @@ private SystemDictDataBiz systemDictDataBiz; @Autowired private DeviceRoleMapper deviceRoleMapper; @Autowired private WxPlatNotice wxPlatNotice; /** * 同步海康组织信息,根据erp同步组织结果,定时检查需要下发到海康的组织信息 */ @@ -79,6 +78,11 @@ String type = Constants.equalsInteger(c.getType(),Constants.ONE)?applyType:applyLwType; getUpdateModelByResponse(c,date,type,roleList,path); visitsMapper.updateById(c); if(Objects.isNull(c.getParentId())){ wxPlatNotice.sendVisitAuditTemplateNotice(c, systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_PREFIX).getCode(), systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_AUDIT_VISIT).getCode()); } } }catch (Exception e){ e.printStackTrace(); server/dmvisit_service/src/main/java/com/doumee/service/system/SystemDictDataService.java
@@ -115,11 +115,11 @@ * 劳务来访配置 * @return */ LaborConfigDTO getLaborConfigDTO(); VisitConfigDTO getLaborConfigDTO(); /** * 修改劳务来访配置 * @param miniProgrammeDTO */ void updateLaborConfigDTO(LaborConfigDTO miniProgrammeDTO); void updateLaborConfigDTO(VisitConfigDTO visitConfigDTO); } server/dmvisit_service/src/main/java/com/doumee/service/system/impl/SystemDictDataServiceImpl.java
@@ -27,6 +27,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import org.springframework.util.StringUtils; import java.util.Date; import java.util.List; @@ -130,62 +131,111 @@ @Override public VisitConfigDTO getVisitConfigDTO() { try { QueryWrapper<SystemDict> systemDictQuery = new QueryWrapper<>(); systemDictQuery.lambda() .eq(SystemDict::getDeleted,Boolean.FALSE) .eq(SystemDict::getCode,Constants.VISIT_CONFIG); SystemDict systemDict = systemDictMapper.selectOne(systemDictQuery); if (Objects.isNull(systemDict)){ throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"字典不存在"); } QueryWrapper<SystemDictData> wrapper = new QueryWrapper<>(); wrapper.lambda() .eq(SystemDictData::getDictId,systemDict.getId()); List<SystemDictData> systemDictDatas = systemDictDataMapper.selectList(wrapper); if (CollectionUtils.isEmpty(systemDictDatas)){ throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"字典值不存在"); } VisitConfigDTO visitConfigDTO = null; for (SystemDictData obj:systemDictDatas) { visitConfigDTO = new VisitConfigDTO(); visitConfigDTO.setVisitConfigParam(JSONObject.parseObject(obj.getCode(),VisitConfigParam.class)); visitConfigDTO.setDescription(obj.getRemark()); visitConfigDTO.setTheme(obj.getLabel()); } return visitConfigDTO; } catch (Exception e) { throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"字典值解析有误"); VisitConfigDTO visitConfigDTO = new VisitConfigDTO(); SystemDict systemDict = systemDictMapper.selectOne(new QueryWrapper<SystemDict>().lambda().eq(SystemDict::getCode,Constants.SYSTEM)); if(Objects.isNull(systemDict)){ throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"字典类不存在"); } List<SystemDictData> systemDictList = systemDictDataMapper.selectList( new QueryWrapper<SystemDictData>().lambda().eq(SystemDictData::getDictId,systemDict.getId())); if(!com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(systemDictList)){ throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"字典不存在"); } SystemDictData reservationWay = systemDictList.stream().filter(m->m.getLabel().equals(Constants.MDJ_VISIT_REQUIRED)).findFirst().get(); if(Objects.isNull(reservationWay)){ throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"访客来访预约方式 字典不存在"); } visitConfigDTO.setReservationWay(Integer.valueOf(reservationWay.getCode())); SystemDictData checkVisit = systemDictList.stream().filter(m->m.getLabel().equals(Constants.BEVISITED_USER_VALID)).findFirst().get(); if(Objects.isNull(checkVisit)){ throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"访客被访人校验方式 字典不存在"); } visitConfigDTO.setCheckVisit(Integer.valueOf(checkVisit.getCode())); SystemDictData healthCard = systemDictList.stream().filter(m->m.getLabel().equals(Constants.HEALTH_CARD)).findFirst().get(); if(Objects.isNull(healthCard)){ throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"访客健康证是否必填 字典不存在"); } visitConfigDTO.setHealthCard(Integer.valueOf(healthCard.getCode())); SystemDictData isAnswer = systemDictList.stream().filter(m->m.getLabel().equals(Constants.PROBLEM_VISIT_REQUIRED)).findFirst().get(); if(Objects.isNull(isAnswer)){ throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"访客是否需要答题 字典不存在"); } visitConfigDTO.setIsAnswer(Integer.valueOf(isAnswer.getCode())); SystemDictData theme = systemDictList.stream().filter(m->m.getLabel().equals(Constants.THEME)).findFirst().get(); if(Objects.isNull(theme)){ throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"访客答题主题 字典不存在"); } visitConfigDTO.setTheme(theme.getCode()); SystemDictData description = systemDictList.stream().filter(m->m.getLabel().equals(Constants.DESCRIPTION)).findFirst().get(); if(Objects.isNull(description)){ throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"访客答题说明 字典不存在"); } visitConfigDTO.setDescription(description.getCode()); return visitConfigDTO; } @Override public void updateVisitConfig(VisitConfigDTO miniProgrammeDTO) { public void updateVisitConfig(VisitConfigDTO visitConfigDTO) { if(Objects.isNull(visitConfigDTO) ||Objects.isNull(visitConfigDTO.getReservationWay()) ||Objects.isNull(visitConfigDTO.getCheckVisit()) ||Objects.isNull(visitConfigDTO.getHealthCard()) ||Objects.isNull(visitConfigDTO.getIsAnswer()) || StringUtils.isEmpty(visitConfigDTO.getTheme()) || StringUtils.isEmpty(visitConfigDTO.getDescription()) ){ throw new BusinessException(ResponseStatus.BAD_REQUEST); } SystemDict systemDict = systemDictMapper.selectOne(new QueryWrapper<SystemDict>().lambda().eq(SystemDict::getCode,Constants.SYSTEM)); if(Objects.isNull(systemDict)){ throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"字典类不存在"); } List<SystemDictData> systemDictList = systemDictDataMapper.selectList( new QueryWrapper<SystemDictData>().lambda().eq(SystemDictData::getDictId,systemDict.getId())); if(!com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(systemDictList)){ throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"字典不存在"); } QueryWrapper<SystemDict> systemDictQuery = new QueryWrapper<>(); systemDictQuery.lambda() .eq(SystemDict::getDeleted,Boolean.FALSE) .eq(SystemDict::getCode,Constants.VISIT_CONFIG); SystemDict systemDict = systemDictMapper.selectOne(systemDictQuery); SystemDictData reservationWay = systemDictList.stream().filter(m->m.getLabel().equals(Constants.MDJ_VISIT_REQUIRED)).findFirst().get(); if(Objects.isNull(reservationWay)){ throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"访客来访预约方式 字典不存在"); } reservationWay.setCode(visitConfigDTO.getReservationWay().toString()); if (Objects.isNull(systemDict)){ throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"字典不存在"); } QuerySystemDictDataDTO dictData = new QuerySystemDictDataDTO(); dictData.setDictId((systemDict.getId())); List<SystemDictDataListVO> systemDictDataListVOS = systemDictDataMapper.selectManageList(dictData); SystemDictData systemDictData = getSystemDictDataListVO(systemDict); systemDictData.setCode(JSON.toJSONString(miniProgrammeDTO.getVisitConfigParam())); systemDictData.setLabel(miniProgrammeDTO.getTheme()); systemDictData.setRemark(miniProgrammeDTO.getDescription()); if(null != systemDictDataListVOS && systemDictDataListVOS.size() > 0) { systemDictData.setId(systemDictDataListVOS.get(0).getId()); systemDictDataMapper.updateById(systemDictData); }else { systemDictDataMapper.insert(systemDictData); } SystemDictData checkVisit = systemDictList.stream().filter(m->m.getLabel().equals(Constants.BEVISITED_USER_VALID)).findFirst().get(); if(Objects.isNull(checkVisit)){ throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"访客被访人校验方式 字典不存在"); } checkVisit.setCode(visitConfigDTO.getCheckVisit().toString()); SystemDictData healthCard = systemDictList.stream().filter(m->m.getLabel().equals(Constants.HEALTH_CARD)).findFirst().get(); if(Objects.isNull(healthCard)){ throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"访客健康证是否必填 字典不存在"); } healthCard.setCode(visitConfigDTO.getHealthCard().toString()); SystemDictData isAnswer = systemDictList.stream().filter(m->m.getLabel().equals(Constants.PROBLEM_VISIT_REQUIRED)).findFirst().get(); if(Objects.isNull(isAnswer)){ throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"访客是否需要答题 字典不存在"); } isAnswer.setCode(visitConfigDTO.getIsAnswer().toString()); SystemDictData theme = systemDictList.stream().filter(m->m.getLabel().equals(Constants.THEME)).findFirst().get(); if(Objects.isNull(theme)){ throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"访客答题主题 字典不存在"); } theme.setCode(visitConfigDTO.getTheme()); SystemDictData description = systemDictList.stream().filter(m->m.getLabel().equals(Constants.DESCRIPTION)).findFirst().get(); if(Objects.isNull(description)){ throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"访客答题说明 字典不存在"); } description.setCode(visitConfigDTO.getDescription()); systemDictDataMapper.updateById(reservationWay); systemDictDataMapper.updateById(checkVisit); systemDictDataMapper.updateById(healthCard); systemDictDataMapper.updateById(isAnswer); systemDictDataMapper.updateById(theme); systemDictDataMapper.updateById(description); } private SystemDictData getSystemDictDataListVO(SystemDict systemDict) { @@ -203,62 +253,114 @@ } @Override public LaborConfigDTO getLaborConfigDTO() { try { String jasonStr = Constants.toUnderlineJSONString(new LaborConfigDTO()); JSONObject parse = (JSONObject) JSONObject.parse(jasonStr); List<String> collect = parse.entrySet().stream().map(s -> s.getKey().toUpperCase()).collect(Collectors.toList()); QueryWrapper<SystemDict> systemDictQuery = new QueryWrapper<>(); systemDictQuery.lambda() .eq(SystemDict::getDeleted,Boolean.FALSE) .eq(SystemDict::getCode,Constants.LABOR_CONFIG); SystemDict systemDict = systemDictMapper.selectOne(systemDictQuery); if (Objects.isNull(systemDict)){ throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"字典不存在"); } QueryWrapper<SystemDictData> wrapper = new QueryWrapper<>(); wrapper.lambda() .eq(SystemDictData::getDictId,systemDict.getId()); List<SystemDictData> systemDictDatas = systemDictDataMapper.selectList(wrapper); LaborConfigDTO laborConfigDTO = null; for (SystemDictData obj:systemDictDatas) { laborConfigDTO = new LaborConfigDTO(); laborConfigDTO.setLaborConfigParam(JSONObject.parseObject(obj.getCode(), LaborConfigParam.class)); laborConfigDTO.setDescription(obj.getRemark()); laborConfigDTO.setTheme(obj.getLabel()); } return laborConfigDTO; } catch (Exception e) { throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),"字典值解析有误"); public VisitConfigDTO getLaborConfigDTO() { VisitConfigDTO visitConfigDTO = new VisitConfigDTO(); SystemDict systemDict = systemDictMapper.selectOne(new QueryWrapper<SystemDict>().lambda().eq(SystemDict::getCode,Constants.SYSTEM)); if(Objects.isNull(systemDict)){ throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"字典类不存在"); } List<SystemDictData> systemDictList = systemDictDataMapper.selectList( new QueryWrapper<SystemDictData>().lambda().eq(SystemDictData::getDictId,systemDict.getId())); if(!com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(systemDictList)){ throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"字典不存在"); } SystemDictData reservationWay = systemDictList.stream().filter(m->m.getLabel().equals(Constants.MDJ_LW_REQUIRED)).findFirst().get(); if(Objects.isNull(reservationWay)){ throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"劳务访客来访预约方式 字典不存在"); } visitConfigDTO.setReservationWay(Integer.valueOf(reservationWay.getCode())); SystemDictData checkVisit = systemDictList.stream().filter(m->m.getLabel().equals(Constants.LW_BEVISITED_USER_VALID)).findFirst().get(); if(Objects.isNull(checkVisit)){ throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"劳务访客被访人校验方式 字典不存在"); } visitConfigDTO.setCheckVisit(Integer.valueOf(checkVisit.getCode())); SystemDictData healthCard = systemDictList.stream().filter(m->m.getLabel().equals(Constants.LW_HEALTH_CARD)).findFirst().get(); if(Objects.isNull(healthCard)){ throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"劳务访客健康证是否必填 字典不存在"); } visitConfigDTO.setHealthCard(Integer.valueOf(healthCard.getCode())); SystemDictData isAnswer = systemDictList.stream().filter(m->m.getLabel().equals(Constants.PROBLEM_LW_REQUIRED)).findFirst().get(); if(Objects.isNull(isAnswer)){ throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"劳务访客是否需要答题 字典不存在"); } visitConfigDTO.setIsAnswer(Integer.valueOf(isAnswer.getCode())); SystemDictData theme = systemDictList.stream().filter(m->m.getLabel().equals(Constants.LW_THEME)).findFirst().get(); if(Objects.isNull(theme)){ throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"劳务访客答题主题 字典不存在"); } visitConfigDTO.setTheme(theme.getCode()); SystemDictData description = systemDictList.stream().filter(m->m.getLabel().equals(Constants.LW_DESCRIPTION)).findFirst().get(); if(Objects.isNull(description)){ throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"劳务访客答题说明 字典不存在"); } visitConfigDTO.setDescription(description.getCode()); return visitConfigDTO; } @Override public void updateLaborConfigDTO(LaborConfigDTO miniProgrammeDTO) { QueryWrapper<SystemDict> systemDictQuery = new QueryWrapper<>(); systemDictQuery.lambda() .eq(SystemDict::getDeleted,Boolean.FALSE) .eq(SystemDict::getCode,Constants.LABOR_CONFIG); SystemDict systemDict = systemDictMapper.selectOne(systemDictQuery); public void updateLaborConfigDTO(VisitConfigDTO visitConfigDTO) { if(Objects.isNull(visitConfigDTO) ||Objects.isNull(visitConfigDTO.getReservationWay()) ||Objects.isNull(visitConfigDTO.getCheckVisit()) ||Objects.isNull(visitConfigDTO.getHealthCard()) ||Objects.isNull(visitConfigDTO.getIsAnswer()) || StringUtils.isEmpty(visitConfigDTO.getTheme()) || StringUtils.isEmpty(visitConfigDTO.getDescription()) ){ throw new BusinessException(ResponseStatus.BAD_REQUEST); } SystemDict systemDict = systemDictMapper.selectOne(new QueryWrapper<SystemDict>().lambda().eq(SystemDict::getCode,Constants.SYSTEM)); if(Objects.isNull(systemDict)){ throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"字典类不存在"); } List<SystemDictData> systemDictList = systemDictDataMapper.selectList( new QueryWrapper<SystemDictData>().lambda().eq(SystemDictData::getDictId,systemDict.getId())); if(!com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(systemDictList)){ throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"字典不存在"); } if (Objects.isNull(systemDict)){ throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"字典不存在"); } QuerySystemDictDataDTO dictData = new QuerySystemDictDataDTO(); dictData.setDictId((systemDict.getId())); List<SystemDictDataListVO> systemDictDataListVOS = systemDictDataMapper.selectManageList(dictData); SystemDictData systemDictData = getSystemDictDataListVO(systemDict); systemDictData.setCode(JSON.toJSONString(miniProgrammeDTO.getLaborConfigParam())); systemDictData.setLabel(miniProgrammeDTO.getTheme()); systemDictData.setRemark(miniProgrammeDTO.getDescription()); if(null != systemDictDataListVOS && systemDictDataListVOS.size() > 0) { systemDictData.setId(systemDictDataListVOS.get(0).getId()); systemDictDataMapper.updateById(systemDictData); }else { systemDictDataMapper.insert(systemDictData); } SystemDictData reservationWay = systemDictList.stream().filter(m->m.getLabel().equals(Constants.MDJ_LW_REQUIRED)).findFirst().get(); if(Objects.isNull(reservationWay)){ throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"劳务访客来访预约方式 字典不存在"); } reservationWay.setCode(visitConfigDTO.getReservationWay().toString()); SystemDictData checkVisit = systemDictList.stream().filter(m->m.getLabel().equals(Constants.LW_BEVISITED_USER_VALID)).findFirst().get(); if(Objects.isNull(checkVisit)){ throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"劳务访客被访人校验方式 字典不存在"); } checkVisit.setCode(visitConfigDTO.getCheckVisit().toString()); SystemDictData healthCard = systemDictList.stream().filter(m->m.getLabel().equals(Constants.LW_HEALTH_CARD)).findFirst().get(); if(Objects.isNull(healthCard)){ throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"劳务访客健康证是否必填 字典不存在"); } healthCard.setCode(visitConfigDTO.getHealthCard().toString()); SystemDictData isAnswer = systemDictList.stream().filter(m->m.getLabel().equals(Constants.PROBLEM_LW_REQUIRED)).findFirst().get(); if(Objects.isNull(isAnswer)){ throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"劳务访客是否需要答题 字典不存在"); } isAnswer.setCode(visitConfigDTO.getIsAnswer().toString()); SystemDictData theme = systemDictList.stream().filter(m->m.getLabel().equals(Constants.LW_THEME)).findFirst().get(); if(Objects.isNull(theme)){ throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"劳务访客答题主题 字典不存在"); } theme.setCode(visitConfigDTO.getTheme()); SystemDictData description = systemDictList.stream().filter(m->m.getLabel().equals(Constants.LW_DESCRIPTION)).findFirst().get(); if(Objects.isNull(description)){ throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"劳务访客答题说明 字典不存在"); } description.setCode(visitConfigDTO.getDescription()); systemDictDataMapper.updateById(reservationWay); systemDictDataMapper.updateById(checkVisit); systemDictDataMapper.updateById(healthCard); systemDictDataMapper.updateById(isAnswer); systemDictDataMapper.updateById(theme); systemDictDataMapper.updateById(description); } } server/dmvisit_web/src/main/resources/application.yml
@@ -70,7 +70,7 @@ enabled: true mime-types: application/json port: 10016 port: 10027 tomcat: max-swallow-size: -1 servlet: server/openapi/src/main/resources/application.yml
@@ -70,7 +70,7 @@ enabled: true mime-types: application/json port: 10018 port: 10029 tomcat: max-swallow-size: -1 servlet: