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
@@ -268,11 +268,13 @@ public class HandoverTaskOrderApplicationService {
// 1. PDA上传图片插入交接作业单
handoverTaskOrderService.update(new LambdaUpdateWrapper<HandoverTaskOrder>()
.eq(HandoverTaskOrder::getOrderNumber, orderNumber)
.set(HandoverTaskOrder::getBillingJson, handoverTaskOrderDO.getBillingJson())
.set(HandoverTaskOrder::getPictureApp, handoverTaskOrderDO.getPictureApp()));
// 2. PDA上传图片插入出库管理,状态改为已出库
stockOutOrderService.update(new LambdaUpdateWrapper<StockOutOrder>()
.eq(StockOutOrder::getOutOrderNumber, orderNumber)
.set(StockOutOrder::getStatus, "9")
.set(StockOutOrder::getBillingJson, handoverTaskOrderDO.getBillingJson())
.set(StockOutOrder::getPictureApp, handoverTaskOrderDO.getPictureApp()));
// 3. 参考PC端完成交接:根据orderNumber查询交接单ID,执行库存扣减+交接状态更新
List<HandoverTaskOrder> handoverList = handoverTaskOrderService.list(
@@ -290,4 +292,4 @@ public class HandoverTaskOrderApplicationService {
}
}
}
}
}
@@ -4,6 +4,10 @@ import cn.hutool.core.util.ObjectUtil;
import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson2.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.mhd.common.core.domain.dto.BusinessDataPushDTO;
import com.mhd.common.core.domain.po.UserPo;
import com.mhd.common.core.enums.DictCode;
import com.mhd.common.core.exception.ServiceException;
@@ -11,6 +15,7 @@ import com.mhd.common.core.utils.StringUtils;
import com.mhd.common.core.utils.poi.ExcelUtil;
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.UserServiceFeign;
import com.mhd.system.api.domain.SysDictData;
@@ -18,14 +23,26 @@ import com.mhd.system.api.domain.WarehouseFeignPO;
import com.mhd.system.api.domain.cache.AssociationWarehouseCacheDO;
import com.mhd.system.api.domain.cache.SystemServiceCacheUtil;
import com.mhd.system.api.model.LoginUser;
import com.mhd.wms.domain.handoverTaskOrder.entity.HandoverTaskOrder;
import com.mhd.wms.domain.handoverTaskOrder.repository.facade.IHandoverTaskOrderService;
import com.mhd.wms.domain.inMaterialDetail.repository.todo.InMaterialDetailDO;
import com.mhd.wms.domain.materialBaseInfo.entity.MaterialBaseInfo;
import com.mhd.wms.domain.materialBaseInfo.repository.facade.IMaterialBaseInfoService;
import com.mhd.wms.domain.materialBaseInfo.repository.po.MaterialBaseInfoPO;
import com.mhd.wms.domain.materialBaseInfo.repository.todo.MaterialBaseInfoDO;
import com.mhd.wms.domain.receiptOrderAccount.entity.ReceiptOrderAccount;
import com.mhd.wms.domain.receiptOrderAccount.repository.facade.IReceiptOrderAccountService;
import com.mhd.wms.domain.stockInOrder.entity.StockInOrder;
import com.mhd.wms.domain.stockInOrder.repository.facade.IStockInOrderService;
import com.mhd.wms.domain.stockInOrder.repository.po.StockInOrderPO;
import com.mhd.wms.domain.stockInOrder.repository.todo.StockInOrderDO;
import com.mhd.wms.domain.stockInOrder.service.StockInOrderDomainService;
import com.mhd.wms.domain.stockOutOrder.entity.StockOutOrder;
import com.mhd.wms.domain.stockOutOrder.repository.facade.IStockOutOrderService;
import com.mhd.wms.domain.stockOutOrder.repository.todo.StockOutOrderDO;
import com.mhd.wms.domain.stockReceiptOrder.entity.StockReceiptOrder;
import com.mhd.wms.domain.stockReceiptOrder.repository.facade.IStockReceiptOrderService;
import com.mhd.wms.domain.stockReceiptOrder.repository.todo.StockReceiptOrderDO;
import com.mhd.wms.interfaces.dto.stockInOrder.StockInOrderImportRowDTO;
import lombok.extern.slf4j.Slf4j;
import org.apache.poi.ss.usermodel.*;
@@ -34,6 +51,7 @@ import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import java.io.InputStream;
import java.math.BigDecimal;
import java.text.ParseException;
@@ -55,12 +73,24 @@ import java.util.stream.Collectors;
public class StockInOrderApplicationService {
@Autowired
private StockInOrderDomainService stockInOrderDomainService;
@Autowired
@Resource
private UserServiceFeign userServiceFeign;
@Autowired
@Resource
private SystemServiceFeign systemServiceFeign;
@Resource
private BmsServiceFeign bmsServiceFeign;
@Autowired
private IMaterialBaseInfoService materialBaseInfoService;
@Resource
private IReceiptOrderAccountService receiptOrderAccountService;
@Autowired
private IStockInOrderService stockInOrderService;
@Autowired
private IStockReceiptOrderService stockReceiptOrderService;
@Autowired
private IStockOutOrderService stockOutOrderService;
@Autowired
private IHandoverTaskOrderService handoverTaskOrderService;
/**
@@ -154,7 +184,13 @@ public class StockInOrderApplicationService {
}
}
}
return stockInOrderDomainService.queryList(stockInOrderDO);
List<StockInOrderPO> stockInOrderPOS = stockInOrderDomainService.queryList(stockInOrderDO);
for (StockInOrderPO stockInOrderPO : stockInOrderPOS) {
Long inOrderId = stockInOrderPO.getInOrderId();
List<ReceiptOrderAccount> list = receiptOrderAccountService.list(new LambdaQueryWrapper<ReceiptOrderAccount>().eq(ReceiptOrderAccount::getOrderId, inOrderId));
stockInOrderPO.setReceiptOrderAccountList(list);
}
return stockInOrderPOS;
}
@@ -200,6 +236,162 @@ public class StockInOrderApplicationService {
return stockInOrderDomainService.update(stockInOrderDO);
}
public Boolean saveAmount(StockInOrderDO stockInOrderDO) {
boolean r = true;
Long inOrderId = stockInOrderDO.getInOrderId();
String inOrderNumber = stockInOrderDO.getInOrderNumber();
String billingJson = stockInOrderDO.getBillingJson();
if (billingJson != null) {
stockInOrderService.update(null,new LambdaUpdateWrapper<StockInOrder>().set(StockInOrder::getBillingJson,billingJson).eq(StockInOrder::getInOrderId,inOrderId));
stockReceiptOrderService.update(null,new LambdaUpdateWrapper<StockReceiptOrder>().set(StockReceiptOrder::getBillingJson,billingJson).eq(StockReceiptOrder::getInOrderNumber,inOrderNumber));
}
receiptOrderAccountService.remove(new QueryWrapper<ReceiptOrderAccount>().lambda().eq(ReceiptOrderAccount::getOrderId, inOrderId));
List<ReceiptOrderAccount> receiptOrderAccountList = stockInOrderDO.getReceiptOrderAccountList();
if (receiptOrderAccountList != null && !receiptOrderAccountList.isEmpty()) {
for (ReceiptOrderAccount receiptOrderAccount : receiptOrderAccountList) {
receiptOrderAccount.setOrderId(inOrderId);
}
r = receiptOrderAccountService.saveBatch(receiptOrderAccountList);
wholeRentSynchronizationZXF(inOrderId);
}
return r;
}
public Boolean saveOutAmount(StockOutOrderDO stockOutOrderDO) {
boolean r = true;
Long outOrderId = stockOutOrderDO.getOutOrderId();
String outOrderNumber = stockOutOrderDO.getOutOrderNumber();
String billingJson = stockOutOrderDO.getBillingJson();
if (billingJson != null) {
stockOutOrderService.update(null,new LambdaUpdateWrapper<StockOutOrder>().set(StockOutOrder::getBillingJson,billingJson).eq(StockOutOrder::getOutOrderId,outOrderId));
handoverTaskOrderService.update(null,new LambdaUpdateWrapper<HandoverTaskOrder>().set(HandoverTaskOrder::getBillingJson,billingJson).eq(HandoverTaskOrder::getOrderNumber,outOrderNumber));
}
receiptOrderAccountService.remove(new QueryWrapper<ReceiptOrderAccount>().lambda().eq(ReceiptOrderAccount::getOrderId, outOrderId));
List<ReceiptOrderAccount> receiptOrderAccountList = stockOutOrderDO.getReceiptOrderAccountList();
if (receiptOrderAccountList != null && !receiptOrderAccountList.isEmpty()) {
for (ReceiptOrderAccount receiptOrderAccount : receiptOrderAccountList) {
receiptOrderAccount.setOrderId(outOrderId);
}
r = receiptOrderAccountService.saveBatch(receiptOrderAccountList);
wholeRentSynchronizationZXF(outOrderId);
}
return r;
}
/**
* 定时任务整租推送到bms装卸费
*/
public void wholeRentSynchronizationZXF(Long busId) {
StockInOrder stockInOrder = stockInOrderService.getOne(new QueryWrapper<StockInOrder>().lambda().eq(StockInOrder::getInOrderId, busId),false);
StockOutOrder stockOutOrder = stockOutOrderService.getOne(new QueryWrapper<StockOutOrder>().lambda().eq(StockOutOrder::getOutOrderId, busId),false);
if (stockInOrder != null) {
Long shipperId = stockInOrder.getShipperId();
Long organizationId = stockInOrder.getOrganizationId();
String organizationName = stockInOrder.getOrganizationName();
Long topOrganizationId = stockInOrder.getTopOrganizationId();
String inOrderNumber = stockInOrder.getInOrderNumber();
String settlementCurrency = stockInOrder.getSettlementCurrency();
String salesmanId = stockInOrder.getSalesmanId();
List<ReceiptOrderAccount> accounts = receiptOrderAccountService.list(new QueryWrapper<ReceiptOrderAccount>().lambda().eq(ReceiptOrderAccount::getOrderId, busId));
for (ReceiptOrderAccount account : accounts) {
BigDecimal amount = account.getAmount();
String subjectCode = account.getSubjectCode();
String subjectName = account.getSubjectName();
String serviceItemsCode = account.getServiceItemsCode();
if (shipperId == null) {
continue;
}
BusinessDataPushDTO businessDataPushDTO = new BusinessDataPushDTO();
businessDataPushDTO.setOrganizationId(organizationId);
businessDataPushDTO.setTopOrganizationId(topOrganizationId);
businessDataPushDTO.setOrganizationName(organizationName);
businessDataPushDTO.setBelongModuleCode("wms");
businessDataPushDTO.setBillAmount(account.getAmount());//计费金额
businessDataPushDTO.setEstimatedCost(account.getSettlementAmount());//计算金额
businessDataPushDTO.setOriginalBusinessNum(inOrderNumber);
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(settlementCurrency);
businessDataPushDTO.setSalesmanId(salesmanId);
if (amount != null&&amount.compareTo(BigDecimal.ZERO)!=0) {
bmsServiceFeign.wholeRentSynchronizationZXF(businessDataPushDTO);
}
}
} else if (stockOutOrder != null) {
Long shipperId = stockOutOrder.getShipperId();
Long organizationId = stockOutOrder.getOrganizationId();
String organizationName = stockOutOrder.getOrganizationName();
Long topOrganizationId = stockOutOrder.getTopOrganizationId();
String inOrderNumber = stockOutOrder.getOutOrderNumber();
String settlementCurrency = stockOutOrder.getSettlementCurrency();
String salesmanId = stockOutOrder.getSalesmanId();
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;
}
BusinessDataPushDTO businessDataPushDTO = new BusinessDataPushDTO();
businessDataPushDTO.setOrganizationId(organizationId);
businessDataPushDTO.setTopOrganizationId(topOrganizationId);
businessDataPushDTO.setOrganizationName(organizationName);
businessDataPushDTO.setBelongModuleCode("wms");
businessDataPushDTO.setBillAmount(account.getAmount());//计费金额
businessDataPushDTO.setEstimatedCost(account.getSettlementAmount());//计算金额
businessDataPushDTO.setOriginalBusinessNum(inOrderNumber);
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(settlementCurrency);
businessDataPushDTO.setSalesmanId(salesmanId);
bmsServiceFeign.wholeRentSynchronizationZXF(businessDataPushDTO);
}
} else {
throw new RuntimeException("未找到业务单!");
}
log.info("定时任务整租推送到bms触发--结束");
}
/**
* 批量删除入库单
* 只有已创建状态(status = 1)的入库单可以删除
@@ -1867,4 +2059,4 @@ public class StockInOrderApplicationService {
}
}
}
}
@@ -38,6 +38,8 @@ import com.mhd.wms.domain.outMaterialDetail.repository.todo.OutMaterialDetailDO;
import com.mhd.wms.domain.outMaterialDetail.service.OutMaterialDetailDomainService;
import com.mhd.wms.domain.pickingMaterialDetail.repository.facade.IPickingMaterialDetailService;
import com.mhd.wms.domain.pickingMaterialDetail.repository.po.PickingMaterialDetailPO;
import com.mhd.wms.domain.receiptOrderAccount.entity.ReceiptOrderAccount;
import com.mhd.wms.domain.receiptOrderAccount.repository.facade.IReceiptOrderAccountService;
import com.mhd.wms.domain.stockOutOrder.entity.StockOutOrder;
import com.mhd.wms.domain.stockOutOrder.repository.facade.IStockOutOrderService;
import com.mhd.wms.domain.stockOutOrder.repository.po.StockOutOrderPO;
@@ -84,6 +86,8 @@ public class StockOutOrderApplicationService {
private IOutMaterialDetailService outMaterialDetailService;
@Autowired
private IPickingMaterialDetailService pickingMaterialDetailService;
@Autowired
private IReceiptOrderAccountService receiptOrderAccountService;
/**
@@ -210,6 +214,8 @@ public class StockOutOrderApplicationService {
// 复核总数量:从out_material_detail汇总check_quantity
BigDecimal checkSum = materialDetailList.stream().map(OutMaterialDetailPO::getCheckQuantity).filter(Objects::nonNull).reduce(BigDecimal.ZERO, BigDecimal::add);
stockOutOrderPO.setCheckQuantity(checkSum);
List<ReceiptOrderAccount> list = receiptOrderAccountService.list(new LambdaQueryWrapper<ReceiptOrderAccount>().eq(ReceiptOrderAccount::getOrderId, stockOutOrderPO.getOutOrderId()));
stockOutOrderPO.setReceiptOrderAccountList(list);
}
return stockOutOrderPOS;
}
@@ -44,6 +44,7 @@ import com.mhd.wms.domain.stockReceiptOrder.repository.po.StockReceiptOrderPO;
import com.mhd.wms.domain.stockReceiptOrder.repository.todo.NoReceiptOrderDO;
import com.mhd.wms.domain.stockReceiptOrder.repository.todo.StockReceiptOrderDO;
import com.mhd.wms.domain.stockReceiptOrder.service.StockReceiptOrderDomainService;
import com.mhd.wms.interfaces.dto.stockReceiptOrder.StockReceiptOrderDTO;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -1561,6 +1562,10 @@ public class StockReceiptOrderApplicationService {
return stockReceiptOrderDomainService.completeReceipt(receiptOrderId, true);
}
public void updateInOrder(StockReceiptOrderDTO stockReceiptOrderDTO){
stockReceiptOrderDomainService.updateInOrder(stockReceiptOrderDTO);
}
public Boolean genStockShelfOrder(Long receiptOrderId){
return stockReceiptOrderDomainService.genStockShelfOrder(receiptOrderId);
}
@@ -1912,6 +1917,7 @@ public class StockReceiptOrderApplicationService {
throw new ServiceException("收货单已完成收货");
}
StockReceiptOrderDO returnStockReceiptOrderDO = new StockReceiptOrderDO();
returnStockReceiptOrderDO.setBillingJson(stockReceiptOrderDO.getBillingJson());
returnStockReceiptOrderDO.setReceiptOrderAccountList(stockReceiptOrderDO.getReceiptOrderAccountList());
returnStockReceiptOrderDO.setUpdateTime(stockReceiptOrderDO.getUpdateTime());
returnStockReceiptOrderDO.setReceiptOrderId(stockReceiptOrderPO.getReceiptOrderId());
@@ -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须按主行已收 + 其下子行已收与主行计划比较
@@ -172,4 +172,6 @@ public class HandoverTaskOrderDTO extends BaseVOEntity {
@ApiModelProperty("app上传的图片")
private String pictureApp;
}
private String billingJson;
}
@@ -2,6 +2,7 @@ package com.mhd.wms.interfaces.dto.stockInOrder;
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.inMaterialDetail.InMaterialDetailDTO;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -376,4 +377,15 @@ public class StockInOrderDTO extends StockInOrderBaseDTO {
@ApiModelProperty("入库明细-物料编码,模糊匹配,与前端参数 materialCode 一致")
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;
}
@@ -3,6 +3,7 @@ package com.mhd.wms.interfaces.dto.stockOutOrder;
import com.fasterxml.jackson.annotation.JsonAlias;
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.outMaterialDetail.OutMaterialDetailDTO;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -405,4 +406,14 @@ public class StockOutOrderDTO extends StockOutOrderBaseDTO {
@ApiModelProperty("出库交接图片,PDA出库交接时上传的照片,多张图片以逗号隔开")
private String pictureApp;
@ApiModelProperty("计费信息")
private String billingJson;
@ApiModelProperty("结算币种")
private String settlementCurrency;
@ApiModelProperty("业务员ID")
private String salesmanId;
@ApiModelProperty("业务员名称")
private String salesmanName;
@ApiModelProperty("费用")
List<ReceiptOrderAccount> receiptOrderAccountList;
}
@@ -156,4 +156,7 @@ public class StockReceiptOrderDTO extends StockInOrderBaseDTO {
@ApiModelProperty("费用")
List<ReceiptOrderAccount> receiptOrderAccountList;
@ApiModelProperty(name = "费用参数json")
private String billingJson;
}
@@ -8,8 +8,11 @@ import com.mhd.common.core.utils.StringUtils;
import com.mhd.wms.application.service.stockInOrder.StockInOrderApplicationService;
import com.mhd.wms.domain.stockInOrder.repository.po.StockInOrderPO;
import com.mhd.wms.domain.stockInOrder.repository.todo.StockInOrderDO;
import com.mhd.wms.domain.stockOutOrder.repository.todo.StockOutOrderDO;
import com.mhd.wms.interfaces.assember.stockInOrder.StockInOrderAssembler;
import com.mhd.wms.interfaces.assember.stockOutOrder.StockOutOrderAssembler;
import com.mhd.wms.interfaces.dto.stockInOrder.StockInOrderDTO;
import com.mhd.wms.interfaces.dto.stockOutOrder.StockOutOrderDTO;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@@ -32,6 +35,8 @@ public class StockInOrderApi extends BaseController {
@Resource
private StockInOrderAssembler stockInOrderAssembler;
@Resource
private StockOutOrderAssembler stockOutOrderAssembler;
/**
* 分页查询入库单列表
@@ -63,6 +68,28 @@ public class StockInOrderApi extends BaseController {
}
}
/**
* 编辑入库单
*/
@ApiOperation("编辑入库单")
@PostMapping("/saveAmount")
public AjaxResult saveAmount(@RequestBody StockInOrderDTO stockInOrderDTO)
{
StockInOrderDO stockInOrderDO = stockInOrderAssembler.toDO(stockInOrderDTO);
return toAjax(stockInOrderApplicationService.saveAmount(stockInOrderDO));
}
/**
* 编辑入库单
*/
@ApiOperation("编辑入库单")
@PostMapping("/saveOutAmount")
public AjaxResult saveOutAmount(@RequestBody StockOutOrderDTO stockOutOrderDTO)
{
StockOutOrderDO stockOutOrderDO = stockOutOrderAssembler.toDO(stockOutOrderDTO);
return toAjax(stockInOrderApplicationService.saveOutAmount(stockOutOrderDO));
}
/**
* 批量删除入库单
*/
@@ -129,4 +156,4 @@ public class StockInOrderApi extends BaseController {
return AjaxResult.success(stockInOrderApplicationService.closeOrder(stockInOrderDO));
}
}
}
@@ -79,6 +79,7 @@ public class StockReceiptOrderAppApi extends BaseController {
@ApiOperation("完成收货")
@PostMapping("/completeReceipt")
public AjaxResult completeReceipt(@RequestBody StockReceiptOrderDTO stockReceiptOrderDTO) {
stockReceiptOrderApplicationService.updateInOrder(stockReceiptOrderDTO);
return toAjax(stockReceiptOrderApplicationService.completeReceiptByApp(stockReceiptOrderDTO.getReceiptOrderId()));
}
@@ -98,4 +99,4 @@ public class StockReceiptOrderAppApi extends BaseController {
return toAjax(stockReceiptOrderApplicationService.noOrderReceipt(stockReceiptOrderDO));
}
}
}