Commit 914a1e04 by 刘鑫

Merge remote-tracking branch 'origin/develop' into develop

2 parents eb7f533c db6db1ee
...@@ -2,6 +2,7 @@ package com.dituhui.pea.enums; ...@@ -2,6 +2,7 @@ package com.dituhui.pea.enums;
/** /**
* 错误码枚举类 * 错误码枚举类
*
* @author zl * @author zl
*/ */
...@@ -38,39 +39,39 @@ public enum StatusCodeEnum { ...@@ -38,39 +39,39 @@ public enum StatusCodeEnum {
/** /**
* 文件不存在 * 文件不存在
*/ */
FILE_NOT_EXIST("005", "文件不存在",false), FILE_NOT_EXIST("005", "文件不存在", false),
/** /**
* 系统异常 * 系统异常
*/ */
SYSTEM_UNKNOWN_ERROR("006", "系统繁忙,请稍后再试....",false), SYSTEM_UNKNOWN_ERROR("006", "系统繁忙,请稍后再试....", false),
REQUEST_LIMIT_ERROR("0429","请求超限!", false), REQUEST_LIMIT_ERROR("0429", "请求超限!", false),
/** /**
* 没有查询到对应的数据 * 没有查询到对应的数据
*/ */
NO_DATA("007", "没有查询到对应的数据",false), NO_DATA("007", "没有查询到对应的数据", false),
/** /**
* 用户不存在 * 用户不存在
*/ */
USER_DOES_NOT_EXIST("008","用户不存在", false), USER_DOES_NOT_EXIST("008", "用户不存在", false),
/** /**
* 团队不存在 * 团队不存在
*/ */
TEAM_DOES_NOT_EXIST("009","团队不存在", false), TEAM_DOES_NOT_EXIST("009", "团队不存在", false),
/** /**
* 手机号码已存在 * 手机号码已存在
*/ */
MOBILE_NUMBER_EXISTS("010","手机号码已存在", false), MOBILE_NUMBER_EXISTS("010", "手机号码已存在", false),
/** /**
* 账号已存在 * 账号已存在
*/ */
ACCOUNT_EXISTS("011", "账号已存在",false), ACCOUNT_EXISTS("011", "账号已存在", false),
/** /**
* 邮箱已存在 * 邮箱已存在
...@@ -80,17 +81,17 @@ public enum StatusCodeEnum { ...@@ -80,17 +81,17 @@ public enum StatusCodeEnum {
/** /**
* 用户已存在团队中,不能重复添加 * 用户已存在团队中,不能重复添加
*/ */
USER_ALREADY_EXISTS_TEAM("013","用户已存在团队中,不能重复添加",false), USER_ALREADY_EXISTS_TEAM("013", "用户已存在团队中,不能重复添加", false),
/** /**
* 角色不存在 * 角色不存在
*/ */
ROLE_DOES_NOT_EXIST("014","角色不存在", false), ROLE_DOES_NOT_EXIST("014", "角色不存在", false),
/** /**
* 角色资源为空 * 角色资源为空
*/ */
ROLE_RESOURCE_EMPTY("015","角色资源为空!", false), ROLE_RESOURCE_EMPTY("015", "角色资源为空!", false),
/** /**
* 权限资源不存在 * 权限资源不存在
...@@ -100,12 +101,12 @@ public enum StatusCodeEnum { ...@@ -100,12 +101,12 @@ public enum StatusCodeEnum {
/** /**
* 角色中已存在该资源,不能重复添加 * 角色中已存在该资源,不能重复添加
*/ */
RESOURCE_ALREADY_EXISTS_ROLE("017","角色中已存在该资源,不能重复添加", false), RESOURCE_ALREADY_EXISTS_ROLE("017", "角色中已存在该资源,不能重复添加", false),
/** /**
* 用户状态异常或已被禁用 * 用户状态异常或已被禁用
*/ */
USER_ISBAN_OR_ERROR("018","用户状态异常或已被禁用", false), USER_ISBAN_OR_ERROR("018", "用户状态异常或已被禁用", false),
GIS_EXISTS("001", "已存在", false), GIS_EXISTS("001", "已存在", false),
...@@ -117,8 +118,13 @@ public enum StatusCodeEnum { ...@@ -117,8 +118,13 @@ public enum StatusCodeEnum {
GIS_AREA_SMALL("005", "对象操作后面积过小", false), GIS_AREA_SMALL("005", "对象操作后面积过小", false),
GIS_AREA_TOPOLOGY("006", "拓扑处理出错", false) GIS_AREA_TOPOLOGY("006", "拓扑处理出错", false),
;
USER_PHONE_ERROR("019", "手机号格式有误", false),
USER_EMAIL_ERROR("020", "邮箱格式有误", false),
USER_ORG_NULL_ERROR("021", "组织结构异常或为空", false);
/** /**
* 状态码 * 状态码
......
...@@ -16,4 +16,9 @@ public class OrgInfo implements Serializable { ...@@ -16,4 +16,9 @@ public class OrgInfo implements Serializable {
* 机构名称 * 机构名称
*/ */
private String name; private String name;
/**
* 组织级别 0:大区 1:分部 2:站点
*/
private Integer orgLevel;
} }
...@@ -20,6 +20,28 @@ public class OrderServiceDetailResp { ...@@ -20,6 +20,28 @@ public class OrderServiceDetailResp {
private OrderDetail reschedulingParams; private OrderDetail reschedulingParams;
private List<KV> items; private List<KV> items;
/**
* 是否重物搬运(双人上门) 0:否 1:是 默认0
*/
private Integer isMultiple;
/**
* 是否指定某个工程师/是否排除某个工程师 0:否 1:指定 2:排除 默认0
*/
private Integer isAppointEngineer;
/**
* 指定某个工程师/排除某个工程师 codes 多个,分割
*/
private String appointEngineerCodes;
/**
* bean优先级,例如:紧急、正常
*/
private String beanPriority;;
@Data @Data
@JsonInclude(JsonInclude.Include.NON_NULL) @JsonInclude(JsonInclude.Include.NON_NULL)
public static class OrderDetail{ public static class OrderDetail{
......
...@@ -37,5 +37,21 @@ public class OrderServiceList { ...@@ -37,5 +37,21 @@ public class OrderServiceList {
*/ */
private String beanPriority; private String beanPriority;
/**
* 是否重物搬运(双人上门) 0:否 1:是 默认0
*/
private Integer isMultiple;
/**
* 是否指定某个工程师/是否排除某个工程师 0:否 1:指定 2:排除 默认0
*/
private Integer isAppointEngineer;
/**
* 指定某个工程师/排除某个工程师 codes 多个,分割
*/
private String appointEngineerCodes;
} }
...@@ -59,4 +59,20 @@ public class OrderInfo { ...@@ -59,4 +59,20 @@ public class OrderInfo {
private String description; private String description;
private Timestamp createTime; private Timestamp createTime;
private Timestamp updateTime; private Timestamp updateTime;
/**
* 是否重物搬运(双人上门) 0:否 1:是 默认0
*/
private Integer isMultiple;
/**
* 是否指定某个工程师/是否排除某个工程师 0:否 1:指定 2:排除 默认0
*/
private Integer isAppointEngineer;
/**
* 指定某个工程师/排除某个工程师 codes 多个,分割
*/
private String appointEngineerCodes;
} }
\ No newline at end of file
...@@ -44,10 +44,10 @@ public class OrderInfoEntity { ...@@ -44,10 +44,10 @@ public class OrderInfoEntity {
private String address; private String address;
@Column(name = "x", nullable = false, length = 20) @Column(name = "x", nullable = false, length = 20)
private String x="0"; private String x = "0";
@Column(name = "y", nullable = false, length = 20) @Column(name = "y", nullable = false, length = 20)
private String y="0"; private String y = "0";
@Column(name = "bean_brand", nullable = false, length = 20) @Column(name = "bean_brand", nullable = false, length = 20)
private String beanBrand; private String beanBrand;
...@@ -176,4 +176,25 @@ public class OrderInfoEntity { ...@@ -176,4 +176,25 @@ public class OrderInfoEntity {
private LocalDateTime updateTime = LocalDateTime.now(); private LocalDateTime updateTime = LocalDateTime.now();
// Getters and setters (omitted for brevity) // Getters and setters (omitted for brevity)
/**
* 是否重物搬运(双人上门) 0:否 1:是 默认0
*/
@Column(name = "is_multiple")
private Integer isMultiple = 0;
/**
* 是否指定某个工程师/是否排除某个工程师 0:否 1:指定 2:排除 默认0
*/
@Column(name = "is_appoint_engineer")
private Integer isAppointEngineer = 0;
/**
* 指定某个工程师/排除某个工程师 codes 多个,分割
*/
@Column(name = "appoint_engineer_codes")
private String appointEngineerCodes;
} }
...@@ -7,6 +7,11 @@ package com.dituhui.pea.order.enums; ...@@ -7,6 +7,11 @@ package com.dituhui.pea.order.enums;
public enum OrganizationType { public enum OrganizationType {
/** /**
* 超管
*/
admin("admin"),
/**
* 大区 * 大区
*/ */
cluster("cluster"), cluster("cluster"),
......
...@@ -185,7 +185,7 @@ public class EngineerGanttServiceImpl implements EngineerGanttService { ...@@ -185,7 +185,7 @@ public class EngineerGanttServiceImpl implements EngineerGanttService {
btime = getHourMinute(order.getPlanStartTime(), -order.getArriveElapsed()); btime = getHourMinute(order.getPlanStartTime(), -order.getArriveElapsed());
etime = getHourMinute(order.getPlanStartTime()); etime = getHourMinute(order.getPlanStartTime());
} }
tips.add(new LabelValueDTO().setLabel("在途路程").setValue(String.format("%s", order.getArriveDistance()))); tips.add(new LabelValueDTO().setLabel("在途路程").setValue(String.format("%s公里(千米)", order.getArriveDistance())));
tips.add(new LabelValueDTO().setLabel("在途时间").setValue(String.format("%s-%s", btime, etime))); tips.add(new LabelValueDTO().setLabel("在途时间").setValue(String.format("%s-%s", btime, etime)));
tips.add(new LabelValueDTO().setLabel("在途耗时").setValue(String.format("%s分钟", order.getArriveElapsed()))); tips.add(new LabelValueDTO().setLabel("在途耗时").setValue(String.format("%s分钟", order.getArriveElapsed())));
return tips; return tips;
......
...@@ -68,6 +68,11 @@ public class OrderServiceDetailImpl implements OrderServiceDetail { ...@@ -68,6 +68,11 @@ public class OrderServiceDetailImpl implements OrderServiceDetail {
res.setReschedulingParams(detail); res.setReschedulingParams(detail);
res.setItems(items); res.setItems(items);
res.setIsMultiple(order.getIsMultiple());
res.setIsAppointEngineer(order.getIsAppointEngineer());
res.setAppointEngineerCodes(order.getAppointEngineerCodes());
res.setBeanPriority(order.getBeanPriority());
return Result.success(res); return Result.success(res);
} }
...@@ -125,12 +130,12 @@ public class OrderServiceDetailImpl implements OrderServiceDetail { ...@@ -125,12 +130,12 @@ public class OrderServiceDetailImpl implements OrderServiceDetail {
List<OrderAppointmentListResp.OrderAppointment> items = new ArrayList<>(); List<OrderAppointmentListResp.OrderAppointment> items = new ArrayList<>();
for (OrderInfoEntity o : results) { for (OrderInfoEntity o : results) {
EngineerInfoEntity eg = egInfo.getOrDefault(o.getEngineerCode(), null); EngineerInfoEntity eg = egInfo.getOrDefault(o.getEngineerCode(), null);
if(eg == null) { if (eg == null) {
log.warn("未获得工程师{}基础信息, 订单:{}", o.getEngineerCode(), o.getOrderId()); log.warn("未获得工程师{}基础信息, 订单:{}", o.getEngineerCode(), o.getOrderId());
continue; continue;
} }
String skill = egSkill.getOrDefault(o.getEngineerCode(), null); String skill = egSkill.getOrDefault(o.getEngineerCode(), null);
if(skill == null) { if (skill == null) {
log.warn("未获得工程师{}基础技能, 订单:{}", o.getEngineerCode(), o.getOrderId()); log.warn("未获得工程师{}基础技能, 订单:{}", o.getEngineerCode(), o.getOrderId());
} }
...@@ -192,7 +197,8 @@ public class OrderServiceDetailImpl implements OrderServiceDetail { ...@@ -192,7 +197,8 @@ public class OrderServiceDetailImpl implements OrderServiceDetail {
if (egCodes.isEmpty()) { if (egCodes.isEmpty()) {
return map; return map;
} }
List<EngineerInfoEntity> rows = engineerInfoDao.findByEngineerCodeIn(egCodes);; List<EngineerInfoEntity> rows = engineerInfoDao.findByEngineerCodeIn(egCodes);
;
for (EngineerInfoEntity row : rows) { for (EngineerInfoEntity row : rows) {
map.put(row.getEngineerCode(), row); map.put(row.getEngineerCode(), row);
} }
......
...@@ -140,6 +140,9 @@ public class OrderServiceListServiceImpl implements OrderServiceListService { ...@@ -140,6 +140,9 @@ public class OrderServiceListServiceImpl implements OrderServiceListService {
record.setCreateTime(TimeUtils.IsoTimestamp2DateTime(o.getCreateTime())); record.setCreateTime(TimeUtils.IsoTimestamp2DateTime(o.getCreateTime()));
record.setBeanPriority(o.getBeanPriority()); record.setBeanPriority(o.getBeanPriority());
record.setIsMultiple(o.getIsMultiple());
record.setIsAppointEngineer(o.getIsAppointEngineer());
record.setAppointEngineerCodes(o.getAppointEngineerCodes());
content.add(record); content.add(record);
} }
......
...@@ -235,6 +235,18 @@ public class OrganizationServiceImpl implements OrganizationService { ...@@ -235,6 +235,18 @@ public class OrganizationServiceImpl implements OrganizationService {
}).collect(Collectors.toList()); }).collect(Collectors.toList());
} }
break; break;
case admin:
List<OrgClusterEntity> adminCluster = orgClusterDao.findAll();
if (CollectionUtils.isNotEmpty(adminCluster)) {
return adminCluster.stream().map(c -> {
OrganizationDTO organizationDTO = new OrganizationDTO();
organizationDTO.setId(c.getClusterId());
organizationDTO.setName(c.getName());
organizationDTO.setType(OrganizationType.cluster.getValue());
return organizationDTO;
}).collect(Collectors.toList());
}
break;
default: default:
break; break;
} }
......
...@@ -4,9 +4,11 @@ import java.util.List; ...@@ -4,9 +4,11 @@ import java.util.List;
import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor; import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.CrudRepository; import org.springframework.data.repository.CrudRepository;
import com.dituhui.pea.user.entity.UserEntity; import com.dituhui.pea.user.entity.UserEntity;
import org.springframework.data.repository.query.Param;
/** /**
* 用户表(User)表数据库访问层 * 用户表(User)表数据库访问层
...@@ -80,4 +82,14 @@ public interface UserDao extends JpaRepository<UserEntity, String>, JpaSpecifica ...@@ -80,4 +82,14 @@ public interface UserDao extends JpaRepository<UserEntity, String>, JpaSpecifica
*/ */
List<UserEntity> findByIdIn(List<String> userIds); List<UserEntity> findByIdIn(List<String> userIds);
/**
* 登录验证
* @param loginname 登录名(手机号、邮箱、用户名)
* @param password 密码
* @return
*/
@Query("select t from UserEntity t where (t.account=:loginname or t.email=:loginname or t.phone=:loginname) and t.password=:password")
public UserEntity findByLoginnameAndPass(@Param("loginname")String loginname, @Param("password")String password);
} }
...@@ -21,5 +21,13 @@ public interface UserOrgDao extends JpaRepository<UserOrgEntity, String>, JpaSpe ...@@ -21,5 +21,13 @@ public interface UserOrgDao extends JpaRepository<UserOrgEntity, String>, JpaSpe
*/ */
List<UserOrgEntity> findByUserId(String userId); List<UserOrgEntity> findByUserId(String userId);
/**
* 根据用户id查询
*
* @param orgId
* @return
*/
List<UserOrgEntity> findByOrgId(String orgId);
void deleteByUserId(String userId); void deleteByUserId(String userId);
} }
...@@ -34,6 +34,14 @@ public interface UserRoleDao extends JpaRepository<UserRoleEntity, String>, ...@@ -34,6 +34,14 @@ public interface UserRoleDao extends JpaRepository<UserRoleEntity, String>,
List<UserRoleEntity> findByUserId(String userId); List<UserRoleEntity> findByUserId(String userId);
/** /**
* 根据用户ID查询
*
* @param userId 用户ID
* @return
*/
List<UserRoleEntity> findByUserIdIn(List<String> userId);
/**
* 根据角色ID和用户ID删除 * 根据角色ID和用户ID删除
* *
* @param roleId 角色ID * @param roleId 角色ID
......
package com.dituhui.pea.user.utils;
import cn.hutool.core.util.ObjectUtil;
public class LevelUtils {
/**
* 组织级别转换
*
* @param orgLevel
* @return
*/
public static String convertOrgLevel(Integer orgLevel) {
if (ObjectUtil.isNull(orgLevel)) {
return null;
}
String level = null;
switch (orgLevel) {
case 0:
return level = "cluster";
case 1:
return level = "branch";
case 2:
return level = "group";
}
return level;
}
}
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!