From e62e97ec6bf644d90c0565bb0db86048bf19484d Mon Sep 17 00:00:00 2001 From: "han\\hanst" Date: Wed, 23 Apr 2025 13:17:49 +0800 Subject: [PATCH] =?UTF-8?q?bug=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ecss/controller/CoDelController.java | 11 +- .../sys/modules/ecss/mapper/CoDelMapper.java | 10 +- .../modules/ecss/service/CoDelService.java | 6 +- .../ecss/service/impl/CoDelServiceImpl.java | 146 ++++++++++-------- .../resources/mapper/ecss/CoDelMapper.xml | 40 ++++- .../declaration-contract-template.xlsx | Bin 0 -> 31222 bytes .../templates/declaration-template.xlsx | Bin 142225 -> 142284 bytes 7 files changed, 136 insertions(+), 77 deletions(-) create mode 100644 src/main/resources/templates/declaration-contract-template.xlsx diff --git a/src/main/java/com/xujie/sys/modules/ecss/controller/CoDelController.java b/src/main/java/com/xujie/sys/modules/ecss/controller/CoDelController.java index 12a7213b..87d26e6c 100644 --- a/src/main/java/com/xujie/sys/modules/ecss/controller/CoDelController.java +++ b/src/main/java/com/xujie/sys/modules/ecss/controller/CoDelController.java @@ -9,6 +9,8 @@ import com.xujie.sys.modules.ecss.entity.*; import com.xujie.sys.modules.ecss.service.CoDelService; import com.xujie.sys.modules.factory.entity.vo.BusinessRoleVo; import com.xujie.sys.modules.orderIssure.entity.SOIssueNotifyHeaderData; +import com.xujie.sys.modules.part.entity.ComponentPartData; +import com.xujie.sys.modules.part.entity.PartInformationEntity; import com.xujie.sys.modules.part.entity.PartSubPropertiesValue; import com.xujie.sys.modules.part.entity.PartSubPropertiesValueData; import com.xujie.sys.modules.part.service.PartInformationService; @@ -228,7 +230,7 @@ public class CoDelController { @PostMapping("/savePalletDetail") - public R savePalletDetail(@RequestBody EcssCoDelPalletDetailData inData){ + public R savePalletDetail(@RequestBody EcssCoDelPalletData inData){ coDelService.savePalletDetail(inData); return R.ok(); } @@ -441,4 +443,11 @@ public class CoDelController { List rows = coDelService.getPropertiesListByDeclaration(inData); return R.ok().put("rows", rows); } + + @PostMapping(value="/queryPartListAll") + @ResponseBody + public R queryPartListAll(@RequestBody PartInformationEntity data) { + PageUtils page = coDelService.queryPartListAll(data); + return R.ok().put("page", page); + } } diff --git a/src/main/java/com/xujie/sys/modules/ecss/mapper/CoDelMapper.java b/src/main/java/com/xujie/sys/modules/ecss/mapper/CoDelMapper.java index 86110236..8e5fae84 100644 --- a/src/main/java/com/xujie/sys/modules/ecss/mapper/CoDelMapper.java +++ b/src/main/java/com/xujie/sys/modules/ecss/mapper/CoDelMapper.java @@ -7,8 +7,7 @@ import com.xujie.sys.modules.attrbute.entity.PropertyModelHeader; import com.xujie.sys.modules.ecss.data.*; import com.xujie.sys.modules.ecss.entity.*; import com.xujie.sys.modules.orderIssure.entity.PartData; -import com.xujie.sys.modules.part.entity.PartSubPropertiesValue; -import com.xujie.sys.modules.part.entity.PartSubPropertiesValueData; +import com.xujie.sys.modules.part.entity.*; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -37,7 +36,7 @@ public interface CoDelMapper { void batchSaveEcssCoDelNotifyDetail(List list ); List checkPart(@Param("site") String site, @Param("partNo") String partNo); - List getPartNo(@Param("site") String site, @Param("partNo") String partNo, @Param("userName") String userName); + List getPartNo(@Param("site") String site, @Param("partNo") String partNo, @Param("userName") String userName, @Param("buNo") String buNo); List getPartInfo(@Param("site") String site, @Param("partNo") String partNo); @@ -101,6 +100,7 @@ public interface CoDelMapper { int getCoDelPalletHeaderSeqNo(EcssCoDelPalletHeaderData inData); int getCoDelPalletDetailItem(EcssCoDelPalletDetail inData); void updateCodelPalletHeader(EcssCoDelPalletHeaderData inData); + void updateCodelPalletHeader2(EcssCoDelPalletData inData); void updateCodelPalletDetail(EcssCoDelPalletDetail inData); void deletePalletHeader(EcssCoDelPalletHeaderData inData); void deletePalletDetail(EcssCoDelPalletDetail inData); @@ -170,6 +170,8 @@ public interface CoDelMapper { List getNotifyPartDetail(EcssDeclarationHeaderData inData); + List getNotifyDetailGroup(EcssDeclarationHeaderData data); + List getPropertiesListByTypeAndCodeNo(@Param("site") String site,@Param("recordType") String recordType, @Param("codeNo") String codeNo,@Param("buNo") String buNo); @@ -204,4 +206,6 @@ public interface CoDelMapper { void deleteWalMartOrder(EcssWalMartOrder inData); void batchSaveWalMartOrder(List list ); + + IPage queryPartListAll(Page componentPartDataPage, @Param("query") PartInformationEntity data); } diff --git a/src/main/java/com/xujie/sys/modules/ecss/service/CoDelService.java b/src/main/java/com/xujie/sys/modules/ecss/service/CoDelService.java index ee8f67c3..0a8c7c36 100644 --- a/src/main/java/com/xujie/sys/modules/ecss/service/CoDelService.java +++ b/src/main/java/com/xujie/sys/modules/ecss/service/CoDelService.java @@ -4,6 +4,8 @@ import com.xujie.sys.common.utils.PageUtils; import com.xujie.sys.modules.ecss.data.*; import com.xujie.sys.modules.ecss.entity.*; +import com.xujie.sys.modules.part.entity.ComponentPartData; +import com.xujie.sys.modules.part.entity.PartInformationEntity; import com.xujie.sys.modules.part.entity.PartSubPropertiesValue; import com.xujie.sys.modules.part.entity.PartSubPropertiesValueData; import org.apache.ibatis.annotations.Param; @@ -63,7 +65,7 @@ public interface CoDelService { void deletePalletHeader(EcssCoDelPalletHeaderData inData); - void savePalletDetail(EcssCoDelPalletDetailData inData); + void savePalletDetail(EcssCoDelPalletData inData); void deletePalletDetail(EcssCoDelPalletDetailData inData); @@ -128,4 +130,6 @@ public interface CoDelService { void deleteWalMartOrder(EcssWalMartOrder data); List getPropertiesListByDeclaration(EcssDeclarationHeaderData inData); + + PageUtils queryPartListAll(PartInformationEntity data); } diff --git a/src/main/java/com/xujie/sys/modules/ecss/service/impl/CoDelServiceImpl.java b/src/main/java/com/xujie/sys/modules/ecss/service/impl/CoDelServiceImpl.java index 122bd97c..2037a86b 100644 --- a/src/main/java/com/xujie/sys/modules/ecss/service/impl/CoDelServiceImpl.java +++ b/src/main/java/com/xujie/sys/modules/ecss/service/impl/CoDelServiceImpl.java @@ -12,10 +12,7 @@ import com.xujie.sys.modules.ecss.entity.*; import com.xujie.sys.modules.ecss.mapper.CoDelMapper; import com.xujie.sys.modules.ecss.service.CoDelService; import com.xujie.sys.modules.orderIssure.entity.PartData; -import com.xujie.sys.modules.part.entity.PartSubPropertiesValue; -import com.xujie.sys.modules.part.entity.PartSubPropertiesValueData; -import com.xujie.sys.modules.part.entity.PartSubPropertiesValueHeaderData; -import com.xujie.sys.modules.part.entity.PlmPropertiesItemAvailableData; +import com.xujie.sys.modules.part.entity.*; import com.xujie.sys.modules.part.mapper.PartInformationMapper; import com.xujie.sys.modules.pms.mapper.EamMapper; import com.xujie.sys.modules.sys.entity.SysUserEntity; @@ -171,7 +168,7 @@ public class CoDelServiceImpl implements CoDelService { task.setStatus(getStringCellValue(row, 6)); task.setFamily(getStringCellValue(row, 7)); task.setPn(getStringCellValue(row, 8)); - List parts = coDelMapper.getPartNo(site, task.getPn(),currentUser.getUsername()); + List parts = coDelMapper.getPartNo(site, task.getPn(),currentUser.getUsername(),inData.getBuNo()); if (parts.isEmpty()) { throw new RuntimeException("导入失败:物料:" + task.getPn() + "不存在!"); } @@ -316,6 +313,12 @@ public class CoDelServiceImpl implements CoDelService { @Override public void changeEcssDelStatus(EcssCoDelNotifyHeaderData data) { + if (data.getNotifyStatus().equals("已下达")) { + List checkEcssCoDelNotifyDetail = coDelMapper.searchEcssCoDelNotifyDetail(data); + if (checkEcssCoDelNotifyDetail.isEmpty()) { + throw new RuntimeException("该发货通知单下没有明细无法下达!"); + } + } coDelMapper.changeEcssDelStatus(data); } @@ -328,6 +331,11 @@ public class CoDelServiceImpl implements CoDelService { if (!"已计划".equals(checkHeader.get(0).getNotifyStatus())) { throw new RuntimeException("发货通知单状态不为已计划,无法修改。"); } + SysUserEntity currentUser = (SysUserEntity) SecurityUtils.getSubject().getPrincipal(); + List parts = coDelMapper.getPartNo(data.getSite(), data.getPn(),currentUser.getUsername(),data.getBuNo()); + if (parts.isEmpty()) { + throw new RuntimeException("修改失败:物料:" + data.getPn() + "不存在!"); + } coDelMapper.updateEcssDelDetail(data); } @@ -534,6 +542,7 @@ public class CoDelServiceImpl implements CoDelService { } @Override + @Transactional public void saveCoDelPalletDataByExcel(MultipartFile file, EcssCoDelNotifyHeaderData inData) { SysUserEntity currentUser = (SysUserEntity) SecurityUtils.getSubject().getPrincipal(); List excelList = new ArrayList<>(); @@ -582,7 +591,7 @@ public class CoDelServiceImpl implements CoDelService { excelData.setPalletRemark(getStringCellValue(row, 2)); excelData.setPoNo(getStringCellValue(row, 3)); excelData.setPn(getStringCellValue(row, 4)); - List parts = coDelMapper.getPartNo(excelData.getSite(), excelData.getPn(),currentUser.getUsername()); + List parts = coDelMapper.getPartNo(excelData.getSite(), excelData.getPn(),currentUser.getUsername(),inData.getBuNo()); if (parts.isEmpty()) { throw new RuntimeException("导入失败:物料:" + excelData.getPn() + "不存在!"); } @@ -680,12 +689,12 @@ public class CoDelServiceImpl implements CoDelService { // 每一个物料加属性对应一个属性,用来下面遍历发货通知单明细时获取具体属性值 Map partNoAndItemNoMap = propertiesValues.stream() .collect(Collectors.toMap(o -> o.getPartNo() + "$" + o.getPropertiesItemNo(), o -> o)); - PartSubPropertiesValueData propertiesWeight = partNoAndItemNoMap.get(partNo + "$ROLLWEIGHT");//每卷重量 + //PartSubPropertiesValueData propertiesWeight = partNoAndItemNoMap.get(partNo + "$ROLLWEIGHT");//每卷重量 PartSubPropertiesValueData propertiesRollQty = partNoAndItemNoMap.get(partNo + "$ROLLQTY");//每卷数量 PartSubPropertiesValueData propertiesBoxRolls = partNoAndItemNoMap.get(partNo + "$BOXROLLS");//每箱卷数 - PartSubPropertiesValueData propertiesBoxWeight = partNoAndItemNoMap.get(partNo + "$BOXWEIGHT");//箱重量 - if (propertiesWeight==null||propertiesRollQty==null||propertiesBoxRolls==null||propertiesBoxWeight==null) { - throw new RuntimeException("请先维护物料["+partNo+"]基本信息!"); + //PartSubPropertiesValueData propertiesBoxWeight = partNoAndItemNoMap.get(partNo + "$BOXWEIGHT");//箱重量 + if (propertiesRollQty==null||propertiesBoxRolls==null) { + throw new RuntimeException("请先维护物料["+detailData.getPn()+"]的每卷数量和每箱卷数!"); } detailData.setBoxQty(detailData.getQty().divide( BigDecimal.valueOf(((double) propertiesRollQty.getNumValue().intValue() * propertiesBoxRolls.getNumValue().intValue())),2, BigDecimal.ROUND_HALF_UP)); @@ -740,8 +749,28 @@ public class CoDelServiceImpl implements CoDelService { for (int i = 0; i < headerList.size(); i++) { coDelMapper.saveCodelPalletHeader(headerList.get(i)); } + Map palletDetailMap = new HashMap<>(); for (int i = 0; i < detailList.size(); i++) { coDelMapper.saveCodelPalletDetail(detailList.get(i)); + if (!palletDetailMap.containsKey(detailList.get(i).getPn())) { + palletDetailMap.put(detailList.get(i).getPn(), detailList.get(i).getQty()); + } else { + palletDetailMap.put(detailList.get(i).getPn(), palletDetailMap.get(detailList.get(i).getPn()).add(detailList.get(i).getQty())); + } + } + List ecssCoDelNotifyDetail = coDelMapper.searchEcssCoDelNotifyDetail(inData); + Map notifyDetailMap = new HashMap<>(); + for (EcssCoDelNotifyDetailData detailData : ecssCoDelNotifyDetail) { + if (!notifyDetailMap.containsKey(detailData.getPn())) { + notifyDetailMap.put(detailData.getPn(), detailData.getQty()); + } else { + notifyDetailMap.put(detailData.getPn(), notifyDetailMap.get(detailData.getPn()).add(detailData.getQty())); + } + } + for (Map.Entry entry : palletDetailMap.entrySet()) { + if (notifyDetailMap.get(entry.getKey()).compareTo(entry.getValue())!=0) { + throw new RuntimeException("物料["+entry.getKey()+"]的数量和发货通知单数量不一致!"); + } } } catch (Exception e) { throw new RuntimeException("导入失败:" + e.getMessage()); @@ -886,7 +915,8 @@ public class CoDelServiceImpl implements CoDelService { @Override - public void savePalletDetail(EcssCoDelPalletDetailData inData) { + @Transactional + public void savePalletDetail(EcssCoDelPalletData inData) { List checkPart = coDelMapper.checkPart(inData.getSite(), inData.getPartNo()); if (checkPart.size() == 0) { throw new RuntimeException("导入失败:物料:" + inData.getPartNo() + "在当前工厂不存在!"); @@ -900,6 +930,7 @@ public class CoDelServiceImpl implements CoDelService { } else { inData.setUpdateBy(currentUser.getUsername()); coDelMapper.updateCodelPalletDetail(inData); + coDelMapper.updateCodelPalletHeader2(inData); } } @@ -1263,7 +1294,7 @@ public class CoDelServiceImpl implements CoDelService { template.addVar("dateStr", DateUtils.format(notifyHeader.getReadyDate(), "yyyy-MM-dd")); template.addVar("Currency", "CNY"); template.addVar("Incoterm", "EXW "); - template.addVar("shippingMode", notifyHeader.getShippingMode()); + template.addVar("shippingMode", stringInput(notifyHeader.getShippingMode())); Map notifyDetailMap = notifyDetailList.stream().collect( Collectors.toMap(EcssCoDelNotifyDetailData::getPartNo,e->e)); // 装箱明细 @@ -1323,12 +1354,12 @@ public class CoDelServiceImpl implements CoDelService { } // RFID需要的 if (notifyHeader.getBuNo().equals("01-Label") || notifyHeader.getBuNo().equals("03-RFID")) { - template.addVar("madein", data.getOrigin()); + template.addVar("madein", stringInput(data.getOrigin())); } // 孟加拉需要的 if (data.getMaterial()!=null && data.getMaterial()) { template.addVar("RFIDBase", "RFID Base Material"); - template.addVar("HSCode", "& H.S.Code:"+data.getHsCode()); + template.addVar("HSCode", "& H.S.Code:"+stringInput(data.getHsCode())); } // 欧洲地区需要 if (ecHeader.getPackaging()!=null && ecHeader.getPackaging()) { @@ -1496,7 +1527,7 @@ public class CoDelServiceImpl implements CoDelService { // 孟加拉需要的 if (data.getMaterial()!=null && data.getMaterial()) { template.addVar("RFIDBase", "RFID Base Material"); - template.addVar("HSCode", "& H.S.Code:"+data.getHsCode()); + template.addVar("HSCode", "& H.S.Code:"+stringInput(data.getHsCode())); template.addVar("volume", palletHeaderData.map(ecssCoDelPalletHeaderData -> ecssCoDelPalletHeaderData.getLength().setScale(2, RoundingMode.HALF_UP) + "*" + ecssCoDelPalletHeaderData.getWidth().setScale(2, RoundingMode.HALF_UP) + "*" @@ -1515,7 +1546,7 @@ public class CoDelServiceImpl implements CoDelService { template.addVar("originLabel", "Origin of goods Made in China"); template.addVar("sellerLabel", "Name of seller Checkpoint Commercial (Shanghai) Co.. Ltd."); } - template.addVar("Shipping_Mark", data.getShippingMark()); + template.addVar("Shipping_Mark", stringInput(data.getShippingMark())); template.addVar("Measurement", palletHeaderData.get().getLength(). multiply(palletHeaderData.get().getWidth()).multiply(palletHeaderData.get().getHeight()). multiply(BigDecimal.valueOf(totalPlt)).setScale(2, RoundingMode.HALF_UP)); @@ -1636,14 +1667,14 @@ public class CoDelServiceImpl implements CoDelService { template.addVar("shipping_port", stringInput(notifyHeader.getDestination())); template.addVar("cmc_invoice", stringInput(notifyHeader.getCmcInvoice())); // 导出时默认,可编辑的栏目 - template.addVar("sales_method", data.getSalesMethod());//贸易方式 - template.addVar("currency", data.getCurrency());//币制 - template.addVar("made_area", data.getMadeArea());//货物产地 - template.addVar("send_port", data.getSendPort());//发货港 - template.addVar("shipper", data.getShipper());//发货人 - template.addVar("voyage", data.getVoyage());//航次 - template.addVar("delivery_goods_date", data.getDeliveryGoodsDate());//提货日期 - template.addVar("shipping_date", data.getShippingDate());//船期 + template.addVar("sales_method", stringInput(data.getSalesMethod()));//贸易方式 + template.addVar("currency", stringInput(data.getCurrency()));//币制 + template.addVar("made_area", stringInput(data.getMadeArea()));//货物产地 + template.addVar("send_port", stringInput(data.getSendPort()));//发货港 + template.addVar("shipper", stringInput(data.getShipper()));//发货人 + template.addVar("voyage", stringInput(data.getVoyage()));//航次 + template.addVar("delivery_goods_date", stringInput(data.getDeliveryGoodsDate()));//提货日期 + template.addVar("shipping_date", stringInput(data.getShippingDate()));//船期 // 需要计算的 // 总托数 Integer totalPlt = palletHeaderDataList.get(0).getPalletQty(); @@ -1686,49 +1717,22 @@ public class CoDelServiceImpl implements CoDelService { @Override public void downloadContract(HttpServletResponse response, EcssDeclarationHeaderData data) { try { - ExcelTemplate template = ExcelTemplate.load(new ClassPathResource("templates/declaration-elements-template.xlsx").getInputStream()); - template.addVar("brandType", data.getBrandType()); - // 获取partNo列表 - List partNos = coDelMapper.getDeclarationElements(data); - List partNoList = partNos.stream().map(map -> map.get("partNo").toString()).collect(Collectors.toList()); - // 根据partNo获取hsCode - List hsCodes = coDelMapper.getHsCodeByPartNo(data.getSite(), partNoList); - Map hsCodeMap = new HashMap<>(); - for (int i = 0; i < hsCodes.size(); i++) { - Map eorder = hsCodes.get(i); - String key = eorder.get("hsCode")+"&"+eorder.get("hsCodeDesc"); - if (hsCodeMap.containsKey(key)) { - hsCodeMap.get(key).put("sku", hsCodeMap.get(key).get("sku")+"\n "+eorder.get("sku")); - } else { - // hscode所有属性 - PartSubPropertiesValueData inData = new PartSubPropertiesValueData(); - inData.setSite(data.getSite()); - inData.setBuNo(eorder.get("BuNo").toString()); - inData.setCodeNo(eorder.get("codeNo").toString()); - inData.setPartNo(eorder.get("hsCodeDesc").toString()); - inData.setRecordType("ECSS"); - List propertiesList = coDelMapper.getPropertiesListByPartAndCodeNo(inData); - StringBuilder properties = new StringBuilder(); - for (int j = 0; j < propertiesList.size(); j++) { - if (j == propertiesList.size() - 1) { - properties.append(propertiesList.get(j).getItemDesc()).append(": ").append(propertiesList.get(j).getTextValue()); - } else { - properties.append(propertiesList.get(j).getItemDesc()).append(": ").append(propertiesList.get(j).getTextValue()).append("\n"); - } - } - eorder.put("properties",properties); - hsCodeMap.put(key, eorder); - } - } - List list = new ArrayList<>(hsCodeMap.values()); - for (int i = 0; i < list.size(); i++) { - Map fMap = list.get(i); - fMap.put("content", "HS Code: "+fMap.get("hsCode")+ - "\n品名: "+(data.getHsCodeDescType()!=null&&data.getHsCodeDescType().equals("N")?fMap.get("hsCodeDescEn"):fMap.get("hsCodeDesc"))+ - "\n"+fMap.get("properties")+ - "\n型号: "+fMap.get("sku")); + ExcelTemplate template = ExcelTemplate.load(new ClassPathResource("templates/declaration-contract-template.xlsx").getInputStream()); + EcssDeclarationHeaderData ecHeader = coDelMapper.getDeclarationHeader(data); + // 发货通知单 + EcssCoDelNotifyHeaderData notifyHeader = coDelMapper.getEcssCoDelNotifyHeader(data.getSite(), data.getDelNo()); + template.addVar("cmcInvoice", notifyHeader.getCmcInvoice()); + List notifyDetailGroup = coDelMapper.getNotifyDetailGroup(data); + BigDecimal totalQty = BigDecimal.ZERO; + BigDecimal totalAmount = BigDecimal.ZERO; + for (int i = 0; i < notifyDetailGroup.size(); i++) { + Map notifyDetail = notifyDetailGroup.get(i); + totalQty = totalQty.add((BigDecimal) notifyDetail.get("total_qty")); + totalAmount = totalAmount.add((BigDecimal) notifyDetail.get("ttl_amount")); } - template.addListVarAll(list); + template.addVar("totalQty", totalQty); + template.addVar("totalAmount", totalAmount); + template.addListVarAll(notifyDetailGroup); template.render(response.getOutputStream()); response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); response.setHeader("Content-Disposition", "attachment; filename=\"合同.xlsx\""); @@ -1786,10 +1790,10 @@ public class CoDelServiceImpl implements CoDelService { int seqNo = coDelMapper.getCoDelPalletHeaderSeqNo(inData); for (String partNo : palletItemMap.keySet()) { List partList = coDelMapper.getPartInfo(inData.getSite(),partNo); - List packageDataList = coDelMapper.getPackage(inData.getSite(),inData.getBuNo(),partList.get(0).getPackageNo()); + /* List packageDataList = coDelMapper.getPackage(inData.getSite(),inData.getBuNo(),partList.get(0).getPackageNo()); if (packageDataList.isEmpty()) { throw new RuntimeException("物料["+partList.get(0).getSku()+"]未维护包装箱信息!"); - } + }*/ PartSubPropertiesValueData propertiesWeight = partNoAndItemNoMap.get(partNo + "$ROLLWEIGHT");//每卷重量 PartSubPropertiesValueData propertiesRollQty = partNoAndItemNoMap.get(partNo + "$ROLLQTY");//每卷数量 PartSubPropertiesValueData propertiesBoxRolls = partNoAndItemNoMap.get(partNo + "$BOXROLLS");//每箱卷数 @@ -2022,4 +2026,10 @@ public class CoDelServiceImpl implements CoDelService { }); return list; } + + @Override + public PageUtils queryPartListAll(PartInformationEntity data) { + IPage list = this.coDelMapper.queryPartListAll(new Page(data.getPage(), data.getLimit()), data); + return new PageUtils(list); + } } diff --git a/src/main/resources/mapper/ecss/CoDelMapper.xml b/src/main/resources/mapper/ecss/CoDelMapper.xml index ec60eb84..2efb9701 100644 --- a/src/main/resources/mapper/ecss/CoDelMapper.xml +++ b/src/main/resources/mapper/ecss/CoDelMapper.xml @@ -126,7 +126,7 @@ select a.site,a.bu_no,a.delNo,a.item_no,a.salesOrder,a.salesOrder_item_no,a.customerPO,a.line,a.version,a.status,a.family, a.part_no,a.part_description,a.qty,a.lt,a.cmc_comment,a.saleType,a.awb_bl,a.shipping_number,a.forwarder_info, a.currency,a.tp,a.ttl_amount,a.sum_price,a.so,a.upc,a.remark,a.erp_delItemNo,a.pn,CONVERT(DECIMAL(20, 0),a.nocartons) as nocartons, - c.num_value as boxrolls,d.num_value as rollqty + c.num_value as boxrolls,d.num_value as rollqty,#{cmcInvoice} as cmcInvoice from ecss_CoDelNotifydetail a left join part_sub_properties_value c on a.part_no=c.part_no and c.site=a.site and c.bu_no=a.bu_no and c.record_type='ECSSPART' and c.code_no='BG001' and c.properties_item_no='BOXROLLS' @@ -188,7 +188,7 @@ @@ -218,7 +218,7 @@ update ecss_CoDelNotifyDetail set salesOrder=#{salesOrder},customerPO=#{customerPO},line=#{line},version=#{version}, status=#{status},family=#{family},part_no=#{partNo},part_description=#{partDescription},qty=#{qty,jdbcType=DECIMAL}, - lt=#{lt,jdbcType=DECIMAL},cmc_comment=#{cmcComment},saleType=#{saleType}, + lt=#{lt,jdbcType=DECIMAL},cmc_comment=#{cmcComment},saleType=#{saleType},pn=#{pn}, awb_bl=#{awbBl},shipping_number=#{shippingNumber},forwarder_info=#{forwarderInfo},currency=#{currency}, tp=#{tp,jdbcType=DECIMAL},ttl_amount=#{ttlAmount,jdbcType=DECIMAL},sum_price=#{sumPrice,jdbcType=DECIMAL}, so=#{so},upc=#{upc},remark=#{remark} @@ -448,6 +448,11 @@ create_by,create_date,update_by,update_date update_by=#{updateBy},update_date=GetDate() where site =#{site} and bu_no=#{buNo} and delNo=#{delNo} and seq_no=#{seqNo} + + update ecss_CoDelPalletHeader set gross_weight=#{grossWeight,jdbcType=DECIMAL},net_weight=#{netWeight,jdbcType=DECIMAL}, + update_by=#{updateBy},update_date=GetDate() + where site =#{site} and bu_no=#{buNo} and delNo=#{delNo} and seq_no=#{seqNo} + update ecss_CoDelPalletDetail set part_no=#{partNo},qty=#{qty,jdbcType=DECIMAL},po_no=#{poNo}, box_qty=#{boxQty,jdbcType=DECIMAL},update_by=#{updateBy},update_date=GetDate(),rolls=#{rolls},pn=#{pn} @@ -715,7 +720,7 @@ left join ecss_CoDelNotifyHeader noHeader on a.site=noHeader.site and a.delNo=no + + delete from ecss_walMartOrder where buNo=#{buNo} and sku=#{sku} and so=#{so} and qty=#{qty} + + + diff --git a/src/main/resources/templates/declaration-contract-template.xlsx b/src/main/resources/templates/declaration-contract-template.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..80e64288c3ea61f2f91afe324c383a2d95669cdd GIT binary patch literal 31222 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 delta 15492 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 TCVZ>`d@Yk|weHfm&w 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