From 5e5472262d218920bcba5d9c3c128db02db83ff0 Mon Sep 17 00:00:00 2001 From: Dayu <1010@qq.com> Date: Mon, 15 Jul 2024 17:23:00 +0800 Subject: [PATCH] =?UTF-8?q?=E7=89=A9=E8=B5=84=20=E5=85=A5=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../spares/controller/InboundController.java | 20 ++++ .../spares/controller/MaterialController.java | 104 +++++++++++++++++- .../modules/spares/excel/MaterialExcel.java | 61 ++++++++++ .../modules/spares/mapper/InboundMapper.java | 5 + .../modules/spares/mapper/InboundMapper.xml | 4 + .../modules/spares/mapper/MaterialMapper.java | 27 +++++ .../modules/spares/mapper/MaterialMapper.xml | 35 ++++++ .../spares/service/IInboundService.java | 5 + .../spares/service/IMaterialService.java | 25 +++++ .../service/impl/InboundServiceImpl.java | 6 + .../service/impl/MaterialServiceImpl.java | 30 +++++ .../energy/modules/spares/vo/MaterialVO.java | 11 ++ 12 files changed, 332 insertions(+), 1 deletion(-) create mode 100644 src/main/java/org/energy/modules/spares/excel/MaterialExcel.java diff --git a/src/main/java/org/energy/modules/spares/controller/InboundController.java b/src/main/java/org/energy/modules/spares/controller/InboundController.java index 2911f00..a6b0f55 100644 --- a/src/main/java/org/energy/modules/spares/controller/InboundController.java +++ b/src/main/java/org/energy/modules/spares/controller/InboundController.java @@ -15,6 +15,7 @@ */ package org.energy.modules.spares.controller; +import com.xkcoding.http.util.StringUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; @@ -26,6 +27,7 @@ import com.dayu.daf.core.mp.support.Condition; import com.dayu.daf.core.mp.support.Query; import com.dayu.daf.core.tool.api.R; import com.dayu.daf.core.tool.utils.Func; +import lombok.Data; import org.energy.modules.leger.entity.TechParameters; import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.RequestParam; @@ -35,6 +37,8 @@ import org.energy.modules.spares.vo.InboundVO; import org.energy.modules.spares.service.IInboundService; import com.dayu.daf.core.boot.ctrl.DafController; +import java.text.SimpleDateFormat; +import java.util.Date; import java.util.List; /** @@ -111,6 +115,22 @@ public class InboundController extends DafController { @ApiOperationSupport(order = 6) @ApiOperation(value = "新增或修改", notes = "传入inbound") public R submit(@Valid @RequestBody Inbound inbound) { + String maxNo = inboundService.getMaxNo("'%" + inbound.getMaterialNo() + "%'"); + int number; + if (StringUtil.isNotEmpty(maxNo)){ + number = Integer.parseInt(maxNo.substring(10)); + number++; + }else{ + number = 1; + } + String numFormat = String.format("%06d", number); + String no = inbound.getMaterialNo() + "IN" + numFormat; + inbound.setInboundNo(no); + Date date = new Date(); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); + String time = sdf.format(date); + inbound.setInboundTime(time); + inbound.setIstatus(1L); return R.status(inboundService.saveOrUpdate(inbound)); } diff --git a/src/main/java/org/energy/modules/spares/controller/MaterialController.java b/src/main/java/org/energy/modules/spares/controller/MaterialController.java index f4f58e2..39340d5 100644 --- a/src/main/java/org/energy/modules/spares/controller/MaterialController.java +++ b/src/main/java/org/energy/modules/spares/controller/MaterialController.java @@ -15,17 +15,29 @@ */ package org.energy.modules.spares.controller; +import com.alibaba.excel.EasyExcel; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.dayu.daf.core.log.annotation.ApiLog; +import com.dayu.daf.core.tool.constant.DafConstant; +import com.xkcoding.http.util.StringUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import lombok.AllArgsConstructor; + +import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import com.dayu.daf.core.mp.support.Condition; import com.dayu.daf.core.mp.support.Query; import com.dayu.daf.core.tool.api.R; import com.dayu.daf.core.tool.utils.Func; +import lombok.SneakyThrows; +import org.apache.commons.codec.Charsets; +import org.energy.modules.inspection.entity.InspectionRoute; +import org.energy.modules.inspection.excel.InspectionRouteExcel; +import org.energy.modules.spares.excel.MaterialExcel; import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.RequestParam; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -33,6 +45,11 @@ import org.energy.modules.spares.entity.Material; import org.energy.modules.spares.vo.MaterialVO; import org.energy.modules.spares.service.IMaterialService; import com.dayu.daf.core.boot.ctrl.DafController; +import springfox.documentation.annotations.ApiIgnore; + +import java.net.URLEncoder; +import java.util.List; +import java.util.Map; /** * 物资 控制器 @@ -66,7 +83,34 @@ public class MaterialController extends DafController { @ApiOperationSupport(order = 2) @ApiOperation(value = "分页", notes = "传入material") public R> list(Material material, Query query) { - IPage pages = materialService.page(Condition.getPage(query), Condition.getQueryWrapper(material)); + QueryWrapper qw = new QueryWrapper<>(); + qw.orderByAsc("material_no"); + // 物资编号 + if (StringUtil.isNotEmpty(material.getMaterialNo())) { + qw.lambda().like(Material::getMaterialNo, material.getMaterialNo()); + } + + // 物资名称 + if (StringUtil.isNotEmpty(material.getMaterialName())) { + qw.lambda().like(Material::getMaterialName, material.getMaterialName()); + } + + // 规格型号 + if (StringUtil.isNotEmpty(material.getModel())) { + qw.lambda().like(Material::getModel, material.getModel()); + } + + // 场站 + if (null != material.getStation()) { + qw.lambda().eq(Material::getStation, material.getStation()); + } + + // 库存数量 + if (null != material.getInventoryCount()) { + qw.lambda().eq(Material::getInventoryCount, material.getInventoryCount()); + } + + IPage pages = materialService.page(Condition.getPage(query), qw); return R.data(pages); } @@ -108,6 +152,18 @@ public class MaterialController extends DafController { @ApiOperationSupport(order = 6) @ApiOperation(value = "新增或修改", notes = "传入material") public R submit(@Valid @RequestBody Material material) { + material.setIstatus(2L); + String maxNo = materialService.getMaxNo(); + int number; + if (StringUtil.isNotEmpty(maxNo)){ + number = Integer.parseInt(maxNo.substring(2)); + number++; + }else{ + number = 1; + } + String numFormat = String.format("%06d", number); + String no = "WZ" + numFormat; + material.setMaterialNo(no); return R.status(materialService.saveOrUpdate(material)); } @@ -122,5 +178,51 @@ public class MaterialController extends DafController { return R.status(materialService.deleteLogic(Func.toLongList(ids))); } + /** + * 获取物资编号 + */ + @GetMapping("/getNoList") + @ApiOperationSupport(order = 8) + @ApiOperation(value = "获取物资编号", notes = "获取物资编号") + public R> getNoList() { + List noList = materialService.getNoList(); + return R.data(noList); + } + + /** + * 获取物资信息 + */ + @GetMapping("/getDetailList") + @ApiOperationSupport(order = 9) + @ApiOperation(value = "获取物资信息", notes = "获取物资信息") + public R getDetailList(String materialNo) { + Material DetailList = materialService.getDetailList("'" + materialNo + "'"); + return R.data(DetailList); + } + + /** + * 导出 + */ + @SneakyThrows + @GetMapping("export") + @ApiOperationSupport(order = 10) + @ApiOperation(value = "导出", notes = "传入") + @ApiLog + public void exportMaterial(@ApiIgnore @RequestParam Map entity, HttpServletResponse response) { + if (entity.containsKey("station_equal")) { + entity.put("station_equal", Integer.parseInt((String) entity.get("station_equal"))); + } + + QueryWrapper queryWrapper = Condition.getQueryWrapper(entity, Material.class); + queryWrapper.lambda().eq(Material::getIsDeleted, DafConstant.DB_NOT_DELETED); + queryWrapper.orderByAsc("material_no"); + + List list = materialService.exportData(queryWrapper); + response.setContentType("application/vnd.ms-excel"); + response.setCharacterEncoding(Charsets.UTF_8.name()); + String fileName = URLEncoder.encode("物资数据导出", Charsets.UTF_8.name()); + response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx"); + EasyExcel.write(response.getOutputStream(), MaterialExcel.class).sheet("物资").doWrite(list); + } } diff --git a/src/main/java/org/energy/modules/spares/excel/MaterialExcel.java b/src/main/java/org/energy/modules/spares/excel/MaterialExcel.java new file mode 100644 index 0000000..0b02677 --- /dev/null +++ b/src/main/java/org/energy/modules/spares/excel/MaterialExcel.java @@ -0,0 +1,61 @@ +/** + * Copyright (c) 2018-2028, Chill Zhuang 庄骞 (smallchill@163.com). + *

+ * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + *

+ * http://www.apache.org/licenses/LICENSE-2.0 + *

+ * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.energy.modules.spares.excel; + +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.alibaba.excel.annotation.write.style.ContentRowHeight; +import com.alibaba.excel.annotation.write.style.HeadRowHeight; +import lombok.Data; + +import java.io.Serializable; + +/** + * EquipmentLedge model export + * @author edwong + */ +@Data +@ColumnWidth(25) +@HeadRowHeight(20) +@ContentRowHeight(16) +public class MaterialExcel implements Serializable { + private static final long serialVersionUID = 1L; + + @ColumnWidth(20) + @ExcelProperty(value = "物资编号") + private String materialNo; + + @ColumnWidth(15) + @ExcelProperty(value = "场站") + private String stationExt; + + @ColumnWidth(15) + @ExcelProperty(value = "物资名称") + private String materialName; + + @ColumnWidth(15) + @ExcelProperty(value = "规格型号") + private String model; + + @ColumnWidth(15) + @ExcelProperty(value = "库存数量") + private Long inventoryCount; + + @ColumnWidth(20) + @ExcelProperty(value = "物资描述") + private String materialDescription; + +} diff --git a/src/main/java/org/energy/modules/spares/mapper/InboundMapper.java b/src/main/java/org/energy/modules/spares/mapper/InboundMapper.java index 582f04a..5825fd0 100644 --- a/src/main/java/org/energy/modules/spares/mapper/InboundMapper.java +++ b/src/main/java/org/energy/modules/spares/mapper/InboundMapper.java @@ -23,4 +23,9 @@ public interface InboundMapper extends BaseMapper { */ List selectInboundPage(IPage page, InboundVO inbound); + /** + * 获取最大编号 + */ + String getMaxNo(String materialNo); + } diff --git a/src/main/java/org/energy/modules/spares/mapper/InboundMapper.xml b/src/main/java/org/energy/modules/spares/mapper/InboundMapper.xml index 1dde980..618bfa3 100644 --- a/src/main/java/org/energy/modules/spares/mapper/InboundMapper.xml +++ b/src/main/java/org/energy/modules/spares/mapper/InboundMapper.xml @@ -25,4 +25,8 @@ select * from s_inbound where is_deleted = 0 + + diff --git a/src/main/java/org/energy/modules/spares/mapper/MaterialMapper.java b/src/main/java/org/energy/modules/spares/mapper/MaterialMapper.java index 888e632..2b87eda 100644 --- a/src/main/java/org/energy/modules/spares/mapper/MaterialMapper.java +++ b/src/main/java/org/energy/modules/spares/mapper/MaterialMapper.java @@ -1,6 +1,13 @@ package org.energy.modules.spares.mapper; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import org.apache.ibatis.annotations.Param; +import org.energy.modules.inspection.entity.InspectionRoute; +import org.energy.modules.inspection.entity.InspectionTasks; +import org.energy.modules.inspection.excel.InspectionRouteExcel; +import org.energy.modules.inspection.excel.InspectionTasksExcel; import org.energy.modules.spares.entity.Material; +import org.energy.modules.spares.excel.MaterialExcel; import org.energy.modules.spares.vo.MaterialVO; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -23,4 +30,24 @@ public interface MaterialMapper extends BaseMapper { */ List selectMaterialPage(IPage page, MaterialVO material); + /** + * 导出 + */ + List exportData(@Param("ew") Wrapper queryWrapper); + + /** + * 获取物资编号 + */ + List getNoList(); + + /** + * 获取最大编号 + */ + String getMaxNo(); + + /** + * 获取物资的信息 + */ + Material getDetailList(String materialNo); + } diff --git a/src/main/java/org/energy/modules/spares/mapper/MaterialMapper.xml b/src/main/java/org/energy/modules/spares/mapper/MaterialMapper.xml index 81fc633..f9c713b 100644 --- a/src/main/java/org/energy/modules/spares/mapper/MaterialMapper.xml +++ b/src/main/java/org/energy/modules/spares/mapper/MaterialMapper.xml @@ -29,4 +29,39 @@ select * from s_material where is_deleted = 0 + + + + + + + + diff --git a/src/main/java/org/energy/modules/spares/service/IInboundService.java b/src/main/java/org/energy/modules/spares/service/IInboundService.java index 1a6a4d8..cf5c3f7 100644 --- a/src/main/java/org/energy/modules/spares/service/IInboundService.java +++ b/src/main/java/org/energy/modules/spares/service/IInboundService.java @@ -22,4 +22,9 @@ public interface IInboundService extends BaseService { */ IPage selectInboundPage(IPage page, InboundVO inbound); + /** + * 获取最大编号 + */ + String getMaxNo(String materialNo); + } diff --git a/src/main/java/org/energy/modules/spares/service/IMaterialService.java b/src/main/java/org/energy/modules/spares/service/IMaterialService.java index 710b073..0cdc23f 100644 --- a/src/main/java/org/energy/modules/spares/service/IMaterialService.java +++ b/src/main/java/org/energy/modules/spares/service/IMaterialService.java @@ -1,10 +1,15 @@ package org.energy.modules.spares.service; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import org.apache.ibatis.annotations.Param; import org.energy.modules.spares.entity.Material; +import org.energy.modules.spares.excel.MaterialExcel; import org.energy.modules.spares.vo.MaterialVO; import com.dayu.daf.core.mp.base.BaseService; import com.baomidou.mybatisplus.core.metadata.IPage; +import java.util.List; + /** * 物资 服务类 * @@ -22,4 +27,24 @@ public interface IMaterialService extends BaseService { */ IPage selectMaterialPage(IPage page, MaterialVO material); + /** + * 导出 + */ + List exportData(Wrapper queryWrapper); + + /** + * 获取物资编号 + */ + List getNoList(); + + /** + * 获取最大编号 + */ + String getMaxNo(); + + /** + * 获取物资的信息 + */ + Material getDetailList(String materialNo); + } diff --git a/src/main/java/org/energy/modules/spares/service/impl/InboundServiceImpl.java b/src/main/java/org/energy/modules/spares/service/impl/InboundServiceImpl.java index 5ac96b0..af3975c 100644 --- a/src/main/java/org/energy/modules/spares/service/impl/InboundServiceImpl.java +++ b/src/main/java/org/energy/modules/spares/service/impl/InboundServiceImpl.java @@ -22,4 +22,10 @@ public class InboundServiceImpl extends BaseServiceImpl return page.setRecords(baseMapper.selectInboundPage(page, inbound)); } + @Override + public String getMaxNo(String materialNo){ + String maxNo = baseMapper.getMaxNo(materialNo); + return maxNo; + } + } diff --git a/src/main/java/org/energy/modules/spares/service/impl/MaterialServiceImpl.java b/src/main/java/org/energy/modules/spares/service/impl/MaterialServiceImpl.java index d806eec..aa7b4d5 100644 --- a/src/main/java/org/energy/modules/spares/service/impl/MaterialServiceImpl.java +++ b/src/main/java/org/energy/modules/spares/service/impl/MaterialServiceImpl.java @@ -1,6 +1,10 @@ package org.energy.modules.spares.service.impl; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import org.energy.modules.inspection.entity.InspectionRoute; +import org.energy.modules.inspection.excel.InspectionRouteExcel; import org.energy.modules.spares.entity.Material; +import org.energy.modules.spares.excel.MaterialExcel; import org.energy.modules.spares.vo.MaterialVO; import org.energy.modules.spares.mapper.MaterialMapper; import org.energy.modules.spares.service.IMaterialService; @@ -8,6 +12,8 @@ import com.dayu.daf.core.mp.base.BaseServiceImpl; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.core.metadata.IPage; +import java.util.List; + /** * 物资 服务实现类 * @@ -22,4 +28,28 @@ public class MaterialServiceImpl extends BaseServiceImpl exportData(Wrapper queryWrapper) { + List list = baseMapper.exportData(queryWrapper); + return list; + } + + @Override + public List getNoList() { + List list = baseMapper.getNoList(); + return list; + } + + @Override + public String getMaxNo(){ + String maxNo = baseMapper.getMaxNo(); + return maxNo; + } + + @Override + public Material getDetailList(String materialNo) { + Material DetailList = baseMapper.getDetailList(materialNo); + return DetailList; + } + } diff --git a/src/main/java/org/energy/modules/spares/vo/MaterialVO.java b/src/main/java/org/energy/modules/spares/vo/MaterialVO.java index 169afa8..48339dd 100644 --- a/src/main/java/org/energy/modules/spares/vo/MaterialVO.java +++ b/src/main/java/org/energy/modules/spares/vo/MaterialVO.java @@ -17,4 +17,15 @@ import io.swagger.annotations.ApiModel; public class MaterialVO extends Material { private static final long serialVersionUID = 1L; + // 物资名称 + private static final String materialName = ""; + + // 规格模型 + private static final String model = ""; + + // 仓库名 + private static final String warehouseName = ""; + + + }