| | |
| | | */ |
| | | package org.springblade.modules.task.service.impl; |
| | | |
| | | import com.alibaba.fastjson.JSON; |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.jetbrains.annotations.NotNull; |
| | | import org.springblade.common.constant.DictConstant; |
| | | import org.springblade.common.utils.SpringUtils; |
| | | import org.springblade.core.mp.base.BaseServiceImpl; |
| | | import org.springblade.core.secure.utils.AuthUtil; |
| | | import org.springblade.modules.category.entity.CategoryEntity; |
| | | import org.springblade.modules.category.service.ICategoryService; |
| | | import org.springblade.modules.grid.entity.GridWorkLogEntity; |
| | | import org.springblade.modules.grid.service.IGridWorkLogService; |
| | | import org.springblade.modules.house.service.IHouseRentalService; |
| | | import org.springblade.modules.house.service.IHouseholdService; |
| | | import org.springblade.modules.house.vo.HouseRentalTenantVO; |
| | | import org.springblade.modules.house.vo.HouseholdVO; |
| | | import org.springblade.modules.place.service.IPlaceExtService; |
| | | import org.springblade.modules.place.service.IPlaceService; |
| | | import org.springblade.modules.place.vo.PlaceVO; |
| | |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import java.util.Date; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.*; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | |
| | | |
| | | @Autowired |
| | | private ITaskCampusReportingEventService taskCampusReportingEventService; |
| | | |
| | | @Autowired |
| | | private ITaskLabelReportingEventService taskLabelReportingEventService; |
| | | |
| | | @Autowired |
| | | private ITaskHotelReportingService taskHotelReportingService; |
| | | |
| | | @Autowired |
| | | private IGridWorkLogService gridWorkLogService; |
| | | |
| | | @Override |
| | | public IPage<TaskVO> selectTaskPage(IPage<TaskVO> page, TaskVO task) { |
| | |
| | | |
| | | /** |
| | | * 根据类型创建任务 |
| | | * @param reportType 任务/事件类型 |
| | | * @param color 参数 |
| | | * @param param 参数 |
| | | * @return |
| | | */ |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public boolean createTaskJob(Integer reportType, String color) { |
| | | public boolean createTaskJob(String param) { |
| | | // 解析参数 |
| | | JSONObject jsonParam = JSON.parseObject(param); |
| | | // String params = jsonParam.getString("params"); |
| | | boolean flag = false; |
| | | if (reportType==6){ |
| | | // 校园安全自查,查询标签为教育的场所 parentNo = 1601 |
| | | String parentNo = "1601"; |
| | | QueryWrapper<CategoryEntity> wrapper = new QueryWrapper<>(); |
| | | wrapper.eq("is_deleted",0).eq("parent_no",parentNo); |
| | | List<CategoryEntity> categoryEntityList = categoryService.list(wrapper); |
| | | // 取出编号集合 |
| | | List<String> stringList = categoryEntityList.stream().map(categoryEntity -> categoryEntity.getCategoryNo()).collect(Collectors.toList()); |
| | | // 根据编号集合查询对应的场所 |
| | | List<PlaceVO> placeVOList = placeService.getPlaceListByParam(stringList,color); |
| | | // 生成任务 |
| | | for (PlaceVO placeVO : placeVOList) { |
| | | TaskEntity taskEntity = new TaskEntity(); |
| | | taskEntity.setType(1); |
| | | taskEntity.setName(DictConstant.CAMPUS_SECURITY_INSPECTION); |
| | | taskEntity.setFrequency(2); |
| | | taskEntity.setCreateTime(new Date()); |
| | | taskEntity.setHouseCode(placeVO.getHouseCode()); |
| | | taskEntity.setReportType(reportType); |
| | | // 新增 |
| | | flag = save(taskEntity); |
| | | // 同时新增校园安全检查任务 |
| | | TaskCampusReportingEventEntity campusReportingEventEntity = new TaskCampusReportingEventEntity(); |
| | | campusReportingEventEntity.setTaskId(taskEntity.getId()); |
| | | campusReportingEventEntity.setPlaceId(placeVO.getId()); |
| | | campusReportingEventEntity.setCheckUserId(placeVO.getPrincipalUserId()); |
| | | campusReportingEventEntity.setCheckUserName(placeVO.getPrincipal()); |
| | | campusReportingEventEntity.setCheckTelephone(placeVO.getPrincipalPhone()); |
| | | // 系统下发 |
| | | campusReportingEventEntity.setSource(2); |
| | | // 新增 |
| | | taskCampusReportingEventService.save(campusReportingEventEntity); |
| | | } |
| | | } |
| | | // 校园安全自查任务生成 |
| | | createCampusReportingTask(); |
| | | // 打金店/二手车/二手手机任务生成 |
| | | createLabelReportingTask(); |
| | | // 旅馆安全自查任务生成 |
| | | createHotelReportingTask(); |
| | | // 人员类-肇事肇祸精神障碍患者走访任务生成 |
| | | createGridWordTask(); |
| | | // 返回 |
| | | return flag; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 人员类-肇事肇祸精神障碍患者走访任务生成 |
| | | */ |
| | | public void createGridWordTask() { |
| | | // 肇事肇祸精神障碍患者走访任务生成,查询标签为:20 |
| | | List<Integer> list = new ArrayList<Integer>(){{ |
| | | add(20); |
| | | }}; |
| | | // 根据人员标签编号集合查询对应的住户(按颜色区分近多少天没有发过任务的住户) |
| | | List<HouseholdVO> householdVOList = iHouseholdService.getHouseholdListByParam(list); |
| | | // 生成任务 |
| | | for (HouseholdVO household : householdVOList) { |
| | | // 新增走访任务 |
| | | saveGridWordTask(household); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 新增走访任务 |
| | | * @param household |
| | | */ |
| | | public void saveGridWordTask(HouseholdVO household) { |
| | | GridWorkLogEntity gridWorkLogEntity = new GridWorkLogEntity(); |
| | | gridWorkLogEntity.setHouseholdId(household.getId()); |
| | | gridWorkLogEntity.setType(2); |
| | | gridWorkLogEntity.setPersonType(20); |
| | | // 系统下发 |
| | | gridWorkLogEntity.setSource(2); |
| | | // 新增 |
| | | gridWorkLogService.save(gridWorkLogEntity); |
| | | } |
| | | |
| | | /** |
| | | * 打金店/二手车/二手手机任务生成 |
| | | */ |
| | | public void createLabelReportingTask() { |
| | | // 打金店/二手车/二手手机任务生成,标签:130808/140304/130604 |
| | | List<String> stringList = new ArrayList<String>(){{ |
| | | add("130808"); |
| | | add("140304"); |
| | | add("130604"); |
| | | }}; |
| | | String tableName = "jczz_task_label_reporting_event"; |
| | | // 根据编号集合查询对应的场所(按颜色区分近多少天没有发过任务的场所) |
| | | List<PlaceVO> placeVOList = placeService.getPlaceListByParam(stringList,tableName); |
| | | // 生成任务 |
| | | for (PlaceVO placeVO : placeVOList) { |
| | | String taskName = ""; |
| | | Integer reportType = 3; |
| | | if (placeVO.getLabel().equals("130808")){ |
| | | taskName = DictConstant.DA_JIN_DIAN; |
| | | reportType = 3; |
| | | } |
| | | if (placeVO.getLabel().equals("130604")){ |
| | | taskName = DictConstant.USED_MOBILE_PHONES; |
| | | reportType = 4; |
| | | } |
| | | if (placeVO.getLabel().equals("140304")){ |
| | | taskName = DictConstant.USED_CAR; |
| | | reportType = 5; |
| | | } |
| | | // 新增任务 |
| | | TaskEntity taskEntity = saveTaskEntity(placeVO.getHouseCode(), 1, taskName, 2, reportType); |
| | | // 同时新增打金店/二手车/二手手机任务 |
| | | saveGoldShop(placeVO, taskEntity,taskName,reportType); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 旅馆安全自查任务生成 |
| | | */ |
| | | public void createHotelReportingTask() { |
| | | // 旅馆标签为 |
| | | List<String> stringList = new ArrayList<String>(){{ |
| | | add("120101"); |
| | | add("120102"); |
| | | add("120103"); |
| | | add("120104"); |
| | | }}; |
| | | String tableName = "jczz_task_hotel_reporting"; |
| | | // 根据编号集合查询对应的场所(按颜色区分近多少天没有发过任务的场所) |
| | | List<PlaceVO> placeVOList = placeService.getPlaceListByParam(stringList,tableName); |
| | | // 生成任务 |
| | | for (PlaceVO placeVO : placeVOList) { |
| | | // 新增任务 |
| | | TaskEntity taskEntity = saveTaskEntity(placeVO.getHouseCode(), 1, DictConstant.HOTEL_SECURITY, 2, 2); |
| | | // 同时新增校园安全检查任务 |
| | | saveHotel(placeVO, taskEntity); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 校园安全自查任务生成 |
| | | */ |
| | | public void createCampusReportingTask() { |
| | | // 校园安全自查,查询标签为教育的场所 parentNo = 1601 |
| | | String parentNo = "1601"; |
| | | QueryWrapper<CategoryEntity> wrapper = new QueryWrapper<>(); |
| | | wrapper.eq("is_deleted",0).eq("parent_no",parentNo); |
| | | List<CategoryEntity> categoryEntityList = categoryService.list(wrapper); |
| | | // 取出编号集合 |
| | | List<String> stringList = categoryEntityList.stream().map(categoryEntity -> categoryEntity.getCategoryNo()).collect(Collectors.toList()); |
| | | // 根据编号集合查询对应的场所(按颜色区分近多少天没有发过任务的场所) |
| | | String tableName = "jczz_task_campus_reporting_event"; |
| | | List<PlaceVO> placeVOList = placeService.getPlaceListByParam(stringList,tableName); |
| | | // 生成任务 |
| | | for (PlaceVO placeVO : placeVOList) { |
| | | // 新增任务 |
| | | TaskEntity taskEntity = saveTaskEntity(placeVO.getHouseCode(), 1, DictConstant.CAMPUS_SECURITY_INSPECTION, 2, 6); |
| | | // 同时新增校园安全检查任务 |
| | | saveCampus(placeVO, taskEntity); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 新增校园安全检查任务 |
| | | * @param placeVO |
| | | * @param taskEntity |
| | | */ |
| | | private void saveCampus(PlaceVO placeVO, TaskEntity taskEntity) { |
| | | TaskCampusReportingEventEntity campusReportingEventEntity = new TaskCampusReportingEventEntity(); |
| | | campusReportingEventEntity.setTaskId(taskEntity.getId()); |
| | | campusReportingEventEntity.setPlaceId(placeVO.getId()); |
| | | campusReportingEventEntity.setCampusName(placeVO.getPlaceName()); |
| | | campusReportingEventEntity.setCheckUserId(placeVO.getPrincipalUserId()); |
| | | campusReportingEventEntity.setCheckUserName(placeVO.getPrincipal()); |
| | | campusReportingEventEntity.setCheckTelephone(placeVO.getPrincipalPhone()); |
| | | // 系统下发 |
| | | campusReportingEventEntity.setSource(2); |
| | | // 待完善 |
| | | campusReportingEventEntity.setConfirmFlag("4"); |
| | | // 新增 |
| | | taskCampusReportingEventService.save(campusReportingEventEntity); |
| | | } |
| | | |
| | | /** |
| | | * 新增旅馆安全检查任务 |
| | | * @param placeVO |
| | | * @param taskEntity |
| | | */ |
| | | private void saveHotel(PlaceVO placeVO, TaskEntity taskEntity) { |
| | | TaskHotelReportingEntity taskHotelReportingEntity = new TaskHotelReportingEntity(); |
| | | taskHotelReportingEntity.setTaskId(taskEntity.getId()); |
| | | taskHotelReportingEntity.setPlaceId(placeVO.getId()); |
| | | taskHotelReportingEntity.setHotelName(placeVO.getPlaceName()); |
| | | taskHotelReportingEntity.setCheckUserId(placeVO.getPrincipalUserId()); |
| | | taskHotelReportingEntity.setCheckUserName(placeVO.getPrincipal()); |
| | | taskHotelReportingEntity.setCheckTelephone(placeVO.getPrincipalPhone()); |
| | | // 系统下发 |
| | | taskHotelReportingEntity.setSource(2); |
| | | // 待完善 |
| | | taskHotelReportingEntity.setConfirmFlag("4"); |
| | | // 新增 |
| | | taskHotelReportingService.save(taskHotelReportingEntity); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 新增打金店/二手车/二手手机任务 |
| | | * @param placeVO |
| | | * @param taskEntity |
| | | * @param taskName |
| | | * @param reportType |
| | | */ |
| | | private void saveGoldShop(PlaceVO placeVO, TaskEntity taskEntity,String taskName,Integer reportType) { |
| | | TaskLabelReportingEventEntity taskLabelReportingEventEntity = new TaskLabelReportingEventEntity(); |
| | | taskLabelReportingEventEntity.setTaskId(taskEntity.getId()); |
| | | taskLabelReportingEventEntity.setPlaceId(placeVO.getId()); |
| | | taskLabelReportingEventEntity.setDistrictName(placeVO.getPlaceName()); |
| | | taskLabelReportingEventEntity.setUserId(placeVO.getPrincipalUserId()); |
| | | taskLabelReportingEventEntity.setOwner(placeVO.getPrincipal()); |
| | | taskLabelReportingEventEntity.setPhoneNumber(placeVO.getPrincipalPhone()); |
| | | taskLabelReportingEventEntity.setLabelName(taskName); |
| | | // 打金店 |
| | | if (reportType==3){ |
| | | taskLabelReportingEventEntity.setEventType("1"); |
| | | } |
| | | // 二手车 |
| | | if (reportType==4){ |
| | | taskLabelReportingEventEntity.setEventType("3"); |
| | | } |
| | | // 二手手机 |
| | | if (reportType==5){ |
| | | taskLabelReportingEventEntity.setEventType("2"); |
| | | } |
| | | taskLabelReportingEventEntity.setEventType(taskName); |
| | | // 系统下发 |
| | | taskLabelReportingEventEntity.setSource(2); |
| | | // 待完善 |
| | | taskLabelReportingEventEntity.setConfirmFlag("4"); |
| | | // 新增 |
| | | taskLabelReportingEventService.save(taskLabelReportingEventEntity); |
| | | } |
| | | |
| | | /** |
| | | * 插入任务信息 |
| | | * @param houseCode |
| | | * @param type |
| | | * @param taskName |
| | | * @param frequency |
| | | * @param reportType |
| | | * @return |
| | | */ |
| | | private TaskEntity saveTaskEntity(String houseCode, |
| | | Integer type, |
| | | String taskName, |
| | | Integer frequency, |
| | | Integer reportType) { |
| | | TaskEntity taskEntity = new TaskEntity(); |
| | | taskEntity.setType(type); |
| | | taskEntity.setName(taskName); |
| | | taskEntity.setFrequency(frequency); |
| | | taskEntity.setCreateTime(new Date()); |
| | | taskEntity.setHouseCode(houseCode); |
| | | taskEntity.setReportType(reportType); |
| | | // 新增 |
| | | save(taskEntity); |
| | | // 返回 |
| | | return taskEntity; |
| | | } |
| | | } |