|
|
@@ -14,6 +14,7 @@ import com.dk.mdm.infrastructure.convert.mac.RecPayItemConvert;
|
|
|
import com.dk.mdm.infrastructure.convert.sale.OrderConvert;
|
|
|
import com.dk.mdm.infrastructure.convert.sale.OrderItemConvert;
|
|
|
import com.dk.mdm.infrastructure.convert.sale.OutBoundDtoConvert;
|
|
|
+import com.dk.mdm.mapper.common.CommonMapper;
|
|
|
import com.dk.mdm.mapper.mac.AccountItemMapper;
|
|
|
import com.dk.mdm.mapper.mac.RecPayHandleItemMapper;
|
|
|
import com.dk.mdm.mapper.mac.RecPayItemMapper;
|
|
|
@@ -92,6 +93,9 @@ public class OrderService extends BaseService<Order> {
|
|
|
private CommonService commonService;
|
|
|
|
|
|
@Autowired
|
|
|
+ private CommonMapper commonMapper;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
private CustomerMapper customerMapper;
|
|
|
|
|
|
@Autowired
|
|
|
@@ -228,24 +232,24 @@ public class OrderService extends BaseService<Order> {
|
|
|
.setReportStaff(orderVO.getMakeStaff()).setSaleStatus(Constant.SaleStatus.CHENGJIAO.getName()).setCpId(orderVO.getCpId());
|
|
|
customerMapper.insert(customer);
|
|
|
orderVO.setCusId(customer.getCusId());
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
// 如果当前跟进人
|
|
|
Customer cus = customerMapper.selectByIdForUpdate(orderVO.getCusId());
|
|
|
List<String> followStaffs = cus.getFollowStaffs();
|
|
|
Boolean updateFollowFlag = false;
|
|
|
- if(followStaffs == null ){
|
|
|
+ if (followStaffs == null) {
|
|
|
followStaffs.add(orderVO.getMakeStaff());
|
|
|
updateFollowFlag = true;
|
|
|
- }else{
|
|
|
- if(!followStaffs.contains(orderVO.getMakeStaff())){
|
|
|
+ } else {
|
|
|
+ if (!followStaffs.contains(orderVO.getMakeStaff())) {
|
|
|
followStaffs.add(orderVO.getMakeStaff());
|
|
|
updateFollowFlag = true;
|
|
|
}
|
|
|
}
|
|
|
- if(updateFollowFlag){
|
|
|
+ if (updateFollowFlag) {
|
|
|
// 更新当前跟进人
|
|
|
customerMapper.updateFollowStaffs(new Customer().setCusId(orderVO.getCusId())
|
|
|
- .setFollowStaffs(followStaffs));
|
|
|
+ .setFollowStaffs(followStaffs));
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -299,71 +303,144 @@ public class OrderService extends BaseService<Order> {
|
|
|
|
|
|
/**************************************** 客户收款begin ********************************/
|
|
|
if (orderVO.getReceiptList() != null && orderVO.getReceiptList().size() > 0) {
|
|
|
- RecPay recPay = new RecPay();
|
|
|
+ // 商户产品版本
|
|
|
+ String gradeCode = "PRO";
|
|
|
+ Map<String, Object> paramCompany = new HashMap<>();
|
|
|
+ paramCompany.put("cpId", orderVO.getCpId());
|
|
|
+ List<Map<String, Object>> listCompany = commonMapper.getCompany(paramCompany);
|
|
|
+ if (listCompany.size() > 0) {
|
|
|
+ gradeCode = listCompany.get(0).get("gradeCode").toString();
|
|
|
+ }
|
|
|
// 获取单号
|
|
|
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()).setFlgLock(true);
|
|
|
- // 计算订单明细的出库中数量,金额合计
|
|
|
- RecPayItemVO itemSum = orderVO.getReceiptList().stream().reduce((x, y) -> {
|
|
|
- RecPayItemVO item = new RecPayItemVO();
|
|
|
- item.setAmtRec(x.getAmtRec().add(y.getAmtRec()));
|
|
|
- return item;
|
|
|
- }).get();
|
|
|
- recPay.setSumAmtRec(itemSum.getAmtRec());
|
|
|
-
|
|
|
- // 总单保存
|
|
|
- recPayMapper.insert(recPay);
|
|
|
-
|
|
|
- // 明细保存
|
|
|
- for (RecPayItemVO recPayItemVO : orderVO.getReceiptList()) {
|
|
|
- RecPayItem recPayItem = recPayItemConvert.convertToPo(recPayItemVO);
|
|
|
- recPayItem.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()).setFlgLock(true);
|
|
|
- accountItemMapper.insert(accountItem);
|
|
|
-
|
|
|
- // 更新收款单上的账款明细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);
|
|
|
-
|
|
|
- // 更新资金账户
|
|
|
- MoneyAccount moneyAccountForUpdate = moneyAccountMapper.selectByIdForUpdate(recPayItem.getMacId());
|
|
|
- MoneyAccount moneyAccountUpdate = new MoneyAccount();
|
|
|
- moneyAccountUpdate.setBalance(moneyAccountForUpdate.getBalance().add(recPayItem.getAmtRec()))
|
|
|
- .setMacId(moneyAccountForUpdate.getMacId());
|
|
|
- moneyAccountService.updateByUuid(moneyAccountUpdate);
|
|
|
+ RecPay recPay = new RecPay();
|
|
|
+
|
|
|
+ // 专业版有定金
|
|
|
+ if ("PRO".equals(gradeCode)) {
|
|
|
+ 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()).setFlgLock(true);
|
|
|
+ // 计算订单明细的出库中数量,金额合计
|
|
|
+ RecPayItemVO itemSum = orderVO.getReceiptList().stream().reduce((x, y) -> {
|
|
|
+ RecPayItemVO item = new RecPayItemVO();
|
|
|
+ item.setAmtRec(x.getAmtRec().add(y.getAmtRec()));
|
|
|
+ return item;
|
|
|
+ }).get();
|
|
|
+ recPay.setSumAmtRec(itemSum.getAmtRec());
|
|
|
+
|
|
|
+ // 总单保存
|
|
|
+ recPayMapper.insert(recPay);
|
|
|
+
|
|
|
+ // 明细保存
|
|
|
+ for (RecPayItemVO recPayItemVO : orderVO.getReceiptList()) {
|
|
|
+ RecPayItem recPayItem = recPayItemConvert.convertToPo(recPayItemVO);
|
|
|
+ recPayItem.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()).setFlgLock(true);
|
|
|
+ accountItemMapper.insert(accountItem);
|
|
|
+
|
|
|
+ // 更新收款单上的账款明细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);
|
|
|
+
|
|
|
+ // 更新资金账户
|
|
|
+ MoneyAccount moneyAccountForUpdate = moneyAccountMapper.selectByIdForUpdate(recPayItem.getMacId());
|
|
|
+ MoneyAccount moneyAccountUpdate = new MoneyAccount();
|
|
|
+ moneyAccountUpdate.setBalance(moneyAccountForUpdate.getBalance().add(recPayItem.getAmtRec()))
|
|
|
+ .setMacId(moneyAccountForUpdate.getMacId());
|
|
|
+ moneyAccountService.updateByUuid(moneyAccountUpdate);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 插入账款总表
|
|
|
+ Account accountForUpdate = accountService.getCusAccountForUpdate(recPay.getObjectId());
|
|
|
+ // 更新账款总表上收款的相关字段
|
|
|
+ Account accountUpdate = new Account();
|
|
|
+ accountUpdate.setReceiptLock(accountForUpdate.getReceiptLock().add(recPay.getSumAmtRec()))// 锁定金额
|
|
|
+ .setObjectId(accountForUpdate.getObjectId());
|
|
|
+ accountService.updateByUuid(accountUpdate);
|
|
|
+ } else if ("STD".equals(gradeCode)) {
|
|
|
+ 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());
|
|
|
+ // 计算订单明细的出库中数量,金额合计
|
|
|
+ RecPayItemVO itemSum = orderVO.getReceiptList().stream().reduce((x, y) -> {
|
|
|
+ RecPayItemVO item = new RecPayItemVO();
|
|
|
+ item.setAmtRec(x.getAmtRec().add(y.getAmtRec()));
|
|
|
+ return item;
|
|
|
+ }).get();
|
|
|
+ recPay.setSumAmtRec(itemSum.getAmtRec());
|
|
|
+
|
|
|
+ // 总单保存
|
|
|
+ recPayMapper.insert(recPay);
|
|
|
+
|
|
|
+ // 明细保存
|
|
|
+ for (RecPayItemVO recPayItemVO : orderVO.getReceiptList()) {
|
|
|
+ RecPayItem recPayItem = recPayItemConvert.convertToPo(recPayItemVO);
|
|
|
+ recPayItem.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);
|
|
|
+
|
|
|
+ // 更新收款单上的账款明细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);
|
|
|
+
|
|
|
+ // 更新资金账户
|
|
|
+ MoneyAccount moneyAccountForUpdate = moneyAccountMapper.selectByIdForUpdate(recPayItem.getMacId());
|
|
|
+ MoneyAccount moneyAccountUpdate = new MoneyAccount();
|
|
|
+ moneyAccountUpdate.setBalance(moneyAccountForUpdate.getBalance().add(recPayItem.getAmtRec()))
|
|
|
+ .setMacId(moneyAccountForUpdate.getMacId());
|
|
|
+ moneyAccountService.updateByUuid(moneyAccountUpdate);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 插入账款总表
|
|
|
+ Account accountForUpdate = accountService.getCusAccountForUpdate(recPay.getObjectId());
|
|
|
+ // 更新账款总表上收款的相关字段
|
|
|
+ Account accountUpdate = new Account();
|
|
|
+ accountUpdate.setReceipt(accountForUpdate.getReceipt().add(recPay.getSumAmtRec()))// 总收款金额
|
|
|
+ .setReceiptResidue(accountForUpdate.getReceiptResidue().add(recPay.getSumAmtRec()))// 可退金额
|
|
|
+ .setObjectId(accountForUpdate.getObjectId());
|
|
|
+ accountService.updateByUuid(accountUpdate);
|
|
|
}
|
|
|
|
|
|
- // 插入账款总表
|
|
|
- Account accountForUpdate = accountService.getCusAccountForUpdate(recPay.getObjectId());
|
|
|
- // 更新账款总表上收款的相关字段
|
|
|
- Account accountUpdate = new Account();
|
|
|
- accountUpdate.setReceiptLock(accountForUpdate.getReceiptLock().add(recPay.getSumAmtRec()))// 锁定金额
|
|
|
- .setObjectId(accountForUpdate.getObjectId());
|
|
|
- accountService.updateByUuid(accountUpdate);
|
|
|
}
|
|
|
/**************************************** 客户收款end ********************************/
|
|
|
//开单并出库办理
|
|
|
- if (orderVO.getOutboundProcessingFlag()!=null&& orderVO.getOutboundProcessingFlag()){
|
|
|
+ if (orderVO.getOutboundProcessingFlag() != null && orderVO.getOutboundProcessingFlag()) {
|
|
|
for (OrderItemVO orderItemVO : orderVO.getItemList()) {
|
|
|
orderItemVO.setOutingQty(orderItemVO.getItemQty());
|
|
|
orderItemVO.setOutingAmt(orderItemVO.getItemAmt());
|
|
|
@@ -407,7 +484,7 @@ public class OrderService extends BaseService<Order> {
|
|
|
// 转化实体
|
|
|
Order order = orderConvert.convertToPo(orderVO);
|
|
|
//删除的
|
|
|
- if(orderVO.getDeleteItemList() != null){
|
|
|
+ if (orderVO.getDeleteItemList() != null) {
|
|
|
List<OrderItemVO> deleteOrderItemVOList = orderVO.getDeleteItemList().stream().filter(it -> it.getItemId() != null).collect(Collectors.toList());
|
|
|
if (deleteOrderItemVOList.size() > 0) {
|
|
|
for (OrderItemVO orderItemVO : deleteOrderItemVOList) {
|
|
|
@@ -508,74 +585,154 @@ public class OrderService extends BaseService<Order> {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- if (orderVO.getReceiptList() != null && orderVO.getReceiptList().size() > 0) {
|
|
|
+ // 商户产品版本
|
|
|
+ String gradeCode = "PRO";
|
|
|
+ Map<String, Object> paramCompany = new HashMap<>();
|
|
|
+ paramCompany.put("cpId", orderVO.getCpId());
|
|
|
+ List<Map<String, Object>> listCompany = commonMapper.getCompany(paramCompany);
|
|
|
+ if (listCompany.size() > 0) {
|
|
|
+ gradeCode = listCompany.get(0).get("gradeCode").toString();
|
|
|
+ }
|
|
|
|
|
|
- // 计算订单明细的出库中数量,金额合计
|
|
|
- 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()).setFlgLock(true);
|
|
|
+ // 专业版有定金
|
|
|
+ if ("PRO".equals(gradeCode)) {
|
|
|
+ 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()).setFlgLock(true);
|
|
|
+
|
|
|
+ recPay.setSumAmtRec(itemSum.getAmtRec());
|
|
|
+ recPayMapper.insert(recPay);
|
|
|
+ } else {
|
|
|
+ // 更新收款总额
|
|
|
+ RecPay recPayUpdate = new RecPay();
|
|
|
+ recPayUpdate.setSumAmtRec(itemSum.getAmtRec()).setRpId(recPayForUpdate.getRpId());
|
|
|
+ receiptService.updateByUuid(recPayUpdate);
|
|
|
|
|
|
- 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;
|
|
|
+ }
|
|
|
|
|
|
- // 赋值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()).setFlgLock(true);
|
|
|
+ accountItemMapper.insert(accountItem);
|
|
|
+
|
|
|
+ // 更新收款单上的账款明细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.updateReceiptLock(recPayForUpdate.getObjectId());
|
|
|
+ }
|
|
|
+ } else if ("STD".equals(gradeCode)) {
|
|
|
+ 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);
|
|
|
|
|
|
- // 明细保存
|
|
|
- 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()).setFlgLock(true);
|
|
|
- accountItemMapper.insert(accountItem);
|
|
|
-
|
|
|
- // 更新收款单上的账款明细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);
|
|
|
+ // 赋值recPay,下面要用
|
|
|
+ recPay = recPayForUpdate;
|
|
|
+ }
|
|
|
|
|
|
- if (!macList.contains(recPayItem.getMacId())) {
|
|
|
- macList.add(recPayItem.getMacId());
|
|
|
+ // 明细保存
|
|
|
+ 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);
|
|
|
+
|
|
|
+ // 更新收款单上的账款明细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());
|
|
|
+ }
|
|
|
}
|
|
|
- if (recPayForUpdate != null) {
|
|
|
- // 更新总账表的锁定金额
|
|
|
- accountService.updateReceiptLock(recPayForUpdate.getObjectId());
|
|
|
- }
|
|
|
+
|
|
|
|
|
|
// 更新账户余额
|
|
|
for (String macId : macList) {
|
|
|
@@ -664,7 +821,7 @@ public class OrderService extends BaseService<Order> {
|
|
|
staffList.add(Constant.OwnerType.Z_STAFF.getName());
|
|
|
staffList.add(Constant.OwnerType.C_STAFF.getName());
|
|
|
List<MultiOwnerResponse> multiOwnersStaff = multiOwnerMapper.selectByType(new MultiOwnerQuery().setOrderId(id).setOwnerTypes(staffList));
|
|
|
- if(multiOwnersStaff != null && multiOwnersStaff.size() > 0){
|
|
|
+ if (multiOwnersStaff != null && multiOwnersStaff.size() > 0) {
|
|
|
dataInfo.put("staffList", multiOwnersStaff);
|
|
|
}
|
|
|
//查询主从业务部门
|
|
|
@@ -672,7 +829,7 @@ public class OrderService extends BaseService<Order> {
|
|
|
orgList.add(Constant.OwnerType.Z_ORG.getName());
|
|
|
orgList.add(Constant.OwnerType.C_ORG.getName());
|
|
|
List<MultiOwnerResponse> multiOwnersOrg = multiOwnerMapper.selectByType(new MultiOwnerQuery().setOrderId(id).setOwnerTypes(orgList));
|
|
|
- if(multiOwnersOrg != null && multiOwnersOrg.size() > 0){
|
|
|
+ if (multiOwnersOrg != null && multiOwnersOrg.size() > 0) {
|
|
|
dataInfo.put("orgList", multiOwnersOrg);
|
|
|
}
|
|
|
|