changhaoning 1 anno fa
parent
commit
57095a750a

+ 37 - 4
src/main/java/com/dk/mdm/controller/mst/CpTradeController.java

@@ -6,15 +6,16 @@ import com.dk.mdm.model.pojo.mst.CpTrade;
 import com.dk.common.service.BaseService;
 import com.dk.mdm.model.query.mst.CpTradeQuery;
 import com.dk.mdm.model.response.mst.CpTradeResponse;
+import com.dk.mdm.model.vo.mst.ReceiptVO;
 import io.swagger.annotations.ApiOperation;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.*;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.RestController;
 import io.swagger.annotations.Api;
 import com.dk.mdm.service.mst.CpTradeService;
 
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
 @Api(tags = "交易记录API接口")
 @RestController
 @RequestMapping("/mst/cpTrade")
@@ -49,4 +50,36 @@ public class CpTradeController{
         return cpTradeService.selectReceipt(cpTradeQuery);
     }
 
+    /**
+     * @desc   : 开发票
+     * @author : 常皓宁
+     * @date   : 2024/8/2 8:44
+     */
+    @ApiOperation( value = "开发票", notes = "开发票" )
+    @PostMapping({"invoicing"})
+    public ResponseResultVO<?> invoicing(@RequestBody List<CpTradeQuery> cpTradeQuery) {
+        return cpTradeService.invoicing(cpTradeQuery);
+    }
+
+    /**
+     * @desc   : 取消开发票
+     * @author : 常皓宁
+     * @date   : 2024/8/2 8:44
+     */
+    @ApiOperation( value = "取消开发票", notes = "取消开发票" )
+    @PostMapping({"unInvoicing"})
+    public ResponseResultVO<?> unInvoicing(@RequestBody List<CpTradeQuery> cpTradeQuery) {
+        return cpTradeService.unInvoicing(cpTradeQuery);
+    }
+
+    /**
+     * @desc   : 导出数据
+     * @author : 常皓宁
+     * @date   : 2024/6/5 9:48
+     */
+    @GetMapping("export_list")
+    public void exportList(HttpServletResponse response,CpTradeQuery cpTradeQuery){
+        cpTradeService.exportList(response,cpTradeQuery);
+    }
+
 }

+ 9 - 2
src/main/java/com/dk/mdm/mapper/mst/CpTradeMapper.java

@@ -44,10 +44,17 @@ public interface CpTradeMapper extends BaseMapper<CpTrade>{
     Long countByReceipt(CpTradeQuery cpTradeQuery);
 
     /**
-     * @desc   : 修改发票状态
+     * @desc   : 修改发票状态(废弃)
      * @author : 常皓宁
      * @date   : 2024/8/2 14:14
      */
-	Integer updateReciptStatus(Integer CpTradeId);
+    int updateReciptStatus(Integer CpTradeId);
+
+    /**
+     * @desc   : 修改交易记录的发票状态
+     * @author : 常皓宁
+     * @date   : 2024/8/13 14:55
+     */
+    int updateCpReciptStatus(CpTradeQuery cpTradeQuery);
 }
 

+ 12 - 0
src/main/java/com/dk/mdm/mapper/mst/CpTradeMapper.xml

@@ -362,4 +362,16 @@
         receipt_date = now()
     WHERE  trade_id =#{CpTradeId}
 </update>
+
+    <!-- 修改发票状态-->
+    <update id="updateCpReciptStatus" parameterType="com.dk.mdm.model.query.mst.CpTradeQuery">
+        UPDATE dkic_a.t_cp_trade
+        <set>
+            <if test="receiptStatus!= null">
+                receipt_status= #{receiptStatus},
+            </if>
+                receipt_date = #{receiptDate},
+        </set>
+        WHERE  trade_id =#{tradeId}
+    </update>
 </mapper>

+ 8 - 0
src/main/java/com/dk/mdm/mapper/mst/ReceiptMapper.java

@@ -2,6 +2,7 @@ package com.dk.mdm.mapper.mst;
 
 import com.dk.mdm.model.pojo.mst.Receipt;
 import com.dk.common.mapper.BaseMapper;
+import com.dk.mdm.model.query.mst.CpTradeQuery;
 import com.dk.mdm.model.query.mst.ReceiptQuery;
 import com.dk.mdm.model.response.mst.ReceiptResponse;
 import org.springframework.stereotype.Repository;
