| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151 |
- package com.dk.mdm.service.mac;
- import com.alibaba.fastjson.JSON;
- import com.alibaba.fastjson.JSONArray;
- import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
- import com.dk.common.infrastructure.annotaiton.Pagination;
- import com.dk.common.infrastructure.constant.Constant;
- import com.dk.common.model.pojo.PageList;
- import com.dk.common.response.ResponseResultUtil;
- import com.dk.common.response.ResponseResultVO;
- import com.dk.mdm.infrastructure.convert.mac.ReceiptConvert;
- import com.dk.mdm.mapper.mac.AccountObjectMapper;
- import com.dk.mdm.mapper.mac.ReceivableMapper;
- import com.dk.mdm.model.pojo.mac.AccountObject;
- import com.dk.mdm.model.pojo.mac.Receipt;
- import com.dk.mdm.mapper.mac.ReceiptMapper;
- import com.dk.common.service.BaseService;
- import com.dk.common.mapper.BaseMapper;
- import com.dk.mdm.model.pojo.mac.Receivable;
- import com.dk.mdm.model.query.mac.ReceiptQuery;
- import com.dk.mdm.model.response.mac.ReceiptResponse;
- import com.dk.mdm.model.vo.mac.ReceiptVO;
- import com.dk.mdm.service.common.CommonService;
- import org.springframework.stereotype.Service;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.transaction.annotation.Transactional;
- import java.util.List;
- import java.util.Map;
- import java.util.UUID;
- @Service
- @Transactional
- public class ReceiptService extends BaseService<Receipt> {
- @Override
- public String getPrimaryKey() {
- return "receipt_id";
- }
- @Override
- public BaseMapper<Receipt> getRepository() {
- return receiptMapper;
- }
- @Autowired
- private ReceiptMapper receiptMapper;
- @Autowired
- private ReceivableMapper receivableMapper; // 应收账款
- @Autowired
- private AccountObjectService accountObjectService;
- @Autowired
- private AccountObjectMapper accountObjectMapper;
- @Autowired
- private CommonService commonService;
- @Autowired
- private ReceiptConvert receiptConvert;
- /**
- * @desc : 条件查询
- * @author : 付斌
- * @date : 2023/1/9 10:40
- */
- @Pagination
- public ResponseResultVO<PageList<ReceiptResponse>> selectByCond(ReceiptQuery receiptQuery) {
- return super.mergeListWithCount(receiptQuery, receiptMapper.selectByCond(receiptQuery),
- receiptMapper.countByCond(receiptQuery));
- }
- /**
- * @desc : 新建方法
- * @author : 付斌
- * @date : 2023/1/9 10:49
- */
- @Transactional(
- rollbackFor = {Exception.class}
- )
- public ResponseResultVO<?> insert(Map<String, Object> map) {
- List<ReceiptVO> receiptVOList = JSONArray.parseArray(JSON.toJSONString(map.get("itemList"))).toJavaList(ReceiptVO.class);
- // 明细保存
- if (receiptVOList != null && receiptVOList.size() > 0) {
- for (ReceiptVO receiptVO : receiptVOList) {
- // 获取单号
- Map<String, Object> codeMap = commonService.getUniqueNoteCode(Constant.docNameConstant.CUSRECEIPT.getName(), false);
- receiptVO.setReceiptId(codeMap.get("outId").toString()).setReceiptNo(codeMap.get("outNote").toString())
- .setReceiptType(Constant.DocumentType.ORDER.getName());
- // 转化实体
- Receipt receipt = receiptConvert.convertToPo(receiptVO);
- // Receipt保存
- super.insert(receipt);
- // 插入应收账款
- Receivable receivable = new Receivable();
- // 获取单号
- codeMap = commonService.getUniqueNoteCode(Constant.docNameConstant.RECEIVABLE.getName(), false);
- receivable.setRecId(codeMap.get("outId").toString()).setRecNo(codeMap.get("outNote").toString())
- .setRecType(Constant.recType.SHOU_KUAN.getName()).setAccType(1).setRecDirection(false)
- .setObjectId(receiptVO.getCusId()).setOrgId(receiptVO.getOrgId()).setStaffId(receipt.getStaffId())
- .setAccDate(receiptVO.getReceiptDate()).setRecStatus(Constant.recStatuse.QUE_DING.getName())
- .setAmtReceivable(receiptVO.getReceiptAmt().negate()).setAmtResidue(receiptVO.getReceiptAmt().negate())
- .setBiznisType("t_mac_receipt").setBiznisId(receiptVO.getReceiptId()).setBiznisNo(receiptVO.getReceiptNo())
- .setMakeStaff(receiptVO.getMakeStaff());
- receivableMapper.insert(receivable);
- // 更新收款单上的应收账款
- Receipt receiptUpdate = new Receipt();
- receiptUpdate.setReceivableId(receivable.getRecId()).setReceiptId(receiptVO.getReceiptId());
- super.updateByUuid(receiptUpdate);
- // 插入账款总表
- AccountObject accountObjectForUpdate = accountObjectMapper.selectByIdForUpdate(receiptVO.getCusId());
- // 没有账款对象,需要新建
- if(accountObjectForUpdate == null){
- accountObjectForUpdate = new AccountObject();
- accountObjectForUpdate.setObjectId(receiptVO.getCusId()).setObjectType("对象类型-客户");
- accountObjectMapper.insert(accountObjectForUpdate);
- }
- // 更新账款总表上收款的相关字段
- AccountObject accountObjectUpdate = new AccountObject();
- accountObjectUpdate.setSumPayment(accountObjectForUpdate.getSumPayment().add(receiptVO.getReceiptAmt()))// 总收付
- .setSumMoney(accountObjectForUpdate.getSumMoney().add(receiptVO.getReceiptAmt()))// 总资金
- .setAmtRefundable(accountObjectForUpdate.getAmtRefundable().add(receiptVO.getReceiptAmt())) // 可退金额
- .setObjectId(accountObjectForUpdate.getObjectId());
- accountObjectService.updateByUuid(accountObjectUpdate);
- }
- }
- return ResponseResultUtil.success();
- }
- /**
- * @desc : 编辑方法
- * @author : 付斌
- * @date : 2023/1/9 10:49
- */
- @Transactional(
- rollbackFor = {Exception.class}
- )
- public ResponseResultVO<?> update(ReceiptVO receiptVO) {
- Receipt receipt = receiptConvert.convertToPo(receiptVO);
- return ResponseResultUtil.success(super.update(receipt, new UpdateWrapper<Receipt>().lambda().eq(Receipt::getReceiptId,
- UUID.fromString(receipt.getReceiptId()))));
- }
- }
|