wms费用科目修改;

This commit is contained in:
王奎兴
2026-04-11 15:35:16 +08:00
parent 51dc67957c
commit e9d4f699ee
36 changed files with 687 additions and 205 deletions
@@ -142,5 +142,6 @@ public class HandoverTaskOrder extends BaseVOEntity {
@ApiModelProperty("作业人姓名")
private String operatorsName;
}
@ApiModelProperty("计费信息")
private String billingJson;
}
@@ -141,5 +141,6 @@ public class HandoverTaskOrderPO extends BaseVOEntity {
@ApiModelProperty("物料明细(根据复核单数据生成,数量为复核数量)")
private List<TaskHandoverMaterialDetailPO> materialDetailList;
}
@ApiModelProperty("计费信息")
private String billingJson;
}
@@ -142,4 +142,6 @@ public class HandoverTaskOrderDO extends BaseVOEntity {
@ApiModelProperty("app上传的图片")
private String pictureApp;
}
private String billingJson;
}
@@ -25,6 +25,7 @@ import com.mhd.wms.domain.outMaterialDetail.entity.OutMaterialDetail;
import com.mhd.wms.domain.outMaterialDetail.repository.mapper.OutMaterialDetailMapper;
import com.mhd.wms.domain.pickingMaterialDetail.repository.mapper.PickingMaterialDetailMapper;
import com.mhd.wms.domain.pickingMaterialDetail.repository.po.PickingMaterialDetailPO;
import com.mhd.wms.domain.stockOutOrder.repository.facade.IStockOutOrderService;
import com.mhd.wms.domain.taskHandoverMaterialDetail.repository.po.TaskHandoverMaterialDetailPO;
import com.mhd.wms.domain.shiftManage.repository.po.ShiftManagePO;
import com.mhd.wms.domain.shiftManage.repository.todo.ShiftManageDO;
@@ -70,6 +71,8 @@ public class HandoverTaskOrderDomainService {
private PickingMaterialDetailMapper pickingMaterialDetailMapper;
@Autowired
private IMaterialBarCodeService materialBarCodeService;
@Autowired
private IStockOutOrderService stockOutOrderService;
/**
@@ -277,11 +280,14 @@ public class HandoverTaskOrderDomainService {
LoginUser loginUser = SecurityUtils.getLoginUser();
//修改库存
xgkc(handoverTaskOrderIds,loginUser);
HandoverTaskOrder handoverTaskOrder = handoverTaskOrderService.getById(handoverTaskOrderIds.get(0));
stockOutOrderService.update(null,new UpdateWrapper<StockOutOrder>().lambda().set(StockOutOrder::getBillingJson,handoverTaskOrderDO.getBillingJson()).eq(StockOutOrder::getOutOrderNumber,handoverTaskOrder.getOrderNumber()));
return handoverTaskOrderService.update(null, new UpdateWrapper<HandoverTaskOrder>().lambda()
.set(HandoverTaskOrder::getStatus, 2)
.set(HandoverTaskOrder::getUpdateBy, loginUser.getUserid())
.set(HandoverTaskOrder::getUpdateByName, loginUser.getUsername())
.set(HandoverTaskOrder::getUpdateTime, new Date())
.set(HandoverTaskOrder::getBillingJson, handoverTaskOrderDO.getBillingJson())
.in(HandoverTaskOrder::getHandoverTaskOrderId, handoverTaskOrderIds)
);
}
@@ -524,4 +530,4 @@ public class HandoverTaskOrderDomainService {
}
}
@@ -112,4 +112,7 @@ public class ReceiptOrderAccount extends BaseVOEntity {
@ApiModelProperty(value = "单价")
@Excel(name = "单价", width = 15)
private BigDecimal price;
@ApiModelProperty(value = "计算价格json")
private String amountJson;
}
@@ -352,4 +352,12 @@ public class StockInOrder extends BaseVOEntity {
@ApiModelProperty("订单状态")
@Excel(name = "订单状态")
private String orderStatus;
@ApiModelProperty(name = "费用参数json")
private String billingJson;
@ApiModelProperty("结算币种")
private String settlementCurrency;
@ApiModelProperty("业务员ID")
private String salesmanId;
@ApiModelProperty("业务员名称")
private String salesmanName;
}
@@ -4,6 +4,7 @@ import com.fasterxml.jackson.annotation.JsonFormat;
import com.mhd.common.core.annotation.Excel;
import com.mhd.common.core.web.domain.BaseVOEntity;
import com.mhd.wms.domain.inMaterialDetail.repository.po.InMaterialDetailPO;
import com.mhd.wms.domain.receiptOrderAccount.entity.ReceiptOrderAccount;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -373,4 +374,15 @@ public class StockInOrderPO extends BaseVOEntity {
@ApiModelProperty("订单状态")
@Excel(name = "订单状态")
private String orderStatus;
@ApiModelProperty(name = "费用参数json")
private String billingJson;
@ApiModelProperty("费用")
List<ReceiptOrderAccount> receiptOrderAccountList;
@ApiModelProperty("结算币种")
private String settlementCurrency;
@ApiModelProperty("业务员ID")
private String salesmanId;
@ApiModelProperty("业务员名称")
private String salesmanName;
}
@@ -4,6 +4,7 @@ import com.fasterxml.jackson.annotation.JsonFormat;
import com.mhd.common.core.annotation.Excel;
import com.mhd.common.core.web.domain.BaseVOEntity;
import com.mhd.wms.domain.inMaterialDetail.repository.todo.InMaterialDetailDO;
import com.mhd.wms.domain.receiptOrderAccount.entity.ReceiptOrderAccount;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
@@ -379,4 +380,15 @@ public class StockInOrderDO extends BaseVOEntity {
@ApiModelProperty("入库明细-物料编码,模糊匹配")
private String materialCode;
@ApiModelProperty(name = "费用参数json")
private String billingJson;
@ApiModelProperty("费用")
List<ReceiptOrderAccount> receiptOrderAccountList;
@ApiModelProperty("结算币种")
private String settlementCurrency;
@ApiModelProperty("业务员ID")
private String salesmanId;
@ApiModelProperty("业务员名称")
private String salesmanName;
}
@@ -369,4 +369,14 @@ public class StockOutOrder extends BaseVOEntity {
@ApiModelProperty("app上传的图片")
private String pictureApp;
@ApiModelProperty("计费信息")
private String billingJson;
@ApiModelProperty("结算币种")
private String settlementCurrency;
@ApiModelProperty("业务员ID")
private String salesmanId;
@ApiModelProperty("业务员名称")
private String salesmanName;
}
@@ -5,6 +5,7 @@ import com.mhd.common.core.annotation.Excel;
import com.mhd.common.core.web.domain.BaseVOEntity;
import com.mhd.wms.domain.outMaterialDetail.repository.po.OutMaterialCheckPO;
import com.mhd.wms.domain.outMaterialDetail.repository.po.OutMaterialDetailPO;
import com.mhd.wms.domain.receiptOrderAccount.entity.ReceiptOrderAccount;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -379,5 +380,14 @@ public class StockOutOrderPO extends BaseVOEntity {
@ApiModelProperty("出库总数量")
private BigDecimal totalOutboundQuantity;
@ApiModelProperty("计费信息")
private String billingJson;
@ApiModelProperty("结算币种")
private String settlementCurrency;
@ApiModelProperty("业务员ID")
private String salesmanId;
@ApiModelProperty("业务员名称")
private String salesmanName;
@ApiModelProperty("费用")
List<ReceiptOrderAccount> receiptOrderAccountList;
}
@@ -4,6 +4,7 @@ import com.fasterxml.jackson.annotation.JsonFormat;
import com.mhd.common.core.annotation.Excel;
import com.mhd.common.core.web.domain.BaseVOEntity;
import com.mhd.wms.domain.outMaterialDetail.repository.todo.OutMaterialDetailDO;
import com.mhd.wms.domain.receiptOrderAccount.entity.ReceiptOrderAccount;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
@@ -415,4 +416,14 @@ public class StockOutOrderDO extends BaseVOEntity {
@ApiModelProperty(name = "已分配数量总数量")
private BigDecimal alreadyAllocationQuantityAll;
@ApiModelProperty("计费信息")
private String billingJson;
@ApiModelProperty("结算币种")
private String settlementCurrency;
@ApiModelProperty("业务员ID")
private String salesmanId;
@ApiModelProperty("业务员名称")
private String salesmanName;
@ApiModelProperty("费用")
List<ReceiptOrderAccount> receiptOrderAccountList;
}
@@ -129,8 +129,9 @@ public class StockReceiptOrder extends BaseVOEntity {
@ApiModelProperty("备注")
@Excel(name = "备注")
private String remark;
@ApiModelProperty(name = "费用参数json")
private String billingJson;
}
}
@@ -159,4 +159,7 @@ public class StockReceiptOrderPO extends StockInOrderBasePO {
private BigDecimal totalArea;
@ApiModelProperty("费用")
List<ReceiptOrderAccount> receiptOrderAccountList;
@ApiModelProperty(name = "费用参数json")
private String billingJson;
}
@@ -179,4 +179,7 @@ public class StockReceiptOrderDO extends StockInOrderBaseDO {
@ApiModelProperty("费用")
List<ReceiptOrderAccount> receiptOrderAccountList;
@ApiModelProperty(name = "费用参数json")
private String billingJson;
}
@@ -68,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 com.mhd.wms.interfaces.dto.stockReceiptOrder.StockReceiptOrderDTO;
import io.swagger.annotations.ApiModelProperty;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
@@ -419,8 +420,9 @@ public class StockReceiptOrderDomainService {
genStockReceiptTaskOrderByReceivingGoods(stockReceiptOrderPO,stockReceiptOrderDO);
//收货后上架前 生成质检
genQualityInspectionByReceivingGoods(stockReceiptOrderDO);
saveAmount(stockReceiptOrderDO);
//saveAmount(stockReceiptOrderDO);
//更新入库单状态
stockReceiptOrderPO.setBillingJson(stockReceiptOrderDO.getBillingJson());
updateStockInOrder(stockReceiptOrderPO);
//修改收货单 设置收货单收货需要更新的数据数据
return updateStockReceiptOrder(stockReceiptOrderDO, stockReceiptOrderPO);
@@ -439,60 +441,7 @@ public class StockReceiptOrderDomainService {
}
}
/**
* 定时任务整租推送到bms装卸费
*/
public void wholeRentSynchronizationZXF(Long busId) {
StockReceiptOrder stockReceiptOrder = stockReceiptOrderService.getById(busId);
String inOrderNumber = stockReceiptOrder.getInOrderNumber();
StockInOrder stockInOrder = stockInOrderService.getOne(new QueryWrapper<StockInOrder>().lambda().eq(StockInOrder::getInOrderNumber, inOrderNumber),false);
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(stockReceiptOrder));
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.setTaxRate(account.getRate());
//businessDataPushDTO.setSettlementCurrency(leasePO.getSettlementCurrency());
//businessDataPushDTO.setSalesmanId(leasePO.getSalesmanId());
bmsServiceFeign.wholeRentSynchronizationZXF(businessDataPushDTO);
}
log.info("定时任务整租推送到bms触发--结束");
}
/**
* 同步更新入库单明细的收货数量(总毛重/总净重/总面积/总体积不再写入入库单明细,逻辑已注释保留)
@@ -709,6 +658,7 @@ public class StockReceiptOrderDomainService {
int addArm = stockReceiptOrderDO.getActualReceiptMaterialQuantity() != null ? stockReceiptOrderDO.getActualReceiptMaterialQuantity() : 0;
stockReceiptOrder.setReceiptMaterialQuantity(prevRmq + addArm);
}
stockReceiptOrder.setBillingJson(stockReceiptOrderDO.getBillingJson());
stockReceiptOrder.setStatus(2);
stockReceiptOrder.setUpdateBy(loginUser.getUserid());
stockReceiptOrder.setUpdateByName(loginUser.getUsername());
@@ -736,6 +686,7 @@ public class StockReceiptOrderDomainService {
StockInOrder stockInOrder = new StockInOrder();
stockInOrder.setInOrderNumber(stockReceiptOrderPO.getInOrderNumber());
stockInOrder.setStatus(3);
stockInOrder.setBillingJson(stockReceiptOrderPO.getBillingJson());
stockInOrder.setUpdateBy(loginUser.getUserid());
stockInOrder.setUpdateByName(loginUser.getUsername());
stockInOrder.setUpdateTime(new Date());
@@ -808,10 +759,18 @@ public class StockReceiptOrderDomainService {
.set(StockReceiptOrder::getUpdateTime, new Date())
.eq(StockReceiptOrder::getReceiptOrderId, receiptOrderId));
//推送bms
wholeRentSynchronizationZXF(receiptOrderId);
//wholeRentSynchronizationZXF(receiptOrderId);
return update;
}
public void updateInOrder(StockReceiptOrderDTO stockReceiptOrderDTO) {
String inOrderNumber = stockReceiptOrderDTO.getInOrderNumber();
Long receiptOrderId = stockReceiptOrderDTO.getReceiptOrderId();
String billingJson = stockReceiptOrderDTO.getBillingJson();
stockInOrderService.update(null, new UpdateWrapper<StockInOrder>().lambda().set(StockInOrder::getBillingJson,billingJson).eq(StockInOrder::getInOrderNumber, inOrderNumber));
stockReceiptOrderService.update(null, new UpdateWrapper<StockReceiptOrder>().lambda().set(StockReceiptOrder::getBillingJson,billingJson).eq(StockReceiptOrder::getReceiptOrderId, receiptOrderId));
}
/**
* 收货单完成时:按累计已收与计划数量比较,更新明细 receipt_status3 正常收完 / 4 少收 / 5 超收)
* <p>PC 主子行拆分收货时:计划数量只在主行(level=1),子行 quantity 常为 0;须按「主行已收 + 其下子行已收」与主行计划比较,