Browse Source

Merge branch 'feat-20231122-invoiceupload'

# Conflicts:
#	hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/entity/WmScorePackage.java
lixuesong 1 year ago
parent
commit
811ffdc9d5

+ 5 - 0
db/v2.0/20231112.sql

@@ -0,0 +1,5 @@
+alter table wm_score_package
+    add invoice_number varchar(64) null comment '发票号码';
+
+alter table wm_score_package
+    add invoice_file varchar(255) null comment '发票文件';

+ 5 - 0
db/v2.0/20231122.sql

@@ -0,0 +1,5 @@
+alter table wm_score_package
+    add invoice_number varchar(64) null comment '发票号码';
+
+alter table wm_score_package
+    add invoice_file json null comment '发票文件';

+ 27 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/WmScorePackageController.java

@@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.date.DatePattern;
 import cn.hutool.core.lang.Validator;
+import cn.hutool.core.util.ArrayUtil;
 import cn.hutool.core.util.IdUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.json.JSONObject;
@@ -26,6 +27,7 @@ import com.qunzhixinxi.hnqz.admin.api.enums.TargetType;
 import com.qunzhixinxi.hnqz.admin.api.vo.WmScorePackageVO;
 import com.qunzhixinxi.hnqz.admin.entity.*;
 import com.qunzhixinxi.hnqz.admin.entity.dto.UnpackDTO;
+import com.qunzhixinxi.hnqz.admin.entity.input.WmScorePackageSettleOutput;
 import com.qunzhixinxi.hnqz.admin.entity.model.excel.BatchPackageExcelModel;
 import com.qunzhixinxi.hnqz.admin.enums.DelEnum;
 import com.qunzhixinxi.hnqz.admin.enums.EnableEnum;
@@ -3305,4 +3307,29 @@ public class WmScorePackageController {
 		return R.ok(unpack);
 	}
 
+
+	/**
+	 * 积分包结算管理-发票上传
+	 *
+	 * @param param 发票参数
+	 * @return {@link R}<{@link ?}> 结果
+	 */
+	@SysLog("积分包结算管理-发票上传")
+	@PostMapping("/upload-invoice")
+	public R<?> uploadInvoice(@RequestBody WmScorePackageSettleOutput param) {
+		log.info("积分包结算管理-发票上传参数:{}", param);
+		if (StrUtil.isBlank(param.getId()) || StrUtil.isBlank(param.getInvoiceNumber()) || ArrayUtil.isEmpty(param.getInvoiceFile())) {
+			return R.failed("必填参数为空");
+		}
+
+		WmScorePackage update = new WmScorePackage();
+		update.setId(param.getId());
+		update.setInvoiceNumber(param.getInvoiceNumber());
+		update.setInvoiceFile(param.getInvoiceFile());
+		update.setUpdateTime(LocalDateTime.now());
+		update.setUpdateUser(SecurityUtils.getUser().getId());
+
+		return R.ok(wmScorePackageService.updateById(update));
+	}
+
 }

+ 27 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/entity/WmScorePackage.java

@@ -15,6 +15,7 @@ import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.Getter;
 
+import java.io.Serializable;
 import java.math.BigDecimal;
 import java.time.LocalDateTime;
 import java.util.List;
@@ -506,6 +507,17 @@ public class WmScorePackage extends Model<WmScorePackage> {
 	 */
 	private BigDecimal auditManagementFeeRates;
 
+	/**
+	 * 发票号码
+	 */
+	private String invoiceNumber;
+
+	/**
+	 * 发票文件
+	 */
+	@TableField(typeHandler = FastjsonTypeHandler.class)
+	private List<FileUrlObj> invoiceFile;
+
 	/**
 	 * 获取积分包的关联试卷
 	 */
@@ -537,4 +549,19 @@ public class WmScorePackage extends Model<WmScorePackage> {
 		private final String msg;
 	}
 
+	/**
+	 * 文件 URL obj
+	 *
+	 * @author lixuesong
+	 * @date 2023/09/27
+	 */
+	@Data
+	public static class FileUrlObj implements Serializable {
+		private static final long serialVersionUID = 7914265352319844404L;
+
+		private String fileName;
+
+		private String url;
+	}
+
 }

+ 5 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/entity/input/WmScorePackageSettleInput.java