@@ -28,5 +29,12 @@ public interface ReceiptMapper extends BaseMapper<Receipt>{
      */
     Long countByCond(ReceiptQuery receiptQuery);
 
+    /**
+     * @desc   : 修改交易记录的发票状态
+     * @author : 常皓宁
+     * @date   : 2024/8/13 14:55
+     */
+    int updateReciptStatus(ReceiptQuery receiptQuery);
+
 }
 

+ 14 - 0
src/main/java/com/dk/mdm/mapper/mst/ReceiptMapper.xml

@@ -392,4 +392,18 @@
             )
         </foreach>
     </insert>
+
+
+
+    <!-- 修改发票状态-->
+    <update id="updateReciptStatus" parameterType="com.dk.mdm.model.query.mst.ReceiptQuery">
+        UPDATE dkic_a.t_mst_receipt
+        <set>
+            <if test="receiptStatus!= null">
+                receipt_status= #{receiptStatus},
+            </if>
+            receipt_date = #{receiptDate},
+        </set>
+        WHERE  receipt_id =#{receiptId}::uuid
+    </update>
 </mapper>

+ 0 - 9
src/main/java/com/dk/mdm/model/pojo/mst/CpTrade.java

@@ -59,7 +59,6 @@ public class CpTrade extends PageInfo<CpTrade> implements Serializable {
      * 缴费企业
      */
     @TableField(fill = FieldFill.INSERT)
-    @Excel(name = "缴费企业")
     @ApiModelProperty(value = "缴费企业")
     private Integer cpId;
 
@@ -67,7 +66,6 @@ public class CpTrade extends PageInfo<CpTrade> implements Serializable {
     /**
      * 微信用户 (null:代缴费)
      */
-    @Excel(name = "微信用户 (null:代缴费)")
     @ApiModelProperty(value = "微信用户 (null:代缴费)")
     @TableField(typeHandler = UuidTypeHandler.class)
     private String wxUserId;
@@ -110,7 +108,6 @@ public class CpTrade extends PageInfo<CpTrade> implements Serializable {
     /**
      * 开始日期
      */
-    @Excel(name = "开始日期")
     @ApiModelProperty(value = "开始日期")
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     @TableField(typeHandler = TimestampTypeHandler.class)
@@ -120,7 +117,6 @@ public class CpTrade extends PageInfo<CpTrade> implements Serializable {
     /**
      * 结束日期
      */
-    @Excel(name = "结束日期")
     @ApiModelProperty(value = "结束日期")
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     @TableField(typeHandler = TimestampTypeHandler.class)
@@ -130,7 +126,6 @@ public class CpTrade extends PageInfo<CpTrade> implements Serializable {
     /**
      * 购买功能
      */
-    @Excel(name = "购买功能")
     @ApiModelProperty(value = "购买功能")
     @TableField(typeHandler = UuidListTypeHandler.class)
     private String buyFunId;
@@ -155,7 +150,6 @@ public class CpTrade extends PageInfo<CpTrade> implements Serializable {
     /**
      * 延长日期 (单位天:按月购买时可以是28、30、31,按年时可以是365、366等)
      */
-    @Excel(name = "延长日期 (单位天:按月购买时可以是28、30、31,按年时可以是365、366等)")
     @ApiModelProperty(value = "延长日期 (单位天:按月购买时可以是28、30、31,按年时可以是365、366等)")
     private Integer extendDays;
 
@@ -163,7 +157,6 @@ public class CpTrade extends PageInfo<CpTrade> implements Serializable {
     /**
      * 东科用户 (null:自缴费)
      */
-    @Excel(name = "东科用户 (null:自缴费)")
     @ApiModelProperty(value = "东科用户 (null:自缴费)")
     @TableField(typeHandler = UuidTypeHandler.class)
     private String dkUserId;
@@ -180,7 +173,6 @@ public class CpTrade extends PageInfo<CpTrade> implements Serializable {
     /**
      * 活动ID
      */
-    @Excel(name = "活动ID")
     @ApiModelProperty(value = "活动ID")
     @TableField(typeHandler = UuidTypeHandler.class)
     private String activityId;
@@ -188,7 +180,6 @@ public class CpTrade extends PageInfo<CpTrade> implements Serializable {
     /**
      * 活动明细ID
      */
-    @Excel(name = "活动明细ID")
     @ApiModelProperty(value = "活动明细ID")
     @TableField(typeHandler = UuidTypeHandler.class)
     private String activityItemId;

+ 4 - 13
src/main/java/com/dk/mdm/model/query/mst/CpTradeQuery.java

@@ -58,7 +58,6 @@ public class CpTradeQuery extends PageInfo<CpTradeQuery> implements Serializable
      * 缴费企业
      */
     @TableField(fill = FieldFill.INSERT)
-    @Excel(name = "缴费企业")
     @ApiModelProperty(value = "缴费企业")
     private Integer cpId;
 
@@ -66,7 +65,6 @@ public class CpTradeQuery extends PageInfo<CpTradeQuery> implements Serializable
     /**
      * 微信用户 (null:代缴费)
      */
-    @Excel(name = "微信用户 (null:代缴费)")
     @ApiModelProperty(value = "微信用户 (null:代缴费)")
     @TableField(typeHandler = UuidTypeHandler.class)
     private String wxUserId;
@@ -109,27 +107,24 @@ public class CpTradeQuery extends PageInfo<CpTradeQuery> implements Serializable
     /**
      * 开始日期
      */
-    @Excel(name = "开始日期")
     @ApiModelProperty(value = "开始日期")
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
     @TableField(typeHandler = TimestampTypeHandler.class)
-    private LocalDateTime buyBeginDate;
+    private LocalDate buyBeginDate;
 
 
     /**
      * 结束日期
      */
-    @Excel(name = "结束日期")
     @ApiModelProperty(value = "结束日期")
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
     @TableField(typeHandler = TimestampTypeHandler.class)
-    private LocalDateTime buyEndDate;
+    private LocalDate buyEndDate;
 
 
     /**
      * 购买功能
      */
-    @Excel(name = "购买功能")
     @ApiModelProperty(value = "购买功能")
     @TableField(typeHandler = UuidListTypeHandler.class)
     private String buyFunId;
@@ -154,7 +149,6 @@ public class CpTradeQuery extends PageInfo<CpTradeQuery> implements Serializable
     /**
      * 延长日期 (单位天:按月购买时可以是28、30、31,按年时可以是365、366等)
      */
-    @Excel(name = "延长日期 (单位天:按月购买时可以是28、30、31,按年时可以是365、366等)")
     @ApiModelProperty(value = "延长日期 (单位天:按月购买时可以是28、30、31,按年时可以是365、366等)")
     private Integer extendDays;
 
@@ -162,7 +156,6 @@ public class CpTradeQuery extends PageInfo<CpTradeQuery> implements Serializable
     /**
      * 东科用户 (null:自缴费)
      */
-    @Excel(name = "东科用户 (null:自缴费)")
     @ApiModelProperty(value = "东科用户 (null:自缴费)")
     @TableField(typeHandler = UuidTypeHandler.class)
     private String dkUserId;
@@ -180,7 +173,6 @@ public class CpTradeQuery extends PageInfo<CpTradeQuery> implements Serializable
     /**
      * 活动ID
      */
-    @Excel(name = "活动ID")
     @ApiModelProperty(value = "活动ID")
     @TableField(typeHandler = UuidTypeHandler.class)
     private String activityId;
@@ -188,7 +180,6 @@ public class CpTradeQuery extends PageInfo<CpTradeQuery> implements Serializable
     /**
      * 活动明细ID
      */
-    @Excel(name = "活动明细ID")
     @ApiModelProperty(value = "活动明细ID")
     @TableField(typeHandler = UuidTypeHandler.class)
     private String activityItemId;

+ 0 - 10
src/main/java/com/dk/mdm/model/response/mst/CpTradeResponse.java

@@ -58,7 +58,6 @@ public class CpTradeResponse extends PageInfo<CpTradeResponse> implements Serial
      * 缴费企业
      */
     @TableField(fill = FieldFill.INSERT)
-    @Excel(name = "缴费企业")
     @ApiModelProperty(value = "缴费企业")
     private Integer cpId;
 
@@ -66,7 +65,6 @@ public class CpTradeResponse extends PageInfo<CpTradeResponse> implements Serial
     /**
      * 微信用户 (null:代缴费)
      */
-    @Excel(name = "微信用户 (null:代缴费)")
     @ApiModelProperty(value = "微信用户 (null:代缴费)")
     @TableField(typeHandler = UuidTypeHandler.class)
     private String wxUserId;
@@ -101,7 +99,6 @@ public class CpTradeResponse extends PageInfo<CpTradeResponse> implements Serial
     /**
      * 购买时长 (1天、1月、1年。。)
      */
-    @Excel(name = "购买时长 (1天、1月、1年。。)")
     @ApiModelProperty(value = "购买时长 (1天、1月、1年。。)")
     private String buyLong;
 
@@ -109,7 +106,6 @@ public class CpTradeResponse extends PageInfo<CpTradeResponse> implements Serial
     /**
      * 开始日期
      */
-    @Excel(name = "开始日期")
     @ApiModelProperty(value = "开始日期")
     @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
     @TableField(typeHandler = TimestampTypeHandler.class)
@@ -119,7 +115,6 @@ public class CpTradeResponse extends PageInfo<CpTradeResponse> implements Serial
     /**
      * 结束日期
      */
-    @Excel(name = "结束日期")
     @ApiModelProperty(value = "结束日期")
     @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
     @TableField(typeHandler = TimestampTypeHandler.class)
@@ -129,7 +124,6 @@ public class CpTradeResponse extends PageInfo<CpTradeResponse> implements Serial
     /**
      * 购买功能
      */
-    @Excel(name = "购买功能")
     @ApiModelProperty(value = "购买功能")
     @TableField(typeHandler = UuidListTypeHandler.class)
     private String buyFunId;
@@ -154,7 +148,6 @@ public class CpTradeResponse extends PageInfo<CpTradeResponse> implements Serial
     /**
      * 延长日期 (单位天:按月购买时可以是28、30、31,按年时可以是365、366等)
      */
-    @Excel(name = "延长日期 (单位天:按月购买时可以是28、30、31,按年时可以是365、366等)")
     @ApiModelProperty(value = "延长日期 (单位天:按月购买时可以是28、30、31,按年时可以是365、366等)")
     private Integer extendDays;
 
@@ -162,7 +155,6 @@ public class CpTradeResponse extends PageInfo<CpTradeResponse> implements Serial
     /**
      * 东科用户 (null:自缴费)
      */
-    @Excel(name = "东科用户 (null:自缴费)")
     @ApiModelProperty(value = "东科用户 (null:自缴费)")
     @TableField(typeHandler = UuidTypeHandler.class)
     private String dkUserId;
@@ -187,7 +179,6 @@ public class CpTradeResponse extends PageInfo<CpTradeResponse> implements Serial
     /**
      * 活动ID
      */
-    @Excel(name = "活动ID")
     @ApiModelProperty(value = "活动ID")
     @TableField(typeHandler = UuidTypeHandler.class)
     private String activityId;
@@ -195,7 +186,6 @@ public class CpTradeResponse extends PageInfo<CpTradeResponse> implements Serial
     /**
      * 活动明细ID
      */
-    @Excel(name = "活动明细ID")
     @ApiModelProperty(value = "活动明细ID")
     @TableField(typeHandler = UuidTypeHandler.class)
     private String activityItemId;

+ 95 - 0
src/main/java/com/dk/mdm/service/mst/CpTradeService.java

@@ -2,17 +2,32 @@ package com.dk.mdm.service.mst;
 
 import com.dk.common.infrastructure.annotaiton.Pagination;
 import com.dk.common.model.pojo.PageList;
+import com.dk.common.response.ResponseResultUtil;
 import com.dk.common.response.ResponseResultVO;
+import com.dk.common.util.DateUtils;
+import com.dk.common.util.ExcelUtils;
+import com.dk.mdm.mapper.mst.ReceiptItemMapper;
+import com.dk.mdm.mapper.mst.ReceiptMapper;
 import com.dk.mdm.model.pojo.mst.CpTrade;
 import com.dk.mdm.mapper.mst.CpTradeMapper;
 import com.dk.common.service.BaseService;
 import com.dk.common.mapper.BaseMapper;
+import com.dk.mdm.model.pojo.mst.Receipt;
 import com.dk.mdm.model.query.mst.CpTradeQuery;
+import com.dk.mdm.model.query.mst.ReceiptItemQuery;
+import com.dk.mdm.model.query.mst.ReceiptQuery;
 import com.dk.mdm.model.response.mst.CpTradeResponse;
+import com.dk.mdm.model.response.mst.ReceiptItemResponse;
+import com.dk.mdm.model.vo.mst.ReceiptVO;
 import org.springframework.stereotype.Service;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.transaction.annotation.Transactional;
 
+import javax.servlet.http.HttpServletResponse;
+import java.time.LocalDate;
+import java.util.Date;
+import java.util.List;
+
 @Service
 @Transactional
 public class CpTradeService extends BaseService<CpTrade> {
@@ -25,6 +40,12 @@ public class CpTradeService extends BaseService<CpTrade> {
 	@Autowired
 	private CpTradeMapper cpTradeMapper;
 
+	@Autowired
+	private ReceiptItemMapper receiptItemMapper;
+
+	@Autowired
+	private ReceiptMapper receiptMapper;
+
 	/**
 	 * @desc : 查询
 	 * @author : 常皓宁
@@ -47,4 +68,78 @@ public class CpTradeService extends BaseService<CpTrade> {
 				cpTradeMapper.countByReceipt(cpTradeQuery));
 	}
 
+
+	/**
+	 * @desc   : 开发票
+	 * @author : 常皓宁
+	 * @date   : 2024/8/2 8:44
+	 */
+	@Transactional(
+			rollbackFor = {Exception.class}
+	)
+	public ResponseResultVO<?> invoicing(List<CpTradeQuery> cpTradeQuery) {
+		//交易记录list
+		for (CpTradeQuery cpTradeQuery1 : cpTradeQuery) {
+			//修改交易记录的状态和时间
+			cpTradeMapper.updateCpReciptStatus(new CpTradeQuery()
+					.setTradeId(cpTradeQuery1.getTradeId())
+					.setReceiptStatus("开票状态-已开票")
+					.setReceiptDate(LocalDate.now()));
+			//查询发票明细
+			List<ReceiptItemResponse> receiptItemResponse =
+					receiptItemMapper.selectByCond(new ReceiptItemQuery().setTradeId(Math.toIntExact(cpTradeQuery1.getTradeId())));
+			//根据发票明细查询发票总单
+			if (receiptItemResponse != null && receiptItemResponse.size() > 0) {
+				receiptMapper.updateReciptStatus(new ReceiptQuery()
+						.setReceiptId(receiptItemResponse.get(0).getReceiptId())
+						.setReceiptStatus("发票状态-开具")
+						.setReceiptDate(LocalDate.now()));
+			}
+		}
+		return ResponseResultUtil.success(cpTradeQuery);
+	}
+
+	/**
+	 * @desc   : 取消开发票
+	 * @author : 常皓宁
+	 * @date   : 2024/8/2 8:44
+	 */
+	@Transactional(
+			rollbackFor = {Exception.class}
+	)
+	public ResponseResultVO<?> unInvoicing(List<CpTradeQuery> cpTradeQuery) {
+		//交易记录list
+		for (CpTradeQuery cpTradeQuery1 : cpTradeQuery) {
+			//修改交易记录的状态和时间
+			cpTradeMapper.updateCpReciptStatus(new CpTradeQuery()
+					.setTradeId(cpTradeQuery1.getTradeId())
+					.setReceiptStatus("开票状态-开票中")
+					.setReceiptDate(null));
+			//查询发票明细
+			List<ReceiptItemResponse> receiptItemResponse =
+					receiptItemMapper.selectByCond(new ReceiptItemQuery().setTradeId(Math.toIntExact(cpTradeQuery1.getTradeId())));
+			//根据发票明细查询发票总单
+			if (receiptItemResponse != null && receiptItemResponse.size() > 0) {
+				receiptMapper.updateReciptStatus(new ReceiptQuery()
+						.setReceiptId(receiptItemResponse.get(0).getReceiptId())
+						.setReceiptStatus("发票状态-申请")
+						.setReceiptDate(null));
+			}
+		}
+		return ResponseResultUtil.success(cpTradeQuery);
+	}
+
+
+
+	/**
+	 * @desc   : 导出数据
+	 * @author : 常皓宁
+	 * @date   : 2024/6/5 9:48
+	 */
+	public void exportList(HttpServletResponse response,CpTradeQuery cpTradeQuery) {
+		String title = "发票管理";
+		ExcelUtils.exportExcel(cpTradeMapper.selectReceipt(cpTradeQuery),
+				title, title, CpTradeResponse.class, title + "_" + DateUtils.formatDate(new Date(), "yyyy-MM-dd-HH-mm-ss") + ".xls", response);
+	}
+
 }