diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/CacheController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/CacheController.java index f526d0f..21c3a56 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/CacheController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/CacheController.java @@ -1,12 +1,7 @@ package com.ruoyi.web.controller.monitor; -import java.util.ArrayList; -import java.util.Collection; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Properties; -import java.util.Set; +import java.util.*; + import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisCallback; import org.springframework.data.redis.core.RedisTemplate; @@ -87,7 +82,7 @@ public class CacheController public AjaxResult getCacheKeys(@PathVariable String cacheName) { Set cacheKeys = redisTemplate.keys(cacheName + "*"); - return AjaxResult.success(cacheKeys); + return AjaxResult.success(new TreeSet<>(cacheKeys)); } @PreAuthorize("@ss.hasPermi('monitor:cache:list')") diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/quot/QuotController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/quot/QuotController.java index 872b730..56866f0 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/quot/QuotController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/quot/QuotController.java @@ -168,17 +168,19 @@ public class QuotController extends BaseController * 获取报价详细信息-整单通过 */ @PreAuthorize("@ss.hasPermi('quot:quot:allPass')") - @GetMapping(value = "/allPass/{quotId}") + @GetMapping(value = "/allPass/{quotIds}") @Log(title = "报价单-手动更新状态为通过", businessType = BusinessType.UPDATE) - public AjaxResult getAllPassInfo(@PathVariable("quotId") String quotId) + public AjaxResult getAllPassInfo(@PathVariable("quotIds") String[] quotIds) { - Quot quot = new Quot(); - quot.setQuotId(quotId); - quot.setQuotApprovalStatus("2");// 提交状态设置为 通过 - quot.setQuotQuotationDate(DateUtils.getNowDate());//报价单-报价日期设置为 当前日期 - quot.setQuotCheckUserName(getUsername()); - quotService.updateQuotAllPassInfo(quot); - return success(quot); + for(String quotId:quotIds){ + Quot quot = new Quot(); + quot.setQuotId(quotId); + quot.setQuotApprovalStatus("2");// 提交状态设置为 通过 + quot.setQuotQuotationDate(DateUtils.getNowDate());//报价单-报价日期设置为 当前日期 + quot.setQuotCheckUserName(getUsername()); + quotService.updateQuotAllPassInfo(quot); + } + return success(); } /** diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/redBook/RedBookController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/redBook/RedBookController.java index 5709903..9c2a120 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/redBook/RedBookController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/redBook/RedBookController.java @@ -642,7 +642,17 @@ public class RedBookController extends BaseController @GetMapping(value = "/{quotId}") public AjaxResult getInfo(@PathVariable("quotId") String quotId) { - return success(redBookService.selectQuotByQuotId(quotId)); + OAQuot aAQuot = redBookService.selectQuotByQuotId(quotId); + String rbDateUid = aAQuot.getRbDateUid(); + + List aAQuotProduct= aAQuot.getSelectedResultData(); + for(OAQuotProduct p:aAQuotProduct){ + if(StringUtils.isEmpty(p.getUid_0())){ + p.setUid_0(rbDateUid); + } + } + + return success(aAQuot); } /** @@ -663,7 +673,11 @@ public class RedBookController extends BaseController return toAjax(redBookService.deleteQuotsByQuotId(quotId)); } - + /** + * 导出所选的红本产品明细数据 + * @param response + * @param selectedResultData + */ @PostMapping("/exportProduct") public void exportMaterial(HttpServletResponse response, @RequestParam("selectedResultData") String selectedResultData) { diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java index 027dabe..697392a 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java @@ -148,6 +148,8 @@ public class SysUserController extends BaseController @PostMapping public AjaxResult add(@Validated @RequestBody SysUser user) { + deptService.checkDeptDataScope(user.getDeptId()); + roleService.checkRoleDataScope(user.getRoleIds()); if (!userService.checkUserNameUnique(user)) { return error("新增用户'" + user.getUserName() + "'失败,登录账号已存在"); @@ -180,6 +182,8 @@ public class SysUserController extends BaseController { userService.checkUserAllowed(user); userService.checkUserDataScope(user.getUserId()); + deptService.checkDeptDataScope(user.getDeptId()); + roleService.checkRoleDataScope(user.getRoleIds()); if (!userService.checkUserNameUnique(user)) { return error("修改用户'" + user.getUserName() + "'失败,登录账号已存在"); @@ -301,6 +305,7 @@ public class SysUserController extends BaseController public AjaxResult insertAuthRole(Long userId, Long[] roleIds) { userService.checkUserDataScope(userId); + roleService.checkRoleDataScope(roleIds); userService.insertUserAuth(userId, roleIds); return success(); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/technicalConfirm/QuotJsqrController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/technicalConfirm/QuotJsqrController.java index 308ddb6..a1f2d5e 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/technicalConfirm/QuotJsqrController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/technicalConfirm/QuotJsqrController.java @@ -2,8 +2,11 @@ package com.ruoyi.web.controller.technicalConfirm; import javax.servlet.http.HttpServletResponse; +import com.ruoyi.common.constant.CacheConstants; import com.ruoyi.common.constant.WebsocketConst; import com.ruoyi.common.core.domain.model.LoginUser; +import com.ruoyi.common.core.redis.RedisCache; +import com.ruoyi.common.core.redis.RedisLock; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.poi.ExcelUtil; @@ -12,6 +15,7 @@ import com.ruoyi.quot.service.IQuotService; import com.ruoyi.system.service.ISysNoticeService; import com.ruoyi.technicalConfirm.domain.QuotJsqr; import com.ruoyi.technicalConfirm.domain.QuotJsqrXzDetail; +import com.ruoyi.technicalConfirm.domain.QuotJsqrXzRemark; import com.ruoyi.technicalConfirm.service.IQuotJsqrService; import com.ruoyi.web.utils.SendNotice.NoticeUtil; import org.springframework.security.access.prepost.PreAuthorize; @@ -51,6 +55,12 @@ public class QuotJsqrController extends BaseController @Autowired private ISysNoticeService noticeService; + @Autowired + private RedisCache redisCache; + + @Autowired + private RedisLock redisLock; + /** * 查询报价单-技术确认单列表 */ @@ -116,8 +126,11 @@ public class QuotJsqrController extends BaseController @PostMapping("/doOperate") public AjaxResult doOperate(HttpServletResponse response, @RequestBody QuotJsqrXzDetail info) { + String currentUser = getLoginUser().getUser().getNickName(); + QuotJsqr quotJsqr = new QuotJsqr(); String quotJsqrId = info.getQuotJsqrId(); + QuotJsqr quotJsqrEntity = quotJsqrService.selectQuotJsqrByQuotJsqrId(quotJsqrId); quotJsqr.setQuotJsqrId(quotJsqrId); String quotJsxzGroup = info.getQuotJsxzGroup();//组名 @@ -133,6 +146,14 @@ public class QuotJsqrController extends BaseController quotJsqr.setQuotJsqrTlRemark(info.getQuotJsqrTlRemark()); String quotJsqrTlRemark = info.getQuotJsqrTlRemark(); + + if("2".equals(quotJsqrEntity.getQuotJsqrTlOperateState())){ + return error("特缆协助操作人已通过,请勿重复操作"); + } + if("3".equals(quotJsqrEntity.getQuotJsqrTlOperateState())){ + return error("特缆协助操作人已被驳回,请勿重复操作"); + } + if("3".equals(state)){//驳回 if(StringUtils.isEmpty(quotJsqrTlRemark)){ return error("特缆协助说明不能为空"); @@ -143,6 +164,13 @@ public class QuotJsqrController extends BaseController return error("特缆反馈附件 或 特缆协助说明 至少填写一项"); } } + + // 清空redis 协助说明key + String hvalue = redisCache.getCacheMapValue("quotJsqrXzRemark",quotJsqrEntity.getQuotJsqrCode()+"_TL"); + if(StringUtils.isNotEmpty(hvalue) && currentUser.equals(hvalue)){ + redisCache.deleteCacheMapValue("quotJsqrXzRemark",quotJsqrEntity.getQuotJsqrCode()+"_TL"); + redisLock.unLock(quotJsqrEntity.getQuotJsqrCode()+"_TL",currentUser); + } } if("checker".equals(type)){//审核人通过、驳回 quotJsqr.setQuotJsqrTlCheckUserName(getLoginUser().getUser().getNickName()); @@ -183,6 +211,14 @@ public class QuotJsqrController extends BaseController quotJsqr.setQuotJsqrDyRemark(info.getQuotJsqrDyRemark()); String quotJsqrDyRemark = info.getQuotJsqrDyRemark(); + + if("2".equals(quotJsqrEntity.getQuotJsqrDyOperateState())){ + return error("低压协助操作人已通过,请勿重复操作"); + } + if("3".equals(quotJsqrEntity.getQuotJsqrDyOperateState())){ + return error("低压协助操作人已被驳回,请勿重复操作"); + } + if("3".equals(state)){//驳回 if(StringUtils.isEmpty(quotJsqrDyRemark)){ return error("低压协助说明不能为空"); @@ -193,6 +229,13 @@ public class QuotJsqrController extends BaseController return error("低压反馈附件 或 低压协助说明 至少填写一项"); } } + + // 清空redis 协助说明key + String hvalue = redisCache.getCacheMapValue("quotJsqrXzRemark",quotJsqrEntity.getQuotJsqrCode()+"_DY"); + if(StringUtils.isNotEmpty(hvalue) && currentUser.equals(hvalue)){ + redisCache.deleteCacheMapValue("quotJsqrXzRemark",quotJsqrEntity.getQuotJsqrCode()+"_DY"); + redisLock.unLock(quotJsqrEntity.getQuotJsqrCode()+"_DY",currentUser); + } } if("checker".equals(type)){//审核人通过、驳回 quotJsqr.setQuotJsqrDyCheckUserName(getLoginUser().getUser().getNickName()); @@ -233,6 +276,14 @@ public class QuotJsqrController extends BaseController quotJsqr.setQuotJsqrZyRemark(info.getQuotJsqrZyRemark()); String quotJsqrZyRemark = info.getQuotJsqrZyRemark(); + + if("2".equals(quotJsqrEntity.getQuotJsqrZyOperateState())){ + return error("中压协助操作人已通过,请勿重复操作"); + } + if("3".equals(quotJsqrEntity.getQuotJsqrZyOperateState())){ + return error("中压协助操作人已被驳回,请勿重复操作"); + } + if("3".equals(state)){//驳回 if(StringUtils.isEmpty(quotJsqrZyRemark)){ return error("中压协助说明不能为空"); @@ -243,6 +294,13 @@ public class QuotJsqrController extends BaseController return error("中压反馈附件 或 低压协助说明 至少填写一项"); } } + + // 清空redis 协助说明key + String hvalue = redisCache.getCacheMapValue("quotJsqrXzRemark",quotJsqrEntity.getQuotJsqrCode()+"_ZY"); + if(StringUtils.isNotEmpty(hvalue) && currentUser.equals(hvalue)){ + redisCache.deleteCacheMapValue("quotJsqrXzRemark",quotJsqrEntity.getQuotJsqrCode()+"_ZY"); + redisLock.unLock(quotJsqrEntity.getQuotJsqrCode()+"_ZY",currentUser); + } } if("checker".equals(type)){//审核人通过、驳回 quotJsqr.setQuotJsqrZyCheckUserName(getLoginUser().getUser().getNickName()); @@ -284,6 +342,14 @@ public class QuotJsqrController extends BaseController quotJsqr.setQuotJsqrQtRemark(info.getQuotJsqrQtRemark()); String quotJsqrQtRemark = info.getQuotJsqrQtRemark(); + + if("2".equals(quotJsqrEntity.getQuotJsqrQtOperateState())){ + return error("其他协助操作人已通过,请勿重复操作"); + } + if("3".equals(quotJsqrEntity.getQuotJsqrQtOperateState())){ + return error("其他协助操作人已被驳回,请勿重复操作"); + } + if("3".equals(state)){//驳回 if(StringUtils.isEmpty(quotJsqrQtRemark)){ return error("其他协助说明不能为空"); @@ -294,6 +360,13 @@ public class QuotJsqrController extends BaseController return error("其他反馈附件 或 其他协助说明 至少填写一项"); } } + + // 清空redis 协助说明key + String hvalue = redisCache.getCacheMapValue("quotJsqrXzRemark",quotJsqrEntity.getQuotJsqrCode()+"_QT"); + if(StringUtils.isNotEmpty(hvalue) && currentUser.equals(hvalue)){ + redisCache.deleteCacheMapValue("quotJsqrXzRemark",quotJsqrEntity.getQuotJsqrCode()+"_QT"); + redisLock.unLock(quotJsqrEntity.getQuotJsqrCode()+"_QT",currentUser); + } } if("checker".equals(type)){//审核人通过、驳回 quotJsqr.setQuotJsqrQtCheckUserName(getLoginUser().getUser().getNickName()); @@ -411,4 +484,43 @@ public class QuotJsqrController extends BaseController List userIds = noticeService.getSendEmp(WebsocketConst.MSG_SEND_QUOT_BJZ); NoticeUtil.sendNoticesBusiness(loginUser,"有报价单已完成技术协助","单号:"+quotJsqr.getQuotCode(),userIds); } + + /** + * 监听协助说明,有数据输入则加入redis + */ + @PostMapping("/setRedisJsxz") + public AjaxResult setRedisJsxz(HttpServletResponse response, @RequestBody QuotJsqrXzRemark info) + { + String currentUser = getLoginUser().getUser().getNickName(); + String type = info.getType(); + String quotJsqrCode = info.getQuotJsqrCode(); + String remark = info.getRemark(); + + if(StringUtils.isNotBlank(remark)){ + // 判断 redis 中有无 quotJsqrXzRemark key + Boolean lock = redisLock.getLock(quotJsqrCode+"_"+type, 10,currentUser); + if(lock){ + String hvalue = redisCache.getCacheMapValue("quotJsqrXzRemark",quotJsqrCode+"_"+type); + if(StringUtils.isEmpty(hvalue)){ + redisCache.setCacheMapValue("quotJsqrXzRemark",quotJsqrCode+"_"+type,currentUser); + }else if(!hvalue.equals(currentUser)){ + return error("当前有其他用户【"+hvalue+"】正在录入"); + } + }else{ + String hvalue = redisCache.getCacheMapValue("quotJsqrXzRemark",quotJsqrCode+"_"+type); + if(StringUtils.isNotEmpty(hvalue)){ + if(!currentUser.equals(hvalue)){ + return error("当前有其他用户【"+hvalue+"】正在录入"); + } + } + } + }else{// 清空 协助说明时清空redis对应的值 + String hvalue = redisCache.getCacheMapValue("quotJsqrXzRemark",quotJsqrCode+"_"+type); + if(StringUtils.isNotEmpty(hvalue) && currentUser.equals(hvalue)){ + redisCache.deleteCacheMapValue("quotJsqrXzRemark",quotJsqrCode+"_"+type); + redisLock.unLock(quotJsqrCode+"_"+type,currentUser); + } + } + return success(); + } } diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/annotation/DataName.java b/ruoyi-common/src/main/java/com/ruoyi/common/annotation/DataName.java new file mode 100644 index 0000000..4b00d45 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/annotation/DataName.java @@ -0,0 +1,15 @@ +package com.ruoyi.common.annotation; + +import java.lang.annotation.*; + +@Retention(RetentionPolicy.RUNTIME) +@Target({ElementType.FIELD}) +@Documented +public @interface DataName { + String name() default ""; // 字段名称 + + /** + * 读取枚举内容转义表达式 (如: 0=男,1=女,2=未知) + */ + String readConverterExp() default ""; +} diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/annotation/Excel.java b/ruoyi-common/src/main/java/com/ruoyi/common/annotation/Excel.java index 1edbc39..238a516 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/annotation/Excel.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/annotation/Excel.java @@ -88,6 +88,11 @@ public @interface Excel */ public String[] combo() default {}; + /** + * 是否从字典读数据到combo,默认不读取,如读取需要设置dictType注解. + */ + public boolean comboReadDict() default false; + /** * 是否需要纵向合并单元格,应对需求:含有list集合单元格) */ diff --git a/ruoyi-framework/pom.xml b/ruoyi-framework/pom.xml index 233276a..a7d9c11 100644 --- a/ruoyi-framework/pom.xml +++ b/ruoyi-framework/pom.xml @@ -73,6 +73,11 @@ lombok 1.18.26 + + com.baomidou + mybatis-plus + 2.0.5 + diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/DataScopeAspect.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/DataScopeAspect.java index 0065808..a43793f 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/DataScopeAspect.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/DataScopeAspect.java @@ -92,11 +92,18 @@ public class DataScopeAspect { StringBuilder sqlString = new StringBuilder(); List conditions = new ArrayList(); + List scopeCustomIds = new ArrayList(); + user.getRoles().forEach(role -> { + if (DATA_SCOPE_CUSTOM.equals(role.getDataScope()) && StringUtils.isNotEmpty(permission) && StringUtils.isNotEmpty(role.getPermissions()) && StringUtils.containsAny(role.getPermissions(), Convert.toStrArray(permission))) + { + scopeCustomIds.add(Convert.toStr(role.getRoleId())); + } + }); for (SysRole role : user.getRoles()) { String dataScope = role.getDataScope(); - if (!DATA_SCOPE_CUSTOM.equals(dataScope) && conditions.contains(dataScope)) + if (conditions.contains(dataScope)) { continue; } @@ -113,9 +120,15 @@ public class DataScopeAspect } else if (DATA_SCOPE_CUSTOM.equals(dataScope)) { - sqlString.append(StringUtils.format( - " OR {}.dept_id IN ( SELECT dept_id FROM sys_role_dept WHERE role_id = {} ) ", deptAlias, - role.getRoleId())); + if (scopeCustomIds.size() > 1) + { + // 多个自定数据权限使用in查询,避免多次拼接。 + sqlString.append(StringUtils.format(" OR {}.dept_id IN ( SELECT dept_id FROM sys_role_dept WHERE role_id in ({}) ) ", deptAlias, String.join(",", scopeCustomIds))); + } + else + { + sqlString.append(StringUtils.format(" OR {}.dept_id IN ( SELECT dept_id FROM sys_role_dept WHERE role_id = {} ) ", deptAlias, role.getRoleId())); + } } else if (DATA_SCOPE_DEPT.equals(dataScope)) { @@ -142,7 +155,7 @@ public class DataScopeAspect conditions.add(dataScope); } - // 多角色情况下,所有角色都不包含传递过来的权限字符,这个时候sqlString也会为空,所以要限制一下,不查询任何数据 + // 角色都不包含传递过来的权限字符,这个时候sqlString也会为空,所以要限制一下,不查询任何数据 if (StringUtils.isEmpty(conditions)) { sqlString.append(StringUtils.format(" OR {}.dept_id = 0 ", deptAlias)); diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/exception/GlobalExceptionHandler.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/exception/GlobalExceptionHandler.java index a3ec182..5b4015f 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/exception/GlobalExceptionHandler.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/exception/GlobalExceptionHandler.java @@ -1,6 +1,9 @@ package com.ruoyi.framework.web.exception; import javax.servlet.http.HttpServletRequest; + +import com.ruoyi.common.core.text.Convert; +import com.ruoyi.common.utils.html.EscapeUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.security.access.AccessDeniedException; @@ -19,7 +22,7 @@ import com.ruoyi.common.utils.StringUtils; /** * 全局异常处理器 - * + * * @author ruoyi */ @RestControllerAdvice @@ -79,8 +82,13 @@ public class GlobalExceptionHandler public AjaxResult handleMethodArgumentTypeMismatchException(MethodArgumentTypeMismatchException e, HttpServletRequest request) { String requestURI = request.getRequestURI(); + String value = Convert.toStr(e.getValue()); + if (StringUtils.isNotEmpty(value)) + { + value = EscapeUtil.clean(value); + } log.error("请求参数类型不匹配'{}',发生系统异常.", requestURI, e); - return AjaxResult.error(String.format("请求参数类型不匹配,参数[%s]要求类型为:'%s',但输入值为:'%s'", e.getName(), e.getRequiredType().getName(), e.getValue())); + return AjaxResult.error(String.format("请求参数类型不匹配,参数[%s]要求类型为:'%s',但输入值为:'%s'", e.getName(), e.getRequiredType().getName(), value)); } /** diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java index 968b269..f436d60 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java @@ -131,12 +131,12 @@ public class SysLoginService { String verifyKey = CacheConstants.CAPTCHA_CODE_KEY + StringUtils.nvl(uuid, ""); String captcha = redisCache.getCacheObject(verifyKey); - redisCache.deleteObject(verifyKey); if (captcha == null) { AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message("user.jcaptcha.expire"))); throw new CaptchaExpireException(); } + redisCache.deleteObject(verifyKey); if (!code.equalsIgnoreCase(captcha)) { AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, MessageUtils.message("user.jcaptcha.error"))); diff --git a/ruoyi-generator/src/main/resources/vm/xml/mapper.xml.vm b/ruoyi-generator/src/main/resources/vm/xml/mapper.xml.vm index 0ceb3d8..043da0a 100644 --- a/ruoyi-generator/src/main/resources/vm/xml/mapper.xml.vm +++ b/ruoyi-generator/src/main/resources/vm/xml/mapper.xml.vm @@ -1,26 +1,26 @@ + PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - + -#foreach ($column in $columns) - -#end + #foreach ($column in $columns) + + #end -#if($table.sub) + #if($table.sub) - - - + + + - -#foreach ($column in $subTable.columns) - -#end - -#end + + #foreach ($column in $subTable.columns) + + #end + + #end select#foreach($column in $columns) $column.columnName#if($foreach.count != $columns.size()),#end#end from ${tableName} @@ -28,76 +28,81 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - - + #if($table.crud || $table.tree) + + where ${pkColumn.columnName} = #{${pkColumn.javaField}} + #elseif($table.sub) + select#foreach($column in $columns) $column.columnName#if($foreach.count != $columns.size()),#end#end + from ${tableName} + where ${pkColumn.columnName} = #{${pkColumn.javaField}} + #end - + #if($table.sub) + + + #end + insert into ${tableName} -#foreach($column in $columns) -#if($column.columnName != $pkColumn.columnName || !$pkColumn.increment) - $column.columnName, -#end -#end - + #foreach($column in $columns) + #if($column.columnName != $pkColumn.columnName || !$pkColumn.increment) + $column.columnName, + #end + #end + -#foreach($column in $columns) -#if($column.columnName != $pkColumn.columnName || !$pkColumn.increment) - #{$column.javaField}, -#end -#end - + #foreach($column in $columns) + #if($column.columnName != $pkColumn.columnName || !$pkColumn.increment) + #{$column.javaField}, + #end + #end + update ${tableName} -#foreach($column in $columns) -#if($column.columnName != $pkColumn.columnName) - $column.columnName = #{$column.javaField}, -#end -#end + #foreach($column in $columns) + #if($column.columnName != $pkColumn.columnName) + $column.columnName = #{$column.javaField}, + #end + #end where ${pkColumn.columnName} = #{${pkColumn.javaField}} @@ -107,29 +112,29 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - delete from ${tableName} where ${pkColumn.columnName} in + delete from ${tableName} where ${pkColumn.columnName} in #{${pkColumn.javaField}} -#if($table.sub) - - - delete from ${subTableName} where ${subTableFkName} in - - #{${subTableFkclassName}} - - + #if($table.sub) - - delete from ${subTableName} where ${subTableFkName} = #{${subTableFkclassName}} - + + delete from ${subTableName} where ${subTableFkName} in + + #{${subTableFkclassName}} + + - - insert into ${subTableName}(#foreach($column in $subTable.columns) $column.columnName#if($foreach.count != $subTable.columns.size()),#end#end) values - - (#foreach($column in $subTable.columns) #{item.$column.javaField}#if($foreach.count != $subTable.columns.size()),#end#end) - - -#end - \ No newline at end of file + + delete from ${subTableName} where ${subTableFkName} = #{${subTableFkclassName}} + + + + insert into ${subTableName}(#foreach($column in $subTable.columns) $column.columnName#if($foreach.count != $subTable.columns.size()),#end#end) values + + (#foreach($column in $subTable.columns) #{item.$column.javaField}#if($foreach.count != $subTable.columns.size()),#end#end) + + + #end + diff --git a/ruoyi-system/src/main/java/com/ruoyi/redBook/domain/OAQuot.java b/ruoyi-system/src/main/java/com/ruoyi/redBook/domain/OAQuot.java index 7e3fdf4..6563696 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/redBook/domain/OAQuot.java +++ b/ruoyi-system/src/main/java/com/ruoyi/redBook/domain/OAQuot.java @@ -2,6 +2,7 @@ package com.ruoyi.redBook.domain; import com.ruoyi.common.core.domain.BaseEntity; +import java.math.BigDecimal; import java.util.List; public class OAQuot extends BaseEntity { @@ -13,6 +14,8 @@ public class OAQuot extends BaseEntity { private String quotLxrdh;//联系人电话 private String totalPrice;//总金额 + private BigDecimal perc;//一次折扣 + private BigDecimal perc2;//二次折扣 private String rbDateUid;//调价版本 private String quotApprovalStatus;//提交状态 @@ -64,6 +67,14 @@ public class OAQuot extends BaseEntity { public void setTotalPrice(String totalPrice) { this.totalPrice = totalPrice; } + public BigDecimal getPerc() {return perc; } + + public void setPerc(BigDecimal perc) {this.perc = perc; } + + public BigDecimal getPerc2() { return perc2; } + + public void setPerc2(BigDecimal perc2) { this.perc2 = perc2; } + public String getRbDateUid() { return rbDateUid; } public void setRbDateUid(String rbDateUid) { this.rbDateUid = rbDateUid; } diff --git a/ruoyi-system/src/main/java/com/ruoyi/redBook/mapper/OARedBookMapper.java b/ruoyi-system/src/main/java/com/ruoyi/redBook/mapper/OARedBookMapper.java index bfc8fc7..f9a4465 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/redBook/mapper/OARedBookMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/redBook/mapper/OARedBookMapper.java @@ -114,7 +114,7 @@ public interface OARedBookMapper * @param uid_0 * @return */ - String getFixDatePrice(@Param("name_0") String name_0,@Param("spec") String spec,@Param("voltage") String voltage, @Param("uid_0") String uid_0); + String getFixDatePrice(@Param("name_0") String name_0, @Param("uid_0") String uid_0); /** * 导入明细批量获取红本价格-型号、规格、电压、数量 diff --git a/ruoyi-system/src/main/java/com/ruoyi/redBook/service/impl/RedBookServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/redBook/service/impl/RedBookServiceImpl.java index 033d71e..47397b6 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/redBook/service/impl/RedBookServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/redBook/service/impl/RedBookServiceImpl.java @@ -194,7 +194,7 @@ public class RedBookServiceImpl implements IRedBookService */ @Override public String getFixDatePrice(String name_0,String spec,String voltage, String uid_0) { - return oaRedBookMapper.getFixDatePrice(name_0,spec,voltage,uid_0); + return oaRedBookMapper.getFixDatePrice(name_0,uid_0); } /** @@ -206,7 +206,7 @@ public class RedBookServiceImpl implements IRedBookService @DataSource(DataSourceType.OAREDBOOK) public List setRedBookPrice(List list) { for(OAQuotProduct oAQuotProduct : list){ - String price = oaRedBookMapper.getFixDatePrice(oAQuotProduct.getName_0(),oAQuotProduct.getSpec(),oAQuotProduct.getVoltage(),oAQuotProduct.getUid_0()); + String price = oaRedBookMapper.getFixDatePrice(oAQuotProduct.getName_0(),oAQuotProduct.getUid_0()); oAQuotProduct.setPrice(price); if(StringUtils.isEmpty(price)){ oAQuotProduct.setName_1(""); diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysChangeRecord.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysChangeRecord.java new file mode 100644 index 0000000..5a2d373 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysChangeRecord.java @@ -0,0 +1,78 @@ +package com.ruoyi.system.domain; + +import com.fasterxml.jackson.annotation.JsonFormat; + +import java.util.Date; + +public class SysChangeRecord { + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date changeTime; + + private String createName; + + private String changeField; + + private String beforeChange; + + private String afterChange; + + private String typeId; + + private String remark; + + public Date getChangeTime() { + return changeTime; + } + + public void setChangeTime(Date changeTime) { + this.changeTime = changeTime; + } + + public String getCreateName() { + return createName; + } + + public void setCreateName(String createName) { + this.createName = createName; + } + + public String getChangeField() { + return changeField; + } + + public void setChangeField(String changeField) { + this.changeField = changeField; + } + + public String getBeforeChange() { + return beforeChange; + } + + public void setBeforeChange(String beforeChange) { + this.beforeChange = beforeChange; + } + + public String getAfterChange() { + return afterChange; + } + + public void setAfterChange(String afterChange) { + this.afterChange = afterChange; + } + + public String getTypeId() { + return typeId; + } + + public void setTypeId(String typeId) { + this.typeId = typeId; + } + + public String getRemark() { + return remark; + } + + public void setRemark(String remark) { + this.remark = remark; + } +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysChangeRecordMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysChangeRecordMapper.java new file mode 100644 index 0000000..81f7d3e --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysChangeRecordMapper.java @@ -0,0 +1,14 @@ +package com.ruoyi.system.mapper; + +import com.ruoyi.system.domain.SysChangeRecord; + +/** + * 变更日志记录Mapper + */ +public interface SysChangeRecordMapper { + /** + * 插入 + * @param changeRecord + */ + public void insertChangeRecord(SysChangeRecord changeRecord); +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysRoleService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysRoleService.java index 6c29f09..40f6ed1 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysRoleService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysRoleService.java @@ -7,14 +7,14 @@ import com.ruoyi.system.domain.SysUserRole; /** * 角色业务层 - * + * * @author ruoyi */ public interface ISysRoleService { /** * 根据条件分页查询角色数据 - * + * * @param role 角色信息 * @return 角色数据集合信息 */ @@ -22,7 +22,7 @@ public interface ISysRoleService /** * 根据用户ID查询角色列表 - * + * * @param userId 用户ID * @return 角色列表 */ @@ -30,7 +30,7 @@ public interface ISysRoleService /** * 根据用户ID查询角色权限 - * + * * @param userId 用户ID * @return 权限列表 */ @@ -38,14 +38,14 @@ public interface ISysRoleService /** * 查询所有角色 - * + * * @return 角色列表 */ public List selectRoleAll(); /** * 根据用户ID获取角色选择框列表 - * + * * @param userId 用户ID * @return 选中角色ID列表 */ @@ -53,7 +53,7 @@ public interface ISysRoleService /** * 通过角色ID查询角色 - * + * * @param roleId 角色ID * @return 角色对象信息 */ @@ -61,7 +61,7 @@ public interface ISysRoleService /** * 校验角色名称是否唯一 - * + * * @param role 角色信息 * @return 结果 */ @@ -69,7 +69,7 @@ public interface ISysRoleService /** * 校验角色权限是否唯一 - * + * * @param role 角色信息 * @return 结果 */ @@ -77,21 +77,21 @@ public interface ISysRoleService /** * 校验角色是否允许操作 - * + * * @param role 角色信息 */ public void checkRoleAllowed(SysRole role); /** * 校验角色是否有数据权限 - * - * @param roleId 角色id + * + * @param roleIds 角色id */ - public void checkRoleDataScope(Long roleId); + public void checkRoleDataScope(Long... roleIds); /** * 通过角色ID查询角色使用数量 - * + * * @param roleId 角色ID * @return 结果 */ @@ -99,7 +99,7 @@ public interface ISysRoleService /** * 新增保存角色信息 - * + * * @param role 角色信息 * @return 结果 */ @@ -107,7 +107,7 @@ public interface ISysRoleService /** * 修改保存角色信息 - * + * * @param role 角色信息 * @return 结果 */ @@ -115,7 +115,7 @@ public interface ISysRoleService /** * 修改角色状态 - * + * * @param role 角色信息 * @return 结果 */ @@ -123,7 +123,7 @@ public interface ISysRoleService /** * 修改数据权限信息 - * + * * @param role 角色信息 * @return 结果 */ @@ -131,7 +131,7 @@ public interface ISysRoleService /** * 通过角色ID删除角色 - * + * * @param roleId 角色ID * @return 结果 */ @@ -139,7 +139,7 @@ public interface ISysRoleService /** * 批量删除角色信息 - * + * * @param roleIds 需要删除的角色ID * @return 结果 */ @@ -147,7 +147,7 @@ public interface ISysRoleService /** * 取消授权用户角色 - * + * * @param userRole 用户和角色关联信息 * @return 结果 */ @@ -155,7 +155,7 @@ public interface ISysRoleService /** * 批量取消授权用户角色 - * + * * @param roleId 角色ID * @param userIds 需要取消授权的用户数据ID * @return 结果 @@ -164,7 +164,7 @@ public interface ISysRoleService /** * 批量选择授权用户角色 - * + * * @param roleId 角色ID * @param userIds 需要删除的用户数据ID * @return 结果 diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java index b2b7628..07e3233 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java @@ -23,7 +23,7 @@ import com.ruoyi.system.service.ISysDeptService; /** * 部门管理 服务实现 - * + * * @author ruoyi */ @Service @@ -37,7 +37,7 @@ public class SysDeptServiceImpl implements ISysDeptService /** * 查询部门管理数据 - * + * * @param dept 部门信息 * @return 部门信息集合 */ @@ -63,7 +63,7 @@ public class SysDeptServiceImpl implements ISysDeptService /** * 构建前端所需要树结构 - * + * * @param depts 部门列表 * @return 树结构列表 */ @@ -90,7 +90,7 @@ public class SysDeptServiceImpl implements ISysDeptService /** * 构建前端所需要下拉树结构 - * + * * @param depts 部门列表 * @return 下拉树结构列表 */ @@ -103,7 +103,7 @@ public class SysDeptServiceImpl implements ISysDeptService /** * 根据角色ID查询部门树信息 - * + * * @param roleId 角色ID * @return 选中部门列表 */ @@ -116,7 +116,7 @@ public class SysDeptServiceImpl implements ISysDeptService /** * 根据部门ID查询信息 - * + * * @param deptId 部门ID * @return 部门信息 */ @@ -128,7 +128,7 @@ public class SysDeptServiceImpl implements ISysDeptService /** * 根据ID查询所有子部门(正常状态) - * + * * @param deptId 部门ID * @return 子部门数 */ @@ -140,7 +140,7 @@ public class SysDeptServiceImpl implements ISysDeptService /** * 是否存在子节点 - * + * * @param deptId 部门ID * @return 结果 */ @@ -153,7 +153,7 @@ public class SysDeptServiceImpl implements ISysDeptService /** * 查询部门是否存在用户 - * + * * @param deptId 部门ID * @return 结果 true 存在 false 不存在 */ @@ -166,7 +166,7 @@ public class SysDeptServiceImpl implements ISysDeptService /** * 校验部门名称是否唯一 - * + * * @param dept 部门信息 * @return 结果 */ @@ -184,13 +184,13 @@ public class SysDeptServiceImpl implements ISysDeptService /** * 校验部门是否有数据权限 - * + * * @param deptId 部门id */ @Override public void checkDeptDataScope(Long deptId) { - if (!SysUser.isAdmin(SecurityUtils.getUserId())) + if (!SysUser.isAdmin(SecurityUtils.getUserId()) && StringUtils.isNotNull(deptId)) { SysDept dept = new SysDept(); dept.setDeptId(deptId); @@ -204,7 +204,7 @@ public class SysDeptServiceImpl implements ISysDeptService /** * 新增保存部门信息 - * + * * @param dept 部门信息 * @return 结果 */ @@ -223,7 +223,7 @@ public class SysDeptServiceImpl implements ISysDeptService /** * 修改保存部门信息 - * + * * @param dept 部门信息 * @return 结果 */ @@ -251,7 +251,7 @@ public class SysDeptServiceImpl implements ISysDeptService /** * 修改该部门的父级部门状态 - * + * * @param dept 当前部门 */ private void updateParentDeptStatusNormal(SysDept dept) @@ -263,7 +263,7 @@ public class SysDeptServiceImpl implements ISysDeptService /** * 修改子元素关系 - * + * * @param deptId 被修改的部门ID * @param newAncestors 新的父ID集合 * @param oldAncestors 旧的父ID集合 @@ -283,7 +283,7 @@ public class SysDeptServiceImpl implements ISysDeptService /** * 删除部门管理信息 - * + * * @param deptId 部门ID * @return 结果 */ diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java index d6cee80..0cf22b5 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java @@ -27,7 +27,7 @@ import com.ruoyi.system.service.ISysRoleService; /** * 角色 业务层处理 - * + * * @author ruoyi */ @Service @@ -47,7 +47,7 @@ public class SysRoleServiceImpl implements ISysRoleService /** * 根据条件分页查询角色数据 - * + * * @param role 角色信息 * @return 角色数据集合信息 */ @@ -60,7 +60,7 @@ public class SysRoleServiceImpl implements ISysRoleService /** * 根据用户ID查询角色 - * + * * @param userId 用户ID * @return 角色列表 */ @@ -85,7 +85,7 @@ public class SysRoleServiceImpl implements ISysRoleService /** * 根据用户ID查询权限 - * + * * @param userId 用户ID * @return 权限列表 */ @@ -106,7 +106,7 @@ public class SysRoleServiceImpl implements ISysRoleService /** * 查询所有角色 - * + * * @return 角色列表 */ @Override @@ -117,7 +117,7 @@ public class SysRoleServiceImpl implements ISysRoleService /** * 根据用户ID获取角色选择框列表 - * + * * @param userId 用户ID * @return 选中角色ID列表 */ @@ -129,7 +129,7 @@ public class SysRoleServiceImpl implements ISysRoleService /** * 通过角色ID查询角色 - * + * * @param roleId 角色ID * @return 角色对象信息 */ @@ -141,7 +141,7 @@ public class SysRoleServiceImpl implements ISysRoleService /** * 校验角色名称是否唯一 - * + * * @param role 角色信息 * @return 结果 */ @@ -159,7 +159,7 @@ public class SysRoleServiceImpl implements ISysRoleService /** * 校验角色权限是否唯一 - * + * * @param role 角色信息 * @return 结果 */ @@ -177,7 +177,7 @@ public class SysRoleServiceImpl implements ISysRoleService /** * 校验角色是否允许操作 - * + * * @param role 角色信息 */ @Override @@ -191,27 +191,30 @@ public class SysRoleServiceImpl implements ISysRoleService /** * 校验角色是否有数据权限 - * - * @param roleId 角色id + * + * @param roleIds 角色id */ @Override - public void checkRoleDataScope(Long roleId) + public void checkRoleDataScope(Long... roleIds) { if (!SysUser.isAdmin(SecurityUtils.getUserId())) { - SysRole role = new SysRole(); - role.setRoleId(roleId); - List roles = SpringUtils.getAopProxy(this).selectRoleList(role); - if (StringUtils.isEmpty(roles)) + for (Long roleId : roleIds) { - throw new ServiceException("没有权限访问角色数据!"); + SysRole role = new SysRole(); + role.setRoleId(roleId); + List roles = SpringUtils.getAopProxy(this).selectRoleList(role); + if (StringUtils.isEmpty(roles)) + { + throw new ServiceException("没有权限访问角色数据!"); + } } } } /** * 通过角色ID查询角色使用数量 - * + * * @param roleId 角色ID * @return 结果 */ @@ -223,7 +226,7 @@ public class SysRoleServiceImpl implements ISysRoleService /** * 新增保存角色信息 - * + * * @param role 角色信息 * @return 结果 */ @@ -238,7 +241,7 @@ public class SysRoleServiceImpl implements ISysRoleService /** * 修改保存角色信息 - * + * * @param role 角色信息 * @return 结果 */ @@ -255,7 +258,7 @@ public class SysRoleServiceImpl implements ISysRoleService /** * 修改角色状态 - * + * * @param role 角色信息 * @return 结果 */ @@ -267,7 +270,7 @@ public class SysRoleServiceImpl implements ISysRoleService /** * 修改数据权限信息 - * + * * @param role 角色信息 * @return 结果 */ @@ -285,7 +288,7 @@ public class SysRoleServiceImpl implements ISysRoleService /** * 新增角色菜单信息 - * + * * @param role 角色对象 */ public int insertRoleMenu(SysRole role) @@ -333,7 +336,7 @@ public class SysRoleServiceImpl implements ISysRoleService /** * 通过角色ID删除角色 - * + * * @param roleId 角色ID * @return 结果 */ @@ -350,7 +353,7 @@ public class SysRoleServiceImpl implements ISysRoleService /** * 批量删除角色信息 - * + * * @param roleIds 需要删除的角色ID * @return 结果 */ @@ -377,7 +380,7 @@ public class SysRoleServiceImpl implements ISysRoleService /** * 取消授权用户角色 - * + * * @param userRole 用户和角色关联信息 * @return 结果 */ @@ -389,7 +392,7 @@ public class SysRoleServiceImpl implements ISysRoleService /** * 批量取消授权用户角色 - * + * * @param roleId 角色ID * @param userIds 需要取消授权的用户数据ID * @return 结果 @@ -402,7 +405,7 @@ public class SysRoleServiceImpl implements ISysRoleService /** * 批量选择授权用户角色 - * + * * @param roleId 角色ID * @param userIds 需要授权的用户数据ID * @return 结果 diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java index b371060..d0fdcbd 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java @@ -4,6 +4,8 @@ import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; import javax.validation.Validator; + +import com.ruoyi.system.service.ISysDeptService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -32,7 +34,7 @@ import com.ruoyi.system.service.ISysUserService; /** * 用户 业务层处理 - * + * * @author ruoyi */ @Service @@ -58,12 +60,15 @@ public class SysUserServiceImpl implements ISysUserService @Autowired private ISysConfigService configService; + @Autowired + private ISysDeptService deptService; + @Autowired protected Validator validator; /** * 根据条件分页查询用户列表 - * + * * @param user 用户信息 * @return 用户信息集合信息 */ @@ -76,7 +81,7 @@ public class SysUserServiceImpl implements ISysUserService /** * 根据条件分页查询已分配用户角色列表 - * + * * @param user 用户信息 * @return 用户信息集合信息 */ @@ -89,7 +94,7 @@ public class SysUserServiceImpl implements ISysUserService /** * 根据条件分页查询未分配用户角色列表 - * + * * @param user 用户信息 * @return 用户信息集合信息 */ @@ -102,7 +107,7 @@ public class SysUserServiceImpl implements ISysUserService /** * 通过用户名查询用户 - * + * * @param userName 用户名 * @return 用户对象信息 */ @@ -114,7 +119,7 @@ public class SysUserServiceImpl implements ISysUserService /** * 通过用户ID查询用户 - * + * * @param userId 用户ID * @return 用户对象信息 */ @@ -126,7 +131,7 @@ public class SysUserServiceImpl implements ISysUserService /** * 查询用户所属角色组 - * + * * @param userName 用户名 * @return 结果 */ @@ -143,7 +148,7 @@ public class SysUserServiceImpl implements ISysUserService /** * 查询用户所属岗位组 - * + * * @param userName 用户名 * @return 结果 */ @@ -160,7 +165,7 @@ public class SysUserServiceImpl implements ISysUserService /** * 校验用户名称是否唯一 - * + * * @param user 用户信息 * @return 结果 */ @@ -214,7 +219,7 @@ public class SysUserServiceImpl implements ISysUserService /** * 校验用户是否允许操作 - * + * * @param user 用户信息 */ @Override @@ -228,7 +233,7 @@ public class SysUserServiceImpl implements ISysUserService /** * 校验用户是否有数据权限 - * + * * @param userId 用户id */ @Override @@ -248,7 +253,7 @@ public class SysUserServiceImpl implements ISysUserService /** * 新增保存用户信息 - * + * * @param user 用户信息 * @return 结果 */ @@ -267,7 +272,7 @@ public class SysUserServiceImpl implements ISysUserService /** * 注册用户信息 - * + * * @param user 用户信息 * @return 结果 */ @@ -279,7 +284,7 @@ public class SysUserServiceImpl implements ISysUserService /** * 修改保存用户信息 - * + * * @param user 用户信息 * @return 结果 */ @@ -301,7 +306,7 @@ public class SysUserServiceImpl implements ISysUserService /** * 用户授权角色 - * + * * @param userId 用户ID * @param roleIds 角色组 */ @@ -315,7 +320,7 @@ public class SysUserServiceImpl implements ISysUserService /** * 修改用户状态 - * + * * @param user 用户信息 * @return 结果 */ @@ -327,7 +332,7 @@ public class SysUserServiceImpl implements ISysUserService /** * 修改用户基本信息 - * + * * @param user 用户信息 * @return 结果 */ @@ -339,7 +344,7 @@ public class SysUserServiceImpl implements ISysUserService /** * 修改用户头像 - * + * * @param userName 用户名 * @param avatar 头像地址 * @return 结果 @@ -352,7 +357,7 @@ public class SysUserServiceImpl implements ISysUserService /** * 重置用户密码 - * + * * @param user 用户信息 * @return 结果 */ @@ -364,7 +369,7 @@ public class SysUserServiceImpl implements ISysUserService /** * 重置用户密码 - * + * * @param userName 用户名 * @param password 密码 * @return 结果 @@ -377,7 +382,7 @@ public class SysUserServiceImpl implements ISysUserService /** * 新增用户角色信息 - * + * * @param user 用户对象 */ public void insertUserRole(SysUser user) @@ -387,7 +392,7 @@ public class SysUserServiceImpl implements ISysUserService /** * 新增用户岗位信息 - * + * * @param user 用户对象 */ public void insertUserPost(SysUser user) @@ -410,7 +415,7 @@ public class SysUserServiceImpl implements ISysUserService /** * 新增用户角色信息 - * + * * @param userId 用户ID * @param roleIds 角色组 */ @@ -433,7 +438,7 @@ public class SysUserServiceImpl implements ISysUserService /** * 通过用户ID删除用户 - * + * * @param userId 用户ID * @return 结果 */ @@ -450,7 +455,7 @@ public class SysUserServiceImpl implements ISysUserService /** * 批量删除用户信息 - * + * * @param userIds 需要删除的用户ID * @return 结果 */ @@ -472,7 +477,7 @@ public class SysUserServiceImpl implements ISysUserService /** * 导入用户数据 - * + * * @param userList 用户数据列表 * @param isUpdateSupport 是否更新支持,如果已存在,则进行更新数据 * @param operName 操作用户 @@ -489,7 +494,6 @@ public class SysUserServiceImpl implements ISysUserService int failureNum = 0; StringBuilder successMsg = new StringBuilder(); StringBuilder failureMsg = new StringBuilder(); - String password = configService.selectConfigByKey("sys.user.initPassword"); for (SysUser user : userList) { try @@ -499,6 +503,8 @@ public class SysUserServiceImpl implements ISysUserService if (StringUtils.isNull(u)) { BeanValidators.validateWithException(validator, user); + deptService.checkDeptDataScope(user.getDeptId()); + String password = configService.selectConfigByKey("sys.user.initPassword"); user.setPassword(SecurityUtils.encryptPassword(password)); user.setCreateBy(operName); userMapper.insertUser(user); @@ -510,6 +516,7 @@ public class SysUserServiceImpl implements ISysUserService BeanValidators.validateWithException(validator, user); checkUserAllowed(u); checkUserDataScope(u.getUserId()); + deptService.checkDeptDataScope(user.getDeptId()); user.setUserId(u.getUserId()); user.setUpdateBy(operName); userMapper.updateUser(user); diff --git a/ruoyi-system/src/main/java/com/ruoyi/technicalConfirm/domain/QuotJsqrXzRemark.java b/ruoyi-system/src/main/java/com/ruoyi/technicalConfirm/domain/QuotJsqrXzRemark.java new file mode 100644 index 0000000..86eb8e4 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/technicalConfirm/domain/QuotJsqrXzRemark.java @@ -0,0 +1,31 @@ +package com.ruoyi.technicalConfirm.domain; + +public class QuotJsqrXzRemark { + private String type; + private String quotJsqrCode; + private String remark; + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public String getQuotJsqrCode() { + return quotJsqrCode; + } + + public void setQuotJsqrCode(String quotJsqrCode) { + this.quotJsqrCode = quotJsqrCode; + } + + public String getRemark() { + return remark; + } + + public void setRemark(String remark) { + this.remark = remark; + } +} diff --git a/ruoyi-system/src/main/resources/mapper/quot/QuotMapper.xml b/ruoyi-system/src/main/resources/mapper/quot/QuotMapper.xml index 4d13c50..a991f8c 100644 --- a/ruoyi-system/src/main/resources/mapper/quot/QuotMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/quot/QuotMapper.xml @@ -142,6 +142,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and quot_code like concat('%', #{quotCode}, '%') and quot_customer_name like concat('%', #{quotCustomerName}, '%') and quot_project like concat('%', #{quotProject}, '%') + and quot_quotation_require like concat('%', #{quotQuotationRequire}, '%') and quot_salesman_name like concat('%', #{quotSalesmanName}, '%') and quot_print = #{quotPrint} and quot_approval_status = #{quotApprovalStatus} diff --git a/ruoyi-system/src/main/resources/mapper/redBook/OARedBookMapper.xml b/ruoyi-system/src/main/resources/mapper/redBook/OARedBookMapper.xml index 34aea3f..376239b 100644 --- a/ruoyi-system/src/main/resources/mapper/redBook/OARedBookMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/redBook/OARedBookMapper.xml @@ -94,6 +94,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" quotLxr, quotLxrdh, totalPrice, + perc, + perc2, rbDateUid, create_by, create_time, @@ -108,6 +110,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{quotLxr}, #{quotLxrdh}, #{totalPrice}, + #{perc}, + #{perc2}, #{rbDateUid}, #{createBy}, #{createTime}, @@ -125,6 +129,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" quotLxr = #{quotLxr}, quotLxrdh = #{quotLxrdh}, totalPrice = #{totalPrice}, + perc = #{perc}, + perc2 = #{perc2}, rbDateUid = #{rbDateUid}, quotApprovalStatus = #{quotApprovalStatus}, create_by = #{createBy}, @@ -136,9 +142,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - insert into OAQuotProduct(quot_product_id, name_0, name_1, spec, voltage,stu,price,setPrice,count,allPrice,per,per2,quot_id,number) values + insert into OAQuotProduct(uid_0,quot_product_id, name_0, name_1, spec, voltage,stu,price,setPrice,count,allPrice,per,per2,quot_id,number) values - ( #{item.quot_product_id}, #{item.name_0}, #{item.name_1}, #{item.spec}, #{item.voltage}, #{item.stu},cast(#{item.price,jdbcType=DECIMAL} as decimal(18,2)),cast(#{item.setPrice,jdbcType=DECIMAL} as decimal(18,2)), cast(#{item.count,jdbcType=DECIMAL} as decimal(18,3)), cast(#{item.allPrice,jdbcType=DECIMAL} as decimal(18,2)),cast(#{item.per,jdbcType=DECIMAL} as decimal(18,2)),cast(#{item.per2,jdbcType=DECIMAL} as decimal(18,2)), #{item.quot_id}, #{item.index}) + (#{item.uid_0}, #{item.quot_product_id}, #{item.name_0}, #{item.name_1}, #{item.spec}, #{item.voltage}, #{item.stu},cast(#{item.price,jdbcType=DECIMAL} as decimal(18,2)),cast(#{item.setPrice,jdbcType=DECIMAL} as decimal(18,2)), cast(#{item.count,jdbcType=DECIMAL} as decimal(18,3)), cast(#{item.allPrice,jdbcType=DECIMAL} as decimal(18,2)),cast(#{item.per,jdbcType=DECIMAL} as decimal(18,2)),cast(#{item.per2,jdbcType=DECIMAL} as decimal(18,2)), #{item.quot_id}, #{item.index}) @@ -168,8 +174,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" @@ -230,6 +236,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + @@ -239,6 +247,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + @@ -255,9 +264,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"