Selaa lähdekoodia

sz 考勤记录添加查询条件,设备添加用户单位过滤

xiao547607 5 vuotta sitten
vanhempi
commit
a7a7c65cc7

+ 1 - 1
common/src/main/java/com/jpsoft/smart/modules/base/dao/PersonInfoDAO.java

@@ -23,7 +23,7 @@ public interface PersonInfoDAO {
     long countByCompanyCode(String code,Long personId);
 
 	PersonInfo getIgnoreDelFlag(Long id);
-	List<PersonInfo> findByCompanyCode(String code,List<Sort> sortList);
+	List<PersonInfo> findByCompanyCode(Map<String,Object> searchParams,List<Sort> sortList);
 
     long countByCompanyList(List<CompanyInfo> list);
 }

+ 1 - 1
common/src/main/java/com/jpsoft/smart/modules/base/service/PersonInfoService.java

@@ -25,7 +25,7 @@ public interface PersonInfoService {
 	PersonInfo getIgnoreDelFlag(Long id);
     long countByCompanyCode(String code,Long relatePersonId);
 
-	List<PersonInfo> findByCompanyCode(String code,List<Sort> sortList);
+	List<PersonInfo> findByCompanyCode(Map<String, Object> searchParams,List<Sort> sortList);
 
 	long countByCompanyList(List<CompanyInfo> list);
 }

+ 2 - 2
common/src/main/java/com/jpsoft/smart/modules/base/service/impl/PersonInfoServiceImpl.java

@@ -91,8 +91,8 @@ public class PersonInfoServiceImpl implements PersonInfoService {
 	}
 
 	@Override
-	public List<PersonInfo> findByCompanyCode(String code,List<Sort> sortList) {
-		return personInfoDAO.findByCompanyCode(code,sortList);
+	public List<PersonInfo> findByCompanyCode(Map<String,Object> searchParams,List<Sort> sortList) {
+		return personInfoDAO.findByCompanyCode(searchParams,sortList);
 	}
 
 	@Override

+ 7 - 0
common/src/main/resources/mapper/base/CompanyInfo.xml

@@ -114,6 +114,13 @@
             <if test="searchParams.name != null">
                 and a.name_ like #{searchParams.name}
             </if>
+            <if test="searchParams.bindCompanyId != null">
+                and (
+                a.id_ = #{searchParams.bindCompanyId} or
+                a.parent_id = #{searchParams.bindCompanyId}
+                )
+            </if>
+
         </where>
         <foreach item="sort" collection="sortList" open="order by" separator=",">
             a.${sort.name} ${sort.order}

+ 1 - 1
common/src/main/resources/mapper/base/DeviceInfo.xml

@@ -189,7 +189,7 @@ id_, header_,device_no,alias_name,address_,is_online,company_id,unlock_password,
 						select c.device_id from base_company_device_relation c
 						where c.device_id=a.id_ and c.company_id=#{searchParams.bindCompanyId}
 					)
-				}
+				)
 			</if>
 		</where>
 		<foreach item="sort" collection="sortList"  open="order by" separator=",">

+ 9 - 1
common/src/main/resources/mapper/base/PersonInfo.xml

@@ -273,7 +273,15 @@
         from base_person_info a
         left join base_company_info b on a.company_id = b.id_
         where a.del_flag = 0
-        and b.code_ like #{code}
+        and b.code_ like #{searchParams.code}
+        <if test="searchParams.nameList != null">
+            <foreach item="name" collection="searchParams.nameList"  open="and" separator="or">
+                a.name_ like #{name}
+            </foreach>
+        </if>
+        <if test="searchParams.jobNumber!=null">
+            and a.position3_ like #{searchParams.jobNumber}
+        </if>
         <foreach item="sort" collection="sortList" open="order by" separator=",">
             a.${sort.name} ${sort.order}
         </foreach>

+ 5 - 1
web/src/main/java/com/jpsoft/smart/modules/base/controller/CompanyInfoController.java

@@ -354,11 +354,15 @@ public class CompanyInfoController {
 
         //当前用户ID
         System.out.println(subject);
-
         MessageResult<Map> msgResult = new MessageResult<>();
 
         Map<String,Object> searchParams = new HashMap<>();
 
+        User user = userService.get(subject);
+        if(!userService.hasRole(user.getId(),"SYSADMIN")) {
+            searchParams.put("bindCompanyId",user.getCompanyId());
+        }
+
         List<Sort> sortList = new ArrayList<>();
         sortList.add(new Sort("sort_no","asc"));
 

+ 22 - 2
web/src/main/java/com/jpsoft/smart/modules/business/controller/WorkAttendanceController.java

@@ -17,6 +17,7 @@ import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.poi.hssf.usermodel.HSSFRichTextString;
 import org.apache.poi.ss.usermodel.*;
 import org.apache.poi.xssf.usermodel.XSSFRichTextString;
@@ -68,13 +69,15 @@ public class WorkAttendanceController {
     @ApiOperation(value="考勤统计列表")
     @ApiImplicitParams({
             @ApiImplicitParam(name="companyId",value = "单位编号",required = true,paramType = "form"),
+            @ApiImplicitParam(name="name",value = "用户姓名",required = true,paramType = "form"),
+            @ApiImplicitParam(name="jobNumber",value = "工号",required = true,paramType = "form"),
             @ApiImplicitParam(name = "startDate",value = "开始时间", required = true,paramType="form"),
             @ApiImplicitParam(name = "endDate",value = "截止时间", required = true,paramType="form"),
             @ApiImplicitParam(name = "subject",value = "subject", required = false,paramType="form")
     })
     @RequestMapping(value = "statList",method = RequestMethod.POST)
     public MessageResult<Map> statList(
-            String companyId,
+            String companyId,String name,String jobNumber,
             @DateTimeFormat(pattern = "yyyy-MM-dd") Date startDate,
             @DateTimeFormat(pattern = "yyyy-MM-dd") Date endDate,
             @RequestAttribute String subject){
@@ -114,7 +117,24 @@ public class WorkAttendanceController {
             sortList.add(new Sort("position2_","asc"));
             sortList.add(new Sort("position3_","asc"));
 
-            List<PersonInfo> personInfoList = personInfoService.findByCompanyCode(companyInfo.getCode() + "%",sortList);
+            Map<String,Object> searchParams = new HashMap<>();
+
+            if (StringUtils.isNotEmpty(name)) {
+                String[] names = name.split(",");
+                List nameList = new ArrayList();
+                for (String n : names) {
+                    nameList.add("%"+ n +"%");
+                }
+                searchParams.put("nameList", nameList);
+            }
+            if (StringUtils.isNotEmpty(jobNumber)) {
+                searchParams.put("jobNumber", "%" + jobNumber + "%");
+            }
+
+
+            searchParams.put("code",companyInfo.getCode() + "%");
+
+            List<PersonInfo> personInfoList = personInfoService.findByCompanyCode(searchParams,sortList);
 
             int days = Days.daysBetween(startTime,endTime).getDays();