This commit is contained in:
wwb 2025-12-29 08:07:13 +08:00
parent 5d71511e22
commit dbe09ab701
14 changed files with 116 additions and 7 deletions

View File

@ -28,6 +28,7 @@ import com.alibaba.fastjson.JSONObject;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.apache.commons.lang3.StringUtils;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
@ -67,6 +68,18 @@ public class AppSaleOrderController{
@PutMapping("/update")
@Operation(summary = "更新销售订单")
public CommonResult<Boolean> updateSaleOrder(@Valid @RequestBody SaleOrderSaveReqVO updateReqVO) {
//拼接销售合约编码
String saleContractCodePrefix = updateReqVO.getSaleContractCodePrefix();
String saleContractCode = updateReqVO.getSaleContractCode();
if(StringUtils.isBlank(saleContractCodePrefix)){
saleContractCodePrefix = "";
}
if(StringUtils.isNotBlank(saleContractCode)){
saleContractCode = saleContractCode.replaceAll("[^0-9]", "");
}else {
saleContractCode = "";
}
updateReqVO.setSaleContractCode(saleContractCodePrefix+saleContractCode);
saleOrderService.updateSaleOrder(updateReqVO);
return success(true);
}
@ -87,6 +100,12 @@ public class AppSaleOrderController{
if(saleOrder == null){
return success(null);
}
//拆解销售合约编码
String saleContractCode = saleOrder.getSaleContractCode();
if(StringUtils.isNotBlank(saleContractCode)){
saleOrder.setSaleContractCode(saleContractCode.replaceAll("[^0-9]", ""));
}
// 拼接数据
List<cn.hangtag.module.oms.dal.dataobject.saleorderentry.SaleOrderEntryDO> entrys = saleOrderService.getSaleOrderEntryListByParentId(id);

View File

@ -29,6 +29,7 @@ import com.alibaba.fastjson.JSONObject;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.apache.commons.lang3.StringUtils;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
@ -72,6 +73,20 @@ public class SaleOrderController {
@Operation(summary = "更新销售订单")
@PreAuthorize("@ss.hasPermission('oms:sale-order:update')")
public CommonResult<Boolean> updateSaleOrder(@Valid @RequestBody SaleOrderSaveReqVO updateReqVO) {
//拼接销售合约编码
String saleContractCodePrefix = updateReqVO.getSaleContractCodePrefix();
String saleContractCode = updateReqVO.getSaleContractCode();
if(StringUtils.isBlank(saleContractCodePrefix)){
saleContractCodePrefix = "";
}
if(StringUtils.isNotBlank(saleContractCode)){
saleContractCode = saleContractCode.replaceAll("[^0-9]", "");
}else {
saleContractCode = "";
}
updateReqVO.setSaleContractCode(saleContractCodePrefix+saleContractCode);
saleOrderService.updateSaleOrder(updateReqVO);
return success(true);
}
@ -94,6 +109,13 @@ public class SaleOrderController {
if(saleOrder == null){
return success(null);
}
//拆解销售合约编码
String saleContractCode = saleOrder.getSaleContractCode();
if(StringUtils.isNotBlank(saleContractCode)){
saleOrder.setSaleContractCode(saleContractCode.replaceAll("[^0-9]", ""));
}
// 拼接数据
List<SaleOrderEntryDO> entrys = saleOrderService.getSaleOrderEntryListByParentId(id);

View File

@ -28,6 +28,10 @@ public class SaleOrderRespVO {
@ExcelProperty("单据编号")
private String billno;
@Schema(description = "销售合约号前缀", example = "2")
@ExcelProperty("销售合约号前缀")
private String saleContractCodePrefix;
@Schema(description = "销售合约号", example = "2")
@ExcelProperty("销售合约号")
private String saleContractCode;
@ -36,6 +40,9 @@ public class SaleOrderRespVO {
@ExcelProperty("客户id")
private Long customerId;
@Schema(description = "客户采购编号", example = "2")
@ExcelProperty("客户采购编号")
private String contractCode;
@Schema(description = "单据状态", example = "2")
@ExcelProperty(value = "单据状态", converter = DictConvert.class)

View File

@ -71,6 +71,9 @@ public class SaleOrderSaveReqVO {
@Schema(description = "驳回原因", example = "2")
private String rejectReason;
@Schema(description = "销售合约编码前缀", example = "2")
private String saleContractCodePrefix;
@Schema(description = "销售合约号", example = "2")
private String saleContractCode;

View File

@ -33,10 +33,12 @@ public interface SaleOrderConvert {
@Mapping(source = "contractType", target = "contractType"),
@Mapping(source = "currencyType", target = "currencyType"),
@Mapping(source = "brandId", target = "brandId"),
@Mapping(source = "saleContractCodePrefix", target = "saleContractCodePrefix"),
@Mapping(source = "saleContractCode", target = "saleContractCode"),
@Mapping(source = "totalQty", target = "totalQty"),
@Mapping(source = "orderAmount", target = "orderAmount"),
@Mapping(source = "logisticsCode", target = "logisticsCode")
@Mapping(source = "logisticsCode", target = "logisticsCode"),
@Mapping(source = "contractCode", target = "contractCode"),
})
SaleOrderRespVO convert(SaleOrderDO bean);

View File

@ -34,10 +34,16 @@ public class SaleOrderDO extends BaseDO {
* 单据编号
*/
private String billno;
/**
* 销售合约编码前缀
*/
private String saleContractCodePrefix;
/**
* 销售合约编码
*/
private String saleContractCode;
/**
* 客户id
*/

View File

@ -128,6 +128,12 @@ public interface SaleOrderService {
*/
String getNewContractCode2();
/**
* 获取销售合同编码
* @return
*/
String getNewContractCode3();
List<SaleOrderSkuDO> getSaleOrderSkuEntryListByEntryId(Long entryId);
List<SaleOrderFollowerUserVO> queryFollowerUserListByBrandId(String brandId);

View File

@ -869,8 +869,8 @@ public class SaleOrderServiceImpl implements SaleOrderService {
saleOrderSkuDO.setItemKey(saleOrderSkuDTO.getItemKey());
skuList.add(saleOrderSkuDO);
}
}
DateTime createTime = DateUtil.date();
String createTimestr = DateUtil.formatDateTime(createTime);
order.setCreateTime(createTime.toLocalDateTime());
@ -1052,6 +1052,7 @@ public class SaleOrderServiceImpl implements SaleOrderService {
private static final long codeId = 6L;
private static final long saleContractCodeId = 7L;
private static final long saleContractCodeId2 = 10L;
@Override
public String getNewOrderCode() {
@ -1093,6 +1094,26 @@ public class SaleOrderServiceImpl implements SaleOrderService {
}
}
@Override
public String getNewContractCode3() {
String s = "";
int count = 10;
while (true) {
count--;
try {
s = CodingRulesUtils.generateCode(saleContractCodeId2, false);
checkSaleContractCode2(null, s);
return s;
} catch (ServiceException e) {
log.warn("重复或者下一个编码");
if (count < 0) {
log.error("编码获取失败");
return "";
}
}
}
}
private void checkCode(Long id, String code) {
if (FuncUtil.isNotEmpty(code)) {
LambdaQueryWrapper<SaleOrderDO> lambdaQueryWrapper = new LambdaQueryWrapper<>();
@ -1157,6 +1178,7 @@ public class SaleOrderServiceImpl implements SaleOrderService {
order.setOrderType(SaleOrderTypeEnum.NORMAL.getType());
}
order.setBillno(getNewOrderCode());
order.setSaleContractCode(getNewContractCode3());
return order;
}

View File

@ -19,6 +19,7 @@ export interface SaleOrderVO {
invoiceRemarks: string // 发票备注
contractType: string // 合约类型
currencyType: string // 结算币种
saleContractCodePrefix: string // 销售合约号前缀
saleContractCode: string // 销售合约号
logisticsCode: string // 销售合约号
totalQty: number // 总数量

View File

@ -222,5 +222,6 @@ export enum DICT_TYPE {
OMS_PRODUCT_CARE_ITEM_TYPE = 'oms_product_care_item_type', //产品保养项目类型 1.成分说明 2.洗涤说明 3.使用说明 4.尺码
OMS_PRODUCT_CARE_PROCESS_TYPE = 'oms_product_care_process_type', //产品护理过程类型 1洗涤 2漂白 3烘干 4自然干燥 5熨烫 6专业纺织品护理工艺
OMS_CONTRACT_TYPE = 'oms_contract_type', //合约类型
OMS_SALECONTRACTNUM_PREFIX = 'oms_salecontractnum_prefix', //销售合约号前缀
}

View File

@ -45,9 +45,25 @@
<template v-slot:label>
<span>销售合约号<span style="color: red;">*</span></span>
</template>
<el-input v-model="formData.saleContractCode" placeholder="请输入销售合约号" class="!w-300px" />
<el-select
v-model="formData.saleContractCodePrefix"
placeholder="请选择前缀"
clearable
class="!w-120px"
>
<el-option
v-for="dict in getStrDictOptions(DICT_TYPE.OMS_SALECONTRACTNUM_PREFIX)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
&nbsp;
<span>
{{ formData.saleContractCode }}
</span>
</el-descriptions-item>
<el-descriptions-item label="销售合约号: " width="1000px" v-else>{{ formData.saleContractCode }}</el-descriptions-item>
<el-descriptions-item label="销售合约号: " width="1000px" v-else>{{ formData.saleContractCodePrefix + formData.saleContractCode }}</el-descriptions-item>
<el-descriptions-item label="品牌: " width="500px">{{ formData.brandName }}</el-descriptions-item>
<el-descriptions-item label="业务日期: ">{{ formatDate(formData.bizdate,'YYYY-MM-DD') }}</el-descriptions-item>
<el-descriptions-item label="确认日期: " >{{ formatDate(formData.confirmdate,'YYYY-MM-DD') }}</el-descriptions-item>
@ -79,6 +95,7 @@
<el-descriptions-item label="结算币种: " v-else >{{ formData.currencyType }}</el-descriptions-item>
<el-descriptions-item label="总数量: ">{{ formData.totalQty }}</el-descriptions-item>
<el-descriptions-item label="总金额: ">{{ formData.orderAmount }}</el-descriptions-item>
<el-descriptions-item label="客户采购编号: " >{{ formData.contractCode }}</el-descriptions-item>
<el-descriptions-item label="物流单号: ">{{ formData.logisticsCode }}</el-descriptions-item>
<el-descriptions-item label="订单备注: ">{{ formData.remark }}</el-descriptions-item>
</el-descriptions>
@ -305,7 +322,7 @@ const formData = ref<SaleOrderVO>({
})
const itemFormRules = reactive({
//contractType: [{ required: true, message: '', trigger: 'blur' }],
saleContractCode: [{ required: true, message: '销售合约号不能为空', trigger: 'blur' }],
saleContractCodePrefix: [{ required: true, message: '销售合约号不能为空', trigger: 'blur' }],
})
@ -402,7 +419,7 @@ const delRow = async (row) => {
}
const handleSave = async () => {
try {
if(!formData.value.saleContractCode){
if(!formData.value.saleContractCodePrefix){
message.alertError("销售合约号不能为空")
return
}
@ -424,7 +441,7 @@ const handleSave = async () => {
/** 审核 */
const handleAudit = async () => {
try {
if(!formData.value.saleContractCode){
if(!formData.value.saleContractCodePrefix){
message.alertError("销售合约号不能为空")
return
}

View File

@ -547,6 +547,7 @@ export default {
currencyType:'currencyType',
totalQty:'totalQty',
orderAmount:'orderAmount',
contractCode:'contractCode',
invoiceCode:'invoiceCode',
invoiceName:'invoiceName',
invoiceAddress:'invoiceAddress',

View File

@ -542,6 +542,7 @@ export default {
currencyType:'结算币种',
totalQty:'订单总数量',
orderAmount:'订单总金额',
contractCode:'客户采购编号',
invoiceCode:'发票抬头',
invoiceName:'发票名称',
invoiceAddress:'发票地址',

View File

@ -30,6 +30,7 @@
<el-descriptions-item :label="t('saleorder.currencyType')+':'">{{ formData.currencyType }}</el-descriptions-item>
<el-descriptions-item :label="t('saleorder.totalQty')+':'">{{ formData.totalQty }}</el-descriptions-item>
<el-descriptions-item :label="t('saleorder.orderAmount')+':'">{{ formData.orderAmount }}</el-descriptions-item>
<el-descriptions-item :label="t('saleorder.contractCode')+':'" >{{ formData.saleContractCodePrefix + formData.contractCode }}</el-descriptions-item>
<el-descriptions-item :label="t('saleorder.logisticsCode')+':'">{{ formData.logisticsCode }}</el-descriptions-item>
<el-descriptions-item :label="t('saleorder.remark')+':'">{{ formData.remark }}</el-descriptions-item>
</el-descriptions>