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