邮箱采集优化

release
zhenghaiyang@ele-cloud.com 2 years ago
parent 8352919f4a
commit bc6c86fdc0
  1. 2
      dxhy-core/src/main/java/com/dxhy/core/config/WebConfiguration.java
  2. 90
      dxhy-core/src/main/java/com/dxhy/core/controller/mailGather/EmailMaintainController.java
  3. 23
      dxhy-core/src/main/java/com/dxhy/core/model/mailGather/EmailMaintainExcel.java
  4. 3
      dxhy-core/src/main/java/com/dxhy/core/service/mailGather/EmailMaintainService.java
  5. 12
      dxhy-core/src/main/java/com/dxhy/core/service/mailGather/impl/EmailMaintainServiceImpl.java
  6. 8
      dxhy-core/src/main/java/com/dxhy/core/service/mailGather/impl/MailGatherLogServiceImpl.java
  7. BIN
      dxhy-core/src/main/resources/export/gysTemplate.xlsx
  8. 4
      dxhy-core/src/main/resources/mapper/mailGather/EmailMaintainMapper.xml
  9. 5
      dxhy-erp/src/main/java/com/dxhy/erp/entity/TDxRecordInvoiceDetail.java
  10. 2
      dxhy-sign/src/main/resources/mapper/SignInvoiceMapper.xml

