|
|
|
|
@ -16,8 +16,12 @@ |
|
|
|
|
*/ |
|
|
|
|
package org.springblade.modules.business.service.impl; |
|
|
|
|
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
|
|
|
|
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; |
|
|
|
|
import com.baomidou.mybatisplus.core.toolkit.IdWorker; |
|
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
|
|
|
|
import lombok.RequiredArgsConstructor; |
|
|
|
|
import org.apache.commons.lang3.StringUtils; |
|
|
|
|
import org.springblade.common.constant.BusinessConstant; |
|
|
|
|
import org.springblade.common.constant.CommonConstant; |
|
|
|
|
import org.springblade.core.mp.base.BaseServiceImpl; |
|
|
|
|
@ -26,17 +30,28 @@ import org.springblade.core.tool.utils.Func; |
|
|
|
|
import org.springblade.modules.business.entity.Appeal; |
|
|
|
|
import org.springblade.modules.business.entity.AppealReg; |
|
|
|
|
import org.springblade.modules.business.entity.AppealVisitor; |
|
|
|
|
import org.springblade.modules.business.excel.AppealExcel; |
|
|
|
|
import org.springblade.modules.business.mapper.AppealMapper; |
|
|
|
|
import org.springblade.modules.business.mapper.AppealRegMapper; |
|
|
|
|
import org.springblade.modules.business.mapper.AppealVisitorMapper; |
|
|
|
|
import org.springblade.modules.business.service.IAppealRegService; |
|
|
|
|
import org.springblade.modules.business.service.IAppealService; |
|
|
|
|
import org.springblade.modules.business.service.IAppealVisitorService; |
|
|
|
|
import org.springblade.modules.business.vo.AppealListVO; |
|
|
|
|
import org.springblade.modules.business.vo.AppealRegVO; |
|
|
|
|
import org.springblade.modules.system.entity.DictBiz; |
|
|
|
|
import org.springblade.modules.system.entity.User; |
|
|
|
|
import org.springblade.modules.system.service.IDictBizService; |
|
|
|
|
import org.springblade.modules.system.service.IUserService; |
|
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
|
import org.springframework.transaction.annotation.Transactional; |
|
|
|
|
|
|
|
|
|
import java.text.ParseException; |
|
|
|
|
import java.text.SimpleDateFormat; |
|
|
|
|
import java.util.ArrayList; |
|
|
|
|
import java.util.Date; |
|
|
|
|
import java.util.List; |
|
|
|
|
import java.util.Objects; |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 服务实现类 |
|
|
|
|
@ -51,6 +66,10 @@ public class AppealRegServiceImpl extends BaseServiceImpl<AppealRegMapper, Appea |
|
|
|
|
private final AppealMapper appealMapper; |
|
|
|
|
private final AppealVisitorMapper visitorMapper; |
|
|
|
|
|
|
|
|
|
private final IAppealService appealService; |
|
|
|
|
private final IUserService userService; |
|
|
|
|
private final IDictBizService dictBizService; |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public List<AppealListVO> getList(String appealStatus, String startTime, String endTime, String appealType, String windowId, String username) { |
|
|
|
|
return baseMapper.getList(appealStatus, startTime, endTime, appealType, windowId, username); |
|
|
|
|
@ -126,4 +145,100 @@ public class AppealRegServiceImpl extends BaseServiceImpl<AppealRegMapper, Appea |
|
|
|
|
public AppealReg getLastReg(String appealId) { |
|
|
|
|
return baseMapper.getLastReg(appealId); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
@Transactional(rollbackFor = Exception.class) |
|
|
|
|
public void importAppeal(List<AppealExcel> excels) { |
|
|
|
|
if (CollectionUtils.isNotEmpty(excels)) { |
|
|
|
|
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); |
|
|
|
|
List<Appeal> appeals = new ArrayList<>(); |
|
|
|
|
List<AppealVisitor> visitors = new ArrayList<>(); |
|
|
|
|
excels.forEach(excel -> { |
|
|
|
|
if (StringUtils.isNotBlank(excel.getDisputeName())) { |
|
|
|
|
Appeal appeal = Objects.requireNonNull(BeanUtil.copy(excel, Appeal.class)); |
|
|
|
|
appeal.setId(IdWorker.getId()); |
|
|
|
|
// 所属街道字典id
|
|
|
|
|
if (StringUtils.isNotBlank(excel.getStreetId())) { |
|
|
|
|
List<DictBiz> street = dictBizService.list(new LambdaQueryWrapper<DictBiz>().eq(DictBiz::getCode, "street").like(DictBiz::getDictValue, excel.getStreetId())); |
|
|
|
|
if (CollectionUtils.isNotEmpty(street)) { |
|
|
|
|
appeal.setStreetId(street.get(0).getId()); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// 纠纷字典id
|
|
|
|
|
if (StringUtils.isNotBlank(appeal.getDisputeName())) { |
|
|
|
|
List<DictBiz> values = dictBizService.list(new LambdaQueryWrapper<DictBiz>().eq(DictBiz::getCode, "dispute_type").like(DictBiz::getDictValue, appeal.getDisputeName())); |
|
|
|
|
if (CollectionUtils.isNotEmpty(values)) { |
|
|
|
|
appeal.setDisputeId(values.get(0).getId()); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// 数据录入时, 处理部门
|
|
|
|
|
if (StringUtils.isNotBlank(excel.getHandleDept())) { |
|
|
|
|
List<User> users = userService.list(new LambdaQueryWrapper<User>().like(User::getName, excel.getHandleDept())); |
|
|
|
|
if (CollectionUtils.isNotEmpty(users)) { |
|
|
|
|
appeal.setHandleDept(users.get(0).getId()); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// 纠纷等级(事件等级), 0:简单, 1:一般, 2:重大, 3:疑难
|
|
|
|
|
if (StringUtils.isNotBlank(excel.getDisputeLevel())) { |
|
|
|
|
if ("简单".equals(excel.getDisputeLevel())) { |
|
|
|
|
appeal.setDisputeLevel(0); |
|
|
|
|
} else if ("一般".equals(excel.getDisputeLevel())) { |
|
|
|
|
appeal.setDisputeLevel(1); |
|
|
|
|
} else if ("重大".equals(excel.getDisputeLevel())) { |
|
|
|
|
appeal.setDisputeLevel(2); |
|
|
|
|
} else if ("疑难".equals(excel.getDisputeLevel())) { |
|
|
|
|
appeal.setDisputeLevel(3); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// 首次登记时间
|
|
|
|
|
if (StringUtils.isNotBlank(excel.getFirstRegTime())) { |
|
|
|
|
try { |
|
|
|
|
appeal.setFirstRegTime(dateFormat.parse(excel.getFirstRegTime())); |
|
|
|
|
} catch (ParseException e) { |
|
|
|
|
e.printStackTrace(); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// 诉求状态(办理状态)
|
|
|
|
|
if (StringUtils.isNotBlank(excel.getStatus())) { |
|
|
|
|
if ("正在处理".equals(excel.getStatus())) { |
|
|
|
|
appeal.setStatus(1); |
|
|
|
|
} else if ("达成协议".equals(excel.getStatus())) { |
|
|
|
|
appeal.setStatus(2); |
|
|
|
|
} else if ("调解成功".equals(excel.getStatus()) || "完成归档".equals(excel.getStatus())) { |
|
|
|
|
appeal.setStatus(3); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// 是否越级上报
|
|
|
|
|
appeal.setSkipGrant(0); |
|
|
|
|
|
|
|
|
|
// 数据来源 0:系统添加, 1:数据导入
|
|
|
|
|
appeal.setSourceType(BusinessConstant.SOURCE_TYPE_IMPORT); |
|
|
|
|
|
|
|
|
|
// 上访人员
|
|
|
|
|
if (StringUtils.isNotBlank(excel.getUsername())) { |
|
|
|
|
AppealVisitor visitor = new AppealVisitor(); |
|
|
|
|
visitor.setAppealId(appeal.getId()); |
|
|
|
|
visitor.setSort(1); |
|
|
|
|
visitor.setUsername(excel.getUsername()); |
|
|
|
|
visitors.add(visitor); |
|
|
|
|
} |
|
|
|
|
appeals.add(appeal); |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
appealService.saveBatch(appeals); |
|
|
|
|
visitorService.saveBatch(visitors); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public List<AppealExcel> exportAppeal(String appealStatus, String startTime, String endTime, String appealType, String windowId, String username) { |
|
|
|
|
List<AppealExcel> excels = appealMapper.exportAppeal(appealStatus, startTime, endTime, appealType, windowId, username); |
|
|
|
|
return excels; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|