@@ -108,4 +108,9 @@ public class WmScorePackageSettleInput implements Serializable {
 	 */
 	private String settleStatus;
 
+	/**
+	 * 发票号码
+	 */
+	private String invoiceNumber;
+
 }

+ 13 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/entity/input/WmScorePackageSettleOutput.java

@@ -1,10 +1,13 @@
 package com.qunzhixinxi.hnqz.admin.entity.input;
 
+import com.qunzhixinxi.hnqz.admin.entity.WmScorePackage;
 import com.qunzhixinxi.hnqz.admin.enums.SubjectLocation;
 import lombok.Data;
 
 import java.math.BigDecimal;
 import java.time.LocalDateTime;
+import java.util.List;
+import java.util.Map;
 
 /**
  * 结算页面输出
@@ -84,4 +87,14 @@ public class WmScorePackageSettleOutput {
 	 */
 	private LocalDateTime subToGigTime;
 
+	/**
+	 * 发票号码
+	 */
+	private String invoiceNumber;
+
+	/**
+	 * 发票文件
+	 */
+	private List<WmScorePackage.FileUrlObj> invoiceFile;
+
 }

+ 32 - 3
hnqz-upms/hnqz-upms-biz/src/main/resources/mapper/WmScorePackageMapper.xml

@@ -95,6 +95,30 @@
 		<result property="omsOrderSn" column="oms_order_sn"/>
 		<result property="packageSn" column="pkg_sn"/>
 		<result property="drugtable" column="drugtable"/>
+		<result property="invoiceNumber" column="invoice_number"/>
+		<result property="invoiceFile" column="invoice_file" typeHandler="com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler"/>
+	</resultMap>
+	
+	<resultMap id="packageSettleMap" type="com.qunzhixinxi.hnqz.admin.entity.input.WmScorePackageSettleOutput">
+		<id property="id" column="id"/>
+		<result property="scorePackageName" column="score_package_name"/>
+		<result property="packageEntName" column="name"/>
+		<result property="createTime" column="create_time"/>
+		<result property="score" column="score"/>
+		<result property="packageFinishStatus" column="package_finish_status"/>
+		<result property="settleStatus" column="settle_status"/>
+		<result property="invoiceCategory" column="invoice_category"/>
+		<result property="sendPackageDeptId" column="send_package_dept_id"/>
+		<result property="settleAmount" column="settle_amount"/>
+		<result property="belongDate" column="belong_date"/>
+		<result property="packageType1" column="package_type1"/>
+		<result property="description" column="description"/>
+		<result property="packageType2" column="package_type2"/>
+		<result property="enableType" column="enable_type"/>
+		<result property="subType" column="sub_type"/>
+		<result property="omsOrderSn" column="oms_order_sn"/>
+		<result property="invoiceNumber" column="invoice_number"/>
+		<result property="invoiceFile" column="invoice_file" typeHandler="com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler"/>
 	</resultMap>
 
 	<select id="listWmScorePackageAndTask" resultMap="wmScorePackageMap">
@@ -1454,10 +1478,10 @@
 	</select>-->
 
 	<!-- 积分包结算(分页) -->
-	<select id="listPackageSettleList" resultType="com.qunzhixinxi.hnqz.admin.entity.input.WmScorePackageSettleOutput">
+	<select id="listPackageSettleList" resultMap="packageSettleMap">
 		SELECT distinct
 		    p.id,
-			d.name packageEntName,
+			d.name,
 			p.score_package_name,
 			p.create_time,
 			p.package_status,
@@ -1470,7 +1494,9 @@
 			p.package_type2,
 			p.sub_type,
 			p.source_type,
-			p.oms_order_sn
+			p.oms_order_sn,
+			p.invoice_number,
+			p.invoice_file
 		FROM wm_score_package p left join sys_dept d on p.send_package_dept_id = d.dept_id
 		<if test="query.userNames != null">
 			left join wm_score_package_status ps on p.id = ps.package_id
@@ -1525,6 +1551,9 @@
 			<if test="query.userNames != null and query.userNames != ''">
 				AND su.realname like CONCAT('%',#{query.userNames},'%')
 			</if>
+			<if  test="query.invoiceNumber != null and query.invoiceNumber != ''">
+				AND p.invoice_number like CONCAT('%',#{query.invoiceNumber},'%')
+			</if>
 		</where>
 		ORDER BY
 		<if test="query.mahSettleStep != null">