费用计算;
This commit is contained in:
+4
-1
@@ -48,6 +48,9 @@ public class BusinessDataPushDTO{
|
||||
@ApiModelProperty("账单金额")
|
||||
private BigDecimal billAmount;
|
||||
|
||||
@ApiModelProperty("预计费金额")
|
||||
private BigDecimal estimatedCost;
|
||||
|
||||
@ApiModelProperty("费用科目")
|
||||
@NotBlank(message = "费用科目不能为空")
|
||||
private String secondSubjectCode;
|
||||
@@ -81,4 +84,4 @@ public class BusinessDataPushDTO{
|
||||
private String salesmanId;
|
||||
@ApiModelProperty("业务员名称")
|
||||
private String salesmanName;
|
||||
}
|
||||
}
|
||||
+48
@@ -997,4 +997,52 @@ public class BusinessDocumentApplicationService {
|
||||
this.auditByIdsBySystem(businessDocumentDTO);
|
||||
return true;
|
||||
}
|
||||
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public Boolean wholeRentSynchronizationZXF(BusinessDocumentDO businessDocumentDO) {
|
||||
log.info("定时任务进入BMS业务单据保存--开始");
|
||||
//根据结算主题id查询 结算对象编码
|
||||
Long settlementEntityId = businessDocumentDO.getSettlementEntityId();
|
||||
List<SettlementCustomers> settlementCustomersList = settlementCustomersService.list(new LambdaQueryWrapper<SettlementCustomers>()
|
||||
.eq(SettlementCustomers::getSettlementEntityId, settlementEntityId)
|
||||
.eq(SettlementCustomers::getDelFlag, 1)
|
||||
);
|
||||
if (settlementCustomersList != null && settlementCustomersList.size() > 0) {
|
||||
businessDocumentDO.setSettlementCustomersCode(settlementCustomersList.get(0).getSettlementCustomersCode());
|
||||
}else {
|
||||
return false;
|
||||
}
|
||||
//校验使用的表单是否必填校验
|
||||
//checkDoucumentType(businessDocumentDO);
|
||||
//处理数据
|
||||
handleDate(businessDocumentDO);
|
||||
businessDocumentDO.setDataSources(1);
|
||||
businessDocumentDO.setCreateTime(new Date());
|
||||
businessDocumentDO.setCreateByName("system");
|
||||
businessDocumentDO.setBusinessFlow(OrderSequence.getOrderCode("LS"));
|
||||
businessDocumentDO.setTopOrganizationId(businessDocumentDO.getTopOrganizationId());
|
||||
businessDocumentDO.setOrganizationId(businessDocumentDO.getOrganizationId());
|
||||
businessDocumentDO.setOrganizationName(businessDocumentDO.getOrganizationName());
|
||||
//调用费用计算,计算费用金额进行保存
|
||||
// CostCalculationDTO costCalculationDTO = new CostCalculationDTO();
|
||||
// costCalculationDTO.setOriginalBusinessNum(businessDocumentDO.getOriginalBusinessNum());
|
||||
// costCalculationDTO.setContractNumber(businessDocumentDO.getContractNumber());
|
||||
// costCalculationDTO.setFormJson(businessDocumentDO.getDocumentFormJson());
|
||||
// costCalculationDTO.setSubjectCode(StringUtils.isEmpty(businessDocumentDO.getSecondSubjectCode()) ? businessDocumentDO.getFirstSubjectCode():businessDocumentDO.getSecondSubjectCode());
|
||||
// costCalculationDTO.setDocumentTypeCode(businessDocumentDO.getDocumentTypeCode());
|
||||
// costCalculationDTO.setTopOrganizationId(businessDocumentDO.getTopOrganizationId());
|
||||
// costCalculationDTO.setOrganizationId(businessDocumentDO.getOrganizationId());
|
||||
// costCalculationDTO.setOrganizationName(businessDocumentDO.getOrganizationName());
|
||||
// BillingCostPo billingCostPo = costCalculationApplicationService.costCalculation(costCalculationDTO);
|
||||
// businessDocumentDO.setEstimatedCost(billingCostPo.getComputationalCost());
|
||||
// businessDocumentDO.setBillAmount(billingCostPo.getComputationalCost());//计费金额与计算金额一致
|
||||
log.info("定时任务进入BMS业务单据保存--结束");
|
||||
BusinessDocument businessDocument = businessDocumentDomainService.insertRetrun(businessDocumentDO);
|
||||
BusinessDocumentDTO businessDocumentDTO = new BusinessDocumentDTO();
|
||||
businessDocumentDTO.setBusinessDocumentIds(String.valueOf(businessDocument.getBusinessDocumentId()));
|
||||
businessDocumentDTO.setAuditOperation(1);
|
||||
this.takeEffectByIdsBySystem(businessDocumentDTO);
|
||||
this.auditByIdsBySystem(businessDocumentDTO);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -100,6 +100,25 @@ public class BusinessDocumentApi extends BaseController{
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 整租推送
|
||||
*/
|
||||
@ApiOperation("装卸费推送")
|
||||
@PostMapping("/wholeRentSynchronizationZXF")
|
||||
public AjaxResult wholeRentSynchronizationZXF(@RequestBody BusinessDocumentDTO businessDocumentDTO)
|
||||
{
|
||||
try {
|
||||
//转换实体
|
||||
BusinessDocumentDO businessDocumentDO = new BusinessDocumentDO();
|
||||
// 拷贝
|
||||
com.mhd.common.core.utils.bean.BeanUtils.copyProperties(businessDocumentDTO, businessDocumentDO, IgnoreNullUtil.getNullPropertyNames(businessDocumentDTO));
|
||||
return toAjax(businessDocumentApplicationService.wholeRentSynchronizationZXF(businessDocumentDO));
|
||||
}catch (Exception e){
|
||||
return AjaxResult.error("保存业务单据失败" +e.getMessage());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 整租推送
|
||||
|
||||
+17
-1
@@ -67,7 +67,7 @@ public class ReceiptOrderAccount extends BaseVOEntity {
|
||||
/**订单id*/
|
||||
@ApiModelProperty(value = "订单id")
|
||||
@Excel(name = "订单id", width = 15)
|
||||
private String orderId;
|
||||
private Long orderId;
|
||||
/**科目id*/
|
||||
@ApiModelProperty(value = "科目id")
|
||||
@Excel(name = "科目id", width = 15)
|
||||
@@ -84,6 +84,14 @@ public class ReceiptOrderAccount extends BaseVOEntity {
|
||||
@ApiModelProperty(value = "科目名称")
|
||||
@Excel(name = "科目名称", width = 15)
|
||||
private String subjectName;
|
||||
/**费用类别*/
|
||||
@ApiModelProperty(value = "费用类别")
|
||||
@Excel(name = "费用类别", width = 15)
|
||||
private String serviceItemsCode;
|
||||
/**费用类别*/
|
||||
@ApiModelProperty(value = "费用类别")
|
||||
@Excel(name = "费用类别", width = 15)
|
||||
private String serviceItemsName;
|
||||
/**科目费率*/
|
||||
@ApiModelProperty(value = "科目费率")
|
||||
@Excel(name = "科目费率", width = 15)
|
||||
@@ -96,4 +104,12 @@ public class ReceiptOrderAccount extends BaseVOEntity {
|
||||
@ApiModelProperty(value = "金额")
|
||||
@Excel(name = "金额", width = 15)
|
||||
private BigDecimal settlementAmount;
|
||||
|
||||
@ApiModelProperty(value = "数量")
|
||||
@Excel(name = "数量", width = 15)
|
||||
private BigDecimal num;
|
||||
|
||||
@ApiModelProperty(value = "单价")
|
||||
@Excel(name = "单价", width = 15)
|
||||
private BigDecimal price;
|
||||
}
|
||||
+4
-1
@@ -3,6 +3,7 @@ package com.mhd.wms.domain.stockReceiptOrder.repository.todo;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.mhd.common.core.annotation.Excel;
|
||||
import com.mhd.wms.domain.receiptMaterialDetail.repository.todo.ReceiptMaterialDetailDO;
|
||||
import com.mhd.wms.domain.receiptOrderAccount.entity.ReceiptOrderAccount;
|
||||
import com.mhd.wms.domain.stockInOrder.repository.todo.StockInOrderBaseDO;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
@@ -169,4 +170,6 @@ public class StockReceiptOrderDO extends StockInOrderBaseDO {
|
||||
|
||||
@ApiModelProperty("是否来自PDA收货:true-PDA收货完成,false-PC收货完成(用于上架单是否下发:PDA=是,PC=否)")
|
||||
private Boolean fromPda;
|
||||
}
|
||||
@ApiModelProperty("费用")
|
||||
List<ReceiptOrderAccount> receiptOrderAccountList;
|
||||
}
|
||||
+84
-8
@@ -8,6 +8,7 @@ import com.alibaba.fastjson2.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||
import com.mhd.common.core.constant.SnowFlakeConstants;
|
||||
import com.mhd.common.core.domain.dto.BusinessDataPushDTO;
|
||||
import com.mhd.common.core.exception.ServiceException;
|
||||
import com.mhd.common.core.utils.IgnoreNullUtil;
|
||||
import com.mhd.common.core.utils.OrderSequence;
|
||||
@@ -16,6 +17,7 @@ import com.mhd.common.core.utils.bean.BeanUtils;
|
||||
import com.mhd.common.core.utils.uuid.IdGenerator;
|
||||
import com.mhd.common.core.web.domain.AjaxResult;
|
||||
import com.mhd.common.security.utils.SecurityUtils;
|
||||
import com.mhd.system.api.BmsServiceFeign;
|
||||
import com.mhd.system.api.SystemServiceFeign;
|
||||
import com.mhd.system.api.domain.BatchDetailFeignPO;
|
||||
import com.mhd.system.api.domain.ContainerFeignPO;
|
||||
@@ -47,6 +49,8 @@ import com.mhd.wms.domain.receiptMaterialDetail.entity.ReceiptMaterialDetail;
|
||||
import com.mhd.wms.domain.receiptMaterialDetail.repository.facade.IReceiptMaterialDetailService;
|
||||
import com.mhd.wms.domain.receiptMaterialDetail.repository.po.ReceiptMaterialDetailPO;
|
||||
import com.mhd.wms.domain.receiptMaterialDetail.repository.todo.ReceiptMaterialDetailDO;
|
||||
import com.mhd.wms.domain.receiptOrderAccount.entity.ReceiptOrderAccount;
|
||||
import com.mhd.wms.domain.receiptOrderAccount.repository.facade.IReceiptOrderAccountService;
|
||||
import com.mhd.wms.domain.shelfMaterialDetail.repository.todo.ShelfMaterialDetailDO;
|
||||
import com.mhd.wms.domain.stockInOrder.entity.StockInOrder;
|
||||
import com.mhd.wms.domain.stockInOrder.repository.facade.IStockInOrderService;
|
||||
@@ -64,6 +68,7 @@ import com.mhd.wms.domain.stockShelfOrder.repository.po.StockShelfOrderPO;
|
||||
import com.mhd.wms.domain.stockShelfOrder.repository.todo.StockShelfOrderDO;
|
||||
import com.mhd.wms.domain.stockShelfOrder.service.StockShelfOrderDomainService;
|
||||
import com.mhd.wms.domain.taskReceiptMaterialDetail.repository.todo.TaskReceiptMaterialDetailDO;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -121,6 +126,10 @@ public class StockReceiptOrderDomainService {
|
||||
private IContainerUsageRecordService containerUsageRecordService;
|
||||
@Resource
|
||||
private SystemServiceFeign systemServiceFeign;
|
||||
@Resource
|
||||
private BmsServiceFeign bmsServiceFeign;
|
||||
@Autowired
|
||||
private IReceiptOrderAccountService receiptOrderAccountService;
|
||||
|
||||
/**
|
||||
* 分页查询收货单列表
|
||||
@@ -410,7 +419,7 @@ public class StockReceiptOrderDomainService {
|
||||
genStockReceiptTaskOrderByReceivingGoods(stockReceiptOrderPO,stockReceiptOrderDO);
|
||||
//收货后上架前 生成质检
|
||||
genQualityInspectionByReceivingGoods(stockReceiptOrderDO);
|
||||
|
||||
saveAmount(stockReceiptOrderDO);
|
||||
//更新入库单状态
|
||||
updateStockInOrder(stockReceiptOrderPO);
|
||||
//修改收货单 设置收货单收货需要更新的数据数据
|
||||
@@ -418,6 +427,68 @@ public class StockReceiptOrderDomainService {
|
||||
|
||||
}
|
||||
|
||||
private void saveAmount(StockReceiptOrderDO stockReceiptOrderDO) {
|
||||
Long receiptOrderId = stockReceiptOrderDO.getReceiptOrderId();
|
||||
List<ReceiptOrderAccount> receiptOrderAccountList = stockReceiptOrderDO.getReceiptOrderAccountList();
|
||||
for (ReceiptOrderAccount receiptOrderAccount : receiptOrderAccountList) {
|
||||
receiptOrderAccount.setOrderId(receiptOrderId);
|
||||
}
|
||||
receiptOrderAccountService.remove(new QueryWrapper<ReceiptOrderAccount>().lambda().eq(ReceiptOrderAccount::getOrderId, receiptOrderId));
|
||||
receiptOrderAccountService.saveBatch(receiptOrderAccountList);
|
||||
}
|
||||
|
||||
/**
|
||||
* 定时任务整租推送到bms装卸费
|
||||
*/
|
||||
public void wholeRentSynchronizationZXF(Long busId) {
|
||||
StockInOrder stockInOrder = stockInOrderService.getById(busId);
|
||||
Long shipperId = stockInOrder.getShipperId();
|
||||
Long organizationId = stockInOrder.getOrganizationId();
|
||||
String organizationName = stockInOrder.getOrganizationName();
|
||||
Long topOrganizationId = stockInOrder.getTopOrganizationId();
|
||||
List<ReceiptOrderAccount> accounts = receiptOrderAccountService.list(new QueryWrapper<ReceiptOrderAccount>().lambda().eq(ReceiptOrderAccount::getOrderId, busId));
|
||||
for (ReceiptOrderAccount account : accounts) {
|
||||
String subjectCode = account.getSubjectCode();
|
||||
String subjectName = account.getSubjectName();
|
||||
String serviceItemsCode = account.getServiceItemsCode();
|
||||
if (shipperId == null) {
|
||||
continue;
|
||||
}
|
||||
log.info("开始执行{}", com.alibaba.fastjson.JSONObject.toJSONString(stockInOrder));
|
||||
BusinessDataPushDTO businessDataPushDTO = new BusinessDataPushDTO();
|
||||
businessDataPushDTO.setOrganizationId(organizationId);
|
||||
businessDataPushDTO.setTopOrganizationId(topOrganizationId);
|
||||
businessDataPushDTO.setOrganizationName(organizationName);
|
||||
businessDataPushDTO.setBelongModuleCode("wms");
|
||||
businessDataPushDTO.setBillAmount(account.getAmount());//计费金额
|
||||
businessDataPushDTO.setEstimatedCost(account.getSettlementAmount());//计算金额
|
||||
com.alibaba.fastjson.JSONObject jsonObject = new com.alibaba.fastjson.JSONObject();
|
||||
if ("".equals(subjectName)) {
|
||||
jsonObject.put("loading_unloading_unit_price", account.getPrice());//装卸货单价
|
||||
jsonObject.put("cargo_quantity",account.getNum());//货物数量
|
||||
} else if ("".equals(subjectName)) {
|
||||
jsonObject.put("wooden_case_labeling_unit_price", account.getPrice());//木箱单价
|
||||
jsonObject.put("carton_labeling_unit_price",account.getPrice());//纸箱单价
|
||||
jsonObject.put("wooden_case_quantity",account.getNum());//木箱数量
|
||||
jsonObject.put("carton_quantity",account.getNum());//纸箱数量
|
||||
} else if ("".equals(subjectName)) {
|
||||
jsonObject.put("cargo_quantity", account.getNum());//货物数量
|
||||
jsonObject.put("warehouse_handling_unit_price",account.getPrice());//进出仓操作费单价
|
||||
}
|
||||
businessDataPushDTO.setDocumentFormJson(jsonObject.toJSONString());
|
||||
businessDataPushDTO.setDocumentTypeCode("WMS_ckjccd");
|
||||
businessDataPushDTO.setSettlementEntityId(shipperId);
|
||||
businessDataPushDTO.setSecondSubjectCode(subjectCode);
|
||||
businessDataPushDTO.setServiceItemsCode(serviceItemsCode);
|
||||
businessDataPushDTO.setDataSources(1);
|
||||
|
||||
//businessDataPushDTO.setSettlementCurrency(leasePO.getSettlementCurrency());
|
||||
//businessDataPushDTO.setSalesmanId(leasePO.getSalesmanId());
|
||||
bmsServiceFeign.businessDocumentApiSave(businessDataPushDTO);
|
||||
}
|
||||
log.info("定时任务整租推送到bms触发--结束");
|
||||
}
|
||||
|
||||
/**
|
||||
* 同步更新入库单明细的收货数量(总毛重/总净重/总面积/总体积不再写入入库单明细,逻辑已注释保留)
|
||||
* 根据收货单明细中填写的数据,按 materialDetailId 分组汇总后更新到入库单明细
|
||||
@@ -632,6 +703,8 @@ public class StockReceiptOrderDomainService {
|
||||
//收货数量大于等于计划数量 直接完成收货
|
||||
if (stockReceiptOrder.getReceiptQuantity().compareTo(stockReceiptOrderPO.getQuantity()) >= 0 && receiptMaterialQuantity == 0){
|
||||
completeReceipt(stockReceiptOrderPO.getReceiptOrderId(), stockReceiptOrderDO.getFromPda());
|
||||
//推送bms
|
||||
wholeRentSynchronizationZXF(stockReceiptOrderPO.getReceiptOrderId());
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@@ -713,13 +786,16 @@ public class StockReceiptOrderDomainService {
|
||||
}
|
||||
// 完成收货:同步更新本单全部明细收货状态(与整单收货 entireReceipt 一致,否则 PDA/列表仍显示收货中)
|
||||
updateReceiptMaterialDetailReceiptStatusWhenOrderCompleted(stockReceiptOrderPO, loginUser, userRealName);
|
||||
return stockReceiptOrderService.update(null, new UpdateWrapper<StockReceiptOrder>().lambda()
|
||||
.set(StockReceiptOrder::getStatus, 3)
|
||||
.set(StockReceiptOrder::getAbnormal, abnormal)
|
||||
.set(StockReceiptOrder::getUpdateBy, loginUser.getUserid())
|
||||
.set(StockReceiptOrder::getUpdateByName, loginUser.getUsername())
|
||||
.set(StockReceiptOrder::getUpdateTime, new Date())
|
||||
.eq(StockReceiptOrder::getReceiptOrderId, receiptOrderId));
|
||||
boolean update = stockReceiptOrderService.update(null, new UpdateWrapper<StockReceiptOrder>().lambda()
|
||||
.set(StockReceiptOrder::getStatus, 3)
|
||||
.set(StockReceiptOrder::getAbnormal, abnormal)
|
||||
.set(StockReceiptOrder::getUpdateBy, loginUser.getUserid())
|
||||
.set(StockReceiptOrder::getUpdateByName, loginUser.getUsername())
|
||||
.set(StockReceiptOrder::getUpdateTime, new Date())
|
||||
.eq(StockReceiptOrder::getReceiptOrderId, receiptOrderId));
|
||||
//推送bms
|
||||
wholeRentSynchronizationZXF(receiptOrderId);
|
||||
return update;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
+5
-1
@@ -2,6 +2,7 @@ package com.mhd.wms.interfaces.dto.stockReceiptOrder;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.mhd.common.core.annotation.Excel;
|
||||
import com.mhd.wms.domain.receiptOrderAccount.entity.ReceiptOrderAccount;
|
||||
import com.mhd.wms.interfaces.dto.receiptMaterialDetail.ReceiptMaterialDetailDTO;
|
||||
import com.mhd.wms.interfaces.dto.stockInOrder.StockInOrderBaseDTO;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
@@ -152,4 +153,7 @@ public class StockReceiptOrderDTO extends StockInOrderBaseDTO {
|
||||
|
||||
@ApiModelProperty(name = "创建时间查询条件结束日期")
|
||||
private String createTimeEnd;
|
||||
}
|
||||
|
||||
@ApiModelProperty("费用")
|
||||
List<ReceiptOrderAccount> receiptOrderAccountList;
|
||||
}
|
||||
Reference in New Issue
Block a user