Bladeren bron

经办人部门筛选条件

lizhenhao 2 jaren geleden
bovenliggende
commit
f5728db273

+ 4 - 1
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/finance/invoice/mapper/xml/FinanceInvoiceMapper.xml

@@ -41,6 +41,7 @@
             <result property="invalidStatus" column="invalid_status" jdbcType="VARCHAR"/>
             <result property="receivablesDate" column="receivables_date" jdbcType="TIMESTAMP"/>
             <result property="operator" column="operator" jdbcType="VARCHAR"/>
+            <result property="operatorOffice" column="operator_office" jdbcType="VARCHAR"/>
             <association property="financeInvoiceInvalidDTO" column="id" select="getFii" javaType="com.jeeplus.test.finance.invoice.service.dto.FinanceInvoiceInvalidDTO"></association>
             <collection property="financeInvoiceReceivablesDTOList" column="id" select="getFirList" ofType="com.jeeplus.test.finance.invoice.service.dto.FinanceInvoiceReceivablesDTO"></collection>
             <collection property="financeInvoiceBaseDTOList" column="id" select="getBaseList" ofType="com.jeeplus.test.finance.invoice.service.dto.FinanceInvoiceBaseDTO"></collection>
@@ -181,9 +182,11 @@
     <select id="findList" resultMap="BaseResultMap">
         select
         <include refid="Base_Column_List"></include>,
-        su.name as operator
+        su.name as operator,
+        so.name as operator_office
         from finance_invoice fi
         left join sys_user su on fi.create_by = su.id and su.del_flag = '0'
+        left join sys_office so on su.office_id = so.id and so.del_flag = '0'
         ${ew.customSqlSegment}
     </select>
 

+ 17 - 2
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/finance/invoice/service/FinanceInvoiceService.java

@@ -13,6 +13,7 @@ import com.jeeplus.core.query.QueryWrapperGenerator;
 import com.jeeplus.sys.domain.Office;
 import com.jeeplus.sys.domain.User;
 import com.jeeplus.sys.mapper.UserMapper;
+import com.jeeplus.sys.service.UserService;
 import com.jeeplus.sys.service.dto.UserDTO;
 import com.jeeplus.sys.utils.StringUtils;
 import com.jeeplus.sys.utils.UserUtils;
@@ -64,7 +65,7 @@ public class FinanceInvoiceService extends ServiceImpl<FinanceInvoiceMapper, Fin
     @Resource
     private WorkContractInfoMapper workContractInfoMapper;
     @Resource
