diff --git a/ruoyi-admin/src/main/java/com/ruoyi/sales/controller/SalesShippingInformationShippingController.java b/ruoyi-admin/src/main/java/com/ruoyi/sales/controller/SalesShippingInformationShippingController.java new file mode 100644 index 00000000..5c5d84af --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/sales/controller/SalesShippingInformationShippingController.java @@ -0,0 +1,171 @@ +package com.ruoyi.sales.controller; + +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.page.TableDataInfo; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.sales.domain.SalesShippingInformation; +import com.ruoyi.sales.domain.SalesShippingInformationDetail; +import com.ruoyi.sales.service.ISalesShippingInformationService; +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; + +/** + * 销售出货资料(出货单) + * */ +@Controller +@RequestMapping("/sales/salesShippingInformationShipping") +public class SalesShippingInformationShippingController extends BaseController { + + + @Autowired + private ISalesShippingInformationService shippingInformationService; + + private String prefix = "sales/salesShippingInformationShipping"; + + + @RequiresPermissions("sales:salesShippingInformationShipping:view") + @GetMapping() + public String salesShippingInformationShipping() + { + return prefix + "/salesShippingInformationShipping"; + } + + /** + * 查询出货单列表 + */ + @RequiresPermissions("sales:salesShippingInformationShipping:list") + @PostMapping("/list") + @ResponseBody + public TableDataInfo list(SalesShippingInformation salesShippingInformation) + { + startPage(); + List list = shippingInformationService.selectSalesShippingInformationShippingList(salesShippingInformation); + return getDataTable(list); + } + + + /** + * 导出销售出货单列表ShippingInfinity + */ + @RequiresPermissions("sales:salesShippingInformationShipping:export") + @Log(title = "销售出货单", businessType = BusinessType.EXPORT) + @GetMapping("/exportShippingInfinity/{shippingInformationCode}") + public void exportShippingInfinity(@PathVariable("shippingInformationCode") String shippingInformationCode, HttpServletResponse response) { + + shippingInformationService.exportShippingInfinity(shippingInformationCode, response); + } + + /** + * 导出销售出货单列表ShippingVantritek + */ + @RequiresPermissions("sales:salesShippingInformationShipping:export") + @Log(title = "销售出货单", businessType = BusinessType.EXPORT) + @GetMapping("/exportShippingVantritek/{shippingInformationCode}") + public void exportShippingVantritek(@PathVariable("shippingInformationCode") String shippingInformationCode, HttpServletResponse response) { + + shippingInformationService.exportShippingVantritek(shippingInformationCode, response); + } + + + /** + * 新增销售出货单 + */ + @GetMapping("/add") + public String add() + { + return prefix + "/add"; + } + + /** + * 新增保存销售出货单 + */ + @RequiresPermissions("sales:salesShippingInformationShipping:add") + @Log(title = "销售出货单", businessType = BusinessType.INSERT) + @PostMapping("/add") + @ResponseBody + public AjaxResult addSave(SalesShippingInformation salesShippingInformation) + { + return toAjax(shippingInformationService.insertSalesShippingInformationShipping(salesShippingInformation)); + } + + /** + * 打开出货单详情 + */ + @GetMapping("/shippingDetail/{shippingInformationId}") + public String shippingDetail(@PathVariable("shippingInformationId") Long shippingInformationId, ModelMap mmap) + { + SalesShippingInformation salesShippingInformation = shippingInformationService.selectSalesShippingInformationById(shippingInformationId); + mmap.put("salesShippingInformation", salesShippingInformation); + return prefix + "/shippingDetail"; + } + + /** + * 修改保存销售出货单详情 + */ + @Log(title = "销售出货单", businessType = BusinessType.UPDATE) + @PostMapping("/shippingDetail") + @ResponseBody + public AjaxResult shippingDetailSave(SalesShippingInformation salesShippingInformation) + { + return toAjax(shippingInformationService.updateShippingInformationDetail(salesShippingInformation)); + } + + + + /** + * 查询出货单详情物料 + */ + @PostMapping("/getShippingDetailList") + @ResponseBody + public TableDataInfo getShippingDetailList(SalesShippingInformation salesShippingInformation) + { + startPage(); + List list = shippingInformationService.selectShippingInformationDetailList(salesShippingInformation); + return getDataTable(list); + } + + + /** + * 打开出货单补充单据 + */ + @GetMapping("/supplementDocument/{shippingInformationId}") + public String supplementDocument(@PathVariable("shippingInformationId") Long shippingInformationId, ModelMap mmap) + { + SalesShippingInformation salesShippingInformation = shippingInformationService.selectSalesShippingInformationById(shippingInformationId); + mmap.put("salesShippingInformation", salesShippingInformation); + return prefix + "/supplementDocument"; + } + + /** + * 修改保存销售出货单补充单据 + */ + @RequiresPermissions("sales:salesShippingInformationShipping:supplementDocument") + @Log(title = "销售出货单", businessType = BusinessType.UPDATE) + @PostMapping("/supplementDocument") + @ResponseBody + public AjaxResult supplementDocumentSave(@RequestBody SalesShippingInformation salesShippingInformation) + { + return toAjax(shippingInformationService.updateShippingSupplementDocument(salesShippingInformation)); + } + + + /** + * 获取销售订单号下拉列表 + * */ + @RequestMapping("/getSalesOrderCodeSelectList") + @ResponseBody + public AjaxResult getSalesOrderCodeSelectList(@RequestParam(value = "q",defaultValue = "") String prefix){ + if (prefix == null || prefix.isEmpty()){ + return success(shippingInformationService.getSalesOrderCodeSelectList()); + } + return success(shippingInformationService.searchSalesOrderCodeByPrefix(prefix)); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/sales/mapper/SalesShippingInformationMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/sales/mapper/SalesShippingInformationMapper.java index eec5fb4e..a96a502e 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/sales/mapper/SalesShippingInformationMapper.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/sales/mapper/SalesShippingInformationMapper.java @@ -90,4 +90,9 @@ public interface SalesShippingInformationMapper * 查询销售出货箱单列表 * */ List selectSalesShippingInformationPackingList(SalesShippingInformation salesShippingInformation); + + /** + * 查找销售出货单数据集合 + * */ + List selectSalesShippingInformationShippingList(SalesShippingInformation salesShippingInformation); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/sales/service/ISalesShippingInformationService.java b/ruoyi-admin/src/main/java/com/ruoyi/sales/service/ISalesShippingInformationService.java index 92a8ca84..53db60de 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/sales/service/ISalesShippingInformationService.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/sales/service/ISalesShippingInformationService.java @@ -143,4 +143,29 @@ public interface ISalesShippingInformationService * 出货箱单补充单据 * */ int updatePackingSupplementDocument(SalesShippingInformation salesShippingInformation); + + /** + * 查找销售出货单数据集合 + * */ + List selectSalesShippingInformationShippingList(SalesShippingInformation salesShippingInformation); + + /** + * 导出销售出货单Infinity + * */ + void exportShippingInfinity(String shippingInformationCode, HttpServletResponse response); + + /** + * 导出销售出货单Vantritek + * */ + void exportShippingVantritek(String shippingInformationCode, HttpServletResponse response); + + /** + * 插入销售出货单数据 + * */ + int insertSalesShippingInformationShipping(SalesShippingInformation salesShippingInformation); + + /** + * 出货单补充单据 + * */ + int updateShippingSupplementDocument(SalesShippingInformation salesShippingInformation); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/sales/service/impl/SalesShippingInformationServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/sales/service/impl/SalesShippingInformationServiceImpl.java index b61ba7a0..db096946 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/sales/service/impl/SalesShippingInformationServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/sales/service/impl/SalesShippingInformationServiceImpl.java @@ -3,6 +3,7 @@ package com.ruoyi.sales.service.impl; import java.io.IOException; import java.math.BigDecimal; import java.net.URLEncoder; +import java.text.SimpleDateFormat; import java.util.*; import java.util.concurrent.atomic.AtomicInteger; @@ -12,14 +13,13 @@ import com.alibaba.excel.write.metadata.WriteSheet; import com.alibaba.excel.write.metadata.fill.FillConfig; import com.ruoyi.common.core.redis.RedisCache; import com.ruoyi.common.exception.BusinessException; -import com.ruoyi.common.utils.DateUtils; -import com.ruoyi.common.utils.ShiroUtils; -import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.common.utils.*; import com.ruoyi.common.utils.file.FileDownloadUtils; import com.ruoyi.sales.domain.SalesShippingInformationDetail; import com.ruoyi.sales.mapper.SalesShippingInformationDetailMapper; import com.ruoyi.system.domain.*; import com.ruoyi.system.dto.ExportShippingInvoiceDto; +import com.ruoyi.system.dto.ExportShippingOrderDto; import com.ruoyi.system.dto.ExportShippingPackingDto; import com.ruoyi.system.mapper.SysMakeOrderMapper; import com.ruoyi.system.mapper.SysSalesOrderChildMapper; @@ -227,6 +227,16 @@ public class SalesShippingInformationServiceImpl implements ISalesShippingInform return list; } + + /** + * 查找销售出货单数据集合 + * */ + @Override + public List selectSalesShippingInformationShippingList(SalesShippingInformation salesShippingInformation) { + List list = salesShippingInformationMapper.selectSalesShippingInformationShippingList(salesShippingInformation); + return list; + } + /** * 插入销售出货发票数据 * */ @@ -356,7 +366,7 @@ public class SalesShippingInformationServiceImpl implements ISalesShippingInform } int insertDetailResult = salesShippingInformationDetailMapper.insertBatchSalesShippingInformationDetail(salesShippingInformationDetails); if (insertDetailResult <= 0){ - throw new BusinessException("新增销售出货发票明细失败!"); + throw new BusinessException("新增销售出货箱单明细失败!"); } } salesShippingInformation.setShippingInformationCode(shippingInformationCode); @@ -369,6 +379,77 @@ public class SalesShippingInformationServiceImpl implements ISalesShippingInform } + /** + * 插入销售出货单数据 + * */ + @Transactional(rollbackFor = Exception.class) + @Override + public int insertSalesShippingInformationShipping(SalesShippingInformation salesShippingInformation) { + String loginName = ShiroUtils.getLoginName(); + String salesOrderCode = salesShippingInformation.getSalesOrderCode(); + + SysMakeOrder sysMakeOrder = sysMakeOrderMapper.selectMakeOrderBySaleNo(salesOrderCode); + + String shippingInformationCode = redisCache.generateBillNo("CHZL"); + String shippingCode = redisCache.generateBillNo("SHD"); + + List sysSalesOrderChildren = sysSalesOrderChildMapper.selectOrderChildListBySalesOrderCode(salesOrderCode); + + List salesShippingInformationDetails = new ArrayList<>(); + + if (!CollectionUtils.isEmpty(sysSalesOrderChildren)){ + + for (SysSalesOrderChild sysSalesOrderChild : sysSalesOrderChildren) { + SalesShippingInformationDetail salesShippingInformationDetail = new SalesShippingInformationDetail(); + salesShippingInformationDetail.setShippingInformationCode(shippingInformationCode); + salesShippingInformationDetail.setMaterialNo(sysSalesOrderChild.getMaterialCode()); + salesShippingInformationDetail.setMaterialName(sysSalesOrderChild.getMaterialName()); + salesShippingInformationDetail.setMaterialDescribe(sysSalesOrderChild.getDescribe()); + salesShippingInformationDetail.setMaterialModel(sysSalesOrderChild.getMaterialModel()); + salesShippingInformationDetail.setMaterialNum(sysSalesOrderChild.getMaterialNum()); + salesShippingInformationDetail.setMaterialUnit(sysSalesOrderChild.getUnit()); + salesShippingInformationDetails.add(salesShippingInformationDetail); + } + int insertDetailResult = salesShippingInformationDetailMapper.insertBatchSalesShippingInformationDetail(salesShippingInformationDetails); + if (insertDetailResult <= 0){ + throw new BusinessException("新增销售出货单明细失败!"); + } + } + salesShippingInformation.setShippingInformationCode(shippingInformationCode); + salesShippingInformation.setShippingCode(shippingCode); + salesShippingInformation.setMakeNo(sysMakeOrder.getMakeNo()); + salesShippingInformation.setBusinessMembers(loginName); + salesShippingInformation.setShippingInformationType("2");//出货单 + salesShippingInformation.setShippingDate(new Date()); + salesShippingInformation.setCreateTime(new Date()); + salesShippingInformation.setCreateBy(loginName); + return salesShippingInformationMapper.insertSalesShippingInformation(salesShippingInformation); + } + + /** + * 出货单补充单据 + * */ + @Override + public int updateShippingSupplementDocument(SalesShippingInformation salesShippingInformation) { + String loginName = ShiroUtils.getLoginName(); + List shippingInformationDetails = salesShippingInformation.getShippingInformationDetails(); + if (!CollectionUtils.isEmpty(shippingInformationDetails)){ + for (SalesShippingInformationDetail salesShippingInformationDetail : shippingInformationDetails) { + salesShippingInformationDetail.setShippingInformationDetailId(salesShippingInformationDetail.getShippingInformationDetailId()); + salesShippingInformationDetail.setUpdateTime(new Date()); + salesShippingInformationDetail.setUpdateBy(loginName); + int informationDetailResult = salesShippingInformationDetailMapper.updateSalesShippingInformationDetail(salesShippingInformationDetail); + if (informationDetailResult <= 0){ + throw new BusinessException("更新销售出货单明细失败!"); + } + } + return 1; + } + + + return 0; + } + /** * 出货箱单补充单据 * */ @@ -403,6 +484,164 @@ public class SalesShippingInformationServiceImpl implements ISalesShippingInform } + /** + * 导出销售出货单Infinity + * */ + @Override + public void exportShippingInfinity(String shippingInformationCode, HttpServletResponse response) { + String fileName = "销售出货单1.xlsx"; + + try { + String fileAbsolutePath = FileDownloadUtils.getFileAbsolutePath(fileName); + if (StringUtils.isEmpty(shippingInformationCode)){ + log.warn("出货资料单号为空,请检查:{}", shippingInformationCode); + throw new BusinessException("出货资料单号为空,请检查"); + } + + String realFileName = shippingInformationCode + "-" + fileName.substring(0, fileName.lastIndexOf(".")) + ".xlsx"; + + //设置响应头,指定文件和文件类型 + response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(realFileName, "UTF-8")); + response.setContentType("application/octet-stream"); + + + SalesShippingInformation salesShippingInformation = salesShippingInformationMapper.selectSalesShippingInformationByCode(shippingInformationCode); + + String salesOrderCode = salesShippingInformation.getSalesOrderCode(); + SysSalesOrderVo sysSalesOrderVo = sysSalesOrderMapper.selectSysSalesOrderBySalesOrderCode(salesOrderCode); + List salesShippingInformationDetails = salesShippingInformationDetailMapper.selectShippingInformationDetailListByCode(shippingInformationCode); + + //处理物料数据 + List exportShippingOrderDtos = new ArrayList<>(); + + + AtomicInteger index = new AtomicInteger(1); + + for (SalesShippingInformationDetail shippingInformationDetail : salesShippingInformationDetails) { + ExportShippingOrderDto exportShippingOrderDto = new ExportShippingOrderDto(); + exportShippingOrderDto.setIndex(index.getAndIncrement()); + exportShippingOrderDto.setMaterialName(shippingInformationDetail.getMaterialName()); + exportShippingOrderDto.setMaterialModel(shippingInformationDetail.getMaterialModel()); + exportShippingOrderDto.setMaterialUnit(shippingInformationDetail.getMaterialUnit()); + exportShippingOrderDto.setMakeNum(shippingInformationDetail.getMaterialNum()); + exportShippingOrderDto.setSalesOrderNumber(sysSalesOrderVo.getSalesOrderNumber()); + exportShippingOrderDto.setRemark(shippingInformationDetail.getRemark()); + exportShippingOrderDto.setEnterpriseMaterialNo(sysSalesOrderVo.getEnterpriseMaterialNo()); + exportShippingOrderDtos.add(exportShippingOrderDto); + } + + Integer totalMakeNum = salesShippingInformationDetails.stream().mapToInt(SalesShippingInformationDetail::getMaterialNum).sum(); + + String bigTotalMakeNum = NumberChineseFormatterUtils.toChinese(totalMakeNum); + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); + + Date shippingDate = salesShippingInformation.getShippingDate(); + + String formattedShippingDate; + if (shippingDate == null){ + formattedShippingDate = dateFormat.format(new Date()); + }else { + formattedShippingDate = dateFormat.format(shippingDate); + } + + Map map = new HashMap<>(); + map.put("shippingOrderCode",salesShippingInformation.getShippingCode()); + map.put("shippingDate",formattedShippingDate); + map.put("totalMakeNum",bigTotalMakeNum); + + + ExcelWriter workBook = EasyExcel.write(response.getOutputStream()).withTemplate(fileAbsolutePath).build(); + WriteSheet sheet = EasyExcel.writerSheet().build(); + FillConfig fillConfig = FillConfig.builder().forceNewRow(true).build(); + workBook.fill(map, sheet); + workBook.fill(exportShippingOrderDtos, fillConfig, sheet); + workBook.finish(); + + + } catch (IOException e) { + throw new RuntimeException("文件处理失败",e); + } + } + + /** + * 导出销售出货单Vantritek + * */ + @Override + public void exportShippingVantritek(String shippingInformationCode, HttpServletResponse response) { + String fileName = "销售出货单2.xlsx"; + + try { + String fileAbsolutePath = FileDownloadUtils.getFileAbsolutePath(fileName); + if (StringUtils.isEmpty(shippingInformationCode)){ + log.warn("出货资料单号为空,请检查:{}", shippingInformationCode); + throw new BusinessException("出货资料单号为空,请检查"); + } + + String realFileName = shippingInformationCode + "-" + fileName.substring(0, fileName.lastIndexOf(".")) + ".xlsx"; + + //设置响应头,指定文件和文件类型 + response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(realFileName, "UTF-8")); + response.setContentType("application/octet-stream"); + + + SalesShippingInformation salesShippingInformation = salesShippingInformationMapper.selectSalesShippingInformationByCode(shippingInformationCode); + + String salesOrderCode = salesShippingInformation.getSalesOrderCode(); + SysSalesOrderVo sysSalesOrderVo = sysSalesOrderMapper.selectSysSalesOrderBySalesOrderCode(salesOrderCode); + List salesShippingInformationDetails = salesShippingInformationDetailMapper.selectShippingInformationDetailListByCode(shippingInformationCode); + + //处理物料数据 + List exportShippingOrderDtos = new ArrayList<>(); + + + AtomicInteger index = new AtomicInteger(1); + + for (SalesShippingInformationDetail shippingInformationDetail : salesShippingInformationDetails) { + ExportShippingOrderDto exportShippingOrderDto = new ExportShippingOrderDto(); + exportShippingOrderDto.setIndex(index.getAndIncrement()); + exportShippingOrderDto.setMaterialName(shippingInformationDetail.getMaterialName()); + exportShippingOrderDto.setMaterialModel(shippingInformationDetail.getMaterialModel()); + exportShippingOrderDto.setMaterialUnit(shippingInformationDetail.getMaterialUnit()); + exportShippingOrderDto.setMakeNum(shippingInformationDetail.getMaterialNum()); + exportShippingOrderDto.setSalesOrderNumber(sysSalesOrderVo.getSalesOrderNumber()); + exportShippingOrderDto.setRemark(shippingInformationDetail.getRemark()); + exportShippingOrderDto.setEnterpriseMaterialNo(sysSalesOrderVo.getEnterpriseMaterialNo()); + exportShippingOrderDtos.add(exportShippingOrderDto); + } + + Integer totalMakeNum = salesShippingInformationDetails.stream().mapToInt(SalesShippingInformationDetail::getMaterialNum).sum(); + + String bigTotalMakeNum = NumberChineseFormatterUtils.toChinese(totalMakeNum); + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); + + Date shippingDate = salesShippingInformation.getShippingDate(); + + String formattedShippingDate; + if (shippingDate == null){ + formattedShippingDate = dateFormat.format(new Date()); + }else { + formattedShippingDate = dateFormat.format(shippingDate); + } + + Map map = new HashMap<>(); + map.put("shippingOrderCode",salesShippingInformation.getShippingCode()); + map.put("shippingDate",formattedShippingDate); + map.put("totalMakeNum",bigTotalMakeNum); + + + ExcelWriter workBook = EasyExcel.write(response.getOutputStream()).withTemplate(fileAbsolutePath).build(); + WriteSheet sheet = EasyExcel.writerSheet().build(); + FillConfig fillConfig = FillConfig.builder().forceNewRow(true).build(); + workBook.fill(map, sheet); + workBook.fill(exportShippingOrderDtos, fillConfig, sheet); + workBook.finish(); + + + } catch (IOException e) { + throw new RuntimeException("文件处理失败",e); + } + } + /** * 导出销售出货发票Infinity * */ diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/SysSalesShippingInformServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/SysSalesShippingInformServiceImpl.java index c53f2134..90c58b86 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/SysSalesShippingInformServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/SysSalesShippingInformServiceImpl.java @@ -21,9 +21,11 @@ import com.ruoyi.aftersales.mapper.AftersalesOutOrderMapper; import com.ruoyi.common.core.redis.RedisCache; import com.ruoyi.common.exception.BusinessException; import com.ruoyi.common.utils.DateUtils; +import com.ruoyi.common.utils.NumberChineseFormatterUtils; import com.ruoyi.common.utils.ShiroUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.file.FileDownloadUtils; +import com.ruoyi.sales.domain.SalesShippingInformationDetail; import com.ruoyi.system.domain.*; import com.ruoyi.system.domain.Vo.ConfirmReceivingDetailVo; import com.ruoyi.system.domain.Vo.ExportSalesShippingInformDetailVo; @@ -820,9 +822,9 @@ public class SysSalesShippingInformServiceImpl implements ISysSalesShippingInfor //totalMakeNum - String totalMakeNum = String.valueOf(sysSalesOrderChildren.stream().mapToInt(SysSalesOrderChild::getMaterialNum).sum()); - + Integer totalMakeNum = sysSalesOrderChildren.stream().mapToInt(SysSalesOrderChild::getMaterialNum).sum(); + String bigTotalMakeNum = NumberChineseFormatterUtils.toChinese(totalMakeNum); ExcelWriter workBook = EasyExcel.write(response.getOutputStream()).withTemplate(fileAbsolutePath).build(); WriteSheet sheet = EasyExcel.writerSheet().build(); @@ -835,7 +837,7 @@ public class SysSalesShippingInformServiceImpl implements ISysSalesShippingInfor HashMap map = MapUtils.newHashMap(); map.put("customerId",salesShippingInform.getCustomerId()); map.put("shippingDate",shippingDate); - map.put("totalMakeNum",totalMakeNum); + map.put("totalMakeNum",bigTotalMakeNum); map.put("shippingOrderCode",shippingOrderCode); // 写入数据 @@ -924,7 +926,9 @@ public class SysSalesShippingInformServiceImpl implements ISysSalesShippingInfor //totalMakeNum - String totalMakeNum = String.valueOf(sysSalesOrderChildren.stream().mapToInt(SysSalesOrderChild::getMaterialNum).sum()); + Integer totalMakeNum = sysSalesOrderChildren.stream().mapToInt(SysSalesOrderChild::getMaterialNum).sum(); + + String bigTotalMakeNum = NumberChineseFormatterUtils.toChinese(totalMakeNum); ExcelWriter workBook = EasyExcel.write(response.getOutputStream()).withTemplate(fileAbsolutePath).build(); @@ -940,7 +944,7 @@ public class SysSalesShippingInformServiceImpl implements ISysSalesShippingInfor map.put("customerId",salesShippingInform.getCustomerId()); map.put("shippingDate",shippingDate); - map.put("totalMakeNum",totalMakeNum); + map.put("totalMakeNum",bigTotalMakeNum); map.put("shippingOrderCode",shippingOrderCode); // 写入数据 diff --git a/ruoyi-admin/src/main/resources/mapper/sales/SalesShippingInformationMapper.xml b/ruoyi-admin/src/main/resources/mapper/sales/SalesShippingInformationMapper.xml index dc0b2156..ad8f2017 100644 --- a/ruoyi-admin/src/main/resources/mapper/sales/SalesShippingInformationMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/sales/SalesShippingInformationMapper.xml @@ -104,6 +104,25 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" order by create_time desc + diff --git a/ruoyi-admin/src/main/resources/templates/sales/salesShippingInformationShipping/add.html b/ruoyi-admin/src/main/resources/templates/sales/salesShippingInformationShipping/add.html new file mode 100644 index 00000000..2ee783ae --- /dev/null +++ b/ruoyi-admin/src/main/resources/templates/sales/salesShippingInformationShipping/add.html @@ -0,0 +1,182 @@ + + + + + + + +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+
+ + + + + \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/templates/sales/salesShippingInformationShipping/salesShippingInformationShipping.html b/ruoyi-admin/src/main/resources/templates/sales/salesShippingInformationShipping/salesShippingInformationShipping.html new file mode 100644 index 00000000..77e60560 --- /dev/null +++ b/ruoyi-admin/src/main/resources/templates/sales/salesShippingInformationShipping/salesShippingInformationShipping.html @@ -0,0 +1,200 @@ + + + + + + +
+
+
+
+
+
    +
  • + + +
  • +
  • + + +
  • +
  • + + +
  • +
  • + + +
  • +
  • + + +
  • +
  • + + + - + +
  • +
  • +  搜索 +  重置 +
  • +
+
+
+
+ + +
+
+
+
+
+ + + + \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/templates/sales/salesShippingInformationShipping/shippingDetail.html b/ruoyi-admin/src/main/resources/templates/sales/salesShippingInformationShipping/shippingDetail.html new file mode 100644 index 00000000..e7113cdc --- /dev/null +++ b/ruoyi-admin/src/main/resources/templates/sales/salesShippingInformationShipping/shippingDetail.html @@ -0,0 +1,186 @@ + + + + + + + +
+
+ +
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+
+ + +
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+
+ + + + + \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/templates/sales/salesShippingInformationShipping/supplementDocument.html b/ruoyi-admin/src/main/resources/templates/sales/salesShippingInformationShipping/supplementDocument.html new file mode 100644 index 00000000..02c51321 --- /dev/null +++ b/ruoyi-admin/src/main/resources/templates/sales/salesShippingInformationShipping/supplementDocument.html @@ -0,0 +1,237 @@ + + + + + + + + +
+
+ +
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+
+ + +
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+ +
+
+
+
+
+ + + + + + \ No newline at end of file diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/NumberChineseFormatterUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/NumberChineseFormatterUtils.java new file mode 100644 index 00000000..6f9ab8a8 --- /dev/null +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/NumberChineseFormatterUtils.java @@ -0,0 +1,35 @@ +package com.ruoyi.common.utils; + +/** + * 数字转中文类 + **/ +public class NumberChineseFormatterUtils { + private static final String[] CHINESE_NUMBERS = {"零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"}; + private static final String[] LEVELS = {"", "拾", "佰", "仟"}; + + public static String toChinese(int num) { + if (num == 0) return CHINESE_NUMBERS[0]; + + StringBuilder result = new StringBuilder(); + int unitPos = 0; + boolean skipZero = true; + + while (num > 0) { + int n = num % 10; + if (n == 0) { + if (!skipZero) { + result.insert(0, CHINESE_NUMBERS[n]); + skipZero = true; + } + } else { + skipZero = false; + result.insert(0, LEVELS[unitPos]); + result.insert(0, CHINESE_NUMBERS[n]); + } + num /= 10; + unitPos = (unitPos + 1) % 4; + } + + return result.toString(); + } +}