“The difference to {@code NotEmpty} is that trailingwhitespaces are getting ignored.” –> 和{@code NotEmpty}不同的是,尾部空格被忽略,也就是说,纯空格的String也是不符合规则的。所以才会说@NotBlank用于String,只能作用在String上,不能为null,而且调用trim()后,长度必须大于0。
1、s SELECT p.* FROM `marketer_project` p INNER JOIN( SELECT 1 dept_id, 80 weight UNION SELECT 2 dept_id, 0 weight ) w ON p.dept_id = w.dept_id AND w.weight > 60 2、权重分
自动审批: 流程提交人所有职能最高职能权重分 to 比较节点定义的最小职能权重分比较
数据隔离(立项、项目、推进): 用户所在部门和职能所在部门并包含其上级部门、下级部门的权重分数列表---》拼接sql // 立项 SELECT process_form_project.*, process.`process_instance_id`, process.`status`, transactor.`name` AS transactor_name, leader.`name` AS leader_name, ops_dept.`name` AS dept_name , w.* FROM dyoms_component.`component_process_form_project` AS process_form_project LEFT JOIN dyoms_component.`component_process` AS process ON process_form_project.process_id = process.id LEFT JOIN dyoms_ops.`ops_user` AS transactor ON transactor.id = process_form_project.transactor LEFT JOIN dyoms_ops.`ops_user` AS leader ON leader.id = process_form_project.leader LEFT JOIN dyoms_ops.`ops_dept` AS ops_dept ON process_form_project.dept_id = ops_dept.id INNER JOIN(SELECT 10 weight, 123 dept_id UNION SELECT 2 dept_id, 0 weight) w on w.dept_id=process_form_project.dept_id WHERE process_form_project.deleted = 0 ORDER BY process_form_project.create_time DESC LIMIT 10 // 测试值 List<DeptWeightBo> deptWeightList = newArrayList<>(); DeptWeightBodeptWeightBo=newDeptWeightBo(); deptWeightBo.setWeight(40); deptWeightBo.setId(1590584719522529282L); deptWeightList.add(deptWeightBo);
// 1、sql别名无法模糊 SELECT project.*, leader.`name` AS leader_name, ops_dept.`name` AS dept_name FROM dyoms_marketer.`marketer_project` AS project LEFT JOIN dyoms_ops.`ops_user` AS leader ON project.leader = leader.id LEFT JOIN dyoms_ops.`ops_dept` AS ops_dept ON project.dept_id = ops_dept.id WHERE project.deleted = 0 AND `leader_name` LIKE "%张" // problem: 1、项目成员----》负责人是否添加 能否删除项目负责人
<select id="listProject" resultMap="ProjectBo"> SELECT project.*, leader.`name` AS leader_name, ops_dept.`name` AS dept_name FROM dyoms_marketer.`marketer_project` AS project LEFT JOIN dyoms_ops.`ops_user` AS leader ON project.leader = leader.id LEFT JOIN dyoms_ops.`ops_dept` AS ops_dept ON project.dept_id = ops_dept.id WHERE project.deleted =0 <if test="statusSet != null and statusSet.size() != 0"> and project.status in <foreach close=")" collection="statusSet" item="statusId" open="(" separator=","> #{statusId} </foreach> </if> <if test="deptWeightList != null and deptWeightList.size !=0"> INNER JOIN( <foreach collection="deptWeightList" item="deptWeight" separator="UNION"> SELECT #{deptWeight.id} AS dept_id, #{deptWeight.weight} AS weight_score </foreach> ) weight ON weight.dept_id = process_form_project.dept_id AND weight.weight_score > #{moduleScore} OR #{userId} IN ( SELECT user_id FROM dyoms_marketer.marketer_project_member AS project_member WHERE dyoms_marketer.project_member.project_id = project.id AND project_member.deleted = 0 UNION SELECT leader AS user_id FROM dyoms_marketer.marketer_project WHERE dyoms_marketer.marketer_project.id=project.id) </if> <if test="pageProjectRequest.deptList != null and pageProjectRequest.deptList.size() != 0 "> and project.dept_id in <foreach close=")" collection="pageProjectRequest.deptList" item="deptId" open="(" separator=","> #{deptId} </foreach> </if> <if test="pageProjectRequest.leader != null and pageProjectRequest.leader != '' "> and leader.`name` like concat("%",#{pageProjectRequest.leader},"%") </if> <if test="pageProjectRequest.bid != null and pageProjectRequest.bid != '' "> and project.bid like concat("%",#{pageProjectRequest.bid},"%") </if> <if test="pageProjectRequest.name != null and pageProjectRequest.name != '' "> and project.name like concat("%",#{pageProjectRequest.name},"%") </if> </select>