瀏覽代碼

feat: 财务复核功能-查询汇总列表2

lixuesong 1 年之前
父節點
當前提交
d2122fd63c

+ 2 - 2
db/v2.0/20240105.sql

@@ -1,8 +1,8 @@
 alter table sys_dept
-    add financial_review_type char(10) default 'AUTO' null comment '财务复核方式';
+    add financial_review_type char(10) null comment '财务复核方式';
 
 alter table wm_score_package_settle_note
-    add review_status char(10) default 'AUTO' comment '财务复核状态';
+    add review_status char(10) null comment '财务复核状态';
 
 alter table wm_score_package_settle_note
     add review_time datetime null comment '复核时间';

+ 20 - 15
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/WmPayOffController.java

@@ -23,11 +23,13 @@ import com.qunzhixinxi.hnqz.admin.entity.input.WmScorePackageSettleInput;
 import com.qunzhixinxi.hnqz.admin.entity.input.WmScorePackageSettleOutput;
 import com.qunzhixinxi.hnqz.admin.entity.model.excel.SettlementProofModel;
 import com.qunzhixinxi.hnqz.admin.entity.model.excel.WmScorePackageSettleExcelModel;
+import com.qunzhixinxi.hnqz.admin.entity.vo.SettleFinancialReviewVO;
 import com.qunzhixinxi.hnqz.admin.enums.DeptPermissionEnum;
 import com.qunzhixinxi.hnqz.admin.enums.PackageFinishStatusEnum;
 import com.qunzhixinxi.hnqz.admin.enums.PackageTypeEnum;
 import com.qunzhixinxi.hnqz.admin.enums.SettleStatusEnum;
 import com.qunzhixinxi.hnqz.admin.enums.SubjectLocation;
+import com.qunzhixinxi.hnqz.admin.mapper.WmScorePackageMapper;
 import com.qunzhixinxi.hnqz.admin.service.SysDeptService;
 import com.qunzhixinxi.hnqz.admin.service.SysDictItemService;
 import com.qunzhixinxi.hnqz.admin.service.SysUserService;
