From d37ac3ee4f904ba40fd9f47b54d8e3d39b735f19 Mon Sep 17 00:00:00 2001 From: qianyu <617189624@qq.com> Date: Mon, 12 Jun 2023 09:02:52 +0800 Subject: [PATCH] =?UTF-8?q?230612=E4=B8=89=E7=A7=8D=E5=87=BA=E5=BA=93?= =?UTF-8?q?=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- log.path_IS_UNDEFINED/sys-user.log | 84 ++++--- .../MaterialRequisitionDetailController.java | 3 +- .../MaterialRequisitionInfoController.java | 26 +++ .../domain/OutsourceOrderMaterial.java | 9 +- .../controller/OutboundInfoController.java | 208 +++++++++++++++++- .../storehouse/domain/OutboundDetail.java | 6 +- .../domain/exportDto/OutboundDetailDto.java | 21 +- .../com/ruoyi/system/domain/SysCustomer.java | 2 + .../system/mapper/SysCustomerMapper.java | 2 + .../system/service/ISysCustomerService.java | 2 + .../service/impl/SysCustomerServiceImpl.java | 5 + .../mapper/system/SysCustomerMapper.xml | 6 + .../manufacture/workOrderInfo/add.html | 7 + .../storehouse/outboundInfoCP/add.html | 81 ++++--- .../outboundInfoCP/outboundInfoCP.html | 42 +++- .../outboundInfoFL/outboundInfoFL.html | 42 +++- .../storehouse/outboundInfoYL/add.html | 5 +- .../outboundInfoYL/outboundInfoYL.html | 38 +++- .../MaterialRequisitionDetailController.class | Bin 7074 -> 7074 bytes .../MaterialRequisitionInfoController.class | Bin 20558 -> 21498 bytes .../com/ruoyi/system/domain/SysCustomer.class | Bin 13869 -> 13927 bytes .../system/mapper/SysCustomerMapper.class | Bin 702 -> 806 bytes .../system/service/ISysCustomerService.class | Bin 706 -> 810 bytes .../service/impl/SysCustomerServiceImpl.class | Bin 2038 -> 2238 bytes .../mapper/system/SysCustomerMapper.xml | 6 + .../manufacture/workOrderInfo/add.html | 7 + 26 files changed, 510 insertions(+), 92 deletions(-) diff --git a/log.path_IS_UNDEFINED/sys-user.log b/log.path_IS_UNDEFINED/sys-user.log index 217ebf3e..60531711 100644 --- a/log.path_IS_UNDEFINED/sys-user.log +++ b/log.path_IS_UNDEFINED/sys-user.log @@ -1,34 +1,50 @@ -08:40:00.067 [schedule-pool-2] INFO sys-user - [run,109] - [127.0.0.1]内网IP[admin][Success][登录成功] -08:41:51.918 [SpringContextShutdownHook] INFO sys-user - [shutdownSpringSessionValidationScheduler,45] - ====关闭会话验证任务==== -08:41:51.919 [SpringContextShutdownHook] INFO sys-user - [shutdownAsyncManager,62] - ====关闭后台任务任务线程池==== -08:41:51.919 [SpringContextShutdownHook] INFO sys-user - [shutdownEhCacheManager,75] - ====关闭缓存==== -08:42:55.146 [schedule-pool-2] INFO sys-user - [run,109] - [127.0.0.1]内网IP[admin][Success][登录成功] -08:44:58.974 [SpringContextShutdownHook] INFO sys-user - [shutdownSpringSessionValidationScheduler,45] - ====关闭会话验证任务==== -08:44:58.978 [SpringContextShutdownHook] INFO sys-user - [shutdownAsyncManager,62] - ====关闭后台任务任务线程池==== -08:44:58.978 [SpringContextShutdownHook] INFO sys-user - [shutdownEhCacheManager,75] - ====关闭缓存==== -08:45:24.466 [schedule-pool-2] INFO sys-user - [run,109] - [127.0.0.1]内网IP[admin][Success][登录成功] -08:46:25.297 [SpringContextShutdownHook] INFO sys-user - [shutdownSpringSessionValidationScheduler,45] - ====关闭会话验证任务==== -08:46:25.333 [SpringContextShutdownHook] INFO sys-user - [shutdownAsyncManager,62] - ====关闭后台任务任务线程池==== -08:46:25.334 [SpringContextShutdownHook] INFO sys-user - [shutdownEhCacheManager,75] - ====关闭缓存==== -08:46:53.063 [schedule-pool-2] INFO sys-user - [run,109] - [127.0.0.1]内网IP[admin][Success][登录成功] -08:48:33.714 [SpringContextShutdownHook] INFO sys-user - [shutdownSpringSessionValidationScheduler,45] - ====关闭会话验证任务==== -08:48:33.716 [SpringContextShutdownHook] INFO sys-user - [shutdownAsyncManager,62] - ====关闭后台任务任务线程池==== -08:48:33.716 [SpringContextShutdownHook] INFO sys-user - [shutdownEhCacheManager,75] - ====关闭缓存==== -08:52:57.243 [schedule-pool-1] INFO sys-user - [run,109] - [127.0.0.1]内网IP[admin][Success][登录成功] -08:58:26.763 [Thread-40] INFO sys-user - [shutdownSpringSessionValidationScheduler,45] - ====关闭会话验证任务==== -08:58:26.764 [Thread-40] INFO sys-user - [shutdownAsyncManager,62] - ====关闭后台任务任务线程池==== -08:58:26.764 [Thread-40] INFO sys-user - [shutdownEhCacheManager,75] - ====关闭缓存==== -08:58:41.201 [SpringContextShutdownHook] INFO sys-user - [shutdownAsyncManager,62] - ====关闭后台任务任务线程池==== -08:58:41.203 [SpringContextShutdownHook] INFO sys-user - [shutdownEhCacheManager,75] - ====关闭缓存==== -09:02:31.274 [schedule-pool-2] INFO sys-user - [run,109] - [127.0.0.1]内网IP[admin][Success][登录成功] -09:31:51.587 [SpringContextShutdownHook] INFO sys-user - [shutdownSpringSessionValidationScheduler,45] - ====关闭会话验证任务==== -09:31:51.594 [SpringContextShutdownHook] INFO sys-user - [shutdownAsyncManager,62] - ====关闭后台任务任务线程池==== -09:31:51.595 [SpringContextShutdownHook] INFO sys-user - [shutdownEhCacheManager,75] - ====关闭缓存==== -09:33:05.393 [Thread-44] INFO sys-user - [shutdownAsyncManager,62] - ====关闭后台任务任务线程池==== -09:33:44.536 [Thread-57] INFO sys-user - [shutdownAsyncManager,62] - ====关闭后台任务任务线程池==== -09:33:44.538 [Thread-57] INFO sys-user - [shutdownEhCacheManager,75] - ====关闭缓存==== -09:39:23.490 [schedule-pool-2] INFO sys-user - [run,109] - [127.0.0.1]内网IP[admin][Success][登录成功] -17:10:08.054 [SpringContextShutdownHook] INFO sys-user - [shutdownSpringSessionValidationScheduler,45] - ====关闭会话验证任务==== -17:10:08.062 [SpringContextShutdownHook] INFO sys-user - [shutdownAsyncManager,62] - ====关闭后台任务任务线程池==== -17:10:08.063 [SpringContextShutdownHook] INFO sys-user - [shutdownEhCacheManager,75] - ====关闭缓存==== -17:33:02.129 [schedule-pool-2] INFO sys-user - [run,109] - [127.0.0.1]内网IP[admin][Success][登录成功] +00:43:32.512 [SpringContextShutdownHook] INFO sys-user - [shutdownAsyncManager,62] - ====关闭后台任务任务线程池==== +00:43:32.513 [SpringContextShutdownHook] INFO sys-user - [shutdownEhCacheManager,75] - ====关闭缓存==== +04:56:31.545 [schedule-pool-2] INFO sys-user - [run,109] - [127.0.0.1]内网IP[admin][Success][登录成功] +04:58:56.614 [SpringContextShutdownHook] INFO sys-user - [shutdownSpringSessionValidationScheduler,45] - ====关闭会话验证任务==== +04:58:56.615 [SpringContextShutdownHook] INFO sys-user - [shutdownAsyncManager,62] - ====关闭后台任务任务线程池==== +04:58:56.615 [SpringContextShutdownHook] INFO sys-user - [shutdownEhCacheManager,75] - ====关闭缓存==== +04:59:24.024 [schedule-pool-2] INFO sys-user - [run,109] - [127.0.0.1]内网IP[admin][Success][登录成功] +05:11:40.804 [SpringContextShutdownHook] INFO sys-user - [shutdownSpringSessionValidationScheduler,45] - ====关闭会话验证任务==== +05:11:40.805 [SpringContextShutdownHook] INFO sys-user - [shutdownAsyncManager,62] - ====关闭后台任务任务线程池==== +05:11:40.805 [SpringContextShutdownHook] INFO sys-user - [shutdownEhCacheManager,75] - ====关闭缓存==== +05:12:12.247 [schedule-pool-2] INFO sys-user - [run,109] - [127.0.0.1]内网IP[admin][Success][登录成功] +05:13:23.024 [SpringContextShutdownHook] INFO sys-user - [shutdownSpringSessionValidationScheduler,45] - ====关闭会话验证任务==== +05:13:23.025 [SpringContextShutdownHook] INFO sys-user - [shutdownAsyncManager,62] - ====关闭后台任务任务线程池==== +05:13:23.025 [SpringContextShutdownHook] INFO sys-user - [shutdownEhCacheManager,75] - ====关闭缓存==== +05:13:47.704 [schedule-pool-2] INFO sys-user - [run,109] - [127.0.0.1]内网IP[admin][Success][登录成功] +05:26:01.408 [SpringContextShutdownHook] INFO sys-user - [shutdownSpringSessionValidationScheduler,45] - ====关闭会话验证任务==== +05:26:01.409 [SpringContextShutdownHook] INFO sys-user - [shutdownAsyncManager,62] - ====关闭后台任务任务线程池==== +05:26:01.409 [SpringContextShutdownHook] INFO sys-user - [shutdownEhCacheManager,75] - ====关闭缓存==== +05:26:37.932 [schedule-pool-2] INFO sys-user - [run,109] - [127.0.0.1]内网IP[admin][Success][登录成功] +05:30:47.634 [SpringContextShutdownHook] INFO sys-user - [shutdownSpringSessionValidationScheduler,45] - ====关闭会话验证任务==== +05:30:47.635 [SpringContextShutdownHook] INFO sys-user - [shutdownAsyncManager,62] - ====关闭后台任务任务线程池==== +05:30:47.635 [SpringContextShutdownHook] INFO sys-user - [shutdownEhCacheManager,75] - ====关闭缓存==== +05:31:27.816 [schedule-pool-2] INFO sys-user - [run,109] - [127.0.0.1]内网IP[admin][Success][登录成功] +05:36:53.398 [SpringContextShutdownHook] INFO sys-user - [shutdownSpringSessionValidationScheduler,45] - ====关闭会话验证任务==== +05:36:53.399 [SpringContextShutdownHook] INFO sys-user - [shutdownAsyncManager,62] - ====关闭后台任务任务线程池==== +05:36:53.399 [SpringContextShutdownHook] INFO sys-user - [shutdownEhCacheManager,75] - ====关闭缓存==== +05:37:26.635 [schedule-pool-2] INFO sys-user - [run,109] - [127.0.0.1]内网IP[admin][Success][登录成功] +05:40:44.839 [SpringContextShutdownHook] INFO sys-user - [shutdownSpringSessionValidationScheduler,45] - ====关闭会话验证任务==== +05:40:44.840 [SpringContextShutdownHook] INFO sys-user - [shutdownAsyncManager,62] - ====关闭后台任务任务线程池==== +05:40:44.840 [SpringContextShutdownHook] INFO sys-user - [shutdownEhCacheManager,75] - ====关闭缓存==== +05:41:12.920 [schedule-pool-2] INFO sys-user - [run,109] - [127.0.0.1]内网IP[admin][Success][登录成功] +05:51:11.441 [SpringContextShutdownHook] INFO sys-user - [shutdownSpringSessionValidationScheduler,45] - ====关闭会话验证任务==== +05:51:11.442 [SpringContextShutdownHook] INFO sys-user - [shutdownAsyncManager,62] - ====关闭后台任务任务线程池==== +05:51:11.442 [SpringContextShutdownHook] INFO sys-user - [shutdownEhCacheManager,75] - ====关闭缓存==== +05:51:47.118 [schedule-pool-2] INFO sys-user - [run,109] - [127.0.0.1]内网IP[admin][Success][登录成功] +05:52:46.147 [SpringContextShutdownHook] INFO sys-user - [shutdownSpringSessionValidationScheduler,45] - ====关闭会话验证任务==== +05:52:46.148 [SpringContextShutdownHook] INFO sys-user - [shutdownAsyncManager,62] - ====关闭后台任务任务线程池==== +05:52:46.148 [SpringContextShutdownHook] INFO sys-user - [shutdownEhCacheManager,75] - ====关闭缓存==== +05:53:48.400 [schedule-pool-2] INFO sys-user - [run,109] - [127.0.0.1]内网IP[admin][Success][登录成功] +06:02:43.632 [SpringContextShutdownHook] INFO sys-user - [shutdownSpringSessionValidationScheduler,45] - ====关闭会话验证任务==== +06:02:43.634 [SpringContextShutdownHook] INFO sys-user - [shutdownAsyncManager,62] - ====关闭后台任务任务线程池==== +06:02:43.634 [SpringContextShutdownHook] INFO sys-user - [shutdownEhCacheManager,75] - ====关闭缓存==== +06:03:12.945 [schedule-pool-2] INFO sys-user - [run,109] - [127.0.0.1]内网IP[admin][Success][登录成功] +06:18:53.327 [SpringContextShutdownHook] INFO sys-user - [shutdownSpringSessionValidationScheduler,45] - ====关闭会话验证任务==== +06:18:53.328 [SpringContextShutdownHook] INFO sys-user - [shutdownAsyncManager,62] - ====关闭后台任务任务线程池==== +06:18:53.328 [SpringContextShutdownHook] INFO sys-user - [shutdownEhCacheManager,75] - ====关闭缓存==== +06:19:21.279 [schedule-pool-2] INFO sys-user - [run,109] - [127.0.0.1]内网IP[admin][Success][登录成功] +06:35:17.463 [SpringContextShutdownHook] INFO sys-user - [shutdownSpringSessionValidationScheduler,45] - ====关闭会话验证任务==== +06:35:17.464 [SpringContextShutdownHook] INFO sys-user - [shutdownAsyncManager,62] - ====关闭后台任务任务线程池==== +06:35:17.464 [SpringContextShutdownHook] INFO sys-user - [shutdownEhCacheManager,75] - ====关闭缓存==== diff --git a/ruoyi-admin/src/main/java/com/ruoyi/manufacture/controller/MaterialRequisitionDetailController.java b/ruoyi-admin/src/main/java/com/ruoyi/manufacture/controller/MaterialRequisitionDetailController.java index 82eccdbc..7797ad76 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/manufacture/controller/MaterialRequisitionDetailController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/manufacture/controller/MaterialRequisitionDetailController.java @@ -113,7 +113,8 @@ public class MaterialRequisitionDetailController extends BaseController materialRequisitionDetailService.updateMaterialRequisitionDetail(materialRequisitionDetailList.get(i)); } } - return new AjaxResult(SUCCESS, "test done"); } + return new AjaxResult(SUCCESS, "test done"); + } /** * 修改领料物料 diff --git a/ruoyi-admin/src/main/java/com/ruoyi/manufacture/controller/MaterialRequisitionInfoController.java b/ruoyi-admin/src/main/java/com/ruoyi/manufacture/controller/MaterialRequisitionInfoController.java index 45339b54..d9a1d8e7 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/manufacture/controller/MaterialRequisitionInfoController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/manufacture/controller/MaterialRequisitionInfoController.java @@ -21,6 +21,9 @@ import com.ruoyi.manufacture.domain.exportDto.MaterialRequisitionDetailDto; import com.ruoyi.manufacture.domain.exportDto.MaterialRequisitionInfoDto; import com.ruoyi.manufacture.service.IMaterialRequisitionDetailService; import com.ruoyi.manufacture.service.IMaterialRequisitionInfoService; +import com.ruoyi.outsource.domain.OutsourceOrderMaterial; +import com.ruoyi.outsource.service.IOutsourceOrderMaterialService; +import com.ruoyi.outsource.service.impl.OutsourceOrderMaterialServiceImpl; import com.ruoyi.system.service.ISysDictTypeService; import com.ruoyi.system.utils.ExcelFillCellMergePrevColUtils; import org.apache.poi.ss.usermodel.BorderStyle; @@ -501,4 +504,27 @@ public class MaterialRequisitionInfoController extends BaseController return new HorizontalCellStyleStrategy(headWriteCellStyle, contentWriteCellStyle); } + /** + * 查询委外领料单物料明细List + */ + @RequiresPermissions("manufacture:materialRequisitionInfo:listOutsource") + @PostMapping("/selectOutsourceDetail") + @ResponseBody + public void selectOutsourceDetail(MaterialRequisitionInfo materialRequisitionInfo){ + //委外订单 + IOutsourceOrderMaterialService outsourceOrderMaterialService = new OutsourceOrderMaterialServiceImpl(); + List orderMaterialList = outsourceOrderMaterialService.selectOutsourceOrderMaterialList(new OutsourceOrderMaterial(materialRequisitionInfo.getSalesOrderNumber())); + + //委外明细 + List materialRequisitionDetailList = new ArrayList<>(); + //bom阶 + int bomRank = 1; + for (OutsourceOrderMaterial outsourceOrderMaterial : orderMaterialList) { + } + + + + + + } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/outsource/domain/OutsourceOrderMaterial.java b/ruoyi-admin/src/main/java/com/ruoyi/outsource/domain/OutsourceOrderMaterial.java index 79769cdf..d5b84051 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/outsource/domain/OutsourceOrderMaterial.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/outsource/domain/OutsourceOrderMaterial.java @@ -68,7 +68,14 @@ public class OutsourceOrderMaterial extends BaseEntity /** 备用二 */ private String standbyTwo; - public void setOutsourceOrderMaterialId(Long outsourceOrderMaterialId) + public OutsourceOrderMaterial() { + } + + public OutsourceOrderMaterial(String outsourceOrderNumber) { + this.outsourceOrderNumber = outsourceOrderNumber; + } + + public void setOutsourceOrderMaterialId(Long outsourceOrderMaterialId) { this.outsourceOrderMaterialId = outsourceOrderMaterialId; } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/storehouse/controller/OutboundInfoController.java b/ruoyi-admin/src/main/java/com/ruoyi/storehouse/controller/OutboundInfoController.java index 2b461537..a17f7ce5 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/storehouse/controller/OutboundInfoController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/storehouse/controller/OutboundInfoController.java @@ -1,12 +1,39 @@ package com.ruoyi.storehouse.controller; +import java.io.IOException; +import java.net.URLEncoder; import java.text.SimpleDateFormat; +import java.time.format.DateTimeFormatter; +import java.util.ArrayList; +import java.util.Iterator; import java.util.List; +import java.util.Map; +import com.alibaba.excel.EasyExcel; +import com.alibaba.excel.ExcelWriter; +import com.alibaba.excel.util.MapUtils; +import com.alibaba.excel.write.metadata.WriteSheet; +import com.alibaba.excel.write.metadata.fill.FillConfig; +import com.alibaba.excel.write.metadata.style.WriteCellStyle; +import com.alibaba.excel.write.metadata.style.WriteFont; +import com.alibaba.excel.write.style.HorizontalCellStyleStrategy; import com.ruoyi.ck.utils.Result; +import com.ruoyi.common.config.datasource.DynamicDataSourceContextHolder; import com.ruoyi.storehouse.domain.OutboundDetail; +import com.ruoyi.storehouse.domain.exportDto.OutboundDetailDto; +import com.ruoyi.storehouse.domain.exportDto.OutboundInfoDto; import com.ruoyi.storehouse.service.IOutboundDetailService; +import com.ruoyi.system.domain.SysCustomer; +import com.ruoyi.system.service.ISysCustomerService; +import com.ruoyi.system.service.impl.SysCustomerServiceImpl; +import com.ruoyi.system.utils.ExcelFillCellMergePrevColUtils; +import org.apache.poi.ss.usermodel.BorderStyle; +import org.apache.poi.ss.usermodel.HorizontalAlignment; +import org.apache.poi.ss.usermodel.VerticalAlignment; import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; @@ -20,6 +47,8 @@ import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.common.core.page.TableDataInfo; +import javax.servlet.http.HttpServletResponse; + /** * outboundInfoController * @@ -30,6 +59,8 @@ import com.ruoyi.common.core.page.TableDataInfo; @RequestMapping("/storehouse/outboundInfo") public class OutboundInfoController extends BaseController { + public static final Logger log = LoggerFactory.getLogger(DynamicDataSourceContextHolder.class); + private String prefix = "storehouse/outboundInfo"; private String prefixYL="storehouse/outboundInfoYL"; private String prefixFL="storehouse/outboundInfoFL"; @@ -47,6 +78,9 @@ public class OutboundInfoController extends BaseController @Autowired private IOutboundDetailService outboundDetailService; + @Autowired + ISysCustomerService sysCustomerService; + /** * 画面迁移 * @return @@ -135,6 +169,178 @@ public class OutboundInfoController extends BaseController return util.exportExcel(list, "outboundInfo数据"); } + /** + * 导出原料出库单 + */ + @RequiresPermissions("storehouse:outboundInfo:export") + @Log(title = "outboundInfo", businessType = BusinessType.EXPORT) + @PostMapping("/exportYL/{outboundId}") + @ResponseBody + public void exportYL(@PathVariable("outboundId") Long outboundId , HttpServletResponse response) throws IOException { + outboundInfo=outboundInfoService.selectOutboundInfoById(outboundId); + OutboundInfoDto outboundInfoDto = new OutboundInfoDto(); + BeanUtils.copyProperties(outboundInfo,outboundInfoDto); + outboundDetail.setOutboundNo(outboundInfo.getOutboundNo()); + + ExcelFillCellMergePrevColUtils mergePrevColUtils = new ExcelFillCellMergePrevColUtils(); + List outboundDetailList = outboundDetailService.selectOutboundDetailList(outboundDetail); + List outboundDetailDtoList = new ArrayList<>(); + try{ + int number=0; + Iterator outboundDetailValues = outboundDetailList.iterator(); + while (outboundDetailValues.hasNext()){ + Object detailValues = outboundDetailValues.next(); + OutboundDetailDto detailDto = new OutboundDetailDto(); + BeanUtils.copyProperties(detailValues,detailDto); + detailDto.setNumber(++number); + outboundDetailDtoList.add(detailDto); + } + }catch (Exception e){ + log.error(">>>>>>异常OutboundDetailDto<<<<<<", e); + } + + response.setCharacterEncoding("utf-8"); + String fileName = URLEncoder.encode("原料出库单", "UTF-8").replaceAll("\\+", "%20"); + response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx"); + String templateFileName = "C:\\exportTemplates\\exportOutboundInfoYL.xlsx"; + + try (ExcelWriter excelWriter = EasyExcel + .write(response.getOutputStream(), OutboundDetailDto.class) + .withTemplate(templateFileName) + .registerWriteHandler(mergePrevColUtils) + .build()) { + WriteSheet writeSheet = EasyExcel.writerSheet().build(); + FillConfig fillConfig = FillConfig.builder().forceNewRow(Boolean.TRUE).build(); + excelWriter.fill(outboundDetailDtoList, fillConfig, writeSheet); + Map map = MapUtils.newHashMap(); + SimpleDateFormat format = new SimpleDateFormat("yyyy年MM月dd日"); + map.put("workOrderNumber", outboundInfoDto.getWorkOrderNumber()); + map.put("outboundDate", format.format(outboundInfoDto.getOutboundDate())); + excelWriter.fill(map,writeSheet); + } + } + + + /** + * 导出辅料出库单 + */ + @RequiresPermissions("storehouse:outboundInfo:export") + @Log(title = "outboundInfo", businessType = BusinessType.EXPORT) + @PostMapping("/exportFL/{outboundId}") + @ResponseBody + public void exportFL(@PathVariable("outboundId") Long outboundId , HttpServletResponse response) throws IOException { + outboundInfo=outboundInfoService.selectOutboundInfoById(outboundId); + OutboundInfoDto outboundInfoDto = new OutboundInfoDto(); + BeanUtils.copyProperties(outboundInfo,outboundInfoDto); + outboundDetail.setOutboundNo(outboundInfo.getOutboundNo()); + + ExcelFillCellMergePrevColUtils mergePrevColUtils = new ExcelFillCellMergePrevColUtils(); + List outboundDetailList = outboundDetailService.selectOutboundDetailList(outboundDetail); + List outboundDetailDtoList = new ArrayList<>(); + try{ + int number=0; + Iterator outboundDetailValues = outboundDetailList.iterator(); + while (outboundDetailValues.hasNext()){ + Object detailValues = outboundDetailValues.next(); + OutboundDetailDto detailDto = new OutboundDetailDto(); + BeanUtils.copyProperties(detailValues,detailDto); + detailDto.setNumber(++number); + outboundDetailDtoList.add(detailDto); + } + }catch (Exception e){ + log.error(">>>>>>异常OutboundDetailDto<<<<<<", e); + } + + response.setCharacterEncoding("utf-8"); + String fileName = URLEncoder.encode("辅料出库单", "UTF-8").replaceAll("\\+", "%20"); + response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx"); + String templateFileName = "C:\\exportTemplates\\exportOutboundInfoFL.xlsx"; + + try (ExcelWriter excelWriter = EasyExcel + .write(response.getOutputStream(), OutboundDetailDto.class) + .withTemplate(templateFileName) + .registerWriteHandler(mergePrevColUtils) + .build()) { + WriteSheet writeSheet = EasyExcel.writerSheet().build(); + FillConfig fillConfig = FillConfig.builder().forceNewRow(Boolean.TRUE).build(); + excelWriter.fill(outboundDetailDtoList, fillConfig, writeSheet); + Map map = MapUtils.newHashMap(); + SimpleDateFormat format = new SimpleDateFormat("yyyy年MM月dd日"); + map.put("workOrderNumber", outboundInfoDto.getWorkOrderNumber()); + map.put("outboundDate", format.format(outboundInfoDto.getOutboundDate())); + excelWriter.fill(map,writeSheet); + } + } + + + + /** + * 导出成品出库单 + */ + @RequiresPermissions("storehouse:outboundInfo:export") + @Log(title = "outboundInfo", businessType = BusinessType.EXPORT) + @PostMapping("/exportCP/{outboundId}") + @ResponseBody + public void exportCP(@PathVariable("outboundId") Long outboundId , HttpServletResponse response) throws IOException { + outboundInfo=outboundInfoService.selectOutboundInfoById(outboundId); + OutboundInfoDto outboundInfoDto = new OutboundInfoDto(); + BeanUtils.copyProperties(outboundInfo,outboundInfoDto); + outboundDetail.setOutboundNo(outboundInfo.getOutboundNo()); + + //客户信息 + SysCustomer sysCustomer = sysCustomerService.selectSysCustomerByEnterpriseCode(outboundInfo.getEnterpriseCode()); + + ExcelFillCellMergePrevColUtils mergePrevColUtils = new ExcelFillCellMergePrevColUtils(); + List outboundDetailList = outboundDetailService.selectOutboundDetailList(outboundDetail); + List outboundDetailDtoList = new ArrayList<>(); + try{ + int number=0; + Iterator outboundDetailValues = outboundDetailList.iterator(); + while (outboundDetailValues.hasNext()){ + Object detailValues = outboundDetailValues.next(); + OutboundDetailDto detailDto = new OutboundDetailDto(); + BeanUtils.copyProperties(detailValues,detailDto); + detailDto.setNumber(++number); + outboundDetailDtoList.add(detailDto); + } + }catch (Exception e){ + log.error(">>>>>>异常OutboundDetailDto<<<<<<", e); + } + + response.setCharacterEncoding("utf-8"); + String fileName = URLEncoder.encode("成品出库单", "UTF-8").replaceAll("\\+", "%20"); + response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx"); + String templateFileName = "C:\\exportTemplates\\exportOutboundInfoCP.xlsx"; + + try (ExcelWriter excelWriter = EasyExcel + .write(response.getOutputStream(), OutboundDetailDto.class) + .withTemplate(templateFileName) + .registerWriteHandler(mergePrevColUtils) + .build()) { + WriteSheet writeSheet = EasyExcel.writerSheet().build(); + FillConfig fillConfig = FillConfig.builder().forceNewRow(Boolean.TRUE).build(); + excelWriter.fill(outboundDetailDtoList, fillConfig, writeSheet); + Map map = MapUtils.newHashMap(); + SimpleDateFormat format = new SimpleDateFormat("yyyy年MM月dd日"); + map.put("contactNumber", "TEL:"+sysCustomer.getContactNumber()); + map.put("customerFax", "FAX:"+sysCustomer.getCustomerFax()); + map.put("deliveryAddress", "地址:"+sysCustomer.getDeliveryAddress()); + map.put("enterpriseName", sysCustomer.getEnterpriseName()); + map.put("outboundDate", format.format(outboundInfoDto.getOutboundDate())); + excelWriter.fill(map,writeSheet); + } + } + +// public static HorizontalCellStyleStrategy horizontalCellStyleStrategyBuilderCP() { +// WriteCellStyle headWriteCellStyle = new WriteCellStyle(); +// //内容策略 +// WriteCellStyle contentWriteCellStyle = new WriteCellStyle(); +// //设置 水平居中 +// contentWriteCellStyle.setHorizontalAlignment(HorizontalAlignment.RIGHT); +// //垂直居中 +// contentWriteCellStyle.setVerticalAlignment(VerticalAlignment.CENTER); +// return new HorizontalCellStyleStrategy(headWriteCellStyle, contentWriteCellStyle); +// } /** * 新增outboundInfo */ @@ -245,8 +451,6 @@ public class OutboundInfoController extends BaseController return "操作成功"; } - - @RequiresPermissions("storehouse:outboundInfo:remove") @Log(title = "outboundInfo", businessType = BusinessType.DELETE) @PostMapping( "/removeOutbound") diff --git a/ruoyi-admin/src/main/java/com/ruoyi/storehouse/domain/OutboundDetail.java b/ruoyi-admin/src/main/java/com/ruoyi/storehouse/domain/OutboundDetail.java index eca5e414..8bd45832 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/storehouse/domain/OutboundDetail.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/storehouse/domain/OutboundDetail.java @@ -70,7 +70,7 @@ public class OutboundDetail extends BaseEntity /** 实发数量 */ @Excel(name = "实发数量") - private String sendCount; + private double sendCount; /** 订单号 */ @Excel(name = "订单号") @@ -221,12 +221,12 @@ public class OutboundDetail extends BaseEntity { return weight; } - public void setSendCount(String sendCount) + public void setSendCount(double sendCount) { this.sendCount = sendCount; } - public String getSendCount() + public double getSendCount() { return sendCount; } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/storehouse/domain/exportDto/OutboundDetailDto.java b/ruoyi-admin/src/main/java/com/ruoyi/storehouse/domain/exportDto/OutboundDetailDto.java index 4ccdb50b..673f94d3 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/storehouse/domain/exportDto/OutboundDetailDto.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/storehouse/domain/exportDto/OutboundDetailDto.java @@ -16,6 +16,8 @@ public class OutboundDetailDto extends BaseEntity { private static final long serialVersionUID = 1L; + private Integer number; + /** */ private Long outboundDetailId; @@ -69,7 +71,7 @@ public class OutboundDetailDto extends BaseEntity /** 实发数量 */ @ExcelProperty("实发数量") - private String sendCount; + private double sendCount; /** 订单号 */ @ExcelProperty("订单号") @@ -103,7 +105,15 @@ public class OutboundDetailDto extends BaseEntity @ExcelProperty("抵扣说明") private String deductionReason; - public void setOutboundDetailId(Long outboundDetailId) + public Integer getNumber() { + return number; + } + + public void setNumber(Integer number) { + this.number = number; + } + + public void setOutboundDetailId(Long outboundDetailId) { this.outboundDetailId = outboundDetailId; } @@ -219,12 +229,12 @@ public class OutboundDetailDto extends BaseEntity { return weight; } - public void setSendCount(String sendCount) + public void setSendCount(double sendCount) { this.sendCount = sendCount; } - public String getSendCount() + public double getSendCount() { return sendCount; } @@ -304,7 +314,8 @@ public class OutboundDetailDto extends BaseEntity @Override public String toString() { return "OutboundDetailDto{" + - "outboundDetailId=" + outboundDetailId + + "number=" + number + + ", outboundDetailId=" + outboundDetailId + ", materialCode='" + materialCode + '\'' + ", outboundNo='" + outboundNo + '\'' + ", materialName='" + materialName + '\'' + diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/domain/SysCustomer.java b/ruoyi-admin/src/main/java/com/ruoyi/system/domain/SysCustomer.java index b88f6a23..1cc6d618 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/system/domain/SysCustomer.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/domain/SysCustomer.java @@ -4,6 +4,7 @@ import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; import com.ruoyi.common.annotation.Excel; import com.ruoyi.common.core.domain.BaseEntity; +import org.springframework.stereotype.Repository; /** * 客户基本信息对象 sys_customer @@ -11,6 +12,7 @@ import com.ruoyi.common.core.domain.BaseEntity; * @author ruoyi * @date 2022-11-02 */ +@Repository public class SysCustomer extends BaseEntity { private static final long serialVersionUID = 1L; diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/mapper/SysCustomerMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/system/mapper/SysCustomerMapper.java index 81b57123..27117ef1 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/system/mapper/SysCustomerMapper.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/mapper/SysCustomerMapper.java @@ -62,4 +62,6 @@ public interface SysCustomerMapper public List selectSysCustomerBycode(); + + public SysCustomer selectSysCustomerByEnterpriseCode(String enterpriseCode); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/service/ISysCustomerService.java b/ruoyi-admin/src/main/java/com/ruoyi/system/service/ISysCustomerService.java index 11c71a3e..0924799f 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/system/service/ISysCustomerService.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/service/ISysCustomerService.java @@ -61,4 +61,6 @@ public interface ISysCustomerService public int deleteSysCustomerById(Long customerId); public List selectSysCustomerBycode(); + + public SysCustomer selectSysCustomerByEnterpriseCode(String enterpriseCode); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/SysCustomerServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/SysCustomerServiceImpl.java index 017f83ad..b06d1aca 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/SysCustomerServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/SysCustomerServiceImpl.java @@ -97,4 +97,9 @@ public class SysCustomerServiceImpl implements ISysCustomerService public List selectSysCustomerBycode() { return sysCustomerMapper.selectSysCustomerBycode(); } + + @Override + public SysCustomer selectSysCustomerByEnterpriseCode(String enterpriseCode) { + return sysCustomerMapper.selectSysCustomerByEnterpriseCode(enterpriseCode); + } } diff --git a/ruoyi-admin/src/main/resources/mapper/system/SysCustomerMapper.xml b/ruoyi-admin/src/main/resources/mapper/system/SysCustomerMapper.xml index ec999c98..a402bc88 100644 --- a/ruoyi-admin/src/main/resources/mapper/system/SysCustomerMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/system/SysCustomerMapper.xml @@ -77,6 +77,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select enterprise_code,enterprise_name from sys_customer + + + insert into sys_customer diff --git a/ruoyi-admin/src/main/resources/templates/manufacture/workOrderInfo/add.html b/ruoyi-admin/src/main/resources/templates/manufacture/workOrderInfo/add.html index 3c68a79e..37468848 100644 --- a/ruoyi-admin/src/main/resources/templates/manufacture/workOrderInfo/add.html +++ b/ruoyi-admin/src/main/resources/templates/manufacture/workOrderInfo/add.html @@ -919,6 +919,13 @@ $("#bomMaterialModal").modal("hide"); } + //半成品二阶bom + function bcpList(){ + $.ajax({ + url:ctx+ + }) + } + //添加BOM材料信息 function addBomDetailToTable() { var dataRaw = $("#rawMaterialBomTable").bootstrapTable("getSelections"); diff --git a/ruoyi-admin/src/main/resources/templates/storehouse/outboundInfoCP/add.html b/ruoyi-admin/src/main/resources/templates/storehouse/outboundInfoCP/add.html index 4066d2eb..a12f74d1 100644 --- a/ruoyi-admin/src/main/resources/templates/storehouse/outboundInfoCP/add.html +++ b/ruoyi-admin/src/main/resources/templates/storehouse/outboundInfoCP/add.html @@ -43,43 +43,45 @@
- +
- +
- +
- +
- +
- +
- +
@@ -120,6 +122,15 @@
+
+
+

+

材料信息

+
+
+
+
+
@@ -129,8 +140,8 @@ \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/templates/storehouse/outboundInfoFL/outboundInfoFL.html b/ruoyi-admin/src/main/resources/templates/storehouse/outboundInfoFL/outboundInfoFL.html index e154cec1..bc188e03 100644 --- a/ruoyi-admin/src/main/resources/templates/storehouse/outboundInfoFL/outboundInfoFL.html +++ b/ruoyi-admin/src/main/resources/templates/storehouse/outboundInfoFL/outboundInfoFL.html @@ -85,9 +85,9 @@ 删除 - - - + + 导出 +
@@ -191,7 +191,7 @@ if (rows.length > 0) { $.modal.confirm("是否删除选中的"+ rows.length +"条出库单?", function () { $.ajax({ - url: prefix + '/removeAll', + url: prefix + '/removeOutbound', type: 'post', data: { ids : rows.join() @@ -210,6 +210,40 @@ $.modal.msgWarning("请选择一条数据") } } + + //导出 + function exportSelectedRaw() { + var rows = $.common.isEmpty(table.options.uniqueId) ? $.table.selectFirstColumns() : $.table.selectColumns(table.options.uniqueId); + var data = $("#bootstrap-table").bootstrapTable("getSelections") + if (rows.length !== 1) { + $.modal.alert("请选择一条记录"); + return; + } else { + $.modal.confirm("是否确认要导出本条出库单?", function (){ + axios({ + url: prefix + '/exportFL/'+data[0].outboundId, + method: 'POST', + responseType: 'blob' + }).then(response => { + // console.log(response) + const URL = window.URL.createObjectURL(response.data) + // 创建隐藏标签进行下载 + const tempLink = document.createElement('a') + tempLink.style.display = 'none' + tempLink.href = URL + let time = new Date().toLocaleString() + tempLink.setAttribute('download', time + "辅料出库单.xlsx") + if (typeof tempLink.download === 'undefined') { + tempLink.setAttribute('target', '_blank') + } + document.body.appendChild(tempLink) + tempLink.click() + document.body.removeChild(tempLink)// 移除dom元素 + window.URL.revokeObjectURL(URL)//释放内存 + }) + }); + } + } \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/templates/storehouse/outboundInfoYL/add.html b/ruoyi-admin/src/main/resources/templates/storehouse/outboundInfoYL/add.html index afa13f88..ab72b870 100644 --- a/ruoyi-admin/src/main/resources/templates/storehouse/outboundInfoYL/add.html +++ b/ruoyi-admin/src/main/resources/templates/storehouse/outboundInfoYL/add.html @@ -57,7 +57,7 @@
- +
@@ -214,6 +214,7 @@ type: "post", dateType: "json", success: function (res) { + console.log(res) if (res.rows.length > 0) { var orderData = res.rows; for(let i in orderData){ @@ -223,7 +224,7 @@ var workOrderNumber = $(this).val(); for (let i=0;i { + // console.log(response) + const URL = window.URL.createObjectURL(response.data) + // 创建隐藏标签进行下载 + const tempLink = document.createElement('a') + tempLink.style.display = 'none' + tempLink.href = URL + let time = new Date().toLocaleString() + tempLink.setAttribute('download', time + "原料出库单.xlsx") + if (typeof tempLink.download === 'undefined') { + tempLink.setAttribute('target', '_blank') + } + document.body.appendChild(tempLink) + tempLink.click() + document.body.removeChild(tempLink)// 移除dom元素 + window.URL.revokeObjectURL(URL)//释放内存 + }) + }); + } + } \ No newline at end of file diff --git a/ruoyi-admin/target/classes/com/ruoyi/manufacture/controller/MaterialRequisitionDetailController.class b/ruoyi-admin/target/classes/com/ruoyi/manufacture/controller/MaterialRequisitionDetailController.class index 7cb7402c2d969d534a6a34df55447417bac788eb..793923ad3ef591b5110585dd52481ceabb331477 100644 GIT binary patch delta 67 zcmZ2vzQ}yTO9{?e25yEr24RN!$)6;87`rFeOSUjh2a@8GrKR>tE@lv5Si&I1u#`cK VVHtxd!*T{6AUlX*)#Q&-8v)qY6x#p* delta 67 zcmZ2vzQ}yTO9{>z25yF024RM}$)6;87`rCdOSUjh1CrvCrKR>tE@BX1Sj-^Bu!KR4 VVJU+t!!iaRAUlX*<>Zf28v)m66wd$v diff --git a/ruoyi-admin/target/classes/com/ruoyi/manufacture/controller/MaterialRequisitionInfoController.class b/ruoyi-admin/target/classes/com/ruoyi/manufacture/controller/MaterialRequisitionInfoController.class index da562ca6781810b4371f5200a906e45f127ad0f8..15a0739fc55e6a7b297e3df8d16c0a84a0a0cc9b 100644 GIT binary patch delta 7639 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 delta 6680 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 UhgFgZ%Q6&<$!3ig-%$kk06xb`!2kdN delta 709 zcmah{xl#f_6zo}%k!1u?#0y0fQ9(o$(e=WMgen6QGZO=U!obWQ*xxXaDyu9E_y9k| z$k>pw-(ta*XRzIGce~#;(~7-EYcK8R7JxEpHVjH3gs~pR2Fe1P0u_NR8{2Rs+7Z|l z*wfh8IMApz>NkCEC2-*kW5ghWsK%ke1SSopF=H@~jKKmj8b=1lI5EiL)F6kv!3qir zWjC+NZaeUL9cC8_gM2JWL>^*$L2`^dKxPeMoNq<4BKPN>pc)J;j1ol*iV{RgMghh! zPFB(rG49rb$=jYb?P(MAgY$Q^5=|jVwUQzDPfAwFo+|eUE8j%G!UI413m1M#mclGk zr9Jf=Bh9Ul;_h28S?cxT{ApLRM$hGFzpM6-D~mUg z4|9hs+<%$-(wFR~CGw!XWM^{QItORV7Mrluw + + + insert into sys_customer diff --git a/ruoyi-admin/target/classes/templates/manufacture/workOrderInfo/add.html b/ruoyi-admin/target/classes/templates/manufacture/workOrderInfo/add.html index 3c68a79e..37468848 100644 --- a/ruoyi-admin/target/classes/templates/manufacture/workOrderInfo/add.html +++ b/ruoyi-admin/target/classes/templates/manufacture/workOrderInfo/add.html @@ -919,6 +919,13 @@ $("#bomMaterialModal").modal("hide"); } + //半成品二阶bom + function bcpList(){ + $.ajax({ + url:ctx+ + }) + } + //添加BOM材料信息 function addBomDetailToTable() { var dataRaw = $("#rawMaterialBomTable").bootstrapTable("getSelections");