Commit 1b8be958 authored by chenhao's avatar chenhao

Merge branch 'developer' of http://172.16.10.76/moa/amos-boot-biz into developer

parents 356fe707 dc7001ea
...@@ -71,6 +71,12 @@ ...@@ -71,6 +71,12 @@
<artifactId>itext-asian</artifactId> <artifactId>itext-asian</artifactId>
<version>5.2.0</version> <version>5.2.0</version>
</dependency> </dependency>
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>core</artifactId>
<version>3.3.0</version>
<scope>compile</scope>
</dependency>
</dependencies> </dependencies>
</project> </project>
package com.yeejoin.amos.boot.biz.common.utils;
/**
* tweeter的snowflake 移植到Java:
* (a) id构成: 42位的时间前缀 + 10位的节点标识 + 12位的sequence避免并发的数字(12位不够用时强制得到新的时间前缀)
* 注意这里进行了小改动: snowkflake是5位的datacenter加5位的机器id; 这里变成使用10位的机器id
* (b) 对系统时间的依赖性非常强,需关闭ntp的时间同步功能。当检测到ntp时间调整后,将会拒绝分配id
*/
public class IdWorker {
private final long workerId;
private final long epoch = 1403854494756L; // 时间起始标记点,作为基准,一般取系统的最近时间
private final long workerIdBits = 10L; // 机器标识位数
private final long maxWorkerId = -1L ^ -1L << this.workerIdBits;// 机器ID最大值: 1023
private long sequence = 0L; // 0,并发控制
private final long sequenceBits = 12L; //毫秒内自增位
private final long workerIdShift = this.sequenceBits; // 12
private final long timestampLeftShift = this.sequenceBits + this.workerIdBits;// 22
private final long sequenceMask = -1L ^ -1L << this.sequenceBits; // 4095,111111111111,12位
private long lastTimestamp = -1L;
private IdWorker(long workerId) {
if (workerId > this.maxWorkerId || workerId < 0) {
throw new IllegalArgumentException(String.format("worker Id can't be greater than %d or less than 0", this.maxWorkerId));
}
this.workerId = workerId;
}
public synchronized long nextId() throws Exception {
long timestamp = this.timeGen();
if (this.lastTimestamp == timestamp) { // 如果上一个timestamp与新产生的相等,则sequence加一(0-4095循环); 对新的timestamp,sequence从0开始
this.sequence = this.sequence + 1 & this.sequenceMask;
if (this.sequence == 0) {
timestamp = this.tilNextMillis(this.lastTimestamp);// 重新生成timestamp
}
} else {
this.sequence = 0;
}
if (timestamp < this.lastTimestamp) {
throw new Exception(String.format("clock moved backwards.Refusing to generate id for %d milliseconds", (this.lastTimestamp - timestamp)));
}
this.lastTimestamp = timestamp;
return timestamp - this.epoch << this.timestampLeftShift | this.workerId << this.workerIdShift | this.sequence;
}
private static IdWorker flowIdWorker = new IdWorker(1);
public static IdWorker getFlowIdWorkerInstance() {
return flowIdWorker;
}
/**
* 等待下一个毫秒的到来, 保证返回的毫秒数在参数lastTimestamp之后
*/
private long tilNextMillis(long lastTimestamp) throws InterruptedException {
long timestamp = this.timeGen();
while (timestamp <= lastTimestamp) {
timestamp = this.timeGen();
}
return timestamp;
}
/**
* 获得系统当前毫秒数
*/
private static long timeGen() throws InterruptedException {
return System.currentTimeMillis();
}
}
\ No newline at end of file
package com.yeejoin.amos.boot.biz.common.utils;
import com.google.zxing.BarcodeFormat;
import com.google.zxing.EncodeHintType;
import com.google.zxing.MultiFormatWriter;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Hashtable;
import java.util.Random;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;
/**
* 二维码工具类
*
* @author Administrator
*/
public class QRCodeUtil {
private static final String CHARSET = "utf-8";
private static final int QRCODE_SIZE = 45;
private static Random random = new Random();
private static int randomNumForQrCode;
/**
* <pre>
* 根据当前记录ID生成QRCode
* </pre>
*
* @return
*/
public static String generateQRCode(Date dateCreated, String pointNo) {
return String.valueOf(dateCreated.getTime() + pointNo);
}
/**
* <pre>
* 生成QRCode
* </pre>
*
* @return
*/
public static String generateQRCode() {
String res;
//加锁生成随机数,保证自增后释放
Lock lock = new ReentrantLock();
lock.lock();
randomNumForQrCode += 1;
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMdd");
try {
res = simpleDateFormat.format(new Date(System.currentTimeMillis())).substring(5, 8) + String.valueOf(IdWorker.getFlowIdWorkerInstance().nextId()).substring(0, 10) + randomNumForQrCode;
} catch (Exception e) {
Random random = new Random(System.currentTimeMillis());
String tmp = "";
for (int i = 0; i < 13; i++) {
tmp += random.nextInt(10);
}
res = simpleDateFormat.format(new Date(System.currentTimeMillis())).substring(2, 8) + tmp.substring(0, 10) + randomNumForQrCode;
} finally {
lock.unlock();
}
return res;
}
/**
* 生成临时的qrCode
*
* @return
*/
public static String temporaryQrCode() {
long qrCode = -1 * System.currentTimeMillis();
qrCode += (long) (random.nextDouble() * 10000000);
return String.valueOf(qrCode);
}
/**
* 根据二维码信息,生成二维码图片 用户excel,word等导出图片
*
* @param content
* @return
*/
public static byte[] generateQRCodeImageByteData(String content) {
ByteArrayOutputStream out = new ByteArrayOutputStream();
try {
Hashtable<EncodeHintType, Object> hints = new Hashtable<EncodeHintType, Object>();
hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.H);
hints.put(EncodeHintType.CHARACTER_SET, CHARSET);
hints.put(EncodeHintType.MARGIN, 1);
BitMatrix bitMatrix = new MultiFormatWriter().encode(
content
, BarcodeFormat.QR_CODE
, QRCODE_SIZE
, QRCODE_SIZE,
hints);
int width = bitMatrix.getWidth();
int height = bitMatrix.getHeight();
BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
for (int x = 0; x < width; x++) {
for (int y = 0; y < height; y++) {
image.setRGB(x, y, bitMatrix.get(x, y) ? 0xFF000000 : 0xFFFFFFFF);
}
}
ImageIO.write(image, "png", out);
return out.toByteArray();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return null;
}
}
...@@ -11,7 +11,9 @@ import org.springframework.web.bind.annotation.RequestParam; ...@@ -11,7 +11,9 @@ import org.springframework.web.bind.annotation.RequestParam;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
@FeignClient(name = "AMOS-API-WORKFLOW-CJHENHAO", path = "workflow", configuration = { CommonMultipartSupportConfig.class }) import javax.servlet.http.HttpServletResponse;
@FeignClient(name = "AMOS-API-WORKFLOW", path = "workflow", configuration = { CommonMultipartSupportConfig.class })
public interface WorkflowFeignService { public interface WorkflowFeignService {
/** /**
* 发起流程 * 发起流程
...@@ -104,4 +106,14 @@ public interface WorkflowFeignService { ...@@ -104,4 +106,14 @@ public interface WorkflowFeignService {
@RequestMapping(value = "/task/completeTask/noFromInstanceAdd/{taskID}", method = RequestMethod.POST) @RequestMapping(value = "/task/completeTask/noFromInstanceAdd/{taskID}", method = RequestMethod.POST)
JSONObject completeNoExecuteFromInstanceAdd(@PathVariable("taskID") String taskID, @RequestBody(required = false) HashMap<String, Object> variable) throws Exception; JSONObject completeNoExecuteFromInstanceAdd(@PathVariable("taskID") String taskID, @RequestBody(required = false) HashMap<String, Object> variable) throws Exception;
/**
* 流程图高亮
* */
@RequestMapping(value = "/activitiHistory/gethighLineImg/{processInstanceId}",method = RequestMethod.GET)
JSONObject thighLineImg(@PathVariable("processInstanceId") String processInstanceId, HttpServletResponse resp) ;
/**
* 流程图高亮图片
* */
@RequestMapping(value = "/activitiHistory/gethighLine",method = RequestMethod.GET)
JSONObject thighLine(@RequestParam("instanceId") String instanceId);
} }
package com.yeejoin.amos.boot.module.common.api.dto;
import com.yeejoin.amos.boot.biz.common.dto.BaseDto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.io.Serializable;
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@ApiModel(value = "CheckObjectDto", description = "机构重点部位")
public class CheckObjectDto extends BaseDto implements Serializable {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "机构名称")
private String bizOrgName;
@ApiModelProperty(value = "机构编码")
private String bizOrgCode;
@ApiModelProperty(value = "重点部位数量")
private int num;
@ApiModelProperty(value = "归属机构")
private String parentId;
@ApiModelProperty(value = "单位性质")
private String companyNature;
@ApiModelProperty(value = "机构类型(部门:DEPARTMENT,单位:COMPANY,人员:PERSON)")
private String bizOrgType;
}
...@@ -2,6 +2,7 @@ package com.yeejoin.amos.boot.module.common.api.dto; ...@@ -2,6 +2,7 @@ package com.yeejoin.amos.boot.module.common.api.dto;
import com.alibaba.excel.annotation.ExcelIgnore; import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.TableField;
import com.yeejoin.amos.boot.biz.common.dto.BaseDto; import com.yeejoin.amos.boot.biz.common.dto.BaseDto;
import com.yeejoin.amos.boot.module.common.api.excel.ExplicitConstraint; import com.yeejoin.amos.boot.module.common.api.excel.ExplicitConstraint;
import com.yeejoin.amos.boot.module.common.api.excel.RoleNameExplicitConstraint; import com.yeejoin.amos.boot.module.common.api.excel.RoleNameExplicitConstraint;
...@@ -33,10 +34,6 @@ public class WaterResourceDto extends BaseDto { ...@@ -33,10 +34,6 @@ public class WaterResourceDto extends BaseDto {
@ApiModelProperty(value = "地址") @ApiModelProperty(value = "地址")
private String address; private String address;
// @ApiModelProperty(value = "经纬度坐标")
// private String latLang;
@ExcelIgnore @ExcelIgnore
@ApiModelProperty(value = "经度") @ApiModelProperty(value = "经度")
private Double longitude; private Double longitude;
...@@ -308,4 +305,20 @@ public class WaterResourceDto extends BaseDto { ...@@ -308,4 +305,20 @@ public class WaterResourceDto extends BaseDto {
@ExcelIgnore @ExcelIgnore
@ApiModelProperty(value = "物联参数") @ApiModelProperty(value = "物联参数")
private WaterResourceIotDto waterResourceIotDto; private WaterResourceIotDto waterResourceIotDto;
@ApiModelProperty("设施定义名称")
@ExcelProperty(value = "设施定义名称", index = 44)
private String equipName;
@ApiModelProperty("设施分类名称")
@ExcelProperty(value = "设施分类名称", index = 45)
private String equipCategoryName;
@ApiModelProperty("设施编码")
@ExcelProperty(value = "设施编码", index = 46)
private String equipCode;
@ApiModelProperty("维保周期")
@ExcelProperty(value = "维保周期(月)", index = 47)
private String maintenancePeriod;
} }
...@@ -36,116 +36,157 @@ public class WaterResource extends BaseEntity { ...@@ -36,116 +36,157 @@ public class WaterResource extends BaseEntity {
*/ */
@TableField("address") @TableField("address")
private String address; private String address;
/** /**
* 经纬度坐标 * 经纬度坐标
*/ */
// @TableField("lat_lang")
// private String latLang;
@ApiModelProperty(value = "经度") @ApiModelProperty(value = "经度")
private Double longitude; private Double longitude;
@ApiModelProperty(value = "纬度") @ApiModelProperty(value = "纬度")
private Double latitude; private Double latitude;
/** /**
* 资源类型(消火栓、消防水鹤、天然水源、消防水池) * 资源类型(消火栓、消防水鹤、天然水源、消防水池)
*/ */
@TableField("resource_type") @TableField("resource_type")
private String resourceType; private String resourceType;
/** /**
* 资源类型名称(消火栓、消防水鹤、天然水源、消防水池) * 资源类型名称(消火栓、消防水鹤、天然水源、消防水池)
*/ */
@TableField("resource_type_name") @TableField("resource_type_name")
private String resourceTypeName; private String resourceTypeName;
/** /**
* 所在建筑id * 所在建筑id
*/ */
@TableField("belong_building_id") @TableField("belong_building_id")
private Long belongBuildingId; private Long belongBuildingId;
/** /**
* 所在建筑 * 所在建筑
*/ */
@TableField("belong_building") @TableField("belong_building")
private String belongBuilding; private String belongBuilding;
/** /**
* 所属消防系统id * 所属消防系统id
*/ */
@TableField("belong_fighting_system_id") @TableField("belong_fighting_system_id")
private Long belongFightingSystemId; private Long belongFightingSystemId;
/** /**
* 所属消防系统 * 所属消防系统
*/ */
@TableField("belong_fighting_system") @TableField("belong_fighting_system")
private String belongFightingSystem; private String belongFightingSystem;
/** /**
* 管理单位id * 管理单位id
*/ */
@TableField("management_unit_id") @TableField("management_unit_id")
private Long managementUnitId; private Long managementUnitId;
/** /**
* 管理单位 * 管理单位
*/ */
@TableField("management_unit") @TableField("management_unit")
private String managementUnit; private String managementUnit;
/** /**
* 维保单位id * 维保单位id
*/ */
@TableField("maintenance_unit_id") @TableField("maintenance_unit_id")
private Long maintenanceUnitId; private Long maintenanceUnitId;
/** /**
* 维保单位 * 维保单位
*/ */
@TableField("maintenance_unit") @TableField("maintenance_unit")
private String maintenanceUnit; private String maintenanceUnit;
/** /**
* 建造日期 * 建造日期
*/ */
@TableField("build_date") @TableField("build_date")
private Date buildDate; private Date buildDate;
/** /**
* 启用日期 * 启用日期
*/ */
@TableField("enable_date") @TableField("enable_date")
private Date enableDate; private Date enableDate;
/** /**
* 方位图 * 方位图
*/ */
@TableField("orientation_img") @TableField("orientation_img")
private String orientationImg; private String orientationImg;
/** /**
* 实景图 * 实景图
*/ */
@TableField("reality_img") @TableField("reality_img")
private String realityImg; private String realityImg;
/** /**
* 联系人姓名 * 联系人姓名
*/ */
@TableField("contact_user") @TableField("contact_user")
private String contactUser; private String contactUser;
/** /**
* 联系人电话 * 联系人电话
*/ */
@TableField("contact_phone") @TableField("contact_phone")
private String contactPhone; private String contactPhone;
/** /**
* 是否有物联参数(1有,0没有) * 是否有物联参数(1有,0没有)
*/ */
@TableField("is_iot") @TableField("is_iot")
private Boolean isIot; private Boolean isIot;
/** /**
* 消防救援机构_通用唯一识别码 * 消防救援机构_通用唯一识别码
*/ */
@TableField("rescue_org_code") @TableField("rescue_org_code")
private String rescueOrgCode; private String rescueOrgCode;
/** /**
* 行政区划代码 * 行政区划代码
*/ */
@TableField("administrative_code") @TableField("administrative_code")
private String administrativeCode; private String administrativeCode;
/** /**
* 组织机构代码 * 组织机构代码
*/ */
@TableField("org_code") @TableField("org_code")
private String orgCode; private String orgCode;
@ApiModelProperty("设施定义")
@TableField("equip_id")
private Long equipId;
@ApiModelProperty("设施定义名称")
@TableField("equip_name")
private String equipName;
@ApiModelProperty("设施分类")
@TableField("equip_category_id")
private Long equipCategoryId;
@ApiModelProperty("设施分类名称")
@TableField("equip_category_name")
private String equipCategoryName;
@ApiModelProperty("设施编码")
@TableField("equip_code")
private String equipCode;
@ApiModelProperty("维保周期")
@TableField("maintenance_period")
private String maintenancePeriod;
} }
...@@ -67,7 +67,7 @@ public interface OrgUsrMapper extends BaseMapper<OrgUsr> { ...@@ -67,7 +67,7 @@ public interface OrgUsrMapper extends BaseMapper<OrgUsr> {
/** /**
* 查询单位基本信息列表和单位下所有的重点部位数量。 * 查询单位基本信息列表和单位下所有的重点部位数量。
*/ */
List<OrgUsrTreeDto> getCompanyAndKeySite(Long companyId); List<CheckObjectDto> getCompanyAndKeySite(Long companyId);
List<UserUnitDto> getUserUnit(String id, String type, String code); List<UserUnitDto> getUserUnit(String id, String type, String code);
} }
...@@ -203,7 +203,12 @@ public interface IOrgUsrService { ...@@ -203,7 +203,12 @@ public interface IOrgUsrService {
/** /**
* 根据登陆人获取公司列表(关联重点部位) * 根据登陆人获取公司列表(关联重点部位)
*/ */
List<OrgUsrTreeDto> companyListByUser(AgencyUserModel user); List<CheckObjectDto> companyListByUser(AgencyUserModel user);
/**
* 获取登陆人关联机场单位人员信息,部门信息
*/
List<Map<String, Object>> getLoginUserDetails(AgencyUserModel user);
List<OrgUsr> getPersonListByParentId(Long id); List<OrgUsr> getPersonListByParentId(Long id);
......
...@@ -138,13 +138,24 @@ ...@@ -138,13 +138,24 @@
clu.rec_user_id AS recUserId, clu.rec_user_id AS recUserId,
clu.rec_date AS recDate, clu.rec_date AS recDate,
clu.is_delete AS isDelete, clu.is_delete AS isDelete,
cre.vehicle_number AS vehicleNumber, (
csps.person_number AS personNumber SELECT
sum(cre.vehicle_number)
FROM
cb_rescue_equipment cre
WHERE
clu.sequence_nbr = cre.company_id
) AS vehicleNumber,
(
SELECT
sum(csps.person_number)
FROM
cb_special_position_staff csps
WHERE
clu.sequence_nbr = csps.company_id
) AS personNumber
FROM FROM
cb_linkage_unit clu cb_linkage_unit clu
LEFT JOIN cb_rescue_equipment cre ON clu.sequence_nbr = cre.company_id
LEFT JOIN cb_special_position_staff csps ON clu.sequence_nbr =
csps.company_id
WHERE clu.is_delete=0 WHERE clu.is_delete=0
<if test="unitName != null and unitName != ''"> <if test="unitName != null and unitName != ''">
AND clu.unit_name LIKE concat(#{unitName}, '%') AND clu.unit_name LIKE concat(#{unitName}, '%')
......
...@@ -355,7 +355,7 @@ LEFT JOIN ( ...@@ -355,7 +355,7 @@ LEFT JOIN (
on b.instance_id=a.sequence_nbr where a.biz_org_name is not null on b.instance_id=a.sequence_nbr where a.biz_org_name is not null
</select> </select>
<select id="getCompanyAndKeySite" resultType="com.yeejoin.amos.boot.module.common.api.dto.OrgUsrTreeDto" > <select id="getCompanyAndKeySite" resultType="com.yeejoin.amos.boot.module.common.api.dto.CheckObjectDto" >
SELECT SELECT
company_sur.sequence_nbr as sequenceNbr, company_sur.sequence_nbr as sequenceNbr,
...@@ -363,6 +363,7 @@ LEFT JOIN ( ...@@ -363,6 +363,7 @@ LEFT JOIN (
company_sur.parent_id as parentId, company_sur.parent_id as parentId,
company_sur.biz_org_type as bizOrgType, company_sur.biz_org_type as bizOrgType,
-- cb.field_value_label, -- cb.field_value_label,
(SELECT field_value_label FROM cb_dynamic_form_instance as cb WHERE company_sur.sequence_nbr = cb.instance_id AND field_code = 'companyNature' ) as companyNature,
CASE CASE
WHEN keysite_sur.num IS NULL THEN WHEN keysite_sur.num IS NULL THEN
0 0
......
...@@ -108,7 +108,7 @@ ...@@ -108,7 +108,7 @@
<select id="getTodayAlertCalled" resultType="com.yeejoin.amos.boot.module.jcs.api.dto.AlertCalledTodyDto"> <select id="getTodayAlertCalled" resultType="com.yeejoin.amos.boot.module.jcs.api.dto.AlertCalledTodyDto">
select select
jc_alert_called.alarm_type alarmType, jc_alert_called.alert_type alarmType,
jc_alert_called.address, jc_alert_called.address,
jc_alert_called.call_time callTime jc_alert_called.call_time callTime
from jc_alert_called where is_delete=0 from jc_alert_called where is_delete=0
......
...@@ -268,6 +268,12 @@ public class Plan extends BasicEntity { ...@@ -268,6 +268,12 @@ public class Plan extends BasicEntity {
private String userDept; private String userDept;
/** /**
* 用户部门名称
*/
@Column(name="maker_user_dept_name")
private String makerUserDeptName;
/**
* 牵头部门 * 牵头部门
*/ */
@Column(name="lead_department_ids") @Column(name="lead_department_ids")
...@@ -294,14 +300,14 @@ public class Plan extends BasicEntity { ...@@ -294,14 +300,14 @@ public class Plan extends BasicEntity {
/** /**
* 参与人 * 参与人
*/ */
@Column(name="join_person_ids") @Column(name="maker_user_id")
private String joinPersonIds; private String makerUserId;
/** /**
* 参与人名称 * 参与人名称
*/ */
@Column(name="join_person_names") @Column(name="maker_user_name")
private String joinPersonNames; private String makerUserName;
/** /**
* 检查类型id * 检查类型id
...@@ -716,19 +722,27 @@ public class Plan extends BasicEntity { ...@@ -716,19 +722,27 @@ public class Plan extends BasicEntity {
this.leadDepartmentIds = leadDepartmentIds; this.leadDepartmentIds = leadDepartmentIds;
} }
public String getJoinPersonIds() { public String getMakerUserId() {
return joinPersonIds; return makerUserId;
}
public void setMakerUserId(String makerUserId) {
this.makerUserId = makerUserId;
}
public String getMakerUserName() {
return makerUserName;
} }
public void setJoinPersonIds(String joinPersonIds) { public void setMakerUserName(String makerUserName) {
this.joinPersonIds = joinPersonIds; this.makerUserName = makerUserName;
} }
public String getJoinPersonNames() { public String getMakerUserDeptName() {
return joinPersonNames; return makerUserDeptName;
} }
public void setJoinPersonNames(String joinPersonNames) { public void setMakerUserDeptName(String makerUserDeptName) {
this.joinPersonNames = joinPersonNames; this.makerUserDeptName = makerUserDeptName;
} }
} }
\ No newline at end of file
...@@ -349,10 +349,10 @@ public class OrgUsrController extends BaseController { ...@@ -349,10 +349,10 @@ public class OrgUsrController extends BaseController {
@TycloudOperation(needAuth = false, ApiLevel = UserType.AGENCY) @TycloudOperation(needAuth = false, ApiLevel = UserType.AGENCY)
@RequestMapping(value = "/companyListByUser", method = RequestMethod.GET) @RequestMapping(value = "/companyListByUser", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "根据登陆人获取单位列表", notes = "根据登陆人获取单位列表") @ApiOperation(httpMethod = "GET", value = "根据登陆人获取单位列表", notes = "根据登陆人获取单位列表")
public ResponseModel<List<OrgUsrTreeDto>> companyListByUser() { public ResponseModel<List<CheckObjectDto>> companyListByUser() {
// 获取登陆人角色 // 获取登陆人角色
AgencyUserModel user = getUserInfo(); AgencyUserModel user = getUserInfo();
List<OrgUsrTreeDto> menus = iOrgUsrService.companyListByUser(user); List<CheckObjectDto> menus = iOrgUsrService.companyListByUser(user);
return ResponseHelper.buildResponse(menus); return ResponseHelper.buildResponse(menus);
} }
...@@ -370,4 +370,20 @@ public class OrgUsrController extends BaseController { ...@@ -370,4 +370,20 @@ public class OrgUsrController extends BaseController {
return ResponseHelper.buildResponse(iOrgUsrService.getUserUnit(userId)); return ResponseHelper.buildResponse(iOrgUsrService.getUserUnit(userId));
} }
/**
* 获取登陆人绑定的人员关系
*
* @param
* @return
*/
@TycloudOperation(needAuth = false, ApiLevel = UserType.AGENCY)
@RequestMapping(value = "/getLoginUserDetails", method = RequestMethod.GET)
@ApiOperation(httpMethod = "GET", value = "获取登陆人绑定的人员关系", notes = "获取登陆人绑定的人员关系")
public ResponseModel<List<Map<String, Object>>> getLoginUserDetails() {
// 获取登陆人角色
AgencyUserModel user = getUserInfo();
List<Map<String, Object>> loginUserDetails = iOrgUsrService.getLoginUserDetails(user);
return ResponseHelper.buildResponse(loginUserDetails);
}
} }
\ No newline at end of file
...@@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; ...@@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.biz.common.constants.BizConstant; import com.yeejoin.amos.boot.biz.common.constants.BizConstant;
import com.yeejoin.amos.boot.biz.common.controller.BaseController; import com.yeejoin.amos.boot.biz.common.controller.BaseController;
import com.yeejoin.amos.boot.biz.common.utils.EnumsUtils; import com.yeejoin.amos.boot.biz.common.utils.EnumsUtils;
import com.yeejoin.amos.boot.biz.common.utils.QRCodeUtil;
import com.yeejoin.amos.boot.module.common.api.dto.WaterResourceCraneDto; import com.yeejoin.amos.boot.module.common.api.dto.WaterResourceCraneDto;
import com.yeejoin.amos.boot.module.common.api.dto.WaterResourceDto; import com.yeejoin.amos.boot.module.common.api.dto.WaterResourceDto;
import com.yeejoin.amos.boot.module.common.api.dto.WaterResourceHydrantDto; import com.yeejoin.amos.boot.module.common.api.dto.WaterResourceHydrantDto;
...@@ -400,4 +401,16 @@ public class WaterResourceController extends BaseController { ...@@ -400,4 +401,16 @@ public class WaterResourceController extends BaseController {
public ResponseModel<List<WaterResourceTypeDto>> selectResourceTypeList() { public ResponseModel<List<WaterResourceTypeDto>> selectResourceTypeList() {
return ResponseHelper.buildResponse(waterResourceServiceImpl.getWaterResourceTypeList(true)); return ResponseHelper.buildResponse(waterResourceServiceImpl.getWaterResourceTypeList(true));
} }
/**
* 生成二维码code
*
* @return string
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@ApiOperation(value = "生成二维码code", notes = "生成二维码code")
@GetMapping(value = "/qr/code")
public ResponseModel<String> genQrCode() {
return ResponseHelper.buildResponse(QRCodeUtil.generateQRCode());
}
} }
...@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; ...@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.biz.common.constants.CommonConstant; import com.yeejoin.amos.boot.biz.common.constants.CommonConstant;
import com.yeejoin.amos.boot.biz.common.entity.BaseEntity;
import com.yeejoin.amos.boot.biz.common.utils.TreeParser; import com.yeejoin.amos.boot.biz.common.utils.TreeParser;
import com.yeejoin.amos.boot.module.common.api.dto.*; import com.yeejoin.amos.boot.module.common.api.dto.*;
import com.yeejoin.amos.boot.module.common.api.entity.DynamicFormColumn; import com.yeejoin.amos.boot.module.common.api.entity.DynamicFormColumn;
...@@ -1097,15 +1098,15 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp ...@@ -1097,15 +1098,15 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp
; ;
@Override @Override
public List<OrgUsrTreeDto> companyListByUser(AgencyUserModel user) { public List<CheckObjectDto> companyListByUser(AgencyUserModel user) {
List<OrgUsrTreeDto> list = new ArrayList<>(); List<CheckObjectDto> list = new ArrayList<>();
// 需要角色为机场单位或管理员,其余角色返回空 // 需要角色为机场单位或管理员,其余角色返回空
String code = UserRolesEnum.AIRPORTUNIT.getCode(); String code = UserRolesEnum.AIRPORTUNIT.getCode();
String codeAdmin = UserRolesEnum.ADMIN.getCode(); String codeAdmin = UserRolesEnum.ADMIN.getCode();
String roles = getRoles(user, code); String roles = getRoles(user, code);
if (!StringUtils.isEmpty(roles)) { if (!StringUtils.isEmpty(roles)) {
List<OrgUsrTreeDto> companyList = this.baseMapper.getCompanyAndKeySite(null); List<CheckObjectDto> companyList = this.baseMapper.getCompanyAndKeySite(null);
if (roles.equals(codeAdmin)) { if (roles.equals(codeAdmin)) {
// 返回全部单位列表 // 返回全部单位列表
return companyAndKeySiteList(companyList); return companyAndKeySiteList(companyList);
...@@ -1121,7 +1122,7 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp ...@@ -1121,7 +1122,7 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp
Long parent = ObjectUtils.isEmpty(orgUsr.getParentId()) ? 0L : Long.parseLong(orgUsr.getParentId()); Long parent = ObjectUtils.isEmpty(orgUsr.getParentId()) ? 0L : Long.parseLong(orgUsr.getParentId());
if (set.add(parent)) { if (set.add(parent)) {
Long companyIdByDto = getCompanyIdByDto(parent, companyList); Long companyIdByDto = getCompanyIdByDto(parent, companyList);
List<OrgUsrTreeDto> orgUsrTreeDtoList = this.baseMapper.getCompanyAndKeySite(companyIdByDto); List<CheckObjectDto> orgUsrTreeDtoList = this.baseMapper.getCompanyAndKeySite(companyIdByDto);
list.addAll(companyAndKeySiteList(orgUsrTreeDtoList)); list.addAll(companyAndKeySiteList(orgUsrTreeDtoList));
} }
}); });
...@@ -1135,9 +1136,9 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp ...@@ -1135,9 +1136,9 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp
/** /**
* 获取登陆人所在公司 * 获取登陆人所在公司
*/ */
private Long getCompanyIdByDto(Long parentId, List<OrgUsrTreeDto> companyDepartmentMsgList) { private Long getCompanyIdByDto(Long parentId, List<CheckObjectDto> companyDepartmentMsgList) {
Long pid = null; Long pid = null;
for (OrgUsrTreeDto orgUsr : companyDepartmentMsgList) { for (CheckObjectDto orgUsr : companyDepartmentMsgList) {
if (orgUsr.getSequenceNbr().equals(parentId)) { if (orgUsr.getSequenceNbr().equals(parentId)) {
if (orgUsr.getBizOrgType().equals(OrgPersonEnum.公司.getKey()) && ObjectUtils.isEmpty(orgUsr.getParentId())) { if (orgUsr.getBizOrgType().equals(OrgPersonEnum.公司.getKey()) && ObjectUtils.isEmpty(orgUsr.getParentId())) {
return orgUsr.getSequenceNbr(); return orgUsr.getSequenceNbr();
...@@ -1152,19 +1153,19 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp ...@@ -1152,19 +1153,19 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp
/** /**
* 查询单位列表 * 查询单位列表
*/ */
private List<OrgUsrTreeDto> companyAndKeySiteList(List<OrgUsrTreeDto> companyList) { private List<CheckObjectDto> companyAndKeySiteList(List<CheckObjectDto> companyList) {
List<OrgUsrTreeDto> list = new ArrayList<>(); List<CheckObjectDto> list = new ArrayList<>();
if (ObjectUtils.isEmpty(companyList)) { if (ObjectUtils.isEmpty(companyList)) {
return list; return list;
} }
Map<Long, OrgUsrTreeDto> map = new HashMap<>(companyList.size()); Map<Long, CheckObjectDto> map = new HashMap<>(companyList.size());
companyList.forEach(e -> map.put(e.getSequenceNbr(), e)); companyList.forEach(e -> map.put(e.getSequenceNbr(), e));
Set<? extends Map.Entry<Long, ? extends OrgUsrTreeDto>> entries = map.entrySet(); Set<? extends Map.Entry<Long, ? extends CheckObjectDto>> entries = map.entrySet();
entries.parallelStream().forEach(entry -> { entries.parallelStream().forEach(entry -> {
OrgUsrTreeDto value = entry.getValue(); CheckObjectDto value = entry.getValue();
if (!ObjectUtils.isEmpty(value)) { if (!ObjectUtils.isEmpty(value)) {
Long parent = ObjectUtils.isEmpty(value.getParentId()) ? 0L : Long.parseLong(value.getParentId()); Long parent = ObjectUtils.isEmpty(value.getParentId()) ? 0L : Long.parseLong(value.getParentId());
OrgUsrTreeDto orgUsrTreeDto = map.get(parent); CheckObjectDto orgUsrTreeDto = map.get(parent);
if (!ObjectUtils.isEmpty(orgUsrTreeDto)) { if (!ObjectUtils.isEmpty(orgUsrTreeDto)) {
int num = orgUsrTreeDto.getNum() + value.getNum(); int num = orgUsrTreeDto.getNum() + value.getNum();
orgUsrTreeDto.setNum(num); orgUsrTreeDto.setNum(num);
...@@ -1313,6 +1314,29 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp ...@@ -1313,6 +1314,29 @@ public class OrgUsrServiceImpl extends BaseService<OrgUsrDto, OrgUsr, OrgUsrMapp
@Override
public List<Map<String, Object>> getLoginUserDetails (AgencyUserModel user) {
// 获取登陆人关联账号
List<OrgUsr> orgUsrs = orgUsrList(user);
List<Map<String, Object>> list = new ArrayList<>();
if (!ObjectUtils.isEmpty(orgUsrs)) {
orgUsrs.forEach(orgUsr -> {
Map<String, Object> map = new HashMap<>();
map.put(OrgPersonEnum.人员.getKey(), orgUsr);
// 获取关联账号所在部门/公司
LambdaQueryWrapper<OrgUsr> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(OrgUsr::getIsDelete, false);
wrapper.eq(BaseEntity::getSequenceNbr, orgUsr.getParentId());
OrgUsr one = this.getOne(wrapper);
map.put("other",one);
list.add(map);
});
}
return list;
}
} }
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.4.xsd"> http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.4.xsd">
<changeSet author="guowubin" id="1629430730658-1"> <changeSet author="guowubin" id="1629430730658-1">
<comment>alter table jc_controller</comment> <comment>alter table jc_controller</comment>
<sql> <sql>
DROP TABLE IF EXISTS `jc_controller`; DROP TABLE IF EXISTS `jc_controller`;
...@@ -83,5 +83,19 @@ ...@@ -83,5 +83,19 @@
INSERT INTO `jc_controller_equip` VALUES (1397145718640209921, 1428325285853433857, '103', '4号门', '1', '2021-08-20 09:46:02', 3111584, 'admin_jcs', '0'); INSERT INTO `jc_controller_equip` VALUES (1397145718640209921, 1428325285853433857, '103', '4号门', '1', '2021-08-20 09:46:02', 3111584, 'admin_jcs', '0');
</sql> </sql>
</changeSet> </changeSet>
<changeSet author="tb" id="2021-08-23-tb-1">
<preConditions onFail="MARK_RAN">
<tableExists tableName="cb_water_resource"/>
</preConditions>
<comment>modify table cb_water_resource add several columns</comment>
<sql>
ALTER TABLE `cb_water_resource` ADD equip_id BIGINT ( 20 ) COMMENT '设施定义',
ADD COLUMN equip_name VARCHAR ( 50 ) COMMENT '设施定义名称',
ADD COLUMN equip_category_id BIGINT ( 20 ) COMMENT '设施分类',
ADD COLUMN equip_category_name VARCHAR ( 50 ) COMMENT '设施分类名称',
ADD COLUMN equip_code VARCHAR ( 20 ) COMMENT '设施编码',
ADD COLUMN maintenance_period VARCHAR ( 10 ) COMMENT '维保周期';
</sql>
</changeSet>
</databaseChangeLog> </databaseChangeLog>
...@@ -151,10 +151,11 @@ ...@@ -151,10 +151,11 @@
a.check_type_name as checkTypeName, a.check_type_name as checkTypeName,
a.lead_department_ids as leadDepartmentIds, a.lead_department_ids as leadDepartmentIds,
a.lead_department_names as leadDepartmentNames, a.lead_department_names as leadDepartmentNames,
a.lead_people_ids as leadPersonIds, a.lead_people_ids as leadPeopleIds,
a.lead_people_names as leadPersonNames, a.lead_people_names as leadPeopleNames,
a.join_person_ids as joinPersonIds, a.maker_user_id as makerUserId,
a.join_person_names as joinPersonNames, a.maker_user_name as makerUserName,
a.maker_user_dept_name as makerUserDeptName,
(select count(1) from p_route_point ppo where ppo.route_id = b.id) as totalPoint, (select count(1) from p_route_point ppo where ppo.route_id = b.id) as totalPoint,
(select count(1) from p_plan_task t where t.plan_id = a.id) as totalPlanTask, (select count(1) from p_plan_task t where t.plan_id = a.id) as totalPlanTask,
(select count(1) from p_plan_task t where t.plan_id = a.id and t.finish_status <![CDATA[<=]]> 1 ) as waitFinishPlanTask (select count(1) from p_plan_task t where t.plan_id = a.id and t.finish_status <![CDATA[<=]]> 1 ) as waitFinishPlanTask
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment