工程在用量及app验证码登录
This commit is contained in:
parent
87a3ada02a
commit
72acd4affa
|
|
@ -248,4 +248,25 @@ public class BackApplyInfo {
|
||||||
* 库管id集合
|
* 库管id集合
|
||||||
*/
|
*/
|
||||||
private List<Long> userIds;
|
private List<Long> userIds;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "租赁数量")
|
||||||
|
private Double outNum;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 在用数量
|
||||||
|
*/
|
||||||
|
@ApiModelProperty(value = "在用数量")
|
||||||
|
private Double usNum;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 在用总价值
|
||||||
|
*/
|
||||||
|
@ApiModelProperty(value = "在用总价值")
|
||||||
|
private Double usPrice;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 投入总价值
|
||||||
|
*/
|
||||||
|
@ApiModelProperty(value = "投入总价值")
|
||||||
|
private Double totalPrice;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -124,6 +124,13 @@ public class TokenController {
|
||||||
|
|
||||||
@PostMapping("sendCode")
|
@PostMapping("sendCode")
|
||||||
public R<?> sendCode(@RequestBody LoginBody form) {
|
public R<?> sendCode(@RequestBody LoginBody form) {
|
||||||
|
if (StringUtils.isBlank(form.getPhone())) {
|
||||||
|
return R.fail("手机号码不能为空");
|
||||||
|
}
|
||||||
|
// app登录,不校验图形验证码
|
||||||
|
if (StringUtils.isBlank(form.getUuid()) && StringUtils.isBlank(form.getCode())) {
|
||||||
|
return remoteUserService.sendCode(form.getPhone());
|
||||||
|
}
|
||||||
String uuid = form.getUuid();
|
String uuid = form.getUuid();
|
||||||
String captcha = "";
|
String captcha = "";
|
||||||
Object object = redisService.getCacheObject(CacheConstants.CAPTCHA_CODE_KEY + uuid);
|
Object object = redisService.getCacheObject(CacheConstants.CAPTCHA_CODE_KEY + uuid);
|
||||||
|
|
|
||||||
|
|
@ -226,4 +226,11 @@ public interface BackReceiveMapper {
|
||||||
Integer getCheckDetails(BackApplyInfo record);
|
Integer getCheckDetails(BackApplyInfo record);
|
||||||
|
|
||||||
int updateMtNum(BackApplyInfo record);
|
int updateMtNum(BackApplyInfo record);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据工程及设备类型查询工程在用量
|
||||||
|
* @param backApplyInfo
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
BackApplyInfo getProAndTypeNum(BackApplyInfo backApplyInfo);
|
||||||
}
|
}
|
||||||
|
|
@ -86,30 +86,72 @@ public class BackReceiveServiceImpl implements BackReceiveService {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<BackApplyInfo> receiveView(BackApplyInfo record) {
|
public List<BackApplyInfo> receiveView(BackApplyInfo record) {
|
||||||
|
// 获取当前用户ID和角色
|
||||||
Long userId = SecurityUtils.getUserId();
|
Long userId = SecurityUtils.getUserId();
|
||||||
List<BackApplyInfo> list = new ArrayList<>();
|
|
||||||
List<Long> longs = new ArrayList<>();
|
|
||||||
List<BackApplyInfo> backApplyInfoList = backReceiveMapper.receiveView(record);
|
|
||||||
// 定义需要匹配的角色集合
|
|
||||||
List<String> allowedRoles = Arrays.asList("admin", "em01", "em02", "jjbz", "dm01", "dm07");
|
|
||||||
// 获取当前用户的角色集合
|
|
||||||
Set<String> userRoles = SecurityUtils.getLoginUser().getRoles();
|
Set<String> userRoles = SecurityUtils.getLoginUser().getRoles();
|
||||||
if (userRoles != null && allowedRoles.stream().anyMatch(userRoles::contains)) {
|
|
||||||
return backApplyInfoList;
|
// 查询所有申请信息
|
||||||
|
List<BackApplyInfo> allApplyInfos = backReceiveMapper.receiveView(record);
|
||||||
|
if (CollectionUtils.isEmpty(allApplyInfos)) {
|
||||||
|
return Collections.emptyList();
|
||||||
}
|
}
|
||||||
if (CollectionUtils.isNotEmpty(backApplyInfoList)) {
|
|
||||||
for (BackApplyInfo backApplyInfo : backApplyInfoList) {
|
// 检查用户是否具有特殊角色
|
||||||
if (StringUtils.isNotBlank(backApplyInfo.getUserId())) {
|
boolean hasSpecialRole = hasSpecialRole(userRoles);
|
||||||
List<String> strings = Arrays.asList(backApplyInfo.getUserId().split(","));
|
|
||||||
//转换为long类型
|
// 处理数据并设置在用量
|
||||||
longs = strings.stream().map(Long::parseLong).collect(Collectors.toList());
|
List<BackApplyInfo> resultList = new ArrayList<>();
|
||||||
}
|
for (BackApplyInfo applyInfo : allApplyInfos) {
|
||||||
if (longs.contains(userId)) {
|
// 设置在用量
|
||||||
list.add(backApplyInfo);
|
setUsageNumber(applyInfo);
|
||||||
}
|
|
||||||
|
// 根据角色决定是否添加到结果集
|
||||||
|
if (hasSpecialRole || isUserInvolved(applyInfo, userId)) {
|
||||||
|
resultList.add(applyInfo);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return list;
|
|
||||||
|
return resultList;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 检查用户是否具有特殊角色
|
||||||
|
* @param userRoles
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
private boolean hasSpecialRole(Set<String> userRoles) {
|
||||||
|
if (userRoles == null) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
List<String> allowedRoles = Arrays.asList("admin", "em01", "em02", "jjbz", "dm01", "dm07");
|
||||||
|
return allowedRoles.stream().anyMatch(userRoles::contains);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设置申请信息的在用量
|
||||||
|
* @param applyInfo
|
||||||
|
*/
|
||||||
|
private void setUsageNumber(BackApplyInfo applyInfo) {
|
||||||
|
BackApplyInfo info = backReceiveMapper.getProAndTypeNum(applyInfo);
|
||||||
|
applyInfo.setUsNum(info != null ? info.getUsNum() : 0.0);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 检查用户是否参与了该申请
|
||||||
|
* @param applyInfo
|
||||||
|
* @param userId
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
private boolean isUserInvolved(BackApplyInfo applyInfo, Long userId) {
|
||||||
|
if (StringUtils.isBlank(applyInfo.getUserId())) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
List<Long> involvedUserIds = Arrays.stream(applyInfo.getUserId().split(","))
|
||||||
|
.map(Long::parseLong)
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
|
return involvedUserIds.contains(userId);
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<BackApplyInfo> receiveView2(BackApplyInfo record) {
|
public List<BackApplyInfo> receiveView2(BackApplyInfo record) {
|
||||||
|
|
|
||||||
|
|
@ -674,14 +674,19 @@ public class TmTaskServiceImpl implements TmTaskService {
|
||||||
List<TmTask> list = tmTaskMapper.getLeaseOutListByUser(task);
|
List<TmTask> list = tmTaskMapper.getLeaseOutListByUser(task);
|
||||||
if (CollectionUtils.isNotEmpty(list)) {
|
if (CollectionUtils.isNotEmpty(list)) {
|
||||||
for (TmTask tmTask : list) {
|
for (TmTask tmTask : list) {
|
||||||
// 首先排除任务状态为待出库或者出库完成的状态
|
// 首先排除任务状态为出库完成的状态
|
||||||
if (tmTask.getTaskStatus() == 33 || tmTask.getTaskStatus() == 35) {
|
if (tmTask.getTaskStatus() == 35) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (tmTask.getPreCountNum().equals(tmTask.getAlNum())) {
|
task.setId(tmTask.getId());
|
||||||
// 全部出库,返回个人任务状态为出库完成,不修改整条任务状态
|
List<TmTask> leaseApplyDetailsList = tmTaskMapper.getLeaseDetailByParentId(task);
|
||||||
tmTask.setTaskStatus(35);
|
if (CollectionUtils.isNotEmpty(leaseApplyDetailsList)) {
|
||||||
tmTask.setTaskName("完成");
|
// 如果leaseApplyDetailsList中的status状态全部为2已完成,则修改整条任务状态为出库完成
|
||||||
|
if (leaseApplyDetailsList.stream().allMatch(item -> item.getStatus() == 2)) {
|
||||||
|
// 全部出库,返回个人任务状态为出库完成,不修改整条任务状态
|
||||||
|
tmTask.setTaskStatus(35);
|
||||||
|
tmTask.setTaskName("完成");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -734,13 +734,17 @@
|
||||||
mt.company_id as companyId,
|
mt.company_id as companyId,
|
||||||
CONCAT('NSJJ',mt.`code`,mt.model_code) as `code`,
|
CONCAT('NSJJ',mt.`code`,mt.model_code) as `code`,
|
||||||
mtk.userId as userId,
|
mtk.userId as userId,
|
||||||
aa.badId as badId
|
aa.badId as badId,
|
||||||
|
bpl.lot_id as lotId,
|
||||||
|
bpl.lot_name as lotName
|
||||||
FROM
|
FROM
|
||||||
back_apply_details bad
|
back_apply_details bad
|
||||||
LEFT JOIN back_apply_info bai on bai.id=bad.parent_id
|
LEFT JOIN back_apply_info bai on bai.id=bad.parent_id
|
||||||
LEFT JOIN tm_task_agreement tta on tta.task_id=bai.task_id
|
LEFT JOIN tm_task_agreement tta on tta.task_id=bai.task_id
|
||||||
LEFT JOIN ma_type mt on mt.type_id=bad.type_id
|
LEFT JOIN ma_type mt on mt.type_id=bad.type_id
|
||||||
LEFT JOIN ma_type mt2 ON mt2.type_id=mt.parent_id
|
LEFT JOIN ma_type mt2 ON mt2.type_id=mt.parent_id
|
||||||
|
LEFT JOIN bm_agreement_info bagi on bagi.agreement_id=tta.agreement_id
|
||||||
|
LEFT JOIN bm_project_lot bpl on bpl.lot_id = bagi.project_id
|
||||||
LEFT JOIN (
|
LEFT JOIN (
|
||||||
SELECT
|
SELECT
|
||||||
GROUP_CONCAT(id) as badId,
|
GROUP_CONCAT(id) as badId,
|
||||||
|
|
@ -1198,5 +1202,101 @@
|
||||||
select sum(back_num) from back_check_details where parent_id = #{parentId} and type_id = #{typeId} and (is_finished is null or is_finished != 1)
|
select sum(back_num) from back_check_details where parent_id = #{parentId} and type_id = #{typeId} and (is_finished is null or is_finished != 1)
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<select id="getProAndTypeNum" resultType="com.bonus.sgzb.base.api.domain.BackApplyInfo">
|
||||||
|
SELECT
|
||||||
|
subquery1.unitName as unitName,
|
||||||
|
subquery1.proName as lotName,
|
||||||
|
subquery1.unitId as unitId,
|
||||||
|
subquery1.type_id as typeId,
|
||||||
|
subquery1.proId as lotId,
|
||||||
|
subquery1.typeName,
|
||||||
|
subquery1.typeModelName as typeCode,
|
||||||
|
CASE WHEN subquery1.manage_type = '0' then '编码' else '数量' end as manageType,
|
||||||
|
IFNULL(subquery1.outNum, 0) as outNum,
|
||||||
|
IFNULL(subquery2.backNum, 0) as backNum,
|
||||||
|
CASE
|
||||||
|
WHEN IFNULL(subquery1.outNum, 0) - IFNULL(subquery2.backNum, 0) > 0
|
||||||
|
THEN IFNULL(subquery1.outNum, 0) - IFNULL(subquery2.backNum, 0)
|
||||||
|
ELSE 0
|
||||||
|
END as usNum,
|
||||||
|
|
||||||
|
CASE
|
||||||
|
WHEN IFNULL(subquery1.outNum, 0) - IFNULL(subquery2.backNum, 0) > 0 THEN
|
||||||
|
IFNULL(subquery1.rent_price, 0) *
|
||||||
|
(IFNULL(subquery1.outNum, 0) - IFNULL(subquery2.backNum, 0))
|
||||||
|
ELSE
|
||||||
|
0
|
||||||
|
END as usPrice,
|
||||||
|
IFNULL(subquery1.outNum, 0) * IFNULL(subquery1.rent_price, 0) as totalPrice
|
||||||
|
FROM (SELECT bai.agreement_id,
|
||||||
|
mt.type_id,
|
||||||
|
mt.rent_price,
|
||||||
|
mt.manage_type,
|
||||||
|
bai.agreement_code AS agreementCode,
|
||||||
|
bui.unit_name AS unitName,
|
||||||
|
bui.unit_id AS unitId,
|
||||||
|
bpl.lot_name AS proName,
|
||||||
|
bpl.lot_id AS proId,
|
||||||
|
mt2.type_name AS typeName,
|
||||||
|
mt.type_name AS typeModelName,
|
||||||
|
mt.unit_name AS unit,
|
||||||
|
SUM(IFNULL(lod.out_num, 0)) AS outNum
|
||||||
|
FROM lease_out_details lod
|
||||||
|
LEFT JOIN lease_apply_info lai ON lai.id = lod.parent_id
|
||||||
|
LEFT JOIN tm_task_agreement tta ON tta.task_id = lai.task_id
|
||||||
|
LEFT JOIN bm_agreement_info bai ON bai.agreement_id = tta.agreement_id
|
||||||
|
LEFT JOIN bm_project_lot bpl ON bpl.lot_id = bai.project_id
|
||||||
|
LEFT JOIN bm_unit_info bui ON bui.unit_id = bai.unit_id
|
||||||
|
LEFT JOIN ma_type mt ON mt.type_id = lod.type_id
|
||||||
|
LEFT JOIN ma_type mt2 ON mt2.type_id = mt.parent_id
|
||||||
|
LEFT JOIN ma_machine mm ON mm.ma_id = lod.ma_id
|
||||||
|
LEFT JOIN sys_user su ON su.user_id = lai.lease_person
|
||||||
|
where 1=1
|
||||||
|
<if test="lotId != null">
|
||||||
|
and bpl.lot_id = #{lotId}
|
||||||
|
</if>
|
||||||
|
<if test="typeName != null and typeName != ''">
|
||||||
|
and mt2.type_name like concat('%',#{typeName},'%')
|
||||||
|
</if>
|
||||||
|
<if test="typeCode != null and typeCode != ''">
|
||||||
|
and mt.type_name like concat('%',#{typeCode},'%')
|
||||||
|
</if>
|
||||||
|
GROUP BY bai.agreement_id,
|
||||||
|
mt.type_id) AS subquery1
|
||||||
|
LEFT JOIN (SELECT bai.agreement_id,
|
||||||
|
mt.type_id,
|
||||||
|
mt.rent_price,
|
||||||
|
bai.agreement_code AS agreementCode,
|
||||||
|
bui.unit_name AS unitName,
|
||||||
|
bpl.lot_name AS proName,
|
||||||
|
mt2.type_name AS typeName,
|
||||||
|
mt.type_name AS typeModelName,
|
||||||
|
mt.unit_name AS unit,
|
||||||
|
SUM(IFNULL(bcd.back_num, 0)) backNum
|
||||||
|
FROM back_check_details bcd
|
||||||
|
LEFT JOIN back_apply_info baif ON baif.id = bcd.parent_id
|
||||||
|
LEFT JOIN tm_task_agreement tta ON tta.task_id = baif.task_id
|
||||||
|
LEFT JOIN bm_agreement_info bai ON bai.agreement_id = tta.agreement_id
|
||||||
|
LEFT JOIN bm_project_lot bpl ON bpl.lot_id = bai.project_id
|
||||||
|
LEFT JOIN bm_unit_info bui ON bui.unit_id = bai.unit_id
|
||||||
|
LEFT JOIN ma_type mt ON mt.type_id = bcd.type_id
|
||||||
|
LEFT JOIN ma_type mt2 ON mt2.type_id = mt.parent_id
|
||||||
|
LEFT JOIN ma_machine mm ON mm.ma_id = bcd.ma_id
|
||||||
|
LEFT JOIN sys_user su ON su.user_id = baif.back_person
|
||||||
|
where 1=1
|
||||||
|
<if test="lotId != null">
|
||||||
|
and bpl.lot_id = #{lotId}
|
||||||
|
</if>
|
||||||
|
<if test="typeName != null and typeName != ''">
|
||||||
|
and mt2.type_name like concat('%',#{typeName},'%')
|
||||||
|
</if>
|
||||||
|
<if test="typeCode != null and typeCode != ''">
|
||||||
|
and mt.type_name like concat('%',#{typeCode},'%')
|
||||||
|
</if>
|
||||||
|
GROUP BY bai.agreement_id,
|
||||||
|
mt.type_id) AS subquery2 ON subquery1.type_id = subquery2.type_id
|
||||||
|
AND subquery1.agreement_id = subquery2.agreement_id
|
||||||
|
</select>
|
||||||
|
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|
@ -148,8 +148,10 @@ public class SysSmsServiceImpl implements ISysSmsService {
|
||||||
}
|
}
|
||||||
// 发送短信
|
// 发送短信
|
||||||
try {
|
try {
|
||||||
String content = URL + "&mobile=" + phone + "&content=【智慧仓储】您正在进行短信验证,验证码:" + code + ",请在5分钟内完成验证。";
|
/*String content = URL + "&mobile=" + phone + "&content=【智慧仓储】您正在进行短信验证,验证码:" + code + ",请在5分钟内完成验证。";
|
||||||
String body = HttpRequest.post(content).execute(false).body();
|
String body = HttpRequest.post(content).execute(false).body();*/
|
||||||
|
msg = "您正在进行短信验证,验证码:" + code + ",请在5分钟内完成验证。";
|
||||||
|
String body = SmsUtils.smsToken(phone, msg, "");
|
||||||
System.out.println("发送短信:" + phone + ",验证码:" + code + ",返回结果:" + body);
|
System.out.println("发送短信:" + phone + ",验证码:" + code + ",返回结果:" + body);
|
||||||
if (body == null || !body.contains(GlobalConstants.STRING_OK)) {
|
if (body == null || !body.contains(GlobalConstants.STRING_OK)) {
|
||||||
return AjaxResult.error("发送失败");
|
return AjaxResult.error("发送失败");
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue