From 0cae8937552435c41a26766127645156729d9174 Mon Sep 17 00:00:00 2001 From: Administrator <1923636941@qq.com> Date: Thu, 11 May 2023 11:57:26 +0800 Subject: [PATCH] =?UTF-8?q?=E5=90=88=E5=90=8C-=E5=8F=91=E7=A5=A8=E8=AE=B0?= =?UTF-8?q?=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../gt/GtMaterialInvoiceRecordController.java | 276 ++++++++++++++++++ .../gt/entity/GtMaterialInvoiceRecord.java | 105 +++++++ .../mapper/GtMaterialInvoiceRecordMapper.java | 16 + .../xml/GtMaterialInvoiceRecordMapper.xml | 4 + .../IGtMaterialInvoiceRecordService.java | 14 + .../GtMaterialInvoiceRecordServiceImpl.java | 19 ++ 6 files changed, 434 insertions(+) create mode 100644 src/main/java/com/zhgd/xmgl/modules/gt/GtMaterialInvoiceRecordController.java create mode 100644 src/main/java/com/zhgd/xmgl/modules/gt/entity/GtMaterialInvoiceRecord.java create mode 100644 src/main/java/com/zhgd/xmgl/modules/gt/mapper/GtMaterialInvoiceRecordMapper.java create mode 100644 src/main/java/com/zhgd/xmgl/modules/gt/mapper/xml/GtMaterialInvoiceRecordMapper.xml create mode 100644 src/main/java/com/zhgd/xmgl/modules/gt/service/IGtMaterialInvoiceRecordService.java create mode 100644 src/main/java/com/zhgd/xmgl/modules/gt/service/impl/GtMaterialInvoiceRecordServiceImpl.java diff --git a/src/main/java/com/zhgd/xmgl/modules/gt/GtMaterialInvoiceRecordController.java b/src/main/java/com/zhgd/xmgl/modules/gt/GtMaterialInvoiceRecordController.java new file mode 100644 index 000000000..63d54555b --- /dev/null +++ b/src/main/java/com/zhgd/xmgl/modules/gt/GtMaterialInvoiceRecordController.java @@ -0,0 +1,276 @@ +package com.zhgd.xmgl.modules.gt; + +import com.alibaba.fastjson.JSONObject; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiOperation; + +import java.util.Arrays; +import java.util.List; +import java.util.Map; +import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.net.URLDecoder; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import com.zhgd.jeecg.common.api.vo.Result; +import com.zhgd.jeecg.common.system.query.QueryGenerator; +import com.zhgd.jeecg.common.util.oConvertUtils; +import com.zhgd.xmgl.modules.gt.entity.GtMaterialInvoiceRecord; +import com.zhgd.xmgl.modules.gt.service.IGtMaterialInvoiceRecordService; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import lombok.extern.slf4j.Slf4j; + +import org.jeecgframework.poi.excel.ExcelImportUtil; +import org.jeecgframework.poi.excel.def.NormalExcelConstants; +import org.jeecgframework.poi.excel.entity.ExportParams; +import org.jeecgframework.poi.excel.entity.ImportParams; +import org.jeecgframework.poi.excel.view.JeecgEntityExcelView; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.multipart.MultipartHttpServletRequest; +import org.springframework.web.servlet.ModelAndView; +import com.alibaba.fastjson.JSON; + + +/** + * @Title: Controller + * @Description: 合同-发票记录 + * @author: pds + * @date: 2023-05-11 + * @version: V1.0 + */ +@RestController +@RequestMapping("/xmgl/x/gtMaterialInvoiceRecord") +@Slf4j +@Api(tags = "GtMaterial合同-发票记录") +public class GtMaterialInvoiceRecordController { + @Autowired + private IGtMaterialInvoiceRecordService gtMaterialInvoiceRecordService; + + /** + * 分页列表查询 + * + * @param gtMaterialInvoiceRecord + * @param pageNo + * @param pageSize + * @param req + * @return + */ + @ApiOperation(value = " 分页列表查询合同-发票记录信息", notes = "分页列表查询合同-发票记录信息", httpMethod = "GET") + @GetMapping(value = "/page") + public Result> queryPageList(GtMaterialInvoiceRecord gtMaterialInvoiceRecord, + @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, + @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, + HttpServletRequest req) { + Result> result = new Result>(); + QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(gtMaterialInvoiceRecord, req.getParameterMap()); + Page page = new Page(pageNo, pageSize); + IPage pageList = gtMaterialInvoiceRecordService.page(page, queryWrapper); + result.setSuccess(true); + result.setResult(pageList); + return result; + } + + /** + * 列表查询 + * + * @param gtMaterialInvoiceRecord + * @param req + * @return + */ + @ApiOperation(value = " 列表查询合同-发票记录信息", notes = "列表查询合同-发票记录信息", httpMethod = "GET") + @GetMapping(value = "/list") + public Result> queryList(GtMaterialInvoiceRecord gtMaterialInvoiceRecord, + HttpServletRequest req) { + + QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(gtMaterialInvoiceRecord, req.getParameterMap()); + return Result.success(gtMaterialInvoiceRecordService.list(queryWrapper)); + } + + /** + * 添加 + * + * @param gtMaterialInvoiceRecord + * @return + */ + @ApiOperation(value = " 添加合同-发票记录信息", notes = "添加合同-发票记录信息", httpMethod = "POST") + @PostMapping(value = "/add") + public Result add(@RequestBody GtMaterialInvoiceRecord gtMaterialInvoiceRecord) { + Result result = new Result(); + try { + gtMaterialInvoiceRecordService.save(gtMaterialInvoiceRecord); + result.success("添加成功!"); + } catch (Exception e) { + e.printStackTrace(); + log.info(e.getMessage()); + result.error500("操作失败"); + } + return result; + } + + /** + * 编辑 + * + * @param gtMaterialInvoiceRecord + * @return + */ + @ApiOperation(value = "编辑合同-发票记录信息", notes = "编辑合同-发票记录信息", httpMethod = "POST") + @PostMapping(value = "/edit") + public Result edit(@RequestBody GtMaterialInvoiceRecord gtMaterialInvoiceRecord) { + Result result = new Result(); + GtMaterialInvoiceRecord gtMaterialInvoiceRecordEntity = gtMaterialInvoiceRecordService.getById(gtMaterialInvoiceRecord.getId()); + if (gtMaterialInvoiceRecordEntity == null) { + result.error500("未找到对应实体"); + } else { + gtMaterialInvoiceRecordService.updateById(gtMaterialInvoiceRecord); + result.success("修改成功!"); + } + + return result; + } + + /** + * 通过id删除 + * + * @param id + * @return + */ + @ApiOperation(value = "删除合同-发票记录信息", notes = "删除合同-发票记录信息", httpMethod = "POST") + @PostMapping(value = "/delete") + public Result delete(@RequestBody String id) { + JSONObject jsonObject = JSON.parseObject(id, JSONObject.class); + id = String.valueOf(jsonObject.get("id")); + Result result = new Result(); + GtMaterialInvoiceRecord gtMaterialInvoiceRecord = gtMaterialInvoiceRecordService.getById(id); + if (gtMaterialInvoiceRecord == null) { + result.error500("未找到对应实体"); + } else { + boolean ok = gtMaterialInvoiceRecordService.removeById(id); + if (ok) { + result.success("删除成功!"); + } + } + + return result; + } + + /** + * 批量删除 + * + * @param ids + * @return + */ + @ApiOperation(value = "批量删除合同-发票记录信息", notes = "批量删除合同-发票记录信息", httpMethod = "POST") + @ApiImplicitParam(name = "id", value = "合同-发票记录ID字符串", paramType = "query", required = true, dataType = "String") + @PostMapping(value = "/deleteBatch") + public Result deleteBatch(@RequestParam(name = "ids", required = true) String ids) { + Result result = new Result(); + if (ids == null || "".equals(ids.trim())) { + result.error500("参数不识别!"); + } else { + this.gtMaterialInvoiceRecordService.removeByIds(Arrays.asList(ids.split(","))); + result.success("删除成功!"); + } + return result; + } + + /** + * 通过id查询 + * + * @param id + * @return + */ + @ApiOperation(value = "通过id查询合同-发票记录信息", notes = "通过id查询合同-发票记录信息", httpMethod = "GET") + @ApiImplicitParam(name = "id", value = "合同-发票记录ID", paramType = "query", required = true, dataType = "Integer") + @GetMapping(value = "/queryById") + public Result queryById(@RequestParam(name = "id", required = true) String id) { + Result result = new Result(); + GtMaterialInvoiceRecord gtMaterialInvoiceRecord = gtMaterialInvoiceRecordService.getById(id); + if (gtMaterialInvoiceRecord == null) { + result.error500("未找到对应实体"); + } else { + result.setResult(gtMaterialInvoiceRecord); + result.setSuccess(true); + } + return result; + } + + /** + * 导出excel + * + * @param request + * @param response + */ + @ApiOperation(value = "导出excel合同-发票记录信息", notes = "导出excel合同-发票记录信息", httpMethod = "POST") + @RequestMapping(value = "/exportXls") + public ModelAndView exportXls(HttpServletRequest request, HttpServletResponse response) { + // Step.1 组装查询条件 + QueryWrapper queryWrapper = null; + try { + String paramsStr = request.getParameter("paramsStr"); + if (oConvertUtils.isNotEmpty(paramsStr)) { + String deString = URLDecoder.decode(paramsStr, "UTF-8"); + GtMaterialInvoiceRecord gtMaterialInvoiceRecord = JSON.parseObject(deString, GtMaterialInvoiceRecord.class); + queryWrapper = QueryGenerator.initQueryWrapper(gtMaterialInvoiceRecord, request.getParameterMap()); + } + } catch (UnsupportedEncodingException e) { + e.printStackTrace(); + } + + //Step.2 AutoPoi 导出Excel + ModelAndView mv = new ModelAndView(new JeecgEntityExcelView()); + List pageList = gtMaterialInvoiceRecordService.list(queryWrapper); + //导出文件名称 + mv.addObject(NormalExcelConstants.FILE_NAME, "合同-发票记录列表"); + mv.addObject(NormalExcelConstants.CLASS, GtMaterialInvoiceRecord.class); + mv.addObject(NormalExcelConstants.PARAMS, new ExportParams("合同-发票记录列表数据", "导出人:Jeecg", "导出信息")); + mv.addObject(NormalExcelConstants.DATA_LIST, pageList); + return mv; + } + + /** + * 通过excel导入数据 + * + * @param request + * @param response + * @return + */ + @ApiOperation(value = "通过excel导入合同-发票记录信息", notes = "通过excel导入合同-发票记录信息", httpMethod = "POST") + @RequestMapping(value = "/importExcel", method = RequestMethod.POST) + public Result importExcel(HttpServletRequest request, HttpServletResponse response) { + MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; + Map fileMap = multipartRequest.getFileMap(); + for (Map.Entry entity : fileMap.entrySet()) { + MultipartFile file = entity.getValue();// 获取上传文件对象 + ImportParams params = new ImportParams(); + params.setTitleRows(2); + params.setHeadRows(1); + params.setNeedSave(true); + try { + List listGtMaterialInvoiceRecords = ExcelImportUtil.importExcel(file.getInputStream(), GtMaterialInvoiceRecord.class, params); + for (GtMaterialInvoiceRecord gtMaterialInvoiceRecordExcel : listGtMaterialInvoiceRecords) { + gtMaterialInvoiceRecordService.save(gtMaterialInvoiceRecordExcel); + } + return Result.ok("文件导入成功!数据行数:" + listGtMaterialInvoiceRecords.size()); + } catch (Exception e) { + log.error(e.getMessage()); + return Result.error("文件导入失败!"); + } finally { + try { + file.getInputStream().close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + return Result.ok("文件导入失败!"); + } + +} diff --git a/src/main/java/com/zhgd/xmgl/modules/gt/entity/GtMaterialInvoiceRecord.java b/src/main/java/com/zhgd/xmgl/modules/gt/entity/GtMaterialInvoiceRecord.java new file mode 100644 index 000000000..ff37ee442 --- /dev/null +++ b/src/main/java/com/zhgd/xmgl/modules/gt/entity/GtMaterialInvoiceRecord.java @@ -0,0 +1,105 @@ +package com.zhgd.xmgl.modules.gt.entity; + +import java.io.Serializable; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.springframework.format.annotation.DateTimeFormat; +import org.jeecgframework.poi.excel.annotation.Excel; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; + +/** + * @Description: 合同-发票记录 + * @author: pds + * @date: 2023-05-11 + * @version: V1.0 + */ +@Data +@TableName("gt_material_invoice_record") +@ApiModel(value = "GtMaterialInvoiceRecord实体类", description = "GtMaterialInvoiceRecord") +public class GtMaterialInvoiceRecord implements Serializable { + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @TableId(type = IdType.ASSIGN_ID) + @ApiModelProperty(value = "主键id") + private java.lang.Long id; + /** + * 合同id + */ + @Excel(name = "合同id", width = 15) + @ApiModelProperty(value = "合同id") + private java.lang.Long gtMaterialContractId; + /** + * 申请时间 + */ + @Excel(name = "申请时间", width = 15, format = "yyyy-MM-dd") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern = "yyyy-MM-dd") + @ApiModelProperty(value = "申请时间") + private java.util.Date applicationTime; + /** + * 签约主体 + */ + @Excel(name = "签约主体", width = 15) + @ApiModelProperty(value = "签约主体") + private java.lang.String signingParty; + /** + * 发票美型 + */ + @Excel(name = "发票美型", width = 15) + @ApiModelProperty(value = "发票美型") + private java.lang.String invoiceFormat; + /** + * 发票介质 + */ + @Excel(name = "发票介质", width = 15) + @ApiModelProperty(value = "发票介质") + private java.lang.String invoiceMedium; + /** + * 开票方式 + */ + @Excel(name = "开票方式", width = 15) + @ApiModelProperty(value = "开票方式") + private java.lang.String billingMethod; + /** + * 发票金额 + */ + @Excel(name = "发票金额", width = 15) + @ApiModelProperty(value = "发票金额") + private java.math.BigDecimal invoiceAmount; + /** + * 状态 + */ + @Excel(name = "状态", width = 15) + @ApiModelProperty(value = "状态") + private java.lang.String status; + /** + * 项目sn + */ + @Excel(name = "项目sn", width = 15) + @ApiModelProperty(value = "项目sn") + private java.lang.String projectSn; + /** + * 创建时间 + */ + @Excel(name = "创建时间", width = 20, format = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "创建时间") + private java.util.Date createTime; + /** + * 更新时间 + */ + @Excel(name = "更新时间", width = 20, format = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "更新时间") + private java.util.Date updateTime; +} diff --git a/src/main/java/com/zhgd/xmgl/modules/gt/mapper/GtMaterialInvoiceRecordMapper.java b/src/main/java/com/zhgd/xmgl/modules/gt/mapper/GtMaterialInvoiceRecordMapper.java new file mode 100644 index 000000000..bf43e552a --- /dev/null +++ b/src/main/java/com/zhgd/xmgl/modules/gt/mapper/GtMaterialInvoiceRecordMapper.java @@ -0,0 +1,16 @@ +package com.zhgd.xmgl.modules.gt.mapper; + +import org.apache.ibatis.annotations.Mapper; +import com.zhgd.xmgl.modules.gt.entity.GtMaterialInvoiceRecord; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * @Description: 合同-发票记录 + * @author: pds + * @date: 2023-05-11 + * @version: V1.0 + */ +@Mapper +public interface GtMaterialInvoiceRecordMapper extends BaseMapper { + +} diff --git a/src/main/java/com/zhgd/xmgl/modules/gt/mapper/xml/GtMaterialInvoiceRecordMapper.xml b/src/main/java/com/zhgd/xmgl/modules/gt/mapper/xml/GtMaterialInvoiceRecordMapper.xml new file mode 100644 index 000000000..d6ea7163d --- /dev/null +++ b/src/main/java/com/zhgd/xmgl/modules/gt/mapper/xml/GtMaterialInvoiceRecordMapper.xml @@ -0,0 +1,4 @@ + + + + diff --git a/src/main/java/com/zhgd/xmgl/modules/gt/service/IGtMaterialInvoiceRecordService.java b/src/main/java/com/zhgd/xmgl/modules/gt/service/IGtMaterialInvoiceRecordService.java new file mode 100644 index 000000000..0d9f65ed4 --- /dev/null +++ b/src/main/java/com/zhgd/xmgl/modules/gt/service/IGtMaterialInvoiceRecordService.java @@ -0,0 +1,14 @@ +package com.zhgd.xmgl.modules.gt.service; + +import com.zhgd.xmgl.modules.gt.entity.GtMaterialInvoiceRecord; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + * @Description: 合同-发票记录 + * @author: pds + * @date: 2023-05-11 + * @version: V1.0 + */ +public interface IGtMaterialInvoiceRecordService extends IService { + +} diff --git a/src/main/java/com/zhgd/xmgl/modules/gt/service/impl/GtMaterialInvoiceRecordServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/gt/service/impl/GtMaterialInvoiceRecordServiceImpl.java new file mode 100644 index 000000000..482785da3 --- /dev/null +++ b/src/main/java/com/zhgd/xmgl/modules/gt/service/impl/GtMaterialInvoiceRecordServiceImpl.java @@ -0,0 +1,19 @@ +package com.zhgd.xmgl.modules.gt.service.impl; + +import com.zhgd.xmgl.modules.gt.entity.GtMaterialInvoiceRecord; +import com.zhgd.xmgl.modules.gt.mapper.GtMaterialInvoiceRecordMapper; +import com.zhgd.xmgl.modules.gt.service.IGtMaterialInvoiceRecordService; +import org.springframework.stereotype.Service; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; + +/** + * @Description: 合同-发票记录 + * @author: pds + * @date: 2023-05-11 + * @version: V1.0 + */ +@Service +public class GtMaterialInvoiceRecordServiceImpl extends ServiceImpl implements IGtMaterialInvoiceRecordService { + +}