From 22888ef18c3024b020b2ee9156e5a88120fb96c0 Mon Sep 17 00:00:00 2001 From: yf <770153798@qq.com> Date: Fri, 3 Jan 2025 02:24:51 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=20=E9=94=80=E5=94=AE?= =?UTF-8?q?=E8=AE=A2=E5=8D=95sku=E8=A1=8C=E5=A4=87=E6=B3=A8=EF=BC=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../saleorder/front/dto/SaleOrderSkuDTO.java | 7 ++ .../saleordersku/SaleOrderSkuDO.java | 5 ++ .../saleorder/SaleOrderServiceImpl.java | 62 ++++++++++------- .../DraftDesign/components/DesignPropEdit.vue | 26 ++++--- hangtag-ui/hangtag-ui-admin/src/locales/en.ts | 12 +++- .../hangtag-ui-admin/src/locales/zh-CN.ts | 8 +++ .../DraftDesign/components/DesignPropEdit.vue | 69 ++++++++++++------- hangtag-ui/hangtag-ui-front/src/locales/en.ts | 10 ++- .../hangtag-ui-front/src/locales/zh-CN.ts | 5 ++ .../OrderAddProductStep/ProductItem1.vue | 62 ++++++++++++----- .../OrderAddProductStep/ProductItem2.vue | 14 +++- .../OrderAddProductStep/ProductItem3.vue | 13 ++++ .../OrderAddProductStep/ProductSkuList.vue | 53 ++++++++++---- .../src/views/oms/order/createorder/index.vue | 60 +++++++++++----- 14 files changed, 296 insertions(+), 110 deletions(-) diff --git a/hangtag-module-oms/hangtag-module-oms-biz/src/main/java/cn/hangtag/module/oms/controller/admin/saleorder/front/dto/SaleOrderSkuDTO.java b/hangtag-module-oms/hangtag-module-oms-biz/src/main/java/cn/hangtag/module/oms/controller/admin/saleorder/front/dto/SaleOrderSkuDTO.java index 60be45d..5a53609 100644 --- a/hangtag-module-oms/hangtag-module-oms-biz/src/main/java/cn/hangtag/module/oms/controller/admin/saleorder/front/dto/SaleOrderSkuDTO.java +++ b/hangtag-module-oms/hangtag-module-oms-biz/src/main/java/cn/hangtag/module/oms/controller/admin/saleorder/front/dto/SaleOrderSkuDTO.java @@ -68,6 +68,11 @@ public class SaleOrderSkuDTO implements Serializable { */ private String labelSize; + /** + * 备注 + */ + private String remark; + /** * 动态属性 排序信息 */ @@ -90,6 +95,8 @@ public class SaleOrderSkuDTO implements Serializable { this.productTemplateType = saleOrderSkuDO.getProductTemplateType(); this.propInfo = saleOrderSkuDO.getPropInfo(); this.labelSize = saleOrderSkuDO.getLabelSize(); + this.remark = saleOrderSkuDO.getRemark(); + String specInfo1 = saleOrderSkuDO.getSpecInfo(); if(specInfo1 != null){ this.specInfo = JSONUtil.toBean(specInfo1, SpecInfoDTO.class); diff --git a/hangtag-module-oms/hangtag-module-oms-biz/src/main/java/cn/hangtag/module/oms/dal/dataobject/saleordersku/SaleOrderSkuDO.java b/hangtag-module-oms/hangtag-module-oms-biz/src/main/java/cn/hangtag/module/oms/dal/dataobject/saleordersku/SaleOrderSkuDO.java index 73408a5..8d09cdc 100644 --- a/hangtag-module-oms/hangtag-module-oms-biz/src/main/java/cn/hangtag/module/oms/dal/dataobject/saleordersku/SaleOrderSkuDO.java +++ b/hangtag-module-oms/hangtag-module-oms-biz/src/main/java/cn/hangtag/module/oms/dal/dataobject/saleordersku/SaleOrderSkuDO.java @@ -108,4 +108,9 @@ public class SaleOrderSkuDO extends BaseDO { */ private String mainColor; + /** + * sku 备注 + */ + private String remark; + } \ No newline at end of file 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 836b90e..d14cdcd 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 @@ -162,7 +162,7 @@ public class SaleOrderServiceImpl implements SaleOrderService { saleOrder.setOrderStatus(SaleOrderStatusEnum.YXD.getValue()); List entrys = createReqVO.getEntrys(); String currency = null; - if(entrys!=null&&entrys.size()>0){ + if (entrys != null && entrys.size() > 0) { currency = entrys.get(0).getCurrency(); } saleOrder.setCurrency(currency); @@ -331,10 +331,10 @@ public class SaleOrderServiceImpl implements SaleOrderService { List entrys = getSaleOrderEntryListByParentId(saleOrder.getId()); String contractType = saleOrder.getContractType(); String currencyType = saleOrder.getCurrencyType(); - if(StringUtils.isBlank(contractType)){ + if (StringUtils.isBlank(contractType)) { throw new ServiceException(001, "合约类型不允许为空!"); } - if(StringUtils.isBlank(currencyType)){ + if (StringUtils.isBlank(currencyType)) { throw new ServiceException(001, "结算币种不允许为空!"); } if (entrys == null || entrys.isEmpty()) { @@ -697,9 +697,9 @@ public class SaleOrderServiceImpl implements SaleOrderService { .materialName(itemDTO.getProductName()) .qty(itemDTO.getOrderQty()) .deliveryDate(FuncUtil.timeToLocalDate(itemDTO.getDeliveryDate())).build(); - if(FuncUtil.isNotEmpty(currency)){ + if (FuncUtil.isNotEmpty(currency)) { entry.setCurrency(currency); - BigDecimal price = productInfoService.queryPriceByProductId( entry.getMaterialId(),currency); + BigDecimal price = productInfoService.queryPriceByProductId(entry.getMaterialId(), currency); // 查询默认单价 entry.setPrice(price); } @@ -713,6 +713,7 @@ public class SaleOrderServiceImpl implements SaleOrderService { saleOrderSkuDO.setEntryId(entry.getId()); saleOrderSkuDO.setProductTemplateType(saleOrderSkuDTO.getProductTemplateType()); saleOrderSkuDO.setSpecInfo(JSONUtil.toJsonStr(saleOrderSkuDTO.getSpecInfo())); + saleOrderSkuDO.setRemark(saleOrderSkuDTO.getRemark()); saleOrderSkuDO.setId(FuncUtil.getNextId()); skuList.add(saleOrderSkuDO); } @@ -744,6 +745,7 @@ public class SaleOrderServiceImpl implements SaleOrderService { List saleOrderEntry = dto.getSaleOrderEntry(); List entryList = new ArrayList<>(); List skuList = new ArrayList<>(); + List skuUpdateList = new ArrayList<>(); // 删除之前的的订单条目 deleteSaleOrderEntryByParentId(order.getId()); @@ -758,9 +760,9 @@ public class SaleOrderServiceImpl implements SaleOrderService { .materialName(itemDTO.getProductName()) .qty(itemDTO.getOrderQty()) .deliveryDate(FuncUtil.timeToLocalDate(itemDTO.getDeliveryDate())).build(); - if(FuncUtil.isNotEmpty(currency)){ + if (FuncUtil.isNotEmpty(currency)) { entry.setCurrency(currency); - BigDecimal price = productInfoService.queryPriceByProductId(entry.getMaterialId(),currency); + BigDecimal price = productInfoService.queryPriceByProductId(entry.getMaterialId(), currency); // 查询默认单价 entry.setPrice(price); } @@ -775,14 +777,26 @@ public class SaleOrderServiceImpl implements SaleOrderService { saleOrderSkuDO.setEntryId(entry.getId()); saleOrderSkuDO.setProductTemplateType(saleOrderSkuDTO.getProductTemplateType()); saleOrderSkuDO.setSpecInfo(JSONUtil.toJsonStr(saleOrderSkuDTO.getSpecInfo())); + saleOrderSkuDO.setRemark(saleOrderSkuDTO.getRemark()); saleOrderSkuDO.setId(FuncUtil.getNextId()); - skuList.add(saleOrderSkuDO); + Long id1 = entry.getId(); + if (FuncUtil.isNotEmpty(id1)) { + skuUpdateList.add(saleOrderSkuDO); + } else { + skuList.add(saleOrderSkuDO); + } + } } saleOrderMapper.updateById(order); saleOrderEntryMapper.insertBatch(entryList); - skuOrderSkuMapper.insertBatch(skuList); + if (FuncUtil.isNotEmpty(skuList)) { + skuOrderSkuMapper.insertBatch(skuList); + } + if (FuncUtil.isNotEmpty(skuUpdateList)) { + skuOrderSkuMapper.insertOrUpdateBatch(skuUpdateList); + } updateCustomerInvoiceData(order); return order.getId(); } @@ -990,8 +1004,8 @@ public class SaleOrderServiceImpl implements SaleOrderService { SaleContractSaveReqVO saveReqVO = new SaleContractSaveReqVO(); String billno = getNewOrderCode2(); String contractType = saleOrder.getContractType(); - if(StringUtils.isNotBlank(contractType)){ - billno = billno.replace("XXXX-",contractType+"-"); + if (StringUtils.isNotBlank(contractType)) { + billno = billno.replace("XXXX-", contractType + "-"); } /* // 优先使用销售订单合同号 String billno = saleOrder.getContractCode(); @@ -1123,7 +1137,7 @@ public class SaleOrderServiceImpl implements SaleOrderService { queryWrapper.orderByDesc(SaleOrderDO::getCreateTime); queryWrapper.last("limit 1"); SaleOrderDO orderDO = saleOrderMapper.selectOne(queryWrapper); - if(FuncUtil.isNotEmpty(orderDO)){ + if (FuncUtil.isNotEmpty(orderDO)) { return orderDO.getBrandId(); } return null; @@ -1181,15 +1195,15 @@ public class SaleOrderServiceImpl implements SaleOrderService { private String getNewOrderCode2() { String s = ""; int count = 10; - while (true){ - count --; + while (true) { + count--; try { - s = CodingRulesUtils.generateCode(saleContractCodeId, false); - checkCode2(null,s); + s = CodingRulesUtils.generateCode(saleContractCodeId, false); + checkCode2(null, s); return s; - }catch (ServiceException e){ + } catch (ServiceException e) { log.warn("重复或者下一个编码"); - if(count < 0){ + if (count < 0) { log.error("编码获取失败"); return ""; } @@ -1197,20 +1211,20 @@ public class SaleOrderServiceImpl implements SaleOrderService { } } - private void checkCode2(Long id,String code){ - if(FuncUtil.isNotEmpty(code)){ + private void checkCode2(Long id, String code) { + if (FuncUtil.isNotEmpty(code)) { LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); - lambdaQueryWrapper.select(SaleContractDO::getId,SaleContractDO::getBillno, BaseDO::getDeleted); + lambdaQueryWrapper.select(SaleContractDO::getId, SaleContractDO::getBillno, BaseDO::getDeleted); lambdaQueryWrapper.eq(SaleContractDO::getBillno, code); - lambdaQueryWrapper.eq(SaleContractDO::getDeleted,false); + lambdaQueryWrapper.eq(SaleContractDO::getDeleted, false); List dos = saleContractMapper.selectList(lambdaQueryWrapper); - if(FuncUtil.isEmpty(id) && FuncUtil.isNotEmpty(dos)){ + if (FuncUtil.isEmpty(id) && FuncUtil.isNotEmpty(dos)) { throw exception(GlobalErrorCodeConstants.DATA_DUPLICATE); } if (FuncUtil.isNotEmpty(id) && FuncUtil.isNotEmpty(dos)) { for (SaleContractDO aDo : dos) { // 出现重复并当前id 不一致 - if(!FuncUtil.equals(aDo.getId(), id)){ + if (!FuncUtil.equals(aDo.getId(), id)) { throw exception(GlobalErrorCodeConstants.DATA_DUPLICATE); } } diff --git a/hangtag-ui/hangtag-ui-admin/src/components/DraftDesign/components/DesignPropEdit.vue b/hangtag-ui/hangtag-ui-admin/src/components/DraftDesign/components/DesignPropEdit.vue index 0d4c33d..83e9b22 100644 --- a/hangtag-ui/hangtag-ui-admin/src/components/DraftDesign/components/DesignPropEdit.vue +++ b/hangtag-ui/hangtag-ui-admin/src/components/DraftDesign/components/DesignPropEdit.vue @@ -3,8 +3,8 @@
- - {{ t('designInfo.tipsInfo')}} + + *{{ t('designInfo.tipsInfo')}}
@@ -1058,17 +1058,25 @@ const checkPropInfo = (info) => { } else { const infoList = washingInfoListByType(newInfo[key].groupType) const infos = newInfo[key].dataInfo; + const showLabel1 = newInfo[key].dataInfo[0].showLabel + for (let j = 0; j < infos.length; j++) { - outerLoop: for (let i = 0; i < infoList.length; i++) { - const row1 = infoList[i]; - for (let k = 0; k < row1.langMapping.length; k++) { - // 跳过icon 类型,因为没有url - if (infos[j].locale === row1.langMapping[k].locale) { - infos[j].label = row1.langMapping[k].value - break outerLoop; + console.log("newInfo[key].canInput",showLabel1,newInfo[key]) + if( newInfo[key].canInput){ + infos[j].label = showLabel1 + }else{ + outerLoop: for (let i = 0; i < infoList.length; i++) { + const row1 = infoList[i]; + for (let k = 0; k < row1.langMapping.length; k++) { + // 跳过icon 类型,因为没有url + if (infos[j].locale === row1.langMapping[k].locale) { + infos[j].label = row1.langMapping[k].value + break outerLoop; + } } } } + } console.log("newArr99", infos) newInfo[key].dataInfo = infos; diff --git a/hangtag-ui/hangtag-ui-admin/src/locales/en.ts b/hangtag-ui/hangtag-ui-admin/src/locales/en.ts index 8d9c48d..12131ab 100644 --- a/hangtag-ui/hangtag-ui-admin/src/locales/en.ts +++ b/hangtag-ui/hangtag-ui-admin/src/locales/en.ts @@ -542,7 +542,7 @@ export default { } }, designInfo: { - "auditSubmitText": "Submit for Review", + "auditSubmitText": "Verify", "auditTips": "This draft is only for content verification and is not the final print file.", "cancelText": "Cancel", "titlePreview": "Preview", @@ -661,7 +661,15 @@ export default { "labelColOrderQty": "Order Quantity", "tipsDuplicateSkipped": "Duplicate products skipped.", "tipsAppendSuccess": "Added successfully.", - "btnAddSku": "Add SKU" + "btnAddSku": "Add SKU", + "tipsSkuError1": 'The SKU of the ', // The SKU of the + "tipsSkuError2": 'cannot be left blank.', //cannot be left blank. + "tipsSkuError3": 'Please review', //Please review + "placeRemark": "Please enter the Remark.", + "labelRemark": "Remark", + "viewOrder": "viewOrder", + "backHome": "BackHome", + "tipsDataChange": "DataChange Click Update Button", }, "productDialogList": { "title": "Product List", diff --git a/hangtag-ui/hangtag-ui-admin/src/locales/zh-CN.ts b/hangtag-ui/hangtag-ui-admin/src/locales/zh-CN.ts index 0e31e67..8a43b62 100644 --- a/hangtag-ui/hangtag-ui-admin/src/locales/zh-CN.ts +++ b/hangtag-ui/hangtag-ui-admin/src/locales/zh-CN.ts @@ -658,6 +658,14 @@ export default { tipsDuplicateSkipped: '已跳过重复产品', tipsAppendSuccess: '添加成功', btnAddSku: '添加SKU', + tipsSkuError1: 'SKU中 ', // The SKU of the + tipsSkuError2: '不能为空', //cannot be left blank. + tipsSkuError3: '请批稿', //Please review + labelRemark: "备注", + placeRemark: "请输入备注", + viewOrder: "查看订单", + backHome: "返回首页", + tipsDataChange: "数据已更新,请点击更新按钮", }, productDialogList:{ title: '产品列表', diff --git a/hangtag-ui/hangtag-ui-front/src/components/DraftDesign/components/DesignPropEdit.vue b/hangtag-ui/hangtag-ui-front/src/components/DraftDesign/components/DesignPropEdit.vue index 0d4c33d..5109b61 100644 --- a/hangtag-ui/hangtag-ui-front/src/components/DraftDesign/components/DesignPropEdit.vue +++ b/hangtag-ui/hangtag-ui-front/src/components/DraftDesign/components/DesignPropEdit.vue @@ -1,10 +1,11 @@ +