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; 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); } src/main/java/com/ruoyi/approve/vo/ApproveProcessVO.java
@@ -7,6 +7,8 @@ @Data public class ApproveProcessVO { private Long id; private Long approveDeptId; 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); } 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将loginUser缓存 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); } /** * 设置用户代理信息 * 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("修改成功"); src/main/java/com/ruoyi/purchase/service/impl/TicketRegistrationServiceImpl.java
@@ -265,8 +265,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); @@ -354,6 +360,7 @@ if (ticketRegistration.getStatus()) { ticketRegistrationIPage.getRecords().removeIf(receiptPaymentDto1 -> new BigDecimal("0.00").equals(receiptPaymentDto1.getUnPaymentAmountTotal())); ticketRegistrationIPage.setTotal(ticketRegistrationIPage.getRecords().size()); } } return ticketRegistrationIPage; src/main/java/com/ruoyi/sales/service/impl/InvoiceRegistrationServiceImpl.java
@@ -64,7 +64,7 @@ for (SalesLedgerProduct productDatum : productData) { // 如果开票数为0 跳过 BigDecimal currentInvoiceNum = productDatum.getCurrentInvoiceNum(); if(null != currentInvoiceNum && BigDecimal.ZERO.compareTo(currentInvoiceNum) == 0){ if(null == currentInvoiceNum || BigDecimal.ZERO.compareTo(currentInvoiceNum) == 0){ continue; } invoiceAmountTotal = invoiceAmountTotal.add(currentInvoiceNum); 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}