caozixuan 1 éve
szülő
commit
7c2d488974

+ 45 - 0
sop-business/src/main/java/com/qmth/sop/business/bean/result/UserArchivesAllocationResult.java

@@ -91,6 +91,19 @@ public class UserArchivesAllocationResult {
     @ApiModelProperty("派单状态")
     private CrmStatusEnum crmStatus;
 
+    @ApiModelProperty("派单发布人名称")
+    private String publishUserName;
+
+    @ApiModelProperty("派单发布时间")
+    private Long publishTime;
+
+    @ApiModelProperty("大区经理id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long regionManagerId;
+
+    @ApiModelProperty("大区经理名称")
+    private String regionManagerName;
+
     // --编辑页面用的附加信息
     @ApiModelProperty("用户分配的数据")
     private List<AllocationDto> allocationDtoList;
@@ -310,4 +323,36 @@ public class UserArchivesAllocationResult {
     public void setCrmStatus(CrmStatusEnum crmStatus) {
         this.crmStatus = crmStatus;
     }
+
+    public String getPublishUserName() {
+        return publishUserName;
+    }
+
+    public void setPublishUserName(String publishUserName) {
+        this.publishUserName = publishUserName;
+    }
+
+    public Long getPublishTime() {
+        return publishTime;
+    }
+
+    public void setPublishTime(Long publishTime) {
+        this.publishTime = publishTime;
+    }
+
+    public Long getRegionManagerId() {
+        return regionManagerId;
+    }
+
+    public void setRegionManagerId(Long regionManagerId) {
+        this.regionManagerId = regionManagerId;
+    }
+
+    public String getRegionManagerName() {
+        return regionManagerName;
+    }
+
+    public void setRegionManagerName(String regionManagerName) {
+        this.regionManagerName = regionManagerName;
+    }
 }

+ 23 - 0
sop-business/src/main/java/com/qmth/sop/business/entity/TBCrm.java

@@ -78,6 +78,13 @@ public class TBCrm extends BaseEntity implements Serializable {
     @ApiModelProperty(value = "派单状态(UN_PUBLISH(\"未发布\"),PUBLISH(\"已发布\"),FINISH(\"已完成\");)")
     private CrmStatusEnum status;
 
+    @ApiModelProperty(value = "派单发布人")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long publishUserId;
+
+    @ApiModelProperty(value = "派单发布时间")
+    private Long publishTime;
+
     public String getCrmNo() {
         return crmNo;
     }
@@ -189,4 +196,20 @@ public class TBCrm extends BaseEntity implements Serializable {
     public void setStatus(CrmStatusEnum status) {
         this.status = status;
     }
+
+    public Long getPublishUserId() {
+        return publishUserId;
+    }
+
+    public void setPublishUserId(Long publishUserId) {
+        this.publishUserId = publishUserId;
+    }
+
+    public Long getPublishTime() {
+        return publishTime;
+    }
+
+    public void setPublishTime(Long publishTime) {
+        this.publishTime = publishTime;
+    }
 }

+ 3 - 0
sop-business/src/main/java/com/qmth/sop/business/service/impl/TBCrmServiceImpl.java

@@ -355,6 +355,7 @@ public class TBCrmServiceImpl extends ServiceImpl<TBCrmMapper, TBCrm> implements
     @Transactional
     @Override
     public void updateCrmStatus(String crmNo, CrmStatusEnum status) {
+        SysUser requestUser = (SysUser) ServletUtil.getRequestUser();
         TBCrm tbCrm = this.findByCrmNo(crmNo);
         switch (status) {
             case UN_PUBLISH: // 撤回
@@ -362,6 +363,8 @@ public class TBCrmServiceImpl extends ServiceImpl<TBCrmMapper, TBCrm> implements
                 break;
             case PUBLISH: // 发布
                 tbCrm.setStatus(CrmStatusEnum.PUBLISH);
+                tbCrm.setPublishUserId(requestUser.getId());
+                tbCrm.setPublishTime(System.currentTimeMillis());
                 break;
             case FINISH: // 完结
                 tbCrm.setStatus(CrmStatusEnum.FINISH);

+ 4 - 1
sop-business/src/main/java/com/qmth/sop/business/service/impl/TBUserArchivesServiceImpl.java

@@ -92,7 +92,10 @@ public class TBUserArchivesServiceImpl extends ServiceImpl<TBUserArchivesMapper,
             record.setRoleInfoList(roleResultList);
             record.setAge(this.getAgeByIdentity(record.getIdentity()));
             record.setAuthenticationStatus(record.getAuthenticationValidTime() != null && record.getAuthenticationValidTime() > currentTime);
-            record.setBasePhotoPreviewPath(basicAttachmentService.filePreviewPath(record.getBasePhotoPath()));
+            String basePhotoPath = record.getBasePhotoPath();
+            if (basePhotoPath != null && basePhotoPath.length() > 0){
+                record.setBasePhotoPreviewPath(basicAttachmentService.filePreviewPath(basePhotoPath));
+            }
         }
         return page;
     }

+ 11 - 1
sop-business/src/main/java/com/qmth/sop/business/templete/service/impl/TaskLogicServiceImpl.java

@@ -31,6 +31,8 @@ import java.io.InputStream;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.*;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 import java.util.stream.Collectors;
 
 /**
@@ -164,7 +166,15 @@ public class TaskLogicServiceImpl implements TaskLogicService {
                     }
                     userArchivesParam.setEducation(EducationEnum.convertTitleToEnum(userArchivesImportDto.getEducation()));
                     userArchivesParam.setMobileNumber(userArchivesImportDto.getMobileNumber());
-                    userArchivesParam.setEmail(userArchivesImportDto.getEmail());
+                    String email = userArchivesImportDto.getEmail();
+                    if (email != null && email.length() > 0) {
+                        Pattern pattern = Pattern.compile(SystemConstant.EMAIL_REGEX);
+                        Matcher matcher = pattern.matcher(email);
+                        if (!matcher.matches()) {
+                            throw ExceptionResultEnum.ERROR.exception("导入数据中的 email : " + email + "不符合规范");
+                        }
+                        userArchivesParam.setEmail(email);
+                    }
 
                     String supplierName = userArchivesImportDto.getSupplierName();
                     Long supplierId = supplierMap.get(supplierName);

+ 3 - 4
sop-business/src/main/java/com/qmth/sop/business/util/ImportExportUtil.java

@@ -50,8 +50,7 @@ public class ImportExportUtil {
         try {
             StringJoiner stringJoiner = SystemConstant.getDirName(UploadFileEnum.FILE, true);
             stringJoiner.add(SystemConstant.getNanoId()).add(SystemConstant.JSON_PREFIX);
-
-            String txtDirName = stringJoiner.toString();
+            String path = stringJoiner.toString().replaceAll("\\\\", SystemConstant.ORG_SPLIT);
             txtFileTemp = SystemConstant.getFileTempVar(SystemConstant.JSON_PREFIX);
 
             String charset = SystemConstant.CHARSET_NAME;
@@ -62,9 +61,9 @@ public class ImportExportUtil {
             IOUtils.write(message.getBytes(charset), new FileOutputStream(txtFileTemp));
 
             String txtFileMd5 = DigestUtils.md5Hex(new FileInputStream(txtFileTemp));
-            fileStoreUtil.ossUpload(txtDirName, txtFileTemp, txtFileMd5, UploadFileEnum.FILE.getFssType());
+            fileStoreUtil.ossUpload(path, txtFileTemp, txtFileMd5, UploadFileEnum.FILE.getFssType());
             JSONObject json = new JSONObject();
-            json.put(SystemConstant.PATH, stringJoiner.toString());
+            json.put(SystemConstant.PATH, path);
             json.put(SystemConstant.TYPE, fileStoreUtil.uploadFileEnumIsOss(UploadFileEnum.FILE) ? SystemConstant.OSS : SystemConstant.LOCAL);
             json.put(SystemConstant.UPLOAD_TYPE, UploadFileEnum.FILE);
             return json;

+ 5 - 0
sop-business/src/main/resources/db/log/caozixuan_update_log.sql

@@ -347,3 +347,8 @@ ALTER TABLE t_b_device_in_out
     ADD COLUMN address_arr VARCHAR(100) NULL COMMENT '发往地(回显)' AFTER address;
 ALTER TABLE sys_device
     ADD COLUMN location_arr VARCHAR(100) NULL COMMENT '当前所在地(回显)' AFTER location;
+
+-- 2023-10-13
+ALTER TABLE t_b_crm
+    ADD COLUMN publish_user_id BIGINT NULL COMMENT '发布人id' AFTER status,
+    ADD COLUMN publish_time BIGINT NULL COMMENT '发布时间' AFTER publish_user_id;

+ 12 - 2
sop-business/src/main/resources/mapper/TBUserArchivesAllocationMapper.xml

@@ -34,12 +34,17 @@
                  IF(IFNULL(assistantQ.quota, 0) - IFNULL(assistantR.reality, 0) &lt; 0, 0, IFNULL(assistantQ.quota, 0) - IFNULL(assistantR.reality, 0)) AS assistantUnDistributed,
                  tbc.status AS crmStatus,
                  tbs.service_lead_id AS serviceUnitLeaderId,
-                 tbc.lead_id AS regionManagerId
+                 tbc.lead_id AS regionManagerId,
+                 rm.real_name AS regionManagerName,
+                 pu.real_name AS publishUserName,
+                 tbc.publish_time AS publishTime
              FROM
                  t_b_crm tbc
                      LEFT JOIN t_b_service tbs ON tbc.service_id = tbs.id
                      LEFT JOIN sys_custom su ON tbc.custom_id = su.id
                      LEFT JOIN sys_level sl ON su.level_id = sl.id
+                     LEFT JOIN sys_user pu ON tbc.publish_user_id = pu.id
+                     LEFT JOIN sys_user rm ON tbc.lead_id = rm.id
                      LEFT JOIN (SELECT
                                     slr.quota, slr.level_id
                                 FROM
@@ -138,12 +143,17 @@
                 IF(IFNULL(assistantQ.quota, 0) - IFNULL(assistantR.reality, 0) &lt; 0, 0, IFNULL(assistantQ.quota, 0) - IFNULL(assistantR.reality, 0)) AS assistantUnDistributed,
                 tbc.status AS crmStatus,
                 tbs.service_lead_id AS serviceUnitLeaderId,
-                tbc.lead_id AS regionManagerId
+                tbc.lead_id AS regionManagerId,
+                rm.real_name AS regionManagerName,
+                pu.real_name AS publishUserName,
+                tbc.publish_time AS publishTime
              FROM
                  t_b_crm tbc
                      LEFT JOIN t_b_service tbs ON tbc.service_id = tbs.id
                      LEFT JOIN sys_custom su ON tbc.custom_id = su.id
                      LEFT JOIN sys_level sl ON su.level_id = sl.id
+                     LEFT JOIN sys_user pu ON tbc.publish_user_id = pu.id
+                     LEFT JOIN sys_user rm ON tbc.lead_id = rm.id
                      LEFT JOIN (SELECT
                                     slr.quota, slr.level_id
                                 FROM

+ 2 - 0
sop-common/src/main/java/com/qmth/sop/common/contant/SystemConstant.java

@@ -170,6 +170,8 @@ public class SystemConstant {
      * 表达式
      */
     public static final String REGULAR_EXPRESSION_OF_PHONE = "((\\d{3,4})|(\\(\\d{3,4}\\)-))?\\d{7,8}";
+    // 有效邮箱校验表达式
+    public static final String EMAIL_REGEX = "^[A-Za-z0-9]+([._%+-][A-Za-z0-9]+)*@[A-Za-z0-9]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$";
 
     /**
      * 系统配置