@ -65,7 +65,7 @@ public class WebConfiguration implements WebMvcConfigurer {
private ArrayList<String> getIncludePathPatterns() {
ArrayList<String> list = new ArrayList<>();
String[] urls =
{"/excel/apply", "/ftp/download", "/scan/get/scaninfo", "/setPwd", "/resetPwd", "/invoiceDetail/info",
{"/mailGatherLog/**","/emailMaintain/**","/excel/apply", "/ftp/download", "/scan/get/scaninfo", "/setPwd", "/resetPwd", "/invoiceDetail/info",
"/invoiceDetail/saleInfo", "/smcy/info", "/invoiceDetail/companyPoolInvoiceDetail/**", "/pool/**"};
Collections.addAll(list, urls);
return list;

@ -1,22 +1,29 @@
package com.dxhy.core.controller.mailGather;
import cn.hutool.core.codec.Base64;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.excel.EasyExcel;
import com.alibaba.fastjson.JSONObject;
import com.dxhy.common.controller.AbstractController;
import com.dxhy.common.util.UUIDUtils;
import com.dxhy.common.utils.Base64Encoding;
import com.dxhy.common.utils.R;
import com.dxhy.common.vo.UserInfo;
import com.dxhy.core.model.mailGather.EmailMaintainExcel;
import com.dxhy.core.model.mailGather.EmailMaintainVo;
import com.dxhy.core.service.mailGather.EmailMaintainService;
import com.google.common.collect.Lists;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.http.ResponseEntity;
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 org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import java.io.IOException;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
@ -110,16 +117,79 @@ public class EmailMaintainController extends AbstractController {
/**
* 编辑数据
*
* @param emailMaintain 实体
* @param file 实体
* @return 编辑结果
*/
@PostMapping("/emailUpload")
public ResponseEntity<R> emailUpload(@RequestBody EmailMaintainVo emailMaintain) {
boolean b = emailMaintainService.update(emailMaintain);
if(b){
@RequestMapping("/emailUpload")
public ResponseEntity<R> emailUpload(@RequestParam(value = "file") MultipartFile file,
@RequestParam(value = "deptId") String deptId,
@RequestParam(value = "deptName") String deptName) {
try {
List<EmailMaintainExcel> emailMaintainExcels =
EasyExcel.read(file.getInputStream()).sheet().head(EmailMaintainExcel.class).headRowNumber(1).doReadSync();
log.info("解析的数据:{}",JSONObject.toJSONString(emailMaintainExcels));
if (emailMaintainExcels == null || emailMaintainExcels.isEmpty()) {
return ResponseEntity.ok(R.error("数据解析失败"));
}
List<String> errorMsgList = Lists.newArrayList();
List<EmailMaintainVo> mailList = Lists.newArrayList();
int resultIndex = 2;
for (EmailMaintainExcel maintainExcel : emailMaintainExcels) {
String userId = maintainExcel.getUserId();
if (StringUtils.isBlank(userId)) {
errorMsgList.add("第" + resultIndex + "行,用户编码不能为空");
continue;
}
String userName = emailMaintainService.getUserName(userId);
if(StringUtils.isBlank(userName)){
errorMsgList.add("第" + resultIndex + "行,用户编码在系统中查询不到,请核实!");
continue;
}
String address = maintainExcel.getEmailAddress();
if (StringUtils.isBlank(address)) {
errorMsgList.add("第" + resultIndex + "行,邮箱地址不能为空");
continue;
}
if(!"@qq.com".equals(address) || !"@163.com".equals(address)){
errorMsgList.add("第" + resultIndex + "行,不支持该邮箱类型");
continue;
}
String password = maintainExcel.getEmailPassword();
if (StringUtils.isBlank(password)) {
errorMsgList.add("第" + resultIndex + "行,授权码不能为空");
continue;
}
EmailMaintainVo maintainVo = new EmailMaintainVo();
maintainVo.setId(UUIDUtils.generateShortUuid());
maintainVo.setCompanyCode(deptId);
maintainVo.setDeptName(deptName);
maintainVo.setUsername(userName);
maintainVo.setUserId(userId);
maintainVo.setEmailAddress(address);
String encode = Base64Encoding.encode(password);
maintainVo.setEmailPassword(encode);
maintainVo.setDelStatus("0");
maintainVo.setCreateUser(getUserInfo().getLoginname());
maintainVo.setCreateTime(new Date());
maintainVo.setModifyTime(new Date());
mailList.add(maintainVo);
resultIndex++;
}
if (ObjectUtil.isNotEmpty(errorMsgList)) {
JSONObject json = new JSONObject();
json.put("datalist", errorMsgList);
return ResponseEntity.ok(R.ok().put("data",Base64.encode(json.toJSONString())));
}
int i = emailMaintainService.insertBatch(mailList);
if(i > 0){
return ResponseEntity.ok(R.ok());
}
return ResponseEntity.ok(R.error());
} catch (IOException e) {
throw new RuntimeException(e);
}
return ResponseEntity.ok(R.error("数据解析失败"));
}

@ -0,0 +1,23 @@
package com.dxhy.core.model.mailGather;
import com.alibaba.excel.annotation.ExcelProperty;
import com.dxhy.core.model.CommonDTO;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
@Data
public class EmailMaintainExcel {
@ExcelProperty("序号")
public String xh;
@ExcelProperty("*用户编码")
public String userId;
@ExcelProperty("*邮箱地址")
public String emailAddress;
@ExcelProperty("*授权码")
public String emailPassword;
}

@ -1,6 +1,7 @@
package com.dxhy.core.service.mailGather;
import com.dxhy.core.model.mailGather.EmailMaintainVo;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
@ -48,4 +49,6 @@ public interface EmailMaintainService {
boolean deleteById(String id);
String getUserName(String userCode);
int insertBatch(List<EmailMaintainVo> entities);
}

@ -30,8 +30,6 @@ public class EmailMaintainServiceImpl implements EmailMaintainService {
/**
* 通过ID查询单条数据
*
* @param id 主键
* @return 实例对象
*/
@Override
@ -46,17 +44,16 @@ public class EmailMaintainServiceImpl implements EmailMaintainService {
*/
@Override
public String queryByPage(Map<String, Object> pramsMap) {
List<Object> returnList = new ArrayList<>();
DynamicContextHolder.push(DbConstant.BASICS_READ);
JSONObject json = new JSONObject();
int curr = (int)pramsMap.get("curr");
int size = (int)pramsMap.get("size");
PageHelper.startPage(curr, size);
List<EmailMaintainVo> emailMaintainVos = emailMaintainDao.queryAllByLimit(pramsMap);
PageInfo<EmailMaintainVo> pageInfo = new PageInfo<>(emailMaintainVos);
returnList.add(pageInfo.getList());
// 设置记录总数
json.put("total", pageInfo.getTotal());
json.put("datalist", returnList);
json.put("datalist", pageInfo.getList());
String jsonString = null;
if (json != null) {
log.debug("返回结果:{}", json.toJSONString());
@ -114,6 +111,11 @@ public class EmailMaintainServiceImpl implements EmailMaintainService {
return emailMaintainDao.getUserName(userCode);
}
@Override
public int insertBatch(List<EmailMaintainVo> entities) {
return emailMaintainDao.insertBatch(entities);
}
//根据用户名进行查询
public void getdeptInfo(String deptId){
DynamicContextHolder.push(DbConstant.BASICS_READ);

@ -3,6 +3,8 @@ package com.dxhy.core.service.mailGather.impl;
import cn.hutool.core.codec.Base64;
import com.alibaba.fastjson.JSONObject;
import com.dxhy.common.constant.DbConstant;
import com.dxhy.common.datasource.config.DynamicContextHolder;
import com.dxhy.core.dao.mailGather.MailGatherLogDao;
import com.dxhy.core.model.mailGather.MailGatherLogVo;
import com.dxhy.core.service.mailGather.MailGatherLogService;
@ -42,18 +44,16 @@ public class MailGatherLogServiceImpl implements MailGatherLogService {
*/
@Override
public String queryByPage(Map<String, Object> pramsMap) {
List<Object> returnList = new ArrayList<>();
DynamicContextHolder.push(DbConstant.BASICS_READ);
JSONObject json = new JSONObject();
int curr = (int)pramsMap.get("curr");
int size = (int)pramsMap.get("size");
PageHelper.startPage(curr, size);
List<MailGatherLogVo> emailMaintainVos = mailGatherLogDao.queryAllByLimit(pramsMap);
PageInfo<MailGatherLogVo> pageInfo = new PageInfo<>(emailMaintainVos);
returnList.add(pageInfo.getList());
// 设置记录总数
json.put("total", pageInfo.getTotal());
json.put("datalist", returnList);
json.put("datalist", pageInfo.getList());
String jsonString = null;
if (json != null) {
log.debug("返回结果:{}", json.toJSONString());

@ -95,10 +95,10 @@
</insert>
<insert id="insertBatch" keyProperty="id" useGeneratedKeys="true">
insert into email_maintain(dept_id, company_code, dept_name, username, user_id, email_address, email_password, create_time, del_status, modify_time)
insert into email_maintain(dept_id, company_code, dept_name, username, user_id, email_address, email_password, create_user, create_time, del_status, modify_time)
values
<foreach collection="entities" item="entity" separator=",">
(#{entity.deptId}, #{entity.companyCode}, #{entity.deptName}, #{entity.username}, #{entity.userId}, #{entity.emailAddress}, #{entity.emailPassword}, #{entity.createTime}, #{entity.delStatus}, #{entity.modifyTime})
(#{entity.deptId}, #{entity.companyCode}, #{entity.deptName}, #{entity.username}, #{entity.userId}, #{entity.emailAddress}, #{entity.emailPassword},#{entity.createUser}, #{entity.createTime}, #{entity.delStatus}, #{entity.modifyTime})
</foreach>
</insert>

@ -114,9 +114,4 @@ public class TDxRecordInvoiceDetail implements Serializable {
*/
private String goodsNum;
/**
* 税码
*/
private String taxCode;
}

@ -32,7 +32,7 @@
<select id="selectQsfpList" parameterType="java.util.Map"
resultMap="BaseResultMap" databaseId="mysql">
SELECT
t.id,t.notes,t.qs_type,t.qs_status,t.qs_date,t.user_name,t.invoice_code,t.invoice_no,t.ele_invoice_no,t.uuid,t.invoice_date,t.invoice_type,t.invoice_amount,t.tax_amount
r.id,t.notes,t.qs_type,t.qs_status,t.qs_date,t.user_name,t.invoice_code,t.invoice_no,t.ele_invoice_no,t.uuid,t.invoice_date,t.invoice_type,t.invoice_amount,t.tax_amount
,t.dept_id,t.dept_name,t.scan_id,t.gf_name,t.xf_name,t.gf_tax_no,t.xf_tax_no,t.check_code,t.remark,t.create_date,t.total_amount,
t.voucher_number,img.image_path
FROM t_dx_invoice t

Loading…
Cancel
Save