From 2d95605efd098e1b1c80f80021b259314b10f204 Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期五, 01 三月 2024 10:41:14 +0800
Subject: [PATCH] ERP接口
---
server/dmvisit_service/src/main/resources/application-testHS.yml | 2
server/dmvisit_service/src/main/java/com/doumee/biz/system/impl/SystemUserBizImpl.java | 8
server/dmvisit_service/src/main/java/com/doumee/service/system/impl/SystemDictDataServiceImpl.java | 16 ++
server/dmvisit_admin/src/main/java/com/doumee/api/common/PublicController.java | 151 +++++++++++++-----
server/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java | 113 ++++++++++++-
server/dmvisit_service/src/main/java/com/doumee/service/business/impl/erp/ErpSyncServiceImpl.java | 11
server/dmvisit_admin/src/main/resources/application.yml | 2
server/dmvisit_web/src/main/java/com/doumee/api/web/VisitorController.java | 1
server/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java | 5
server/openapi/src/main/java/com/doumee/api/web/BizResourceController.java | 16 ++
server/dmvisit_service/src/main/java/com/doumee/core/utils/Constants.java | 11
server/dmvisit_service/src/main/java/com/doumee/dao/admin/request/VisitConfigDTO.java | 2
server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Visits.java | 2
server/dmvisit_service/src/main/java/com/doumee/service/business/VisitsService.java | 3
server/dmvisit_service/src/main/java/com/doumee/service/business/impl/EmpowerServiceImpl.java | 3
server/dmvisit_service/src/main/java/com/doumee/dao/web/reqeust/ErpWithVisitDTO.java | 47 +++++
server/dmvisit_service/src/main/java/com/doumee/dao/web/reqeust/ErpVisitDTO.java | 74 +++++++++
17 files changed, 394 insertions(+), 73 deletions(-)
diff --git a/server/dmvisit_admin/src/main/java/com/doumee/api/common/PublicController.java b/server/dmvisit_admin/src/main/java/com/doumee/api/common/PublicController.java
index d69c175..7801a67 100644
--- a/server/dmvisit_admin/src/main/java/com/doumee/api/common/PublicController.java
+++ b/server/dmvisit_admin/src/main/java/com/doumee/api/common/PublicController.java
@@ -6,6 +6,7 @@
import com.doumee.core.annotation.trace.Trace;
import com.doumee.core.utils.Constants;
import com.doumee.core.utils.DateUtil;
+import com.doumee.core.utils.FtpUtil;
import com.doumee.core.utils.aliyun.ALiYunUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
@@ -14,20 +15,21 @@
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PostMapping;
-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 org.springframework.web.multipart.MultipartHttpServletRequest;
-import org.springframework.web.multipart.commons.CommonsMultipartFile;
import org.springframework.web.multipart.commons.CommonsMultipartResolver;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.IOException;
+import java.io.InputStream;
import java.io.PrintWriter;
-import java.util.*;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.UUID;
/**
* @author Eva.Caesar Liu
@@ -45,52 +47,113 @@
private SystemDictDataBiz systemDictDataBiz;
-
- @ApiOperation(value = "涓婁紶", notes = "涓婁紶", httpMethod = "POST", position = 6)
- @ApiImplicitParams({
- @ApiImplicitParam(name = "folder", value = "鏂囦欢澶�", required = true, paramType = "query", dataType = "String", dataTypeClass = String.class),
- })
- @PostMapping(value = "/upload", headers = "content-type=multipart/form-data")
- public void uploadMobile(String folder, HttpServletRequest request, HttpServletResponse response) throws Exception {
- MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
- upload(multipartRequest, response, folder + "/",
- systemDictDataBiz.queryByCode(Constants.OSS,Constants.BUCKETNAME).getCode(),
- systemDictDataBiz.queryByCode(Constants.OSS,Constants.ACCESS_ID).getCode(),
- systemDictDataBiz.queryByCode(Constants.OSS,Constants.ACCESS_KEY).getCode(),
- systemDictDataBiz.queryByCode(Constants.OSS,Constants.RESOURCE_PATH).getCode(),
- systemDictDataBiz.queryByCode(Constants.OSS,Constants.ENDPOINT).getCode());
- }
+// @ApiOperation(value = "涓婁紶", notes = "涓婁紶", httpMethod = "POST", position = 6)
+// @ApiImplicitParams({
+// @ApiImplicitParam(name = "folder", value = "鏂囦欢澶�", required = true, paramType = "query", dataType = "String", dataTypeClass = String.class),
+// })
+// @PostMapping(value = "/upload", headers = "content-type=multipart/form-data")
+// public void uploadMobile(String folder, HttpServletRequest request, HttpServletResponse response) throws Exception {
+// MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
+// upload(multipartRequest, response, folder + "/",
+// systemDictDataBiz.queryByCode(Constants.OSS,Constants.BUCKETNAME).getCode(),
+// systemDictDataBiz.queryByCode(Constants.OSS,Constants.ACCESS_ID).getCode(),
+// systemDictDataBiz.queryByCode(Constants.OSS,Constants.ACCESS_KEY).getCode(),
+// systemDictDataBiz.queryByCode(Constants.OSS,Constants.RESOURCE_PATH).getCode(),
+// systemDictDataBiz.queryByCode(Constants.OSS,Constants.ENDPOINT).getCode());
+// }
+//
+//
+// @ApiOperation(value = "涓婁紶鍥剧墖", notes = "涓婁紶鍥剧墖", httpMethod = "POST", position = 6)
+// @ApiImplicitParams({
+// @ApiImplicitParam(name = "folder", value = "鏂囦欢澶�", required = true, paramType = "query", dataType = "String", dataTypeClass = String.class),
+// })
+// @PostMapping(value = "/uploadPicture", headers = "content-type=multipart/form-data")
+// public void uploadPicture(String folder, HttpServletRequest request, HttpServletResponse response) throws Exception {
+// MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
+// Iterator<String> fileNames = multipartRequest.getFileNames();
+// Map<String, Object> context = new HashMap<>();
+// while (fileNames.hasNext()){
+// MultipartFile file = multipartRequest.getFile(fileNames.next());
+// String fileName = file.getOriginalFilename();
+// String suffix = fileName.substring(fileName.lastIndexOf("."));
+// if ( !StringUtils.equalsIgnoreCase(suffix, ".jpg") || !StringUtils.equalsIgnoreCase(suffix, ".png")) {
+// context.put("code", 0);
+// context.put("message", "瀵逛笉璧凤紝鏂囦欢鏍煎紡涓婁紶鏈夎锛�");
+// }
+// }
+// upload(multipartRequest, response, folder + "/",
+// systemDictDataBiz.queryByCode(Constants.OSS,Constants.BUCKETNAME).getCode(),
+// systemDictDataBiz.queryByCode(Constants.OSS,Constants.ACCESS_ID).getCode(),
+// systemDictDataBiz.queryByCode(Constants.OSS,Constants.ACCESS_KEY).getCode(),
+// systemDictDataBiz.queryByCode(Constants.OSS,Constants.RESOURCE_PATH).getCode(),
+// systemDictDataBiz.queryByCode(Constants.OSS,Constants.ENDPOINT).getCode());
+// }
- @ApiOperation(value = "涓婁紶鍥剧墖", notes = "涓婁紶鍥剧墖", httpMethod = "POST", position = 6)
- @ApiImplicitParams({
- @ApiImplicitParam(name = "folder", value = "banner/ 锛堣疆鎾級goods/ (鍟嗗搧)member/ (鐢ㄦ埛锛塻hop/ 锛堝簵閾猴級system/ (绯荤粺閰嶇疆绛夛級activity/ 锛堝彂鐜帮級commet/ (璇勮锛塷ther/ 锛堝叾浠栵級aftersale/锛堝敭鍚庯級", required = true, paramType = "query", dataType = "String", dataTypeClass = String.class),
- })
- @PostMapping(value = "/uploadPicture", headers = "content-type=multipart/form-data")
- public void uploadPicture(String folder, HttpServletRequest request, HttpServletResponse response) throws Exception {
- MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
- Iterator<String> fileNames = multipartRequest.getFileNames();
+
+
+ public static FtpUtil ftp = null;
+
+ @ApiOperation(value = "涓婁紶鏂囦欢鍒癋TP")
+ @RequestMapping(method= RequestMethod.POST,value="upload")
+ @ResponseBody
+ public void upload(HttpServletRequest request, HttpServletResponse response, String folder) throws Exception {
+// folder = systemDictDataBiz.queryByCode(Constants.FTP,folder).getCode();
+ String prefixPath = systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_RESOURCE_PATH).getCode();
+ InputStream is = null;
+ response.setCharacterEncoding("UTF-8");
+ response.setContentType("text/html;charset=UTF-8");
Map<String, Object> context = new HashMap<>();
- while (fileNames.hasNext()){
- MultipartFile file = multipartRequest.getFile(fileNames.next());
- String fileName = file.getOriginalFilename();
- String suffix = fileName.substring(fileName.lastIndexOf("."));
- if ( !StringUtils.equalsIgnoreCase(suffix, ".jpg") || !StringUtils.equalsIgnoreCase(suffix, ".png")) {
- context.put("code", 0);
- context.put("message", "瀵逛笉璧凤紝鏂囦欢鏍煎紡涓婁紶鏈夎锛�");
+ try {
+ if(ftp == null){
+ ftp = new FtpUtil(systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_HOST).getCode(),
+ Integer.parseInt(systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_PORT).getCode()),
+ systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_USERNAME).getCode(),
+ systemDictDataBiz.queryByCode(Constants.FTP,Constants.FTP_PWD).getCode());
+ }else{
+ ftp.connect();
}
+
+ CommonsMultipartResolver multipartResovler = new CommonsMultipartResolver();
+ if (multipartResovler.isMultipart(request)) {
+ MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
+ Iterator<String> it = multipartRequest.getFileNames();
+ while (it.hasNext()) {
+ MultipartFile file = multipartRequest.getFile(it.next());
+ is = file.getInputStream();
+ String date = DateUtil.getNowShortDate();
+ String fName = date+"/"+ UUID.randomUUID()+".jpg";
+ String fileName = folder+fName;
+ boolean r = ftp.uploadInputstream(is,fileName);
+ if(r){
+ context.put("success", true);
+ context.put("code", 200);
+ context.put("errno",0);
+ JSONObject fileJSON = new JSONObject();
+ fileJSON.put("halfPath", fName);
+ fileJSON.put("prefixPath", prefixPath);
+ fileJSON.put("folder", folder);
+ context.put("data",fileJSON);
+ context.put("message","璇锋眰鎴愬姛");
+ writerJson(response, context);
+ return;
+ }
+ }
+ }
+ } catch (Exception e) {
+ log.error("銆愪笂浼燜TP澶辫触銆�======================"+e.getMessage());
}
- upload(multipartRequest, response, folder + "/",
- systemDictDataBiz.queryByCode(Constants.OSS,Constants.BUCKETNAME).getCode(),
- systemDictDataBiz.queryByCode(Constants.OSS,Constants.ACCESS_ID).getCode(),
- systemDictDataBiz.queryByCode(Constants.OSS,Constants.ACCESS_KEY).getCode(),
- systemDictDataBiz.queryByCode(Constants.OSS,Constants.RESOURCE_PATH).getCode(),
- systemDictDataBiz.queryByCode(Constants.OSS,Constants.ENDPOINT).getCode());
+ context.put("code", 0);
+ context.put("message", "涓婁紶澶辫触");
+ context.put("errno",0);
+ writerJson(response, context);
+ return;
}
+
public void upload(HttpServletRequest request, HttpServletResponse response, String folder, String bucketName,
- String access_id, String access_key, String resourcePath, String endpoint) throws Exception {
+ String access_id, String access_key, String resourcePath, String endpoint) throws Exception {
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");
Map<String, Object> context = new HashMap<>();
@@ -182,6 +245,8 @@
e.printStackTrace();
}
}
+
+
public void uploadFileLocal(HttpServletRequest request, String folder, HttpServletResponse response, String rootPath,String dir) throws Exception {
@@ -308,6 +373,4 @@
writerJson(response, context);
return;
}
-
-
}
diff --git a/server/dmvisit_admin/src/main/resources/application.yml b/server/dmvisit_admin/src/main/resources/application.yml
index f31fd8b..a91f8c2 100644
--- a/server/dmvisit_admin/src/main/resources/application.yml
+++ b/server/dmvisit_admin/src/main/resources/application.yml
@@ -67,7 +67,7 @@
compression:
enabled: true
mime-types: application/json
- port: 10033
+ port: 10028
tomcat:
max-swallow-size: -1
servlet:
diff --git a/server/dmvisit_service/src/main/java/com/doumee/biz/system/impl/SystemUserBizImpl.java b/server/dmvisit_service/src/main/java/com/doumee/biz/system/impl/SystemUserBizImpl.java
index c224704..980f2c7 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/biz/system/impl/SystemUserBizImpl.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/biz/system/impl/SystemUserBizImpl.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.doumee.biz.system.SystemDictDataBiz;
import com.doumee.biz.system.SystemUserBiz;
import com.doumee.core.annotation.excel.ExcelImporter;
import com.doumee.core.exception.BusinessException;
@@ -46,6 +47,8 @@
@Autowired
private SystemDepartmentService systemDepartmentService;
+ @Autowired
+ private SystemDictDataBiz systemDictDataBiz;
@Transactional(rollbackFor = {Exception.class,BusinessException.class})
@Override
@@ -111,13 +114,12 @@
@Transactional(rollbackFor = {Exception.class,BusinessException.class})
public void create(CreateSystemUserDTO systemUser) {
// 楠岃瘉鐢ㄦ埛鍚�
- systemUser.setUsername(systemUser.getMobile());
SystemUser queryUserDto = new SystemUser();
queryUserDto.setUsername(systemUser.getUsername());
queryUserDto.setDeleted(Boolean.FALSE);
SystemUser user = systemUserService.findOne(queryUserDto);
if (user != null) {
- throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "鐢佃瘽銆�"+systemUser.getUsername()+"銆戜笉鑳介噸澶�");
+ throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(), "鐢ㄦ埛鍚嶃��"+systemUser.getUsername()+"銆戜笉鑳介噸澶�");
}
// 楠岃瘉宸ュ彿
if (StringUtils.isNotBlank(systemUser.getEmpNo())) {
@@ -132,7 +134,7 @@
// 鐢熸垚瀵嗙爜鐩�
String salt = RandomStringUtils.randomAlphabetic(6);
// 鐢熸垚瀵嗙爜
- systemUser.setPassword(Utils.Secure.encryptPassword(systemUser.getMobile().substring(5), salt));
+ systemUser.setPassword(Utils.Secure.encryptPassword(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.INITIAL_PASSWORD).getCode(), salt));
systemUser.setSalt(salt);
// 鍒涘缓鐢ㄦ埛璁板綍
diff --git a/server/dmvisit_service/src/main/java/com/doumee/core/utils/Constants.java b/server/dmvisit_service/src/main/java/com/doumee/core/utils/Constants.java
index 6cb05a2..bc5f931 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/core/utils/Constants.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/core/utils/Constants.java
@@ -45,9 +45,12 @@
public static final String EDS_PWD ="!@#$%^&QWERTY" ;
public static final String ROOT_PATH = "";
public static final String FILE_DIR = "";
+ public static final String INITIAL_PASSWORD = "INITIAL_PASSWORD";
+
// 璁垮鏉ヨ閰嶇疆
public static final String VISIT_CONFIG = "VISIT_CONFIG";
public static final String MEMBER_IMG = "MEMBER_IMG";
+ public static final String VISIT_NOTICE = "VISIT_NOTICE";
//鍋ュ悍璇侀厤缃�
public static final String LW_HEALTH_CARD = "LW_HEALTH_CARD";
public static final String HEALTH_CARD = "HEALTH_CARD";
@@ -388,7 +391,7 @@
* 灏忓瀷鏂拌兘婧愯溅
* 1銆佸尮閰嶆柊鑳芥簮杞﹁締6浣嶈溅鐗�
*/
- SMALL_NEW_ENERGY_VEHICLE(5, "灏忓瀷鏂拌兘婧愯溅鐗�", Pattern.compile("^[浜触鍐�鏅嬭挋杈藉悏榛戞勃鑻忔禉鐨栭椊璧i瞾璞剛婀樼菠妗傜惣宸濊吹浜戞笣钘忛檿鐢橀潚瀹佹柊]{1}[A-Z]{1}[DF]{1}[0-9a-zA-Z]{5}$")),
+ SMALL_NEW_ENERGY_VEHICLE(5, "灏忓瀷鏂拌兘婧愯溅鐗�", Pattern.compile("^[浜触鍐�鏅嬭挋杈藉悏榛戞勃鑻忔禉鐨栭椊璧i瞾璞剛婀樼菠妗傜惣宸濊吹浜戞笣钘忛檿鐢橀潚瀹佹柊]{1}[A-Z]{1}[A-Z]{1}[0-9a-zA-Z]{5}$")),
/**
* 澶у瀷鏂拌兘婧愯溅
*/
@@ -415,10 +418,10 @@
}
public static void main(String[] args) {
- System.out.println(Constants.getVehiclePlateNo("婀楤D40D17").getDescription());
+ System.out.println(Constants.getVehiclePlateNo("鐨朅A10991").getDescription());
- System.out.println(Constants.getVehiclePlateNo("婀楤140D17").getDescription());
- System.out.println(Constants.getVehiclePlateNo("瀹緼P0637").getDescription());
+// System.out.println(Constants.getVehiclePlateNo("婀楤140D17").getDescription());
+// System.out.println(Constants.getVehiclePlateNo("瀹緼P0637").getDescription());
}
diff --git a/server/dmvisit_service/src/main/java/com/doumee/dao/admin/request/VisitConfigDTO.java b/server/dmvisit_service/src/main/java/com/doumee/dao/admin/request/VisitConfigDTO.java
index 303ead0..f26310a 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/dao/admin/request/VisitConfigDTO.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/dao/admin/request/VisitConfigDTO.java
@@ -36,4 +36,6 @@
@ApiModelProperty(value = "绛旈璇存槑")
private String description;
+ @ApiModelProperty(value = "鍏ュ巶椤荤煡")
+ private String visitNotice;
}
diff --git a/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Visits.java b/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Visits.java
index 7b6ebfe..9068475 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Visits.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/dao/business/model/Visits.java
@@ -236,6 +236,8 @@
@ExcelColumn(name="鍒涘缓浜虹紪鐮侊紙鍏宠仈member琛�)")
private Integer createMemberId;
+ @ApiModelProperty(value = "鏉ユ簮绫诲瀷锛�0=鏈郴缁燂紱1=ERP", example = "1")
+ private Integer sourceType;
@ApiModelProperty(value = "鏅�氳瀹㈢敵璇烽殢璁夸汉鍛�")
@TableField(exist = false)
diff --git a/server/dmvisit_service/src/main/java/com/doumee/dao/web/reqeust/ErpVisitDTO.java b/server/dmvisit_service/src/main/java/com/doumee/dao/web/reqeust/ErpVisitDTO.java
new file mode 100644
index 0000000..1eebcab
--- /dev/null
+++ b/server/dmvisit_service/src/main/java/com/doumee/dao/web/reqeust/ErpVisitDTO.java
@@ -0,0 +1,74 @@
+package com.doumee.dao.web.reqeust;
+
+import com.doumee.core.annotation.excel.ExcelColumn;
+import com.doumee.core.haikang.model.param.BaseRequst;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * Created by IntelliJ IDEA.
+ *
+ * @Author : Rk
+ * @create 2024/2/29 14:26
+ */
+@Data
+@ApiModel("ERP璁垮鐢宠涓荤被")
+public class ErpVisitDTO extends BaseRequst {
+
+ @ApiModelProperty(value = "ERP璁板綍涓婚敭")
+ private String erpId;
+
+ @ApiModelProperty(value = "璁垮濮撳悕")
+ private String name;
+
+ @ApiModelProperty(value = "鎵嬫満鍙�")
+ private String phone;
+
+ @ApiModelProperty(value = "璇佷欢绫诲瀷 0韬唤璇� 1娓境璇佷欢 2鎶ょ収")
+ private Integer idcardType;
+
+ @ApiModelProperty(value = "璇佷欢鍙�")
+ private String idcardNo;
+
+ @ApiModelProperty(value = "浜鸿劯鐓х墖")
+ private String faceImg;
+
+ @ApiModelProperty(value = "鍋ュ悍璇�")
+ private String imgurl;
+
+ @ApiModelProperty(value = "鍏徃鍚嶇О")
+ private String companyName;
+
+ @ApiModelProperty(value = "琚浜� erp 涓婚敭 ")
+ private String receptMemberId;
+
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @ApiModelProperty(value = "闂ㄧ鏈夋晥鏈熷紑濮�")
+ private Date starttime;
+
+ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @ApiModelProperty(value = "闂ㄧ鏈夋晥鏈熸埅姝�")
+ private Date endtime;
+
+ @ApiModelProperty(value = "闂ㄧ缂栫爜 娴峰悍绯荤粺涓婚敭 锛屽涓敤鑻辨枃閫楀彿闅斿紑")
+ private String doors;
+
+ @ApiModelProperty(value = "鏉ヨ浜嬬敱")
+ private String reason;
+
+ @ApiModelProperty(value = "杞︾墝鍙�")
+ private String carNos;
+
+ @ApiModelProperty(value = "闅忚浜哄憳淇℃伅")
+ List<ErpWithVisitDTO> erpWithVisitDTOList;
+
+
+}
diff --git a/server/dmvisit_service/src/main/java/com/doumee/dao/web/reqeust/ErpWithVisitDTO.java b/server/dmvisit_service/src/main/java/com/doumee/dao/web/reqeust/ErpWithVisitDTO.java
new file mode 100644
index 0000000..dea3b32
--- /dev/null
+++ b/server/dmvisit_service/src/main/java/com/doumee/dao/web/reqeust/ErpWithVisitDTO.java
@@ -0,0 +1,47 @@
+package com.doumee.dao.web.reqeust;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+/**
+ * Created by IntelliJ IDEA.
+ *
+ * @Author : Rk
+ * @create 2024/2/29 14:26
+ */
+@Data
+@ApiModel("ERP璁垮鐢宠 闅忚浜轰俊鎭�")
+public class ErpWithVisitDTO {
+
+ @ApiModelProperty(value = "璁垮濮撳悕")
+ private String name;
+
+ @ApiModelProperty(value = "鎵嬫満鍙�")
+ private String phone;
+
+ @ApiModelProperty(value = "璇佷欢绫诲瀷 0韬唤璇� 1娓境璇佷欢 2鎶ょ収")
+ private Integer idcardType;
+
+ @ApiModelProperty(value = "璇佷欢鍙�")
+ private String idcardNo;
+
+ @ApiModelProperty(value = "浜鸿劯鐓х墖")
+ private String faceImg;
+
+ @ApiModelProperty(value = "鍋ュ悍璇�")
+ private String imgurl;
+
+ @ApiModelProperty(value = "鍏徃鍚嶇О")
+ private String companyName;
+
+ @ApiModelProperty(value = "杞︾墝鍙�")
+ private String carNos;
+
+
+
+}
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/VisitsService.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/VisitsService.java
index dd95a92..3d5d37d 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/business/VisitsService.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/VisitsService.java
@@ -4,6 +4,7 @@
import com.doumee.core.model.PageWrap;
import com.doumee.dao.business.model.Visits;
import com.doumee.dao.web.reqeust.AuditApproveDTO;
+import com.doumee.dao.web.reqeust.ErpVisitDTO;
import com.doumee.dao.web.reqeust.VisitRecordDTO;
import com.doumee.dao.web.response.VisitDetailVO;
import com.doumee.dao.web.response.VisitRecordVO;
@@ -27,6 +28,8 @@
Integer createFk(Visits visits);
+ void createFKForErp(ErpVisitDTO erpVisitDTO);
+
/**
* 涓婚敭鍒犻櫎
*
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/EmpowerServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/EmpowerServiceImpl.java
index 1fba2a7..1fd3fbf 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/EmpowerServiceImpl.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/EmpowerServiceImpl.java
@@ -118,9 +118,10 @@
queryWrapper
/* .eq(Empower::getIsdeleted, Constants.ZERO)*/
.and(StringUtils.isNotBlank(pageWrap.getModel().getMemberName()), ms->ms.like(Member::getName,pageWrap.getModel().getMemberName())
- .or().like(Member::getPhone,pageWrap.getModel().getCompanyName()));
+ .or().like(Member::getPhone,pageWrap.getModel().getMemberName()));
queryWrapper.eq(Objects.nonNull(pageWrap.getModel().getSendStatus()),Empower::getSendStatus,pageWrap.getModel().getSendStatus());
queryWrapper.eq(StringUtils.isNotBlank(pageWrap.getModel().getCompanyId()),Company::getId,pageWrap.getModel().getCompanyId());
+ queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getCompanyName()),Company::getName,pageWrap.getModel().getCompanyName());
queryWrapper.ge(Objects.nonNull(pageWrap.getModel().getSendStartDate()),Empower::getSendDate,pageWrap.getModel().getSendStartDate());
queryWrapper.le(Objects.nonNull(pageWrap.getModel().getSendEndDate()),Empower::getSendDate,pageWrap.getModel().getSendEndDate());
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
index f9a1579..5f44246 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
@@ -1031,7 +1031,10 @@
.exists(" select 1 from park_book p where p.origin = 0 and p.car_code = retention.car_no and p.ISDELETED = 0 ")
));
stagingHeadVO.setVisitorCarCount(stagingHeadVO.getPresenceCarCount() - stagingHeadVO.getLongCarCount());
- stagingHeadVO.setSupplierCount(companyMapper.selectCount(new QueryWrapper<Company>().lambda().eq(Company::getIsdeleted,Constants.ZERO)));
+ stagingHeadVO.setSupplierCount(companyMapper.selectCount(new QueryWrapper<Company>().lambda()
+ .eq(Company::getIsdeleted,Constants.ZERO)
+ .eq(Company::getType,Constants.ZERO)
+ ));
return stagingHeadVO;
}
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java
index b98b25a..7dd65c1 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/VisitsServiceImpl.java
@@ -34,6 +34,8 @@
import com.doumee.dao.business.join.VisitsJoinMapper;
import com.doumee.dao.business.model.*;
import com.doumee.dao.web.reqeust.AuditApproveDTO;
+import com.doumee.dao.web.reqeust.ErpVisitDTO;
+import com.doumee.dao.web.reqeust.ErpWithVisitDTO;
import com.doumee.dao.web.reqeust.VisitRecordDTO;
import com.doumee.dao.web.response.InternalHomeVO;
import com.doumee.dao.web.response.VisitDetailVO;
@@ -94,11 +96,92 @@
@Autowired
private WxPlatNotice wxPlatNotice;
+ @Autowired
+ private InterfaceLogService interfaceLogService;
+
+
@Override
public Integer create(Visits visits) {
visitsMapper.insert(visits);
return visits.getId();
}
+
+
+ @Override
+ @Transactional(rollbackFor = {BusinessException.class,Exception.class})
+ public void createFKForErp(ErpVisitDTO erpVisitDTO){
+ try {
+
+ if (Objects.isNull(erpVisitDTO)
+ || StringUtils.isBlank(erpVisitDTO.getName())
+ || StringUtils.isBlank(erpVisitDTO.getPhone())
+ || Objects.isNull(erpVisitDTO.getIdcardType())
+ || StringUtils.isBlank(erpVisitDTO.getIdcardNo())
+ || Objects.isNull(erpVisitDTO.getStarttime())
+ || Objects.isNull(erpVisitDTO.getEndtime())
+ || StringUtils.isBlank(erpVisitDTO.getFaceImg())
+ || Objects.isNull(erpVisitDTO.getReceptMemberId())
+ || Objects.isNull(erpVisitDTO.getErpId())
+ ) {
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀵逛笉璧凤紝淇℃伅濉啓涓嶆纭紒");
+ }
+ if (erpVisitDTO.getEndtime().getTime() <= erpVisitDTO.getStarttime().getTime()) {
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀵逛笉璧凤紝棰勭害缁撴潫鏃堕棿蹇呴』澶т簬寮�濮嬫椂闂达紒");
+ }
+ if (Constants.equalsInteger(Constants.ZERO, erpVisitDTO.getIdcardType()) && erpVisitDTO.getIdcardNo().length() != 18
+ //&&!IdcardUtil.isValidCard(visits.getIdcardNo())
+ ) {
+ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀵逛笉璧凤紝韬唤璇佸彿鐮佹湁璇紝璇锋牳瀹炲悗閲嶈瘯锛�");
+ }
+
+ Visits visits = new Visits();
+ //鏍规嵁琚闂汉ERP涓婚敭鏌ヨ绯荤粺鍐呬汉鍛樹富閿俊鎭�
+ Member member = memberMapper.selectOne(new QueryWrapper<Member>().lambda()
+ .eq(Member::getIsdeleted, Constants.ZERO).eq(Member::getType, Constants.memberType.internal)
+ .eq(Member::getErpId, erpVisitDTO.getReceptMemberId()).last("limit 1"));
+ if (Objects.isNull(member)) {
+ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(), "鏈煡璇㈠埌琚闂汉淇℃伅");
+ }
+ if (Objects.isNull(member.getCanVisit()) || member.getCanVisit().equals(Constants.ZERO)) {
+ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "褰撳墠琚闂汉鏃犳硶琚闂�");
+ }
+ BeanUtils.copyProperties(erpVisitDTO, visits);
+ //璁剧疆鍐呴儴绯荤粺浜哄憳涓婚敭
+ visits.setReceptMemberId(member.getId());
+ visits.setSourceType(Constants.ONE);
+ List<ErpWithVisitDTO> erpWithVisitDTOList = erpVisitDTO.getErpWithVisitDTOList();
+ if (CollectionUtils.isNotEmpty(erpWithVisitDTOList)) {
+ List<Visits> visitsList = new ArrayList<>();
+ for (ErpWithVisitDTO erpWithVisitDTO : erpWithVisitDTOList) {
+ Visits withVisits = new Visits();
+ BeanUtils.copyProperties(erpWithVisitDTO, withVisits);
+ visitsList.add(withVisits);
+ }
+ visits.setWithUserList(visitsList);
+ }
+ this.createFk(visits);
+ }catch (BusinessException e){
+ throw e;
+ }finally {
+ saveInterfaceLog(erpVisitDTO,"/visitBiz/resource/crateVisit",null,Constants.ZERO);
+ }
+ }
+
+ private void saveInterfaceLog(Object param, String path,String result,Integer type) {
+ InterfaceLog interfaceLog=new InterfaceLog();
+ interfaceLog.setType(type);
+ interfaceLog.setCreateDate(new Date());
+ interfaceLog.setIsdeleted(Constants.ZERO);
+ if(param!=null){
+ interfaceLog.setRequest(JSONObject.toJSONString(param));
+ }
+ interfaceLog.setPlat(Constants.ONE);
+ interfaceLog.setRepose(result);
+ interfaceLog.setName(path);
+ interfaceLog.setUrl(path);
+ interfaceLogService.create(interfaceLog);
+ }
+
/**
* 鏅�氳瀹㈢敵璇�
@@ -135,22 +218,27 @@
initVisitInfo(visits,date);
visitsMapper.insert(visits);
//鍙戣捣ERP瀹℃壒鐢宠
- String erpId = startSendErpCheck(visits,visitMember);
- if(StringUtils.isNotBlank(erpId)){
- visits.setErpId(erpId);
- visits.setStatus(Constants.VisitStatus.submitCheck);
- visitsMapper.updateById(visits);
+ if(visits.getSourceType().equals(Constants.ZERO)){
+ 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(), "瀵逛笉璧凤紝鍙戣捣鎷滆瀹℃壒鐢宠澶辫触锛�");
+ }
+ //鍙戦�佸井淇″叕浼楀彿閫氱煡
+ wxPlatNotice.sendVisitAuditTemplateNotice(visits,
+ systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_PREFIX).getCode(),
+ systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_AUDIT_VISIT).getCode());
}else{
- throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(), "瀵逛笉璧凤紝鍙戣捣鎷滆瀹℃壒鐢宠澶辫触锛�");
+ visits.setStatus(Constants.VisitStatus.pass);
+ visitsMapper.updateById(visits);
}
initWithVisitInfo(visits);
updateProblemLog(visits,problemLog,member);
//鍒涘缓瀹℃壒璁板綍
// createApprove(visits,visitMember);
- //鍙戦�佸井淇″叕浼楀彿閫氱煡
- wxPlatNotice.sendVisitAuditTemplateNotice(visits,
- systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_PREFIX).getCode(),
- systemDictDataBiz.queryByCode(Constants.WX_PLATFORM,Constants.WX_PLATFORM_AUDIT_VISIT).getCode());
return visits.getId();
}
@@ -554,7 +642,8 @@
v.setDoors(visits.getDoors());
v.setType(visits.getType());
v.setVisitType(visits.getVisitType());
- v.setStatus(Constants.VisitStatus.submitCheck);
+ v.setStatus(visits.getStatus());
+ v.setSourceType(visits.getSourceType());
}
//鎵归噺鎻掑叆鏁版嵁
visitsMapper.insertBatchSomeColumn(visits.getWithUserList());
@@ -833,7 +922,7 @@
private ProblemLog isValidProblemLog(Visits visits) {
String required = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.PROBLEM_VISIT_REQUIRED).getCode();
- if(StringUtils.equals(required,Constants.ONE+"")){
+ if(StringUtils.equals(required,Constants.ONE+"")&&visits.getSourceType()==Constants.ZERO){
//濡傛灉蹇呴』绛旈锛屾煡鎵剧瓟棰樿褰�
if(visits.getUserAnswerId() == null){
throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "瀵逛笉璧凤紝璇峰厛鎸夎姹傝繘琛屽畨鍏ㄧ煡璇嗙瓟棰橈紒");
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/erp/ErpSyncServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/erp/ErpSyncServiceImpl.java
index 126cbfd..3c3e1e5 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/erp/ErpSyncServiceImpl.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/business/impl/erp/ErpSyncServiceImpl.java
@@ -340,11 +340,11 @@
Date date = new Date();
int num =0;
for(ErpUserListResponse response : list){
- if(isDebug){
- response.setPhone("1534569100"+num);
- response.setFaceImg("20223402/DM1005.png");
- response.setIdNo("34112219880427200"+num);
- }
+// if(isDebug){
+// response.setPhone("1534569100"+num);
+// response.setFaceImg("20223402/DM1005.png");
+// response.setIdNo("34112219880427200"+num);
+// }
num++;
Company company = new Company();
if(StringUtils.isNotBlank(response.getOrgId())){
@@ -1074,7 +1074,6 @@
){
}
-
if(Objects.isNull(param)
||Objects.isNull(param.getId())
||Objects.isNull(param.getStatus())){
diff --git a/server/dmvisit_service/src/main/java/com/doumee/service/system/impl/SystemDictDataServiceImpl.java b/server/dmvisit_service/src/main/java/com/doumee/service/system/impl/SystemDictDataServiceImpl.java
index 76d4642..65edb21 100644
--- a/server/dmvisit_service/src/main/java/com/doumee/service/system/impl/SystemDictDataServiceImpl.java
+++ b/server/dmvisit_service/src/main/java/com/doumee/service/system/impl/SystemDictDataServiceImpl.java
@@ -167,11 +167,18 @@
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());
+
+ SystemDictData visitNotice = systemDictList.stream().filter(m->m.getLabel().equals(Constants.VISIT_NOTICE)).findFirst().get();
+ if(Objects.isNull(visitNotice)){
+ throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"鍏ュ巶椤荤煡 瀛楀吀涓嶅瓨鍦�");
+ }
+ visitConfigDTO.setVisitNotice(visitNotice.getCode());
return visitConfigDTO;
}
@@ -223,11 +230,19 @@
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());
+
+ SystemDictData visitNotice = systemDictList.stream().filter(m->m.getLabel().equals(Constants.VISIT_NOTICE)).findFirst().get();
+ if(Objects.isNull(visitNotice)){
+ throw new BusinessException(ResponseStatus.DATA_EXISTS.getCode(),"鍏ュ巶椤荤煡 瀛楀吀涓嶅瓨鍦�");
+ }
+ visitNotice.setCode(visitConfigDTO.getVisitNotice());
+
systemDictDataMapper.updateById(reservationWay);
systemDictDataMapper.updateById(checkVisit);
@@ -235,6 +250,7 @@
systemDictDataMapper.updateById(isAnswer);
systemDictDataMapper.updateById(theme);
systemDictDataMapper.updateById(description);
+ systemDictDataMapper.updateById(visitNotice);
}
diff --git a/server/dmvisit_service/src/main/resources/application-testHS.yml b/server/dmvisit_service/src/main/resources/application-testHS.yml
index 5ff9fb2..4a9264d 100644
--- a/server/dmvisit_service/src/main/resources/application-testHS.yml
+++ b/server/dmvisit_service/src/main/resources/application-testHS.yml
@@ -38,7 +38,7 @@
title: ${project.name}鎺ュ彛鏂囨。
description: ${project.name}鎺ュ彛鏂囨。
enabled: true
- context-path: /erp_api
+ context-path: /erp_interface
# 绂佺敤swagger鏃剁殑閲嶅畾鍚戝湴鍧�
redirect-uri: /
diff --git a/server/dmvisit_web/src/main/java/com/doumee/api/web/VisitorController.java b/server/dmvisit_web/src/main/java/com/doumee/api/web/VisitorController.java
index 970d608..717c757 100644
--- a/server/dmvisit_web/src/main/java/com/doumee/api/web/VisitorController.java
+++ b/server/dmvisit_web/src/main/java/com/doumee/api/web/VisitorController.java
@@ -63,6 +63,7 @@
@ApiOperation(value = "璁垮璁板綍鎻愪氦", notes = "璁垮鎻愪氦")
@PostMapping("/createFk")
public ApiResponse createFk(@RequestBody Visits visits) {
+ visits.setSourceType(Constants.ZERO);
return ApiResponse.success("鏌ヨ鎴愬姛", visitsService.createFk(visits));
}
diff --git a/server/openapi/src/main/java/com/doumee/api/web/BizResourceController.java b/server/openapi/src/main/java/com/doumee/api/web/BizResourceController.java
index c7b1c55..8de719e 100644
--- a/server/openapi/src/main/java/com/doumee/api/web/BizResourceController.java
+++ b/server/openapi/src/main/java/com/doumee/api/web/BizResourceController.java
@@ -8,6 +8,8 @@
import com.doumee.core.erp.model.openapi.request.*;
import com.doumee.core.erp.model.openapi.response.*;
import com.doumee.core.utils.Constants;
+import com.doumee.dao.web.reqeust.ErpVisitDTO;
+import com.doumee.service.business.VisitsService;
import com.doumee.service.business.ext.ERPSyncService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
@@ -39,6 +41,9 @@
@Autowired
private SystemDictDataBiz systemDictDataBiz;
+
+ @Autowired
+ private VisitsService visitsService;
@ApiOperation(value = "璋冪敤鍑嵁鑾峰彇鎺ュ彛", notes = "璁垮绔彁渚涳紝渚汦RP绔皟鐢紝鍚慐RP鎻愪緵缁熸帴鍙h皟鐢ㄥ嚟璇�")
@@ -155,6 +160,17 @@
return ApiResponse.success(null);
}
+ @ErpLoginRequired
+ @ApiOperation(value = "鍙戣捣璁垮鐢宠", notes = "璁垮绔彁渚涳紝渚汦RP绔皟鐢紝ERP绔彂璧疯瀹㈢敵璇�")
+ @PostMapping("/resource/createVisit")
+ @ApiImplicitParams({
+ @ApiImplicitParam(paramType = "header", dataType = "String", name = "token", value = "鎺堟潈token鍊�", required = true)
+ })
+ public ApiResponse createVisit(@RequestBody ErpVisitDTO param) {
+ param.setToken(this.getToken());
+ visitsService.createFKForErp(param);
+ return ApiResponse.success("鎿嶄綔鎴愬姛");
+ }
@ApiOperation(value = "FTP璐︽埛淇℃伅", notes = "璁垮绔彁渚涳紝渚汦RP绔皟鐢紝FTP璐︽埛淇℃伅,鍏朵腑銆怓TP璧勬簮璁块棶鏄犲皠鍦板潃銆戠敤浜庡浘鐗囧洖鏄句娇鐢紝" +
--
Gitblit v1.9.3