@@ -83,6 +85,7 @@ public class WmPayOffController {
 
 	private final WmPayOffService wmPayOffService;
 	private final WmScorePackageService wmScorePackageService;
+	private final WmScorePackageMapper wmScorePackageMapper;
 	private final WmScorePackageSettleNoteService wmScorePackageSettleNoteService;
 	private final SysDeptService sysDeptService;
 	private final RedisTemplate<String, Object> redisTemplate;
@@ -322,23 +325,25 @@ public class WmPayOffController {
 		return R.ok(outputPage);
 	}
 
+	/**
+	 * 查询财务结算复核数据
+	 *
+	 * @param realName 姓名
+	 * @param subjectLocation 结算渠道
+	 * @return {@link R}<{@link ?}> 结果
+	 */
 	@GetMapping("/list-financial-review")
-	public R<?> listFinancialReview(String realName, SubjectLocation subjectLocation) {
+	public R<List<SettleFinancialReviewVO>> listFinancialReview(String realName, SubjectLocation subjectLocation, Boolean reviewFlag) {
 		Integer deptId = SecurityUtils.getUser().getDeptId();
-		// 本企业数据和其他(MAH结算数据)都要
-		// 本企业数据 SendPackageDeptId=当前企业id
-		// 其他数据 MahSettleDeptId=当期企业,且MahSettleStep=FINANCE
-		LambdaQueryWrapper<WmScorePackage> queryWrapper = Wrappers.<WmScorePackage>lambdaQuery()
-				.and(wrapper -> wrapper.eq(WmScorePackage::getMahSettleDeptId, deptId)
-						.eq(WmScorePackage::getMahSettleStep, UpmsType.MahSettleStep.FINANCE)
-						.or(wrapper2 -> wrapper2.eq(WmScorePackage::getSendPackageDeptId, deptId)));
-		queryWrapper.eq(WmScorePackage::getPackageFinishStatus, PackageFinishStatusEnum.COMPLETED.val());
-		queryWrapper.in(WmScorePackage::getTypeid, "4", "5");
-		queryWrapper.eq(WmScorePackage::getSettleFlag, "1");
-		List<WmScorePackage> packageList = wmScorePackageService.list(queryWrapper);
-
-		// TODO
-		return null;
+
+		SettleFinancialReviewVO query = new SettleFinancialReviewVO();
+		query.setRealname(realName);
+		query.setSubjectLocation(subjectLocation);
+		query.setDeptId(deptId);
+		query.setReviewFlag(reviewFlag);
+		List<SettleFinancialReviewVO> voList = wmScorePackageMapper.listFinancialReview(query);
+
+		return R.ok(voList);
 	}
 
 	/**

+ 69 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/entity/vo/SettleFinancialReviewVO.java

@@ -0,0 +1,69 @@
+package com.qunzhixinxi.hnqz.admin.entity.vo;
+
+import com.qunzhixinxi.hnqz.admin.api.constant.UpmsState;
+import com.qunzhixinxi.hnqz.admin.enums.SubjectLocation;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * 财务结算复核汇总VO
+ *
+ * @author lixuesong
+ * @date 2024/01/08
+ */
+@Data
+public class SettleFinancialReviewVO implements Serializable {
+	private static final long serialVersionUID = -4383632697565147294L;
+
+	/**
+	 * 用户id
+	 */
+	private Integer userId;
+
+	/**
+	 * 企业id
+	 */
+	private Integer deptId;
+
+	/**
+	 * 用户姓名
+	 */
+	private String realname;
+
+	/**
+	 * 用户名
+	 */
+	private String username;
+
+	/**
+	 * 身份证号
+	 */
+	private String idCardNumber;
+
+	/**
+	 * 结算渠道
+	 */
+	private SubjectLocation subjectLocation;
+
+	/**
+	 * 结算金额
+	 */
+	private BigDecimal settleAmount;
+
+	/**
+	 * 实际结算金额
+	 */
+	private BigDecimal actualAmount;
+
+	/**
+	 * 积分包个数
+	 */
+	private Integer packageCount;
+
+	/**
+	 * 复核标记
+	 */
+	private Boolean reviewFlag;
+}

+ 9 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/mapper/WmScorePackageMapper.java

@@ -26,6 +26,7 @@ import com.qunzhixinxi.hnqz.admin.entity.WmScorePackage;
 import com.qunzhixinxi.hnqz.admin.entity.input.WmScorePackageApiOutput;
 import com.qunzhixinxi.hnqz.admin.entity.input.WmScorePackageSettleInput;
 import com.qunzhixinxi.hnqz.admin.entity.input.WmScorePackageSettleOutput;
+import com.qunzhixinxi.hnqz.admin.entity.vo.SettleFinancialReviewVO;
 import com.qunzhixinxi.hnqz.common.data.datascope.DataScope;
 import com.qunzhixinxi.hnqz.common.data.datascope.DataScopeMapper;
 import org.apache.ibatis.annotations.Mapper;
@@ -178,4 +179,12 @@ public interface WmScorePackageMapper extends DataScopeMapper<WmScorePackage> {
 	Page<WmScorePackage> listScorePackage(Page<WmScorePackage> page, @Param(Constants.WRAPPER) QueryWrapper<WmScorePackage> queryWrapper,
 										  @Param("acceptUser") String acceptUser, @Param("relationScoreId") String relationScoreId,
 										  @Param("toApproval") Boolean toApproval);
+
+	/**
+	 * 查询财务结算复核数据
+	 *
+	 * @param query 查询条件
+	 * @return 结果
+	 */
+	List<SettleFinancialReviewVO> listFinancialReview(@Param("query") SettleFinancialReviewVO query);
 }

+ 35 - 0
hnqz-upms/hnqz-upms-biz/src/main/resources/mapper/WmScorePackageMapper.xml

@@ -1723,4 +1723,39 @@
 			</if>
 		</where>
 	</select>
+
+	<!-- 查询财务结算复核数据 -->
+	<select id="listFinancialReview" resultType="com.qunzhixinxi.hnqz.admin.entity.vo.SettleFinancialReviewVO">
+		SELECT u.realname,
+			   u.id_card_number,
+			   u.username,
+			   u.dept_id,
+			   n.user_id,
+			   n.subject_location,
+			   sum(n.settle_amount) AS settle_amount,
+			   sum(n.actual_amount) AS actual_amount,
+			   count(p.id)          AS package_count
+		FROM wm_score_package_settle_note n
+		LEFT JOIN wm_score_package p ON n.package_id = p.id
+				 LEFT JOIN sys_user u ON u.user_id = n.user_id
+		WHERE (
+					p.send_package_dept_id = #{query.deptId} OR
+					p.mah_settle_dept_id = #{query.deptId} AND p.mah_settle_step = 'FINANCE')
+		  AND p.package_finish_status = 1
+		  AND p.typeid IN (4, 5)
+		  AND p.settle_flag = 1
+		<if test="query.subjectLocation != null">
+			AND n.subject_location = #{query.subjectLocation}
+		</if>
+		<if test="query.realname != null and query.realname != ''">
+			AND u.realname like CONCAT('%',#{query.realname},'%')
+		</if>
+		<if test="query.reviewFlag != null and query.reviewFlag == true">
+			AND n.review_status in ('PASSED', 'REJECTED')
+		</if>
+		<if test="query.reviewFlag == null or query.reviewFlag == false">
+			AND n.review_status is null
+		</if>
+		GROUP BY n.user_id
+	</select>
 </mapper>