|
|
@@ -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);
|
|
|
+ }
|
|
|
+
|
|
|
}
|