diff --git a/hangtag-module-oms/hangtag-module-oms-biz/src/main/java/cn/hangtag/module/oms/controller/admin/app/AppSaleOrderController.java b/hangtag-module-oms/hangtag-module-oms-biz/src/main/java/cn/hangtag/module/oms/controller/admin/app/AppSaleOrderController.java index 5c4632f..f80b061 100644 --- a/hangtag-module-oms/hangtag-module-oms-biz/src/main/java/cn/hangtag/module/oms/controller/admin/app/AppSaleOrderController.java +++ b/hangtag-module-oms/hangtag-module-oms-biz/src/main/java/cn/hangtag/module/oms/controller/admin/app/AppSaleOrderController.java @@ -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 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 entrys = saleOrderService.getSaleOrderEntryListByParentId(id); diff --git a/hangtag-module-oms/hangtag-module-oms-biz/src/main/java/cn/hangtag/module/oms/controller/admin/saleorder/SaleOrderController.java b/hangtag-module-oms/hangtag-module-oms-biz/src/main/java/cn/hangtag/module/oms/controller/admin/saleorder/SaleOrderController.java index 619538b..0f28685 100644 --- a/hangtag-module-oms/hangtag-module-oms-biz/src/main/java/cn/hangtag/module/oms/controller/admin/saleorder/SaleOrderController.java +++ b/hangtag-module-oms/hangtag-module-oms-biz/src/main/java/cn/hangtag/module/oms/controller/admin/saleorder/SaleOrderController.java @@ -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 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 entrys = saleOrderService.getSaleOrderEntryListByParentId(id); diff --git a/hangtag-module-oms/hangtag-module-oms-biz/src/main/java/cn/hangtag/module/oms/controller/admin/saleorder/vo/SaleOrderRespVO.java b/hangtag-module-oms/hangtag-module-oms-biz/src/main/java/cn/hangtag/module/oms/controller/admin/saleorder/vo/SaleOrderRespVO.java index 863e9da..556e176 100644 --- a/hangtag-module-oms/hangtag-module-oms-biz/src/main/java/cn/hangtag/module/oms/controller/admin/saleorder/vo/SaleOrderRespVO.java +++ b/hangtag-module-oms/hangtag-module-oms-biz/src/main/java/cn/hangtag/module/oms/controller/admin/saleorder/vo/SaleOrderRespVO.java @@ -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) diff --git a/hangtag-module-oms/hangtag-module-oms-biz/src/main/java/cn/hangtag/module/oms/controller/admin/saleorder/vo/SaleOrderSaveReqVO.java b/hangtag-module-oms/hangtag-module-oms-biz/src/main/java/cn/hangtag/module/oms/controller/admin/saleorder/vo/SaleOrderSaveReqVO.java index 28b0703..d283988 100644 --- a/hangtag-module-oms/hangtag-module-oms-biz/src/main/java/cn/hangtag/module/oms/controller/admin/saleorder/vo/SaleOrderSaveReqVO.java +++ b/hangtag-module-oms/hangtag-module-oms-biz/src/main/java/cn/hangtag/module/oms/controller/admin/saleorder/vo/SaleOrderSaveReqVO.java @@ -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; diff --git a/hangtag-module-oms/hangtag-module-oms-biz/src/main/java/cn/hangtag/module/oms/convert/saleorder/SaleOrderConvert.java b/hangtag-module-oms/hangtag-module-oms-biz/src/main/java/cn/hangtag/module/oms/convert/saleorder/SaleOrderConvert.java index c02f468..7b28a0f 100644 --- a/hangtag-module-oms/hangtag-module-oms-biz/src/main/java/cn/hangtag/module/oms/convert/saleorder/SaleOrderConvert.java +++ b/hangtag-module-oms/hangtag-module-oms-biz/src/main/java/cn/hangtag/module/oms/convert/saleorder/SaleOrderConvert.java @@ -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); diff --git a/hangtag-module-oms/hangtag-module-oms-biz/src/main/java/cn/hangtag/module/oms/dal/dataobject/saleorder/SaleOrderDO.java b/hangtag-module-oms/hangtag-module-oms-biz/src/main/java/cn/hangtag/module/oms/dal/dataobject/saleorder/SaleOrderDO.java index 1234867..8ffb2e1 100644 --- a/hangtag-module-oms/hangtag-module-oms-biz/src/main/java/cn/hangtag/module/oms/dal/dataobject/saleorder/SaleOrderDO.java +++ b/hangtag-module-oms/hangtag-module-oms-biz/src/main/java/cn/hangtag/module/oms/dal/dataobject/saleorder/SaleOrderDO.java @@ -34,10 +34,16 @@ public class SaleOrderDO extends BaseDO { * 单据编号 */ private String billno; + /** + * 销售合约编码前缀 + */ + private String saleContractCodePrefix; + /** * 销售合约编码 */ private String saleContractCode; + /** * 客户id */ diff --git a/hangtag-module-oms/hangtag-module-oms-biz/src/main/java/cn/hangtag/module/oms/service/saleorder/SaleOrderService.java b/hangtag-module-oms/hangtag-module-oms-biz/src/main/java/cn/hangtag/module/oms/service/saleorder/SaleOrderService.java index af59664..3f677af 100644 --- a/hangtag-module-oms/hangtag-module-oms-biz/src/main/java/cn/hangtag/module/oms/service/saleorder/SaleOrderService.java +++ b/hangtag-module-oms/hangtag-module-oms-biz/src/main/java/cn/hangtag/module/oms/service/saleorder/SaleOrderService.java @@ -128,6 +128,12 @@ public interface SaleOrderService { */ String getNewContractCode2(); + /** + * 获取销售合同编码 + * @return + */ + String getNewContractCode3(); + List getSaleOrderSkuEntryListByEntryId(Long entryId); List queryFollowerUserListByBrandId(String brandId); diff --git a/hangtag-module-oms/hangtag-module-oms-biz/src/main/java/cn/hangtag/module/oms/service/saleorder/SaleOrderServiceImpl.java b/hangtag-module-oms/hangtag-module-oms-biz/src/main/java/cn/hangtag/module/oms/service/saleorder/SaleOrderServiceImpl.java index 6009a04..e865d8b 100644 --- a/hangtag-module-oms/hangtag-module-oms-biz/src/main/java/cn/hangtag/module/oms/service/saleorder/SaleOrderServiceImpl.java +++ b/hangtag-module-oms/hangtag-module-oms-biz/src/main/java/cn/hangtag/module/oms/service/saleorder/SaleOrderServiceImpl.java @@ -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 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; } diff --git a/hangtag-ui/hangtag-ui-admin/src/api/oms/saleorder/index.ts b/hangtag-ui/hangtag-ui-admin/src/api/oms/saleorder/index.ts index 9d7e041..1130091 100644 --- a/hangtag-ui/hangtag-ui-admin/src/api/oms/saleorder/index.ts +++ b/hangtag-ui/hangtag-ui-admin/src/api/oms/saleorder/index.ts @@ -19,6 +19,7 @@ export interface SaleOrderVO { invoiceRemarks: string // 发票备注 contractType: string // 合约类型 currencyType: string // 结算币种 + saleContractCodePrefix: string // 销售合约号前缀 saleContractCode: string // 销售合约号 logisticsCode: string // 销售合约号 totalQty: number // 总数量 diff --git a/hangtag-ui/hangtag-ui-admin/src/utils/dict.ts b/hangtag-ui/hangtag-ui-admin/src/utils/dict.ts index f7f0ade..1118d98 100644 --- a/hangtag-ui/hangtag-ui-admin/src/utils/dict.ts +++ b/hangtag-ui/hangtag-ui-admin/src/utils/dict.ts @@ -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', //销售合约号前缀 } diff --git a/hangtag-ui/hangtag-ui-admin/src/views/oms/saleorder/detail/index.vue b/hangtag-ui/hangtag-ui-admin/src/views/oms/saleorder/detail/index.vue index c0de0df..a8384be 100644 --- a/hangtag-ui/hangtag-ui-admin/src/views/oms/saleorder/detail/index.vue +++ b/hangtag-ui/hangtag-ui-admin/src/views/oms/saleorder/detail/index.vue @@ -45,9 +45,25 @@ - + + + +   + + {{ formData.saleContractCode }} + - {{ formData.saleContractCode }} + {{ formData.saleContractCodePrefix + formData.saleContractCode }} {{ formData.brandName }} {{ formatDate(formData.bizdate,'YYYY-MM-DD') }} {{ formatDate(formData.confirmdate,'YYYY-MM-DD') }} @@ -79,6 +95,7 @@ {{ formData.currencyType }} {{ formData.totalQty }} {{ formData.orderAmount }} + {{ formData.contractCode }} {{ formData.logisticsCode }} {{ formData.remark }} @@ -305,7 +322,7 @@ const formData = ref({ }) 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 } diff --git a/hangtag-ui/hangtag-ui-front/src/locales/en.ts b/hangtag-ui/hangtag-ui-front/src/locales/en.ts index d3ba949..ca7781c 100644 --- a/hangtag-ui/hangtag-ui-front/src/locales/en.ts +++ b/hangtag-ui/hangtag-ui-front/src/locales/en.ts @@ -547,6 +547,7 @@ export default { currencyType:'currencyType', totalQty:'totalQty', orderAmount:'orderAmount', + contractCode:'contractCode', invoiceCode:'invoiceCode', invoiceName:'invoiceName', invoiceAddress:'invoiceAddress', diff --git a/hangtag-ui/hangtag-ui-front/src/locales/zh-CN.ts b/hangtag-ui/hangtag-ui-front/src/locales/zh-CN.ts index 34902f2..62c0c4d 100644 --- a/hangtag-ui/hangtag-ui-front/src/locales/zh-CN.ts +++ b/hangtag-ui/hangtag-ui-front/src/locales/zh-CN.ts @@ -542,6 +542,7 @@ export default { currencyType:'结算币种', totalQty:'订单总数量', orderAmount:'订单总金额', + contractCode:'客户采购编号', invoiceCode:'发票抬头', invoiceName:'发票名称', invoiceAddress:'发票地址', diff --git a/hangtag-ui/hangtag-ui-front/src/views/oms/saleorder/detail/index.vue b/hangtag-ui/hangtag-ui-front/src/views/oms/saleorder/detail/index.vue index a3b71dd..397f214 100644 --- a/hangtag-ui/hangtag-ui-front/src/views/oms/saleorder/detail/index.vue +++ b/hangtag-ui/hangtag-ui-front/src/views/oms/saleorder/detail/index.vue @@ -30,6 +30,7 @@ {{ formData.currencyType }} {{ formData.totalQty }} {{ formData.orderAmount }} + {{ formData.saleContractCodePrefix + formData.contractCode }} {{ formData.logisticsCode }} {{ formData.remark }}