From 64a91dc0c19b32a3f04380eb8401e9dd0987714f Mon Sep 17 00:00:00 2001
From: maven <2163098428@qq.com>
Date: 星期一, 14 七月 2025 17:23:22 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/pim_yys'
---
src/main/java/com/ruoyi/approve/service/impl/ApproveProcessServiceImpl.java | 22 ++++++++++
src/main/java/com/ruoyi/purchase/service/impl/ProductRecordServiceImpl.java | 4 +
src/main/java/com/ruoyi/sales/service/impl/InvoiceRegistrationServiceImpl.java | 5 --
src/main/java/com/ruoyi/approve/pojo/ApproveProcess.java | 2
src/main/java/com/ruoyi/purchase/service/impl/TicketRegistrationServiceImpl.java | 11 ++++-
src/main/java/com/ruoyi/approve/vo/ApproveProcessVO.java | 2 +
src/main/java/com/ruoyi/framework/security/service/SysLoginService.java | 12 ++++++
src/main/resources/mapper/system/SysUserMapper.xml | 1
src/main/java/com/ruoyi/framework/security/service/TokenService.java | 18 +++++---
9 files changed, 61 insertions(+), 16 deletions(-)
diff --git a/src/main/java/com/ruoyi/approve/pojo/ApproveProcess.java b/src/main/java/com/ruoyi/approve/pojo/ApproveProcess.java
index 57bfdb1..8ede335 100644
--- a/src/main/java/com/ruoyi/approve/pojo/ApproveProcess.java
+++ b/src/main/java/com/ruoyi/approve/pojo/ApproveProcess.java
@@ -84,7 +84,7 @@
private Date approveOverTime;
/**
- * 瀹℃壒鐘舵�侊細0寰呭鏍革紝1瀹℃牳涓紝2瀹℃牳瀹屾垚 3瀹℃牳鏈�氳繃
+ * 瀹℃壒鐘舵�侊細0寰呭鏍革紝1瀹℃牳涓紝2瀹℃牳瀹屾垚 3瀹℃牳鏈�氳繃 4宸查噸鏂版彁浜�
*/
private Integer approveStatus;
diff --git a/src/main/java/com/ruoyi/approve/service/impl/ApproveProcessServiceImpl.java b/src/main/java/com/ruoyi/approve/service/impl/ApproveProcessServiceImpl.java
index b081070..659f4aa 100644
--- a/src/main/java/com/ruoyi/approve/service/impl/ApproveProcessServiceImpl.java
+++ b/src/main/java/com/ruoyi/approve/service/impl/ApproveProcessServiceImpl.java
@@ -5,6 +5,7 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.approve.mapper.ApproveNodeMapper;
import com.ruoyi.approve.mapper.ApproveProcessMapper;
import com.ruoyi.approve.pojo.ApproveNode;
import com.ruoyi.approve.pojo.ApproveProcess;
@@ -92,6 +93,12 @@
.collect(Collectors.toList())
.get(0)
.getNickName());
+ // 璁剧疆鐘舵�佷负閲嶆柊鎻愪氦
+ if(approveProcessVO.getId() != null){
+ ApproveProcess approveProcess1 = approveProcessMapper.selectById(approveProcessVO.getId());
+ approveProcess1.setApproveStatus(4);
+ approveProcessMapper.updateById(approveProcess1);
+ }
save(approveProcess);
//鍒濆鍖栧鎵硅妭鐐�
approveNodeService.initApproveNodes(approveProcessVO.getApproveUserIds(),approveID,approveProcessVO.getApproveDeptId());
@@ -138,6 +145,8 @@
return one;
}
+ private final ApproveNodeMapper approveNodeMapper;
+
@Override
public void updateApproveProcessStatus(ApproveNode approveNode,Integer status) {
LambdaQueryWrapper<ApproveProcess> approveProcessLambdaQueryWrapper = new LambdaQueryWrapper<>();
@@ -147,13 +156,24 @@
.last("limit 1");
ApproveProcess approveProcess = approveProcessMapper.selectOne(approveProcessLambdaQueryWrapper);
if(approveProcess == null) throw new RuntimeException("瀹℃壒涓嶅瓨鍦�");
+ LambdaQueryWrapper<ApproveNode> approveNodeLambdaQueryWrapper = new LambdaQueryWrapper<>();
+ approveNodeLambdaQueryWrapper.eq(ApproveNode::getApproveProcessId, approveNode.getApproveProcessId())
+ .eq(ApproveNode::getApproveNodeOrder, approveNode.getApproveNodeOrder() + 1)
+ .eq(ApproveNode::getDeleteFlag, 0)
+ .eq(ApproveNode::getTenantId, SecurityUtils.getLoginUser().getTenantId())
+ .last("limit 1");
+ ApproveNode approveNode1 = approveNodeMapper.selectOne(approveNodeLambdaQueryWrapper);
approveProcess.setApproveStatus(status);
+ if(approveNode1 != null){
+ approveProcess.setApproveUserCurrentId(approveNode.getApproveNodeUserId());
+ approveProcess.setApproveUserCurrentName(approveNode1.getApproveNodeUser());
+ }
updateById(approveProcess);
}
@Override
public void updateByApproveId(ApproveGetAndUpdateVo approveGetAndUpdateVo) {
- ApproveProcess approve = getApproveById(approveGetAndUpdateVo.getId());
+ ApproveProcess approve = approveProcessMapper.selectById(approveGetAndUpdateVo.getId());
approve.setApproveReason(approveGetAndUpdateVo.getApproveReason());
updateById(approve);
}
diff --git a/src/main/java/com/ruoyi/approve/vo/ApproveProcessVO.java b/src/main/java/com/ruoyi/approve/vo/ApproveProcessVO.java
index 7885247..8d793d8 100644
--- a/src/main/java/com/ruoyi/approve/vo/ApproveProcessVO.java
+++ b/src/main/java/com/ruoyi/approve/vo/ApproveProcessVO.java
@@ -7,6 +7,8 @@
@Data
public class ApproveProcessVO {
+ private Long id;
+
private Long approveDeptId;
diff --git a/src/main/java/com/ruoyi/framework/security/service/SysLoginService.java b/src/main/java/com/ruoyi/framework/security/service/SysLoginService.java
index c2174ca..f379b7f 100644
--- a/src/main/java/com/ruoyi/framework/security/service/SysLoginService.java
+++ b/src/main/java/com/ruoyi/framework/security/service/SysLoginService.java
@@ -3,6 +3,7 @@
import javax.annotation.Resource;
import com.ruoyi.framework.web.domain.AjaxResult;
+import com.ruoyi.project.system.mapper.SysUserMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.authentication.AuthenticationManager;
import org.springframework.security.authentication.BadCredentialsException;
@@ -218,6 +219,9 @@
return loginUser.getUserId();
}
+ @Autowired
+ private SysUserMapper sysUserMapper;
+
/**
* 鐧诲綍楠岃瘉
*
@@ -265,6 +269,14 @@
AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success")));
LoginUser loginUser = (LoginUser) authentication.getPrincipal();
recordLoginInfo(loginUser.getUserId());
+ // 鏇存柊鐢ㄦ埛淇℃伅锛屼慨鏀瑰綋鍓嶉�変腑鍏徃
+ SysUser user = loginUser.getUser();
+ if(factoryId != null){
+ user.setTenantId(factoryId);
+ }else{
+ user.setTenantId(tokenService.getDeptIdsByUserId(user.getUserId())[0]);
+ }
+ sysUserMapper.updateUser(user);
// 鐢熸垚token
return tokenService.createToken(loginUser);
}
diff --git a/src/main/java/com/ruoyi/framework/security/service/TokenService.java b/src/main/java/com/ruoyi/framework/security/service/TokenService.java
index 5b7cf11..3ac2035 100644
--- a/src/main/java/com/ruoyi/framework/security/service/TokenService.java
+++ b/src/main/java/com/ruoyi/framework/security/service/TokenService.java
@@ -159,18 +159,22 @@
{
loginUser.setLoginTime(System.currentTimeMillis());
loginUser.setExpireTime(loginUser.getLoginTime() + expireTime * MILLIS_MINUTE);
- LambdaQueryWrapper<SysUserDept> sysUserDeptLambdaQueryWrapper = new LambdaQueryWrapper<>();
- sysUserDeptLambdaQueryWrapper.eq(SysUserDept::getUserId, loginUser.getUserId());
- List<SysUserDept> sysUserDept = sysUserDeptMapper.selectList(sysUserDeptLambdaQueryWrapper);
- if(!CollectionUtils.isEmpty(sysUserDept)){
- List<Long> collect = sysUserDept.stream().map(SysUserDept::getDeptId).collect(Collectors.toList());
- loginUser.setDeptId(collect.toArray(new Long[0]));
- }
+ loginUser.setDeptIds(getDeptIdsByUserId(loginUser.getUserId()));
// 鏍规嵁uuid灏唋oginUser缂撳瓨
String userKey = getTokenKey(loginUser.getToken());
redisCache.setCacheObject(userKey, loginUser, expireTime, TimeUnit.MINUTES);
}
+ public Long[] getDeptIdsByUserId(Long userId){
+ LambdaQueryWrapper<SysUserDept> sysUserDeptLambdaQueryWrapper = new LambdaQueryWrapper<>();
+ sysUserDeptLambdaQueryWrapper.eq(SysUserDept::getUserId, userId);
+ List<SysUserDept> sysUserDept = sysUserDeptMapper.selectList(sysUserDeptLambdaQueryWrapper);
+ if(CollectionUtils.isEmpty(sysUserDept)){
+ return null;
+ }
+ return sysUserDept.stream().map(SysUserDept::getDeptId).toArray(Long[]::new);
+ }
+
/**
* 璁剧疆鐢ㄦ埛浠g悊淇℃伅
*
diff --git a/src/main/java/com/ruoyi/purchase/service/impl/ProductRecordServiceImpl.java b/src/main/java/com/ruoyi/purchase/service/impl/ProductRecordServiceImpl.java
index fd9752b..16eef79 100644
--- a/src/main/java/com/ruoyi/purchase/service/impl/ProductRecordServiceImpl.java
+++ b/src/main/java/com/ruoyi/purchase/service/impl/ProductRecordServiceImpl.java
@@ -77,14 +77,16 @@
if (salesLedgerProduct != null) {
salesLedgerProduct.setFutureTicketsAmount(salesLedgerProduct.getFutureTicketsAmount().add(productRecord.getTicketsAmount()).subtract(productRecordDto.getTicketsAmount()));
salesLedgerProduct.setFutureTickets(salesLedgerProduct.getFutureTickets().add(productRecord.getTicketsNum().subtract(productRecordDto.getTicketsNum())));
+ salesLedgerProduct.setTicketsAmount(productRecordDto.getTicketsAmount());
+ salesLedgerProduct.setTicketsNum(productRecordDto.getTicketsNum());
salesLedgerProductMapper.updateById(salesLedgerProduct);
-
}
PurchaseLedger purchaseLedger = purchaseLedgerMapper.selectById(productRecord.getPurchaseLedgerId());
if (purchaseLedger != null) {
purchaseLedger.setReceiptPaymentAmount(purchaseLedger.getReceiptPaymentAmount());
}
BeanUtils.copyProperties(productRecordDto,productRecord);
+ productRecord.setFutureTicketsAmount(productRecord.getFutureTickets().multiply(productRecord.getTaxInclusiveUnitPrice()));
productRecordMapper.updateById(productRecord);
return AjaxResult.success("淇敼鎴愬姛");
diff --git a/src/main/java/com/ruoyi/purchase/service/impl/TicketRegistrationServiceImpl.java b/src/main/java/com/ruoyi/purchase/service/impl/TicketRegistrationServiceImpl.java
index 4c85afb..7e76aa9 100644
--- a/src/main/java/com/ruoyi/purchase/service/impl/TicketRegistrationServiceImpl.java
+++ b/src/main/java/com/ruoyi/purchase/service/impl/TicketRegistrationServiceImpl.java
@@ -264,8 +264,14 @@
// 淇敼浜у搧淇℃伅
for (ProductRecord productRecord : productRecords) {
- ticketRegistrations.get(0).setInvoiceAmount(ticketRegistrations.get(0).getInvoiceAmount().subtract(productRecords.get(0).getTicketsAmount()));
- ticketRegistrationMapper.updateById(ticketRegistrations.get(0));
+ BigDecimal subtract = ticketRegistrations.get(0).getInvoiceAmount().subtract(productRecords.get(0).getTicketsAmount());
+ // 灏忎簬绛変簬0鍒犻櫎 锛屽ぇ浜�0淇敼
+ if(subtract.compareTo(BigDecimal.ZERO) <= 0){
+ ticketRegistrationMapper.deleteById(ticketRegistrations.get(0));
+ }else if(subtract.compareTo(BigDecimal.ZERO) > 0){
+ ticketRegistrations.get(0).setInvoiceAmount(subtract);
+ ticketRegistrationMapper.updateById(ticketRegistrations.get(0));
+ }
LambdaQueryWrapper<SalesLedgerProduct> salesLedgerProductLambdaQueryWrapper = new LambdaQueryWrapper<>();
salesLedgerProductLambdaQueryWrapper.eq(SalesLedgerProduct::getId, productRecord.getSaleLedgerProjectId())
.eq(SalesLedgerProduct::getType, 2);
@@ -353,6 +359,7 @@
if (ticketRegistration.getStatus()) {
ticketRegistrationIPage.getRecords().removeIf(receiptPaymentDto1 -> new BigDecimal("0.00").equals(receiptPaymentDto1.getUnPaymentAmountTotal()));
+ ticketRegistrationIPage.setTotal(ticketRegistrationIPage.getRecords().size());
}
}
return ticketRegistrationIPage;
diff --git a/src/main/java/com/ruoyi/sales/service/impl/InvoiceRegistrationServiceImpl.java b/src/main/java/com/ruoyi/sales/service/impl/InvoiceRegistrationServiceImpl.java
index c0d4ebd..56003b7 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/InvoiceRegistrationServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/InvoiceRegistrationServiceImpl.java
@@ -64,10 +64,7 @@
for (SalesLedgerProduct productDatum : productData) {
// 濡傛灉寮�绁ㄦ暟涓�0 璺宠繃
BigDecimal currentInvoiceNum = productDatum.getCurrentInvoiceNum();
- if (null == currentInvoiceNum) {
- continue;
- }
- if(BigDecimal.ZERO.compareTo(currentInvoiceNum) == 0){
+ if(null == currentInvoiceNum || BigDecimal.ZERO.compareTo(currentInvoiceNum) == 0){
continue;
}
invoiceAmountTotal = invoiceAmountTotal.add(currentInvoiceNum);
diff --git a/src/main/resources/mapper/system/SysUserMapper.xml b/src/main/resources/mapper/system/SysUserMapper.xml
index 52ec0a3..e1a12c6 100644
--- a/src/main/resources/mapper/system/SysUserMapper.xml
+++ b/src/main/resources/mapper/system/SysUserMapper.xml
@@ -207,6 +207,7 @@
<if test="loginDate != null">login_date = #{loginDate},</if>
<if test="updateBy != null and updateBy != ''">update_by = #{updateBy},</if>
<if test="remark != null">remark = #{remark},</if>
+ <if test="tenantId != null">tenant_id = #{tenantId},</if>
update_time = sysdate()
</set>
where user_id = #{userId}
--
Gitblit v1.9.3