Merge remote-tracking branch 'origin/dev' into dev

This commit is contained in:
赵辉
2026-04-13 09:24:11 +08:00
37 changed files with 719 additions and 206 deletions
@@ -250,4 +250,7 @@ public class UserPo {
@ApiModelProperty("备注")
private String remark;
}
@ApiModelProperty("结算币种")
private String settlementCurrency;
}
@@ -129,111 +129,137 @@ public class ContractManageApplicationService {
return contractManageDomainService.queryList(contractManageDO);
}
public BigDecimal getAmount(List<SubjectAndPriceReturn> subjectAndPriceReturnList) {
// public BigDecimal getAmount(List<SubjectAndPriceReturn> subjectAndPriceReturnList) {
// if (subjectAndPriceReturnList == null || subjectAndPriceReturnList.size() == 1) {
// SubjectAndPriceReturn subjectAndPriceReturn = subjectAndPriceReturnList.get(0);
// Long billingRulesId = subjectAndPriceReturn.getBillingRulesId();
// String name = subjectAndPriceReturn.getName();
// BillingRulesPO billingRule = contractManageDetailMapper.getBillingRules(billingRulesId);
// List<BillingParamsPO> billingParams = contractManageDetailMapper.getBillingParams(billingRulesId);
// if (billingParams != null && billingParams.size() > 0) {
// BillingParamsPO billingParam = billingParams.get(0);
// String billingParamsJson = billingParam.getBillingParamsJson();
// String preSetRules = billingParam.getPreSetRules();
// List<Map<String, Object>> preSetRulesList = JSON.parseObject(preSetRules, new TypeReference<List<Map<String, Object>>>() {
// });
// List<Map<String, Object>> billingParamsList = JSON.parseObject(billingParamsJson, new TypeReference<List<Map<String, Object>>>() {
// });
// if (billingParamsList != null && billingParamsList.size() ==2) {
// Map<String, Object> targetMap = billingParamsList.stream()
// .filter(map -> name.equals(map.get("fieldsName"))) // 关键匹配条件
// .findFirst() // 取第一个
// .orElse(null); // 没找到返回null
// String chargingId = (String) targetMap.get("chargingId");
// Integer sort = (Integer) targetMap.get("sort");
// Map<String, Object> reles = preSetRulesList.get(0);
// String price = (String) reles.get("fields"+sort);
// String billingFormula = billingRule.getBillingFormula();
// billingFormula = billingFormula.replace(chargingId, price);
// //需要判断阶梯类型进行获取各计费标志的取值,拼接公式
// List<BillingParamsDetailDTO> billingParamsEntityList = JSON.parseArray(billingParamsJson, BillingParamsDetailDTO.class);
// //将计费参数实体分成两组,即:固定参数和条件参数
// List<BillingParamsDetailDTO> fixedParamsEntityList = billingParamsEntityList.stream().filter(item -> ObjectUtil.equal(item.getLadderType(),1)).collect(Collectors.toList());
// List<BillingParamsDetailDTO> ladderParamsEntityList = billingParamsEntityList.stream().filter(item -> !ObjectUtil.equal(item.getLadderType(),1)).collect(Collectors.toList());
// if (fixedParamsEntityList != null && fixedParamsEntityList.size() > 0) {
// if (subjectAndPriceReturn.getNum() != null) {
// for (BillingParamsDetailDTO ladderParamsEntity : fixedParamsEntityList) {
// String chargingId1 = ladderParamsEntity.getChargingId();
// if (chargingId1 != chargingId) {
// billingFormula = billingFormula.replace(chargingId1, subjectAndPriceReturn.getNum().toEngineeringString());
// }
// }
// }
// }
// return DynamicCalculationUtil.calculate(billingFormula);
// } else {
//
// }
// }
// } else {
// SubjectAndPriceReturn aReturn = subjectAndPriceReturnList.get(0);
// Long id = aReturn.getBillingRulesId();
// BillingRulesPO Rule = contractManageDetailMapper.getBillingRules(id);
// String billingFormula = Rule.getBillingFormula();
// for (SubjectAndPriceReturn subjectAndPriceReturn : subjectAndPriceReturnList) {
// Long billingRulesId = subjectAndPriceReturn.getBillingRulesId();
// String name = subjectAndPriceReturn.getName();
// BillingRulesPO billingRule = contractManageDetailMapper.getBillingRules(billingRulesId);
// List<BillingParamsPO> billingParams = contractManageDetailMapper.getBillingParams(billingRulesId);
// if (billingParams != null && billingParams.size() > 0) {
// BillingParamsPO billingParam = billingParams.get(0);
// String billingParamsJson = billingParam.getBillingParamsJson();
// String preSetRules = billingParam.getPreSetRules();
// List<Map<String, Object>> preSetRulesList = JSON.parseObject(preSetRules, new TypeReference<List<Map<String, Object>>>() {
// });
// List<Map<String, Object>> billingParamsList = JSON.parseObject(billingParamsJson, new TypeReference<List<Map<String, Object>>>() {
// });
// if (billingParamsList != null && billingParamsList.size() ==2) {
// } else {
// Map<String, Object> targetMap = billingParamsList.stream()
// .filter(map -> name.equals(map.get("fieldsName"))) // 关键匹配条件
// .findFirst() // 取第一个
// .orElse(null); // 没找到返回null
// String chargingId = (String) targetMap.get("chargingId");
// Integer sort = (Integer) targetMap.get("sort");
// Map<String, Object> reles = preSetRulesList.get(0);
// String price = (String) reles.get("fields"+sort);
// //String billingFormula = billingRule.getBillingFormula();
// billingFormula = billingFormula.replace(chargingId, price);
// //需要判断阶梯类型进行获取各计费标志的取值,拼接公式
// List<BillingParamsDetailDTO> billingParamsEntityList = JSON.parseArray(billingParamsJson, BillingParamsDetailDTO.class);
// //将计费参数实体分成两组,即:固定参数和条件参数
// List<BillingParamsDetailDTO> fixedParamsEntityList = billingParamsEntityList.stream().filter(item -> ObjectUtil.equal(item.getLadderType(),1)).collect(Collectors.toList());
// List<BillingParamsDetailDTO> ladderParamsEntityList = billingParamsEntityList.stream().filter(item -> !ObjectUtil.equal(item.getLadderType(),1)).collect(Collectors.toList());
// if (fixedParamsEntityList != null && fixedParamsEntityList.size() > 0) {
// if (subjectAndPriceReturn.getNum() != null) {
// for (Map<String, Object> ladderParamsEntity : billingParamsList) {
// String chargingId1 = (String) ladderParamsEntity.get("chargingId");
// String fieldsName = (String) ladderParamsEntity.get("fieldsName");
// if ("纸箱贴标单价".equals(name)) {
// if ("纸箱数量".equals(fieldsName)) {
// billingFormula = billingFormula.replace(chargingId1, subjectAndPriceReturn.getNum().toEngineeringString());
// }
// } else if ("木箱贴标单价".equals(name)){
// if ("木箱数量".equals(fieldsName)) {
// billingFormula = billingFormula.replace(chargingId1, subjectAndPriceReturn.getNum().toEngineeringString());
// }
// }
// }
// }
// }
//
// }
// }
// }
// return DynamicCalculationUtil.calculate(billingFormula);
// }
// return BigDecimal.ZERO;
// }
public Map<String,Object> getAmount(List<SubjectAndPriceReturn> subjectAndPriceReturnList) {
Map<String,Object> map = new HashMap<>();
if (subjectAndPriceReturnList == null || subjectAndPriceReturnList.size() == 1) {
SubjectAndPriceReturn subjectAndPriceReturn = subjectAndPriceReturnList.get(0);
Long billingRulesId = subjectAndPriceReturn.getBillingRulesId();
String name = subjectAndPriceReturn.getName();
BillingRulesPO billingRule = contractManageDetailMapper.getBillingRules(billingRulesId);
List<BillingParamsPO> billingParams = contractManageDetailMapper.getBillingParams(billingRulesId);
if (billingParams != null && billingParams.size() > 0) {
BillingParamsPO billingParam = billingParams.get(0);
String billingParamsJson = billingParam.getBillingParamsJson();
String preSetRules = billingParam.getPreSetRules();
List<Map<String, Object>> preSetRulesList = JSON.parseObject(preSetRules, new TypeReference<List<Map<String, Object>>>() {
});
List<Map<String, Object>> billingParamsList = JSON.parseObject(billingParamsJson, new TypeReference<List<Map<String, Object>>>() {
});
if (billingParamsList != null && billingParamsList.size() ==2) {
Map<String, Object> targetMap = billingParamsList.stream()
.filter(map -> name.equals(map.get("fieldsName"))) // 关键匹配条件
.findFirst() // 取第一个
.orElse(null); // 没找到返回null
String chargingId = (String) targetMap.get("chargingId");
Integer sort = (Integer) targetMap.get("sort");
Map<String, Object> reles = preSetRulesList.get(0);
String price = (String) reles.get("fields"+sort);
String billingFormula = billingRule.getBillingFormula();
billingFormula = billingFormula.replace(chargingId, price);
//需要判断阶梯类型进行获取各计费标志的取值,拼接公式
List<BillingParamsDetailDTO> billingParamsEntityList = JSON.parseArray(billingParamsJson, BillingParamsDetailDTO.class);
//将计费参数实体分成两组,即:固定参数和条件参数
List<BillingParamsDetailDTO> fixedParamsEntityList = billingParamsEntityList.stream().filter(item -> ObjectUtil.equal(item.getLadderType(),1)).collect(Collectors.toList());
List<BillingParamsDetailDTO> ladderParamsEntityList = billingParamsEntityList.stream().filter(item -> !ObjectUtil.equal(item.getLadderType(),1)).collect(Collectors.toList());
if (fixedParamsEntityList != null && fixedParamsEntityList.size() > 0) {
if (subjectAndPriceReturn.getNum() != null) {
for (BillingParamsDetailDTO ladderParamsEntity : fixedParamsEntityList) {
String chargingId1 = ladderParamsEntity.getChargingId();
if (chargingId1 != chargingId) {
billingFormula = billingFormula.replace(chargingId1, subjectAndPriceReturn.getNum().toEngineeringString());
}
}
}
}
return DynamicCalculationUtil.calculate(billingFormula);
} else {
}
}
} else {
SubjectAndPriceReturn aReturn = subjectAndPriceReturnList.get(0);
Long id = aReturn.getBillingRulesId();
BillingRulesPO Rule = contractManageDetailMapper.getBillingRules(id);
String billingFormula = Rule.getBillingFormula();
for (SubjectAndPriceReturn subjectAndPriceReturn : subjectAndPriceReturnList) {
Long billingRulesId = subjectAndPriceReturn.getBillingRulesId();
String name = subjectAndPriceReturn.getName();
BillingRulesPO billingRule = contractManageDetailMapper.getBillingRules(billingRulesId);
List<BillingParamsPO> billingParams = contractManageDetailMapper.getBillingParams(billingRulesId);
if (billingParams != null && billingParams.size() > 0) {
BillingParamsPO billingParam = billingParams.get(0);
String billingParamsJson = billingParam.getBillingParamsJson();
String preSetRules = billingParam.getPreSetRules();
List<Map<String, Object>> preSetRulesList = JSON.parseObject(preSetRules, new TypeReference<List<Map<String, Object>>>() {
});
List<Map<String, Object>> billingParamsList = JSON.parseObject(billingParamsJson, new TypeReference<List<Map<String, Object>>>() {
});
if (billingParamsList != null && billingParamsList.size() ==2) {
} else {
Map<String, Object> targetMap = billingParamsList.stream()
.filter(map -> name.equals(map.get("fieldsName"))) // 关键匹配条件
.findFirst() // 取第一个
.orElse(null); // 没找到返回null
String chargingId = (String) targetMap.get("chargingId");
Integer sort = (Integer) targetMap.get("sort");
Map<String, Object> reles = preSetRulesList.get(0);
String price = (String) reles.get("fields"+sort);
//String billingFormula = billingRule.getBillingFormula();
billingFormula = billingFormula.replace(chargingId, price);
//需要判断阶梯类型进行获取各计费标志的取值,拼接公式
List<BillingParamsDetailDTO> billingParamsEntityList = JSON.parseArray(billingParamsJson, BillingParamsDetailDTO.class);
//将计费参数实体分成两组,即:固定参数和条件参数
List<BillingParamsDetailDTO> fixedParamsEntityList = billingParamsEntityList.stream().filter(item -> ObjectUtil.equal(item.getLadderType(),1)).collect(Collectors.toList());
List<BillingParamsDetailDTO> ladderParamsEntityList = billingParamsEntityList.stream().filter(item -> !ObjectUtil.equal(item.getLadderType(),1)).collect(Collectors.toList());
if (fixedParamsEntityList != null && fixedParamsEntityList.size() > 0) {
if (subjectAndPriceReturn.getNum() != null) {
for (Map<String, Object> ladderParamsEntity : billingParamsList) {
String chargingId1 = (String) ladderParamsEntity.get("chargingId");
String fieldsName = (String) ladderParamsEntity.get("fieldsName");
if ("纸箱贴标单价".equals(name)) {
if ("纸箱数量".equals(fieldsName)) {
billingFormula = billingFormula.replace(chargingId1, subjectAndPriceReturn.getNum().toEngineeringString());
}
} else if ("木箱贴标单价".equals(name)){
if ("木箱数量".equals(fieldsName)) {
billingFormula = billingFormula.replace(chargingId1, subjectAndPriceReturn.getNum().toEngineeringString());
}
}
}
}
}
}
BigDecimal price = subjectAndPriceReturn.getPrice();
BigDecimal num = subjectAndPriceReturn.getNum();
String chargingId = subjectAndPriceReturn.getChargingId();
Integer isFee = subjectAndPriceReturn.getIsFee();
if (isFee != null && isFee == 1) {
billingFormula = billingFormula.replace(chargingId, price.toEngineeringString());
} else {
billingFormula = billingFormula.replace(chargingId, num.toEngineeringString());
}
}
return DynamicCalculationUtil.calculate(billingFormula);
BigDecimal calculate = DynamicCalculationUtil.calculate(billingFormula);
map.put("amount", calculate);
map.put("billingRulesId", id);
return map;
}
return BigDecimal.ZERO;
return map;
}
public List<SubjectAndPriceReturn> getSubjectAndPrice(SubjectAndPriceDTO contractManageDTO) {
@@ -274,14 +300,16 @@ public class ContractManageApplicationService {
BillingParamsPO billingParam = billingParams.get(0);
String billingParamsJson = billingParam.getBillingParamsJson();
String preSetRules = billingParam.getPreSetRules();
Long billingParamsId = billingParam.getBillingParamsId();
List<Map<String, Object>> preSetRulesList = JSON.parseObject(preSetRules, new TypeReference<List<Map<String, Object>>>() {});
List<Map<String, Object>> billingParamsList = JSON.parseObject(billingParamsJson, new TypeReference<List<Map<String, Object>>>() {});
Map<String, Object> stringObjectMap1 = preSetRulesList.get(0);
for (Map<String, Object> stringObjectMap : billingParamsList) {
String fieldsName = (String) stringObjectMap.get("fieldsName");
if (fieldsName != null && ("装卸费单价".equals(fieldsName) ||
"纸箱贴标单价".equals(fieldsName)||"木箱贴标单价".equals(fieldsName)
|| "进出仓操作费单价".equals(fieldsName))) {
Integer isShow = (Integer) stringObjectMap.get("isShow");
Integer isFee = (Integer) stringObjectMap.get("isFee");
Integer isPush = (Integer) stringObjectMap.get("isPush");
if (isFee==1) {
Integer sort = (Integer) stringObjectMap.get("sort");
String chargingId = (String) stringObjectMap.get("chargingId");
String fields = (String) stringObjectMap.get("fields");
@@ -292,6 +320,80 @@ public class ContractManageApplicationService {
subjectAndPriceReturn.setChargingId(chargingId);
subjectAndPriceReturn.setFields(fields);
subjectAndPriceReturn.setBillingRulesId(billingRulesId);
subjectAndPriceReturn.setIsShow(isShow);
subjectAndPriceReturn.setIsFee(isFee);
subjectAndPriceReturn.setIsPush(isPush);
subjectAndPriceReturn.setRulesId(billingParamsId);
result.add(subjectAndPriceReturn);
}
}
}
}
}
}
}
}
}
return result;
}
public List<SubjectAndPriceReturn> getSubject(SubjectAndPriceDTO contractManageDTO) {
List<SubjectAndPriceReturn> result = new ArrayList<>();
Long settlementCustomersId = contractManageDTO.getSettlementCustomersId();
Long organizationId = contractManageDTO.getOrganizationId();
String sunjectCode = contractManageDTO.getSubjectCode();
Long topOrganizationId = contractManageDTO.getTopOrganizationId();
List<ContractManage> UserContractManages = contractManageMapper.selectList(new LambdaQueryWrapper<ContractManage>()
.eq(ContractManage::getSettlementCustomersId, settlementCustomersId)
.eq(ContractManage::getDelFlag, 1)
.eq(ContractManage::getOrganizationId, organizationId)
.eq(ContractManage::getTopOrganizationId, topOrganizationId)
.eq(ContractManage::getCommonContractFlag, 2));
if (UserContractManages != null && UserContractManages.size() > 0) {
}else{
List<ContractManage> commonContractManages = contractManageMapper.selectList(new LambdaQueryWrapper<ContractManage>()
.eq(ContractManage::getDelFlag, 1)
.eq(ContractManage::getOrganizationId, organizationId)
.eq(ContractManage::getTopOrganizationId, topOrganizationId)
.eq(ContractManage::getCommonContractFlag, 1));
if (commonContractManages != null && commonContractManages.size() > 0) {
ContractManage contractManage = commonContractManages.get(0);
Long contractManageId = contractManage.getContractManageId();
List<ContractManageDetail> contractManageDetails = contractManageDetailMapper.selectList(new LambdaQueryWrapper<ContractManageDetail>()
.eq(ContractManageDetail::getContractManageId, contractManageId)
.eq(ContractManageDetail::getDelFlag, 1));
if (contractManageDetails != null && contractManageDetails.size() > 0) {
for (ContractManageDetail contractManageDetail : contractManageDetails) {
String code = contractManageDetail.getFirstSubjectCode();
if (sunjectCode.equals(code)) {
Long accountingStrategyId = contractManageDetail.getAccountingStrategyId();
BillingRulesPO billingRule = contractManageDetailMapper.getBillingRules(accountingStrategyId);
if (billingRule != null) {
Long billingRulesId = billingRule.getBillingRulesId();
List<BillingParamsPO> billingParams = contractManageDetailMapper.getBillingParams(billingRulesId);
if (billingParams != null && billingParams.size() > 0) {
BillingParamsPO billingParam = billingParams.get(0);
String billingParamsJson = billingParam.getBillingParamsJson();
String preSetRules = billingParam.getPreSetRules();
Long billingParamsId = billingParam.getBillingParamsId();
List<Map<String, Object>> billingParamsList = JSON.parseObject(billingParamsJson, new TypeReference<List<Map<String, Object>>>() {});
for (Map<String, Object> stringObjectMap : billingParamsList) {
String fieldsName = (String) stringObjectMap.get("fieldsName");
Integer isShow = (Integer) stringObjectMap.get("isShow");
Integer isFee = (Integer) stringObjectMap.get("isFee");
Integer isPush = (Integer) stringObjectMap.get("isPush");
if (isShow==1) {
String chargingId = (String) stringObjectMap.get("chargingId");
String fields = (String) stringObjectMap.get("fields");
SubjectAndPriceReturn subjectAndPriceReturn = new SubjectAndPriceReturn();
subjectAndPriceReturn.setName(fieldsName);
subjectAndPriceReturn.setChargingId(chargingId);
subjectAndPriceReturn.setFields(fields);
subjectAndPriceReturn.setBillingRulesId(billingRulesId);
subjectAndPriceReturn.setIsShow(isShow);
subjectAndPriceReturn.setIsFee(isFee);
subjectAndPriceReturn.setIsPush(isPush);
subjectAndPriceReturn.setRulesId(billingParamsId);
result.add(subjectAndPriceReturn);
}
}
@@ -1,15 +1,23 @@
package com.mhd.basic.interfaces.dto.contractManage;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class SubjectAndPriceReturn {
private Long rulesId;
private String name;
private BigDecimal price;
private String chargingId;
private Long billingRulesId;
private String fields;
private BigDecimal num;
private Integer isShow;
private Integer isPush;
private Integer isFee;
private String subjectCode;
private String subjectName;
private String serviceItemsCode;
private String serviceItemsName;
}
@@ -59,6 +59,17 @@ public class ContractManageApi extends BaseController{
return AjaxResult.success(contractManageApplicationService.getSubjectAndPrice(subjectAndPriceDTO));
}
/**
* 获取科目和单价
*/
@ApiOperation("获取需要显示的计费字段")
@GetMapping("/getSubject")
public AjaxResult getSubject(SubjectAndPriceDTO subjectAndPriceDTO)
{
//转换实体
return AjaxResult.success(contractManageApplicationService.getSubject(subjectAndPriceDTO));
}
/**
* 获取科目和单价
*/
@@ -79,8 +79,9 @@
a.payment_bank,
a.payment_account,
a.invoice_title,
a.tax_number
FROM "USER" a
a.tax_number,
b.SETTLEMENT_CURRENCY
FROM "USER" a left join USER_SHIPPER b on a.user_id = b.user_id
where a.del_flag = 1
</sql>
@@ -1023,6 +1023,7 @@ public class BusinessDocumentApplicationService {
businessDocumentDO.setTopOrganizationId(businessDocumentDO.getTopOrganizationId());
businessDocumentDO.setOrganizationId(businessDocumentDO.getOrganizationId());
businessDocumentDO.setOrganizationName(businessDocumentDO.getOrganizationName());
businessDocumentDO.setOriginalBusinessNum(businessDocumentDO.getOriginalBusinessNum());
//调用费用计算,计算费用金额进行保存
// CostCalculationDTO costCalculationDTO = new CostCalculationDTO();
// costCalculationDTO.setOriginalBusinessNum(businessDocumentDO.getOriginalBusinessNum());
@@ -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(
@@ -286,8 +288,9 @@ public class HandoverTaskOrderApplicationService {
if (!handoverTaskOrderIds.isEmpty()) {
HandoverTaskOrderDO completeDO = new HandoverTaskOrderDO();
completeDO.setHandoverTaskOrderIds(handoverTaskOrderIds);
completeDO.setBillingJson(handoverTaskOrderDO.getBillingJson());
handoverTaskOrderDomainService.completeHandover(completeDO);
}
}
}
}
}
@@ -3,7 +3,12 @@ package com.mhd.wms.application.service.stockInOrder;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.TypeReference;
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 +16,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 +24,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 +52,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 +74,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 +185,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 +237,176 @@ 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);
String amountJson = account.getAmountJson();
if (amountJson != null) {
List<Map<String, Object>> billingParamsList = JSON.parseObject(amountJson, new TypeReference<List<Map<String, Object>>>() {});
com.alibaba.fastjson.JSONObject jsonObject = new com.alibaba.fastjson.JSONObject();
for (Map<String, Object> stringObjectMap : billingParamsList) {
Integer isFee = (Integer) stringObjectMap.get("isFee");
if (isFee==1) {
jsonObject.put((String) stringObjectMap.get("fields"), stringObjectMap.get("price"));
} else {
jsonObject.put((String) stringObjectMap.get("fields"), stringObjectMap.get("num"));
}
}
businessDataPushDTO.setDocumentFormJson(jsonObject.toJSONString());
}
/*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.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);
String amountJson = account.getAmountJson();
if (amountJson!=null) {
List<Map<String, Object>> billingParamsList = JSON.parseObject(amountJson, new TypeReference<List<Map<String, Object>>>() {});
com.alibaba.fastjson.JSONObject jsonObject = new com.alibaba.fastjson.JSONObject();
for (Map<String, Object> stringObjectMap : billingParamsList) {
Integer isFee = (Integer) stringObjectMap.get("isFee");
if (isFee==1) {
jsonObject.put((String) stringObjectMap.get("fields"), stringObjectMap.get("price"));
} else {
jsonObject.put((String) stringObjectMap.get("fields"), stringObjectMap.get("num"));
}
}
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 +2074,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;
}
@@ -39,11 +39,13 @@ import com.mhd.wms.domain.receiptMaterialDetail.repository.todo.ReceiptMaterialD
import com.mhd.wms.domain.receiptMaterialDetail.service.ReceiptMaterialDetailDomainService;
import com.mhd.wms.domain.receiptOrderAccount.entity.ReceiptOrderAccount;
import com.mhd.wms.domain.receiptOrderAccount.repository.facade.IReceiptOrderAccountService;
import com.mhd.wms.domain.stockInOrder.repository.facade.IStockInOrderService;
import com.mhd.wms.domain.stockInOrder.repository.todo.StockInOrderDO;
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;
@@ -96,6 +98,8 @@ public class StockReceiptOrderApplicationService {
private IdGenerator idGenerator;
@Autowired
private IReceiptOrderAccountService receiptOrderAccountService;
@Autowired
private IStockInOrderService stockInOrderService;
/**
@@ -1561,6 +1565,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 +1920,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,22 @@ 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();
if (inOrderNumber == null) {
StockReceiptOrder stockReceiptOrder = stockReceiptOrderService.getById(receiptOrderId);
inOrderNumber = stockReceiptOrder.getInOrderNumber();
}
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));
}
}
}
@@ -98,10 +98,18 @@ public class StockReceiptOrderApi extends BaseController {
return toAjax(stockReceiptOrderApplicationService.completeReceipt(receiptOrderId));
}
@ApiOperation("完成收货")
@PostMapping("/completeReceiptAndUpdateJson")
public AjaxResult completeReceipt(@RequestBody StockReceiptOrderDTO stockReceiptOrderDTO) {
Long receiptOrderId = stockReceiptOrderDTO.getReceiptOrderId();
stockReceiptOrderApplicationService.updateInOrder(stockReceiptOrderDTO);
return toAjax(stockReceiptOrderApplicationService.completeReceipt(receiptOrderId));
}
@ApiOperation("整单收货")
@GetMapping("/entireReceipt/{receiptOrderIds}")
public AjaxResult entireReceipt(@PathVariable("receiptOrderIds") Long[] receiptOrderIds) {
return toAjax(stockReceiptOrderApplicationService.entireReceipt(receiptOrderIds));
}
}
}
@@ -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));
}
}
}
@@ -40,6 +40,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="updateByName" column="update_by_name" />
<result property="delFlag" column="del_flag" />
<result property="pictureApp" column="picture_app" />
<result property="billingJson" column="billing_json" />
</resultMap>
@@ -48,7 +49,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
a.platform_code, a.platform_name, a.platform_use_time_id, a.platform_use_start_time, a.platform_use_end_time, a.platform_use_status,
a.order_type_code, a.order_type_name, a.expect_time, a.warehouse_id, a.warehouse_code, a.warehouse_name, a.shipper_id,
a.shipper_name, a.order_number, a.picking_order_number, a.remark, a.task_distribution, a.task_distribution_time, a.create_time, a.create_by, a.create_by_name, a.update_time,
a.update_by, a.update_by_name, a.del_flag, a.picture_app
a.update_by, a.update_by_name, a.del_flag, a.picture_app,a.billing_json
</sql>
<sql id="selectHandoverTaskOrderPo1">
@@ -80,6 +80,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="warehouseDate" column="WAREHOUSE_DATE" />
<result property="completionTime" column="COMPLETION_TIME" />
<result property="orderDate" column="ORDER_DATE" />
<result property="billingJson" column="billing_json" />
<result property="salesmanId" column="SALESMAN_ID" />
<result property="salesmanName" column="SALESMAN_NAME" />
<result property="settlementCurrency" column="SETTLEMENT_CURRENCY" />
</resultMap>
@@ -87,7 +91,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
a.in_order_id, a.organization_id, a.organization_name, a.top_organization_id, a.notice_number, a.in_order_number, a.status,
a.audit_status, a.audit_remark, a.audit_by, a.audit_by_name, a.audit_time, a.warehouse_id, a.warehouse_code, a.warehouse_name, a.shipper_id, a.shipper_code,
a.shipper_name, a.order_type_code, a.order_type_name, a.supplier_id, a.supplier_code, a.supplier_name, a.expect_time, a.supply_chain_number,
a.priority_level_code, a.priority_level_name, a.direct_warehouse, a.annex_url, a.material_quantity, a.quantity,
a.priority_level_code, a.priority_level_name, a.direct_warehouse, a.annex_url, a.material_quantity, a.quantity,a.billing_json,a.SETTLEMENT_CURRENCY,
a.SALESMAN_ID,a.SALESMAN_NAME,
-- 计划入库数量:入库明细表 in_material_detail 的 quantity 汇总
(select ifnull(sum(imd.quantity), 0)
from in_material_detail imd
@@ -82,6 +82,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="needDeclareFlag" column="need_declare_flag"/>
<result property="needTransportFlag" column="need_transport_flag"/>
<result property="pictureApp" column="picture_app"/>
<result property="billingJson" column="billing_json" />
<result property="salesmanId" column="SALESMAN_ID" />
<result property="salesmanName" column="SALESMAN_NAME" />
<result property="settlementCurrency" column="SETTLEMENT_CURRENCY" />
</resultMap>
@@ -97,7 +101,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
a.CONTACT_PERSON,a.VEHICLE_MODEL_PLATE,a.ENTRUST_NO,a.TEL,a.DRIVER_SIGN,a.FAX,a.DECLARE_CUSTOMS,a.MANUFACTURER,
a.CUSTOMS_DECLARER_INFO,a.DELIVERY_ADDR,a.ENTRY_EXIT_CUSTOMS,a.DEPARTURE_ARRIVAL_COUNTRY,a.CARRIER,a.CONTAINER_NO,a.CONTAINER_NO_NAME,a.OUTBOUND_DATE,
a.COMPLETE_TIME,a.ORDER_DATE,a.TRANSPORT_MODE_CODE,a.TRANSPORT_MODE_NAME,a.SUPERVISION_MODE_CODE,a.SUPERVISION_MODE_NAME,
a.CUSTOMS_INSPECTION_FLAG,a.NEED_DECLARE_FLAG,a.NEED_TRANSPORT_FLAG,a.picture_app
a.CUSTOMS_INSPECTION_FLAG,a.NEED_DECLARE_FLAG,a.NEED_TRANSPORT_FLAG,a.picture_app,a.billing_json,a.SETTLEMENT_CURRENCY,
a.SALESMAN_ID,a.SALESMAN_NAME
</sql>
@@ -35,6 +35,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="updateBy" column="update_by" />
<result property="updateByName" column="update_by_name" />
<result property="delFlag" column="del_flag" />
<result property="billingJson" column="billing_json" />
</resultMap>
@@ -43,7 +44,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
a.status, a.platform_id, a.platform_code, a.platform_name, a.platform_use_time_id, a.platform_use_start_time, a.platform_use_end_time,
a.platform_use_status, a.quantity, a.receipt_quantity, a.receipt_material_quantity, a.material_quantity, a.abnormal, a.task_distribution, a.task_distribution_time,
a.operators_by, a.operators_name, a.remark, a.create_time, a.create_by, a.create_by_name,
a.update_time, a.update_by, a.update_by_name, a.del_flag
a.update_time, a.update_by, a.update_by_name, a.del_flag, a.billing_json
</sql>
<sql id="selectStockReceiptOrderPo1">
+67 -27
View File
@@ -6,7 +6,45 @@ COMMENT ON COLUMN "NGWL_TEST_SYSTEM"."EXPENSE_ACCOUNT"."IN_ORDER_DISPLAY" IS '
COMMENT ON COLUMN "NGWL_TEST_SYSTEM"."EXPENSE_ACCOUNT"."OUT_ORDER_DISPLAY" IS '出库单是否固定显示 0-否 1-是';
ALTER TABLE "NGWL_TEST_WMS"."STOCK_OUT_ORDER" ADD COLUMN "SALESMAN_NAME" VARCHAR(100);
ALTER TABLE "NGWL_TEST_WMS"."STOCK_OUT_ORDER" ADD COLUMN "SETTLEMENT_CURRENCY" VARCHAR(100);
ALTER TABLE "NGWL_TEST_WMS"."STOCK_OUT_ORDER" ADD COLUMN "SALESMAN_ID" VARCHAR(100);
COMMENT ON COLUMN "NGWL_TEST_WMS"."STOCK_OUT_ORDER"."SALESMAN_NAME" IS '业务员名称';
COMMENT ON COLUMN "NGWL_TEST_WMS"."STOCK_OUT_ORDER"."SETTLEMENT_CURRENCY" IS '结算币种';
COMMENT ON COLUMN "NGWL_TEST_WMS"."STOCK_OUT_ORDER"."SALESMAN_ID" IS '业务员id';
ALTER TABLE "NGWL_TEST_WMS"."STOCK_IN_ORDER" ADD COLUMN "SALESMAN_NAME" VARCHAR(100);
ALTER TABLE "NGWL_TEST_WMS"."STOCK_IN_ORDER" ADD COLUMN "SETTLEMENT_CURRENCY" VARCHAR(100);
ALTER TABLE "NGWL_TEST_WMS"."STOCK_IN_ORDER" ADD COLUMN "SALESMAN_ID" VARCHAR(100);
COMMENT ON COLUMN "NGWL_TEST_WMS"."STOCK_IN_ORDER"."SALESMAN_NAME" IS '业务员名称';
COMMENT ON COLUMN "NGWL_TEST_WMS"."STOCK_IN_ORDER"."SETTLEMENT_CURRENCY" IS '结算币种';
COMMENT ON COLUMN "NGWL_TEST_WMS"."STOCK_IN_ORDER"."SALESMAN_ID" IS '业务员id'
ALTER TABLE "NGWL_TEST_WMS"."STOCK_OUT_ORDER" ADD COLUMN "BILLING_JSON" CLOB;
COMMENT ON COLUMN "NGWL_TEST_WMS"."STOCK_OUT_ORDER"."BILLING_JSON" IS '计费信息';
ALTER TABLE "NGWL_TEST_WMS"."STOCK_IN_ORDER" ADD COLUMN "BILLING_JSON" CLOB;
COMMENT ON COLUMN "NGWL_TEST_WMS"."STOCK_IN_ORDER"."BILLING_JSON" IS '计费信息';
ALTER TABLE "NGWL_TEST_WMS"."HANDOVER_TASK_ORDER" ADD COLUMN "BILLING_JSON" CLOB;
COMMENT ON COLUMN "NGWL_TEST_WMS"."HANDOVER_TASK_ORDER"."BILLING_JSON" IS '计费信息';
ALTER TABLE "NGWL_TEST_WMS"."STOCK_RECEIPT_ORDER" ADD COLUMN "BILLING_JSON" CLOB;
COMMENT ON COLUMN "NGWL_TEST_WMS"."STOCK_RECEIPT_ORDER"."BILLING_JSON" IS '计费信息';
/*
@@ -22,7 +60,7 @@ COMMENT ON COLUMN "NGWL_TEST_SYSTEM"."EXPENSE_ACCOUNT"."OUT_ORDER_DISPLAY" IS '
Target Server Version : 8014116 (08.01.4116)
File Encoding : 65001
Date: 03/04/2026 16:20:24
Date: 10/04/2026 21:00:36
*/
@@ -31,35 +69,36 @@ COMMENT ON COLUMN "NGWL_TEST_SYSTEM"."EXPENSE_ACCOUNT"."OUT_ORDER_DISPLAY" IS '
-- ----------------------------
DROP TABLE IF EXISTS "NGWL_TEST_WMS"."RECEIPT_ORDER_ACCOUNT";
CREATE TABLE "NGWL_TEST_WMS"."RECEIPT_ORDER_ACCOUNT" (
"ID" VARCHAR(36) NOT NULL,
"SYS_ORG_CODE" VARCHAR(64) DEFAULT NULL,
"IS_DELETE" INT DEFAULT '0',
"ORG_NAME" VARCHAR(255) DEFAULT NULL,
"ORGANIZATION_ID" INT DEFAULT '0',
"TOP_ORGANIZATION_ID" INT DEFAULT '0',
"ORGANIZATION_NAME" VARCHAR(255) DEFAULT NULL,
"ORDER_ID" BIGINT DEFAULT NULL,
"ACCOUNT_ID" INT DEFAULT '0',
"ACCOUNT_TYPE" INT DEFAULT '0',
"SUBJECT_CODE" VARCHAR(255) DEFAULT NULL,
"SUBJECT_NAME" VARCHAR(255) DEFAULT NULL,
"RATE" DECIMAL(10,2) DEFAULT '0.00',
"AMOUNT" DECIMAL(10,2) DEFAULT '0.00',
"TAX_AMOUNT" DECIMAL(10,2),
"TAX_FREE_FEE" DECIMAL(10,2),
"RECEIVE_ACCOUNT" VARCHAR2(200),
"SETTLEMENT_AMOUNT" DECIMAL(10,2),
"PRICE" DECIMAL(10,2),
"NUM" DECIMAL(10,2),
"SERVICE_ITEMS_CODE" VARCHAR2(255),
"SERVICE_ITEMS_NAME" VARCHAR2(255),
"CREATE_TIME" TIMESTAMP(6),
"CREATE_BY" BIGINT DEFAULT 0,
"CREATE_BY_NAME" VARCHAR(20 CHAR) DEFAULT '',
"ID" VARCHAR(36) NOT NULL,
"SYS_ORG_CODE" VARCHAR(64) DEFAULT NULL,
"IS_DELETE" INT DEFAULT '0',
"ORG_NAME" VARCHAR(255) DEFAULT NULL,
"ORGANIZATION_ID" INT DEFAULT '0',
"TOP_ORGANIZATION_ID" INT DEFAULT '0',
"ORGANIZATION_NAME" VARCHAR(255) DEFAULT NULL,
"ORDER_ID" BIGINT DEFAULT NULL,
"ACCOUNT_ID" INT DEFAULT '0',
"ACCOUNT_TYPE" INT DEFAULT '0',
"SUBJECT_CODE" VARCHAR(255) DEFAULT NULL,
"SUBJECT_NAME" VARCHAR(255) DEFAULT NULL,
"RATE" DECIMAL(10,2) DEFAULT '0.00',
"AMOUNT" DECIMAL(10,2) DEFAULT '0.00',
"TAX_AMOUNT" DECIMAL(10,2),
"TAX_FREE_FEE" DECIMAL(10,2),
"RECEIVE_ACCOUNT" VARCHAR2(200),
"SETTLEMENT_AMOUNT" DECIMAL(10,2),
"PRICE" DECIMAL(10,2),
"NUM" DECIMAL(10,2),
"SERVICE_ITEMS_CODE" VARCHAR2(255),
"SERVICE_ITEMS_NAME" VARCHAR2(255),
"CREATE_TIME" TIMESTAMP(6),
"CREATE_BY" BIGINT DEFAULT 0,
"CREATE_BY_NAME" VARCHAR(20 CHAR) DEFAULT '',
"UPDATE_TIME" TIMESTAMP(6),
"UPDATE_BY" BIGINT DEFAULT 0,
"UPDATE_BY_NAME" VARCHAR(20 CHAR) DEFAULT '',
"DEL_FLAG" TINYINT DEFAULT 1
"DEL_FLAG" TINYINT DEFAULT 1,
"AMOUNT_JSON" CLOB
)
;
COMMENT ON COLUMN "NGWL_TEST_WMS"."RECEIPT_ORDER_ACCOUNT"."SYS_ORG_CODE" IS '所属部门';
@@ -88,6 +127,7 @@ COMMENT ON COLUMN "NGWL_TEST_WMS"."RECEIPT_ORDER_ACCOUNT"."UPDATE_TIME" IS '最
COMMENT ON COLUMN "NGWL_TEST_WMS"."RECEIPT_ORDER_ACCOUNT"."UPDATE_BY" IS '最后修改人用户ID';
COMMENT ON COLUMN "NGWL_TEST_WMS"."RECEIPT_ORDER_ACCOUNT"."UPDATE_BY_NAME" IS '修改人姓名';
COMMENT ON COLUMN "NGWL_TEST_WMS"."RECEIPT_ORDER_ACCOUNT"."DEL_FLAG" IS '删除标记:0-无状态,1-正常,2-已删除';
COMMENT ON COLUMN "NGWL_TEST_WMS"."RECEIPT_ORDER_ACCOUNT"."AMOUNT_JSON" IS '计算价格参数json';
-- ----------------------------
-- Primary Key structure for table RECEIPT_ORDER_ACCOUNT