|
@@ -33,8 +33,12 @@ import com.dk.mdm.model.pojo.sale.Order;
|
|
|
import com.dk.common.service.BaseService;
|
|
import com.dk.common.service.BaseService;
|
|
|
import com.dk.common.mapper.BaseMapper;
|
|
import com.dk.common.mapper.BaseMapper;
|
|
|
import com.dk.mdm.model.pojo.sale.OrderItem;
|
|
import com.dk.mdm.model.pojo.sale.OrderItem;
|
|
|
|
|
+import com.dk.mdm.model.query.mac.RecPayItemQuery;
|
|
|
|
|
+import com.dk.mdm.model.query.mac.RecPayQuery;
|
|
|
import com.dk.mdm.model.query.sale.OrderItemQuery;
|
|
import com.dk.mdm.model.query.sale.OrderItemQuery;
|
|
|
import com.dk.mdm.model.query.sale.OrderQuery;
|
|
import com.dk.mdm.model.query.sale.OrderQuery;
|
|
|
|
|
+import com.dk.mdm.model.response.mac.RecPayItemResponse;
|
|
|
|
|
+import com.dk.mdm.model.response.mac.RecPayResponse;
|
|
|
import com.dk.mdm.model.response.sale.OrderItemResponse;
|
|
import com.dk.mdm.model.response.sale.OrderItemResponse;
|
|
|
import com.dk.mdm.model.response.sale.OrderResponse;
|
|
import com.dk.mdm.model.response.sale.OrderResponse;
|
|
|
import com.dk.mdm.model.vo.mac.RecPayItemVO;
|
|
import com.dk.mdm.model.vo.mac.RecPayItemVO;
|
|
@@ -43,6 +47,7 @@ import com.dk.mdm.model.vo.sale.OrderVO;
|
|
|
import com.dk.mdm.service.common.CommonService;
|
|
import com.dk.mdm.service.common.CommonService;
|
|
|
import com.dk.mdm.service.mac.AccountService;
|
|
import com.dk.mdm.service.mac.AccountService;
|
|
|
import com.dk.mdm.service.mac.RecPayItemService;
|
|
import com.dk.mdm.service.mac.RecPayItemService;
|
|
|
|
|
+import com.dk.mdm.service.mac.ReceiptService;
|
|
|
import com.dk.mdm.service.mst.MoneyAccountService;
|
|
import com.dk.mdm.service.mst.MoneyAccountService;
|
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
@@ -89,6 +94,9 @@ public class OrderService extends BaseService<Order> {
|
|
|
private RecPayItemService recPayItemService;
|
|
private RecPayItemService recPayItemService;
|
|
|
|
|
|
|
|
@Autowired
|
|
@Autowired
|
|
|
|
|
+ ReceiptService receiptService;
|
|
|
|
|
+
|
|
|
|
|
+ @Autowired
|
|
|
private RecPayMapper recPayMapper;
|
|
private RecPayMapper recPayMapper;
|
|
|
|
|
|
|
|
@Autowired
|
|
@Autowired
|
|
@@ -152,9 +160,14 @@ public class OrderService extends BaseService<Order> {
|
|
|
List<OrderItemResponse> orderItem = orderItemMapper.selectByCond(new OrderItemQuery().setOrderId(id));
|
|
List<OrderItemResponse> orderItem = orderItemMapper.selectByCond(new OrderItemQuery().setOrderId(id));
|
|
|
result.put("orderItem", orderItem);
|
|
result.put("orderItem", orderItem);
|
|
|
|
|
|
|
|
- // 收款
|
|
|
|
|
-
|
|
|
|
|
- // 附件
|
|
|
|
|
|
|
+ // 收款明细
|
|
|
|
|
+ List<RecPayResponse> recPayList = recPayMapper.selectByCond(new RecPayQuery().setBiznisId(id));
|
|
|
|
|
+ if(recPayList != null && recPayList.size() > 0){
|
|
|
|
|
+ List<RecPayItemResponse> receiptItem = recPayItemMapper.selectByCond(new RecPayItemQuery().setRpId(recPayList.get(0).getRpId()));
|
|
|
|
|
+ result.put("receiptItem", receiptItem);
|
|
|
|
|
+ }else{
|
|
|
|
|
+ result.put("receiptItem", new ArrayList<RecPayResponse>());
|
|
|
|
|
+ }
|
|
|
return ResponseResultUtil.success(result);
|
|
return ResponseResultUtil.success(result);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -383,9 +396,108 @@ public class OrderService extends BaseService<Order> {
|
|
|
multiOwnerMapper.insert(multiOwner);
|
|
multiOwnerMapper.insert(multiOwner);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
+ // 更新总单
|
|
|
|
|
+ super.update(order, new UpdateWrapper<Order>().lambda().eq(Order::getOrderId,
|
|
|
|
|
+ UUID.fromString(order.getOrderId())));
|
|
|
|
|
+
|
|
|
|
|
+ /**************************************** 客户收款begin ********************************/
|
|
|
|
|
+ // 需要重新计算的资金账户
|
|
|
|
|
+ List<String> macList = new ArrayList<>();
|
|
|
|
|
+ // 收款明细
|
|
|
|
|
+ RecPay recPayForUpdate = recPayMapper.selectByBiznisIdIdForUpdate(orderVO.getOrderId());
|
|
|
|
|
+ if(recPayForUpdate != null){
|
|
|
|
|
+ // 将之前的明细全部删除
|
|
|
|
|
+ List<RecPayItem> recPayItemOriginalList = recPayItemMapper.selectByZIdForUpdate(recPayForUpdate.getRpId());
|
|
|
|
|
+ for (RecPayItem recPayItem : recPayItemOriginalList) {
|
|
|
|
|
+ // 删除收付款明细
|
|
|
|
|
+ recPayItemMapper.deleteById(recPayItem.getItemId());
|
|
|
|
|
+ // 删除账款明细
|
|
|
|
|
+ accountItemMapper.deleteById(recPayItem.getAccItemId());
|
|
|
|
|
+ // 删除账户流水
|
|
|
|
|
+ moneyAccountItemMapper.deleteByInvoiceId(recPayItem.getItemId());
|
|
|
|
|
+
|
|
|
|
|
+ if (!macList.contains(recPayItem.getMacId())) {
|
|
|
|
|
+ macList.add(recPayItem.getMacId());
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ if (orderVO.getReceiptList() != null && orderVO.getReceiptList().size() > 0) {
|
|
|
|
|
+
|
|
|
|
|
+ // 计算订单明细的出库中数量,金额合计
|
|
|
|
|
+ RecPayItemVO itemSum = orderVO.getReceiptList().stream().reduce((x, y) -> {
|
|
|
|
|
+ RecPayItemVO item = new RecPayItemVO();
|
|
|
|
|
+ item.setAmtRec(x.getAmtRec().add(y.getAmtRec()));
|
|
|
|
|
+ return item;
|
|
|
|
|
+ }).get();
|
|
|
|
|
+
|
|
|
|
|
+ RecPay recPay = null;
|
|
|
|
|
+ if(recPayForUpdate == null){
|
|
|
|
|
+ recPay = new RecPay();
|
|
|
|
|
+ // 获取单号
|
|
|
|
|
+ Map<String, Object> codeMap = commonService.getUniqueNoteCode(Constant.docNameConstant.RECPAY.getName(), false);
|
|
|
|
|
+ recPay.setRpId(codeMap.get("outId").toString()).setRpNo(codeMap.get("outNote").toString())
|
|
|
|
|
+ .setRpType(Constant.RpType.SHOU_KUAN.getName()).setObjectId(orderVO.getCusId())
|
|
|
|
|
+ .setOrgId(orderVO.getOrgId()).setStaffId(orderVO.getStaffId()).setAccDate(LocalDate.now())
|
|
|
|
|
+ .setBiznisType(Constant.InventoryDocCode.ORDER.getTableName()).setBiznisId(orderVO.getOrderId()).setBiznisNo(orderVO.getOrderNo())
|
|
|
|
|
+ .setMakeStaff(orderVO.getMakeStaff()).setCpId(orderVO.getCpId());
|
|
|
|
|
+
|
|
|
|
|
+ recPay.setSumAmtRec(itemSum.getAmtRec());
|
|
|
|
|
+ recPayMapper.insert(recPay);
|
|
|
|
|
+ }else{
|
|
|
|
|
+ // 更新收款总额
|
|
|
|
|
+ RecPay recPayUpdate = new RecPay();
|
|
|
|
|
+ recPayUpdate.setSumAmtRec(itemSum.getAmtRec()).setRpId(recPayForUpdate.getRpId());
|
|
|
|
|
+ receiptService.updateByUuid(recPayUpdate);
|
|
|
|
|
+
|
|
|
|
|
+ // 赋值recPay,下面要用
|
|
|
|
|
+ recPay = recPayForUpdate;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 明细保存
|
|
|
|
|
+ for (RecPayItemVO recPayItemVO : orderVO.getReceiptList()) {
|
|
|
|
|
+ RecPayItem recPayItem = recPayItemConvert.convertToPo(recPayItemVO);
|
|
|
|
|
+ recPayItem.setItemId(null).setRpId(recPay.getRpId()).setCpId(recPay.getCpId()).setMakeStaff(recPay.getMakeStaff()).setAccDate(recPay.getAccDate());
|
|
|
|
|
+ recPayItemMapper.insert(recPayItem);
|
|
|
|
|
+
|
|
|
|
|
+ // 插入账款明细
|
|
|
|
|
+ AccountItem accountItem = new AccountItem();
|
|
|
|
|
+ accountItem.setAccItemType(Constant.accItemType.SHOU_KUAN.getName())
|
|
|
|
|
+ .setObjectId(recPay.getObjectId()).setOrgId(recPay.getOrgId()).setStaffId(recPay.getStaffId())
|
|
|
|
|
+ .setAccDate(recPay.getAccDate()).setRecStatus(Constant.recStatuse.QUE_DING.getName()).setAmtRec(recPayItem.getAmtRec())
|
|
|
|
|
+ .setBiznisType(Constant.InventoryDocCode.REC_PAY_ITEM.getTableName()).setBiznisId(recPayItem.getItemId()).setBiznisNo(recPay.getRpNo())
|
|
|
|
|
+ .setMakeStaff(recPay.getMakeStaff()).setCpId(recPay.getCpId());
|
|
|
|
|
+ accountItemMapper.insert(accountItem);
|
|
|
|
|
|
|
|
- return ResponseResultUtil.success(super.update(order, new UpdateWrapper<Order>().lambda().eq(Order::getOrderId,
|
|
|
|
|
- UUID.fromString(order.getOrderId()))));
|
|
|
|
|
|
|
+ // 更新收款单上的账款明细Id
|
|
|
|
|
+ RecPayItem recPayItemUpdate = new RecPayItem();
|
|
|
|
|
+ recPayItemUpdate.setAccItemId(accountItem.getItemId()).setItemId(recPayItem.getItemId());
|
|
|
|
|
+ recPayItemService.updateByUuid(recPayItemUpdate);
|
|
|
|
|
+
|
|
|
|
|
+ // 插入资金流水
|
|
|
|
|
+ MoneyAccountItem moneyAccountItem = new MoneyAccountItem();
|
|
|
|
|
+ moneyAccountItem.setMacId(recPayItem.getMacId()).setFlowType(Constant.FlowType.SHOU_FU_KUAN.getName())
|
|
|
|
|
+ .setInvoiceId(recPayItem.getItemId()).setAmtInflow(recPayItem.getAmtRec()).setAccDate(recPay.getAccDate())
|
|
|
|
|
+ .setMakeStaff(recPayItem.getMakeStaff()).setCpId(recPayItem.getCpId());
|
|
|
|
|
+ moneyAccountItemMapper.insert(moneyAccountItem);
|
|
|
|
|
+
|
|
|
|
|
+ if (!macList.contains(recPayItem.getMacId())) {
|
|
|
|
|
+ macList.add(recPayItem.getMacId());
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ if(recPayForUpdate != null) {
|
|
|
|
|
+ // 更新总账表的总收款额和可用额
|
|
|
|
|
+ accountService.updateReceipt(recPayForUpdate.getObjectId());
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 更新账户余额
|
|
|
|
|
+ for (String macId : macList) {
|
|
|
|
|
+ accountService.updateMac(macId);
|
|
|
|
|
+ }
|
|
|
|
|
+ /**************************************** 客户收款end ********************************/
|
|
|
|
|
+
|
|
|
|
|
+ return ResponseResultUtil.success();
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -409,6 +521,42 @@ public class OrderService extends BaseService<Order> {
|
|
|
orderUpdate.setFlgValid(false).setOrderId(id);
|
|
orderUpdate.setFlgValid(false).setOrderId(id);
|
|
|
super.update(orderUpdate, new UpdateWrapper<Order>().lambda().eq(Order::getOrderId,
|
|
super.update(orderUpdate, new UpdateWrapper<Order>().lambda().eq(Order::getOrderId,
|
|
|
UUID.fromString(orderUpdate.getOrderId())));
|
|
UUID.fromString(orderUpdate.getOrderId())));
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ // 需要重新计算的资金账户
|
|
|
|
|
+ List<String> macList = new ArrayList<>();
|
|
|
|
|
+ // 收款明细
|
|
|
|
|
+ RecPay recPayForUpdate = recPayMapper.selectByBiznisIdIdForUpdate(id);
|
|
|
|
|
+ if(recPayForUpdate != null){
|
|
|
|
|
+ // 将之前的明细全部删除
|
|
|
|
|
+ List<RecPayItem> recPayItemOriginalList = recPayItemMapper.selectByZIdForUpdate(recPayForUpdate.getRpId());
|
|
|
|
|
+ for (RecPayItem recPayItem : recPayItemOriginalList) {
|
|
|
|
|
+ // 删除收付款明细
|
|
|
|
|
+ recPayItemMapper.deleteById(recPayItem.getItemId());
|
|
|
|
|
+ // 删除账款明细
|
|
|
|
|
+ accountItemMapper.deleteById(recPayItem.getAccItemId());
|
|
|
|
|
+ // 删除账户流水
|
|
|
|
|
+ moneyAccountItemMapper.deleteByInvoiceId(recPayItem.getItemId());
|
|
|
|
|
+
|
|
|
|
|
+ if (!macList.contains(recPayItem.getMacId())) {
|
|
|
|
|
+ macList.add(recPayItem.getMacId());
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 更新总账表的总收款额和可用额
|
|
|
|
|
+ accountService.updateReceipt(recPayForUpdate.getObjectId());
|
|
|
|
|
+
|
|
|
|
|
+ // 更新账户余额
|
|
|
|
|
+ for (String macId : macList) {
|
|
|
|
|
+ accountService.updateMac(macId);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 作废
|
|
|
|
|
+ RecPay recPayUpdate = new RecPay();
|
|
|
|
|
+ recPayUpdate.setFlgValid(false).setRpId(id);
|
|
|
|
|
+ receiptService.updateByUuid(recPayUpdate);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
return ResponseResultUtil.success();
|
|
return ResponseResultUtil.success();
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -425,6 +573,15 @@ public class OrderService extends BaseService<Order> {
|
|
|
// 商品明细
|
|
// 商品明细
|
|
|
List<OrderItemResponse> orderItemResponse = orderItemMapper.selectByCond(new OrderItemQuery().setOrderId(id));
|
|
List<OrderItemResponse> orderItemResponse = orderItemMapper.selectByCond(new OrderItemQuery().setOrderId(id));
|
|
|
dataInfo.put("dataItem", orderItemResponse);
|
|
dataInfo.put("dataItem", orderItemResponse);
|
|
|
|
|
+
|
|
|
|
|
+ // 收款明细
|
|
|
|
|
+ List<RecPayResponse> recPayList = recPayMapper.selectByCond(new RecPayQuery().setBiznisId(id));
|
|
|
|
|
+ if(recPayList != null && recPayList.size() > 0){
|
|
|
|
|
+ List<RecPayItemResponse> receiptItem = recPayItemMapper.selectByCond(new RecPayItemQuery().setRpId(recPayList.get(0).getRpId()));
|
|
|
|
|
+ dataInfo.put("receiptItem", receiptItem);
|
|
|
|
|
+ }else{
|
|
|
|
|
+ dataInfo.put("receiptItem", new ArrayList<RecPayResponse>());
|
|
|
|
|
+ }
|
|
|
return ResponseResultUtil.success(dataInfo);
|
|
return ResponseResultUtil.success(dataInfo);
|
|
|
}
|
|
}
|
|
|
|
|
|