|
|
@@ -1,11 +1,25 @@
|
|
|
package org.jeecg.modules.smscheck.controller;
|
|
|
|
|
|
+import java.util.ArrayList;
|
|
|
import java.util.Arrays;
|
|
|
+import java.util.List;
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
import javax.servlet.http.HttpServletResponse;
|
|
|
+
|
|
|
+import cn.hutool.core.bean.BeanUtil;
|
|
|
+import cn.hutool.core.lang.Dict;
|
|
|
+import cn.hutool.core.lang.Tuple;
|
|
|
+import cn.hutool.core.util.ObjectUtil;
|
|
|
+import cn.hutool.core.util.StrUtil;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import org.jeecg.common.api.vo.Result;
|
|
|
+import org.jeecg.common.constant.CommonConstant;
|
|
|
+import org.jeecg.common.system.api.ISysBaseAPI;
|
|
|
import org.jeecg.common.system.query.QueryGenerator;
|
|
|
+import org.jeecg.common.system.vo.DictModel;
|
|
|
+import org.jeecg.modules.smscheck.entity.SmsCheckCustomerInfo;
|
|
|
import org.jeecg.modules.smscheck.entity.SmsCheckTask;
|
|
|
+import org.jeecg.modules.smscheck.service.ISmsCheckCustomerInfoService;
|
|
|
import org.jeecg.modules.smscheck.service.ISmsCheckTaskService;
|
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
@@ -14,8 +28,12 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
|
|
import org.jeecg.common.system.base.controller.JeecgController;
|
|
|
+import org.jeecg.modules.smscheck.vo.SmsCheckCustomerInfoVo;
|
|
|
+import org.jeecgframework.poi.excel.ExcelImportUtil;
|
|
|
+import org.jeecgframework.poi.excel.entity.ImportParams;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
+import org.springframework.web.multipart.MultipartFile;
|
|
|
import org.springframework.web.servlet.ModelAndView;
|
|
|
import io.swagger.annotations.Api;
|
|
|
import io.swagger.annotations.ApiOperation;
|
|
|
@@ -33,8 +51,11 @@ import org.jeecg.common.aspect.annotation.AutoLog;
|
|
|
@Slf4j
|
|
|
public class SmsCheckTaskController extends JeecgController<SmsCheckTask, ISmsCheckTaskService> {
|
|
|
@Autowired
|
|
|
- private ISmsCheckTaskService smsCheckTaskService;
|
|
|
-
|
|
|
+ private ISmsCheckTaskService taskService;
|
|
|
+ @Autowired
|
|
|
+ private ISmsCheckCustomerInfoService customerInfoService;
|
|
|
+ @Autowired
|
|
|
+ private ISysBaseAPI sysBaseApi;
|
|
|
/**
|
|
|
* 分页列表查询
|
|
|
*
|
|
|
@@ -53,7 +74,7 @@ public class SmsCheckTaskController extends JeecgController<SmsCheckTask, ISmsCh
|
|
|
HttpServletRequest request) {
|
|
|
QueryWrapper<SmsCheckTask> queryWrapper = QueryGenerator.initQueryWrapper(smsCheckTask, request.getParameterMap());
|
|
|
Page<SmsCheckTask> page = new Page<>(pageNo, pageSize);
|
|
|
- IPage<SmsCheckTask> pageList = smsCheckTaskService.page(page, queryWrapper);
|
|
|
+ IPage<SmsCheckTask> pageList = taskService.page(page, queryWrapper);
|
|
|
return Result.OK(pageList);
|
|
|
}
|
|
|
|
|
|
@@ -68,7 +89,9 @@ public class SmsCheckTaskController extends JeecgController<SmsCheckTask, ISmsCh
|
|
|
@PostMapping(value = "/add")
|
|
|
public Result<String> add(@RequestBody SmsCheckTask smsCheckTask) {
|
|
|
smsCheckTask.setTaskState(0);
|
|
|
- smsCheckTaskService.save(smsCheckTask);
|
|
|
+ smsCheckTask.setCustomerCount(0);
|
|
|
+ smsCheckTask.setCheckCount(0);
|
|
|
+ taskService.save(smsCheckTask);
|
|
|
return Result.OK("添加成功!");
|
|
|
}
|
|
|
|
|
|
@@ -82,7 +105,7 @@ public class SmsCheckTaskController extends JeecgController<SmsCheckTask, ISmsCh
|
|
|
@ApiOperation(value="稽核任务-编辑", notes="稽核任务-编辑")
|
|
|
@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
|
|
|
public Result<String> edit(@RequestBody SmsCheckTask smsCheckTask) {
|
|
|
- smsCheckTaskService.updateById(smsCheckTask);
|
|
|
+ taskService.updateById(smsCheckTask);
|
|
|
return Result.OK("编辑成功!");
|
|
|
}
|
|
|
|
|
|
@@ -96,7 +119,7 @@ public class SmsCheckTaskController extends JeecgController<SmsCheckTask, ISmsCh
|
|
|
@ApiOperation(value="稽核任务-通过id删除", notes="稽核任务-通过id删除")
|
|
|
@DeleteMapping(value = "/delete")
|
|
|
public Result<String> delete(@RequestParam(name="id") String id) {
|
|
|
- smsCheckTaskService.removeById(id);
|
|
|
+ taskService.removeById(id);
|
|
|
return Result.OK("删除成功!");
|
|
|
}
|
|
|
|
|
|
@@ -110,7 +133,7 @@ public class SmsCheckTaskController extends JeecgController<SmsCheckTask, ISmsCh
|
|
|
@ApiOperation(value="稽核任务-批量删除", notes="稽核任务-批量删除")
|
|
|
@DeleteMapping(value = "/deleteBatch")
|
|
|
public Result<String> deleteBatch(@RequestParam(name="ids") String ids) {
|
|
|
- this.smsCheckTaskService.removeByIds(Arrays.asList(ids.split(",")));
|
|
|
+ this.taskService.removeByIds(Arrays.asList(ids.split(",")));
|
|
|
return Result.OK("批量删除成功!");
|
|
|
}
|
|
|
|
|
|
@@ -124,7 +147,7 @@ public class SmsCheckTaskController extends JeecgController<SmsCheckTask, ISmsCh
|
|
|
@ApiOperation(value="稽核任务-通过id查询", notes="稽核任务-通过id查询")
|
|
|
@GetMapping(value = "/queryById")
|
|
|
public Result<SmsCheckTask> queryById(@RequestParam(name="id") String id) {
|
|
|
- SmsCheckTask smsCheckTask = smsCheckTaskService.getById(id);
|
|
|
+ SmsCheckTask smsCheckTask = taskService.getById(id);
|
|
|
if(smsCheckTask==null) {
|
|
|
return Result.error("未找到对应数据");
|
|
|
}
|
|
|
@@ -155,4 +178,124 @@ public class SmsCheckTaskController extends JeecgController<SmsCheckTask, ISmsCh
|
|
|
return super.importExcel(request, response, SmsCheckTask.class);
|
|
|
}
|
|
|
|
|
|
-}
|
|
|
+ /**
|
|
|
+ * 通过excel导入数据
|
|
|
+ *
|
|
|
+ * @param file 请求
|
|
|
+ * @return 导入结果
|
|
|
+ */
|
|
|
+ @PostMapping(value = "/importCustomerExcel")
|
|
|
+ public Result<?> importCustomerExcel(@RequestPart("file") MultipartFile file) {
|
|
|
+ String filename = file.getOriginalFilename();
|
|
|
+ if (!filename.endsWith(".xlsx") && !filename.endsWith(".xls")) {
|
|
|
+ return Result.error("文件类型不正确!请导入文件类型->.xlsx或.xls");
|
|
|
+ }
|
|
|
+ Dict dict = new Dict();
|
|
|
+
|
|
|
+ ImportParams params = new ImportParams();
|
|
|
+ params.setTitleRows(1);
|
|
|
+ try {
|
|
|
+ List<SmsCheckCustomerInfoVo> list = ExcelImportUtil.importExcel(
|
|
|
+ file.getInputStream(), SmsCheckCustomerInfoVo.class, params);
|
|
|
+ List<SmsCheckCustomerInfoVo> voList = new ArrayList<>();
|
|
|
+ int errorCount = 0;
|
|
|
+
|
|
|
+ // 获取所有字典值
|
|
|
+ List<DictModel> dictModels = sysBaseApi.getDictItems("user_type");
|
|
|
+ Dict dictItemMap = Dict.create();
|
|
|
+ dictModels.forEach(model -> {
|
|
|
+ dictItemMap.put(model.getValue(), model.getText());
|
|
|
+ });
|
|
|
+
|
|
|
+ Tuple dictTuple = new Tuple(dictItemMap);
|
|
|
+
|
|
|
+ for (SmsCheckCustomerInfoVo vo : list) {
|
|
|
+ SmsCheckCustomerInfoVo infoVo = checkCustomerInfo(vo, dictTuple);
|
|
|
+ if (ObjectUtil.isNotNull(infoVo)) {
|
|
|
+ if (StrUtil.isNotBlank(infoVo.getErrorMsg())) {
|
|
|
+ errorCount++;
|
|
|
+ }
|
|
|
+ voList.add(infoVo);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ dict.put("errorCount", errorCount);
|
|
|
+ dict.put("data", voList);
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("客户信息导入失败", e);
|
|
|
+ }
|
|
|
+
|
|
|
+ return Result.ok(dict);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 通过excel导入数据
|
|
|
+ *
|
|
|
+ * @param list 数据
|
|
|
+ * @return 导入结果
|
|
|
+ */
|
|
|
+ @PostMapping(value = "/importCustomerData")
|
|
|
+ public Result<?> importCustomerData(@RequestBody List<SmsCheckCustomerInfoVo> list) {
|
|
|
+ List<SmsCheckCustomerInfo> dataList = new ArrayList<>();
|
|
|
+ for (int i = 0; i < list.size(); i++) {
|
|
|
+ SmsCheckCustomerInfoVo infoVo = list.get(i);
|
|
|
+ SmsCheckCustomerInfo info = new SmsCheckCustomerInfo();
|
|
|
+ BeanUtil.copyProperties(infoVo, info, true);
|
|
|
+ info.setStaffInfo(infoVo.getStaffNo());
|
|
|
+ dataList.add(info);
|
|
|
+ long count = customerInfoService.count(
|
|
|
+ new LambdaQueryWrapper<SmsCheckCustomerInfo>()
|
|
|
+ .eq(SmsCheckCustomerInfo::getCustomerNo, info.getCustomerNo())
|
|
|
+ .eq(SmsCheckCustomerInfo::getDelFlag, CommonConstant.DEL_FLAG_0));
|
|
|
+ if (count > 0) {
|
|
|
+ return Result.error("客户[" + info.getCustomerNo() + "]已存在!");
|
|
|
+ } else {
|
|
|
+ customerInfoService.save(info);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return Result.OK("导入成功!");
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 校验客户信息
|
|
|
+ *
|
|
|
+ * @param vo 客户信息
|
|
|
+ * @param dictTuple 字典转换
|
|
|
+ * @return 客户信息
|
|
|
+ */
|
|
|
+ private SmsCheckCustomerInfoVo checkCustomerInfo(SmsCheckCustomerInfoVo vo, Tuple dictTuple) {
|
|
|
+ // 过滤客户编号和用户编号为空的信息
|
|
|
+ if (StrUtil.isBlank(vo.getCustomerNo()) && StrUtil.isBlank(vo.getUserNo())) {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ // 拆分员工号
|
|
|
+ String staffInfo = vo.getStaffInfo();
|
|
|
+ List<String> staffInfos = removeBrackets(staffInfo);
|
|
|
+ if (staffInfos.size() == 3) {
|
|
|
+ vo.setStaffName(staffInfos.get(0));
|
|
|
+ vo.setStaffNo(staffInfos.get(1));
|
|
|
+ vo.setStaffNumber(staffInfos.get(2));
|
|
|
+ }
|
|
|
+
|
|
|
+ return vo;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 移除括号并获取分段数据
|
|
|
+ *
|
|
|
+ * @param data 数据
|
|
|
+ * @return 集合
|
|
|
+ */
|
|
|
+ private List<String> removeBrackets(String data) {
|
|
|
+ List<String> dataList = new ArrayList<>();
|
|
|
+ if (data.contains("(")) {
|
|
|
+ data = StrUtil.removeAll(data,")");
|
|
|
+ dataList = StrUtil.split(data, "(");
|
|
|
+ }
|
|
|
+ if (data.contains("(")) {
|
|
|
+ data = StrUtil.removeAll(data,")");
|
|
|
+ dataList = StrUtil.split(data, "(");
|
|
|
+ }
|
|
|
+ return dataList;
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|