-    private UserMapper userMapper;
+    private UserService userService;
 
     public List<String> getSearchList(ArrayList<String> searchIdList, List<String> ids) {
         List<String> newSearchIdList = searchIdList.stream().filter(item -> {
@@ -85,6 +86,7 @@ public class FinanceInvoiceService extends ServiceImpl<FinanceInvoiceMapper, Fin
     public IPage<FinanceInvoiceDTO> findList(Page<FinanceInvoiceDTO> page, FinanceInvoiceDTO financeInvoiceDTO) throws Exception{
         QueryWrapper<FinanceInvoice> queryWrapper = QueryWrapperGenerator.buildQueryCondition ( FinanceInvoiceWrapper.INSTANCE.toEntity(financeInvoiceDTO), FinanceInvoice.class );
         queryWrapper.eq("fi.del_flag","0");
+        queryWrapper.orderByDesc("fi.create_date");
         ArrayList<String> searchIdList = new ArrayList<>();
         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
         AtomicInteger checkNum = new AtomicInteger();
@@ -243,7 +245,7 @@ public class FinanceInvoiceService extends ServiceImpl<FinanceInvoiceMapper, Fin
                 queryWrapper.like("su.name",financeInvoiceDTO.getOperator());
             }
             if (StringUtils.isNotBlank(financeInvoiceDTO.getReconciliationPeopleName())) {
-                List<User> users = userMapper.selectList(new QueryWrapper<User>().lambda().like(User::getName, financeInvoiceDTO.getReconciliationPeopleName()));
+                List<User> users = userService.list(new QueryWrapper<User>().lambda().like(User::getName, financeInvoiceDTO.getReconciliationPeopleName()));
                 List<String> userIdList = users.stream().distinct().map(User::getId).collect(Collectors.toList());
                 if (CollectionUtil.isNotEmpty(userIdList)) {
                     queryWrapper.in("fi.reconciliation_people",userIdList);
@@ -251,6 +253,19 @@ public class FinanceInvoiceService extends ServiceImpl<FinanceInvoiceMapper, Fin
                     return new Page<FinanceInvoiceDTO>();
                 }
             }
+            if (StringUtils.isNotBlank(financeInvoiceDTO.getOperatorOffice())){
+                List<User> userList = userService.getUserByOfficeAll(financeInvoiceDTO.getOperatorOffice());
+                if (CollectionUtil.isNotEmpty(userList)) {
+                    List<String> userIdList = userList.stream().distinct().map(User::getId).collect(Collectors.toList());
+                    if (CollectionUtil.isNotEmpty(userIdList)) {
+                        queryWrapper.in("fi.create_by",userIdList);
+                    } else {
+                        return new Page<FinanceInvoiceDTO>();
+                    }
+                } else {
+                    return new Page<FinanceInvoiceDTO>();
+                }
+            }
         }
         if (CollectionUtil.isNotEmpty(searchIdList)){
             List<String> ids = searchIdList.stream().distinct().collect(Collectors.toList());

+ 5 - 0
jeeplus-module/jeeplus-test/src/main/java/com/jeeplus/test/finance/invoice/service/dto/FinanceInvoiceDTO.java

@@ -254,5 +254,10 @@ public class FinanceInvoiceDTO extends BaseDTO {
      */
     private String operator;
 
+    /**
+     * 经办人部门
+     */
+    private String operatorOffice;
+
     private static final long serialVersionUID = 1L;
 }

+ 42 - 4
jeeplus-platform/jeeplus-admin/src/main/java/com/jeeplus/sys/service/UserService.java

@@ -3,7 +3,11 @@
  */
 package com.jeeplus.sys.service;
 
+import cn.hutool.core.collection.CollectionUtil;
+import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
+import com.jeeplus.sys.domain.Office;
+import com.jeeplus.sys.mapper.OfficeMapper;
 import com.jeeplus.sys.service.dto.LoginUserOnlineDTO;
 import com.jeeplus.sys.utils.ServletUtils;
 import com.jeeplus.sys.utils.ip.AddressUtils;
@@ -30,10 +34,8 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import javax.servlet.http.HttpServletRequest;
-import java.util.Date;
-import java.util.List;
-import java.util.Set;
-import java.util.TimerTask;
+import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * 用户管理
@@ -56,6 +58,9 @@ public class UserService  extends ServiceImpl<UserMapper, User> {
 	@Autowired
 	private UserMapper userMapper;
 
+	@Autowired
+	private OfficeMapper officeMapper;
+
 	/**
 	 * 单一登录判断,是否允许登录
 	 * @return
@@ -335,4 +340,37 @@ public class UserService  extends ServiceImpl<UserMapper, User> {
 		}
 		return sysUserOnline;
 	}
+
+	/**
+	 * 根据部门id获取 部门 以及 子部门 下的所有用户信息
+	 * @param officeId
+	 * @return
+	 */
+	public List<User> getUserByOfficeAll(String officeId){
+		List<Office> officeList = officeMapper.selectList(new QueryWrapper<Office>().lambda().eq(Office::getParentId, officeId));
+		List<String> officeIdList = officeList.stream().distinct().map(Office::getId).collect(Collectors.toList());
+		while(true) {
+			List<String> ids = new ArrayList<>();
+			officeIdList.stream().forEach(item->{
+				List<Office> officeList1 = officeMapper.selectList(new QueryWrapper<Office>().lambda().eq(Office::getParentId, item));
+				officeList1.stream().forEach(i->{
+					officeList.add(i);
+					ids.add(i.getId());
+				});
+			});
+			if (CollectionUtil.isNotEmpty(ids)) {
+				officeIdList = ids;
+			} else {
+				break;
+			}
+		}
+		List<String> officeIds = officeList.stream().distinct().filter(item -> {
+			if (StringUtils.isNotBlank(item.getId())) {
+				return true;
+			}
+			return false;
+		}).map(Office::getId).collect(Collectors.toList());
+		officeIds.add(officeId);
+		return userMapper.selectList(new QueryWrapper<User>().lambda().in(User::getOfficeId,officeIds));
+	}
 }