From a15afd2f5a5a2de539706571813ae7a577ef642c Mon Sep 17 00:00:00 2001 From: chenhc <2369838784@qq.com> Date: Mon, 27 May 2024 09:33:05 +0800 Subject: [PATCH] =?UTF-8?q?feat:=200527=E5=BC=80=E5=8F=91=E8=AE=BA?= =?UTF-8?q?=E8=AF=81=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../inout/IoOrderDetailResultController.java | 19 +++ .../purchase/PurApplyArgumentController.java | 120 ++++++++++++++++++ .../api/entity/purchase/PurApplyArgument.java | 21 +++ .../req/purchase/PurApplyArgumentRequest.java | 42 ++++++ .../impl/PurApplyArgumentService.java | 31 +++++ .../glxp/api/util/EntityToMapConverter.java | 35 +++++ .../mapper/purchase/PurApplyDetailDao.xml | 4 +- src/main/resources/schemas/schema_v2.4.sql | 22 +++- 8 files changed, 291 insertions(+), 3 deletions(-) create mode 100644 src/main/java/com/glxp/api/controller/purchase/PurApplyArgumentController.java create mode 100644 src/main/java/com/glxp/api/req/purchase/PurApplyArgumentRequest.java create mode 100644 src/main/java/com/glxp/api/util/EntityToMapConverter.java diff --git a/src/main/java/com/glxp/api/controller/inout/IoOrderDetailResultController.java b/src/main/java/com/glxp/api/controller/inout/IoOrderDetailResultController.java index 3984a1f4e..c4779fa66 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoOrderDetailResultController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoOrderDetailResultController.java @@ -20,6 +20,7 @@ import com.glxp.api.entity.auth.InvWarehouseEntity; import com.glxp.api.entity.basic.BasicBussinessTypeEntity; import com.glxp.api.entity.inout.*; import com.glxp.api.entity.system.CompanyEntity; +import com.glxp.api.entity.system.SysPdfTemplateRelevanceLabelEntity; import com.glxp.api.entity.system.SysPdfTemplateRelevanceStatemenEntity; import com.glxp.api.entity.system.SystemPDFTemplateEntity; import com.glxp.api.entity.thrsys.ThrProductsEntity; @@ -251,6 +252,24 @@ public class IoOrderDetailResultController extends BaseController { return ResultVOUtils.success(sysPdfTemplateRelevanceStatemenEntity.getTemplateId()); } + //校验模板是否正确--标签 + @AuthRuleAnnotation("") + @PostMapping("/udiwms/pdf/templateLabel/order/result/file") + public BaseResponse inspectionStockOrderPDFFromTemplateLabelFile(@RequestBody InspectionPDFTemplateRequest inspectionPDFTemplateRequest) { + + //查询模板文件是否存在 + SysPdfTemplateRelevanceLabelEntity sysPdfTemplateRelevanceLabelEntity = systemPDFModuleService.selectByLabelId(inspectionPDFTemplateRequest.getId()); + if (null == sysPdfTemplateRelevanceLabelEntity) { + return ResultVOUtils.error(ResultEnum.DATA_NOT, "所属模块错误"); + } + + SystemPDFTemplateEntity systemPDFTemplateEntity = systemPDFTemplateService.selectById(String.valueOf(sysPdfTemplateRelevanceLabelEntity.getTemplateId())); + if (null == systemPDFTemplateEntity) { + return ResultVOUtils.error(ResultEnum.DATA_NOT, "模板错误"); + } + return ResultVOUtils.success(sysPdfTemplateRelevanceLabelEntity.getTemplateId()); + } + /** * 出入库明细打印 diff --git a/src/main/java/com/glxp/api/controller/purchase/PurApplyArgumentController.java b/src/main/java/com/glxp/api/controller/purchase/PurApplyArgumentController.java new file mode 100644 index 000000000..254e3ce22 --- /dev/null +++ b/src/main/java/com/glxp/api/controller/purchase/PurApplyArgumentController.java @@ -0,0 +1,120 @@ +package com.glxp.api.controller.purchase; + +import com.alibaba.fastjson.JSON; +import com.github.pagehelper.PageInfo; +import com.glxp.api.annotation.AuthRuleAnnotation; +import com.glxp.api.common.res.BaseResponse; +import com.glxp.api.common.util.ResultVOUtils; +import com.glxp.api.entity.purchase.PurApplyArgument; +import com.glxp.api.entity.purchase.PurInquiryItemEntity; +import com.glxp.api.entity.system.SystemPDFTemplateEntity; +import com.glxp.api.req.dev.DeviceInfoDetailQuery; +import com.glxp.api.req.purchase.PurApplyArgumentRequest; +import com.glxp.api.req.purchase.PurInquiryOfferRequest; +import com.glxp.api.res.PageSimpleResponse; +import com.glxp.api.res.purchase.PurInquiryOfferEntityResponse; +import com.glxp.api.service.purchase.impl.PurApplyArgumentService; +import com.glxp.api.service.system.SystemPDFTemplateService; +import com.glxp.api.util.EntityToMapConverter; +import com.glxp.api.util.JasperUtils; +import com.glxp.api.vo.dev.DeviceInfoVo; +import lombok.RequiredArgsConstructor; +import net.sf.jasperreports.engine.JRException; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; +import java.io.IOException; +import java.math.RoundingMode; +import java.util.*; + +@Validated +@RequiredArgsConstructor +@RestController +public class PurApplyArgumentController { + + @Resource + PurApplyArgumentService purApplyArgumentService; + @Resource + private SystemPDFTemplateService systemPDFTemplateService; + @Value("${file_path}") + private String filePath; + + /** + * 查询询价业务列表 + */ + @GetMapping("/purchase/purApplyArgument/list") + public BaseResponse list(PurApplyArgumentRequest purApplyArgumentRequest) { + + List list = purApplyArgumentService.queryPageList(purApplyArgumentRequest); + PageInfo pageInfo; + pageInfo = new PageInfo<>(list); + PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); + pageSimpleResponse.setTotal(pageInfo.getTotal()); + pageSimpleResponse.setList(list); + return ResultVOUtils.success(pageSimpleResponse); + } + + + /** + * 修改 + */ + @PostMapping("/purchase/purApplyArgument/updateArg") + public BaseResponse updateArg(@RequestBody PurApplyArgument purApplyArgument) { + purApplyArgumentService.updateById(purApplyArgument); + return ResultVOUtils.success("修改成功"); + } + + + /** + * 论证单明细打印 + * + * @param purApplyArgumentRequest + * @return + */ + @PostMapping("/purchase/purApplyArgument/printArg") + public BaseResponse printArg(@RequestBody PurApplyArgumentRequest purApplyArgumentRequest, HttpServletRequest request, HttpServletResponse response) throws JRException, IOException { + List resList = new ArrayList<>(); + SystemPDFTemplateEntity systemPDFTemplateEntity = systemPDFTemplateService.selectById(purApplyArgumentRequest.getTemplateId()); + //打印单号标签 + Map data = new HashMap<>(1); + List list = new ArrayList<>(); + + //按选入打印 + if (purApplyArgumentRequest.getList() != null && purApplyArgumentRequest.getList().size() > 0) { + resList = purApplyArgumentRequest.getList(); + } else { + resList = purApplyArgumentService.queryPageList(purApplyArgumentRequest); + } + int i = 1; + for (PurApplyArgument item : resList) { + //组装数据 + Map purApplyArgumentData = EntityToMapConverter.convertEntityToMap(item); + purApplyArgumentData.put("index", String.valueOf(i)); + list.add(purApplyArgumentData); + i++; + } + data.put("data", list); + String param = JSON.toJSONString(data); + JasperUtils.jasperReport(request, response, param, filePath + "pdf/template/" + systemPDFTemplateEntity.getPath(), "pdf"); + return ResultVOUtils.success(); + } + + + /** + * 查看是否全部通过 + * + * @param id 主键串 + */ + @GetMapping("/purchase/purApplyArgument/argAllPass/{id}") + public BaseResponse argAllPass(@NotNull(message = "主键不能为空") + @PathVariable Long id) { + int data = purApplyArgumentService.argAllPass(id); + return ResultVOUtils.success(data); + } +} diff --git a/src/main/java/com/glxp/api/entity/purchase/PurApplyArgument.java b/src/main/java/com/glxp/api/entity/purchase/PurApplyArgument.java index 403e8a917..5f2a036b2 100644 --- a/src/main/java/com/glxp/api/entity/purchase/PurApplyArgument.java +++ b/src/main/java/com/glxp/api/entity/purchase/PurApplyArgument.java @@ -158,6 +158,27 @@ public class PurApplyArgument implements Serializable { @ApiModelProperty(value="使用科室人员配备情况") private String supportPerson; + /** + * 维修技术力量的保证或维修途径 + */ + @TableField(value = "maintenanceForce") + @ApiModelProperty(value="维修技术力量的保证或维修途径") + private String maintenanceForce; + + /** + * 资金来源 + */ + @TableField(value = "fundSource") + @ApiModelProperty(value="资金来源") + private String fundSource; + + /** + * 可行性论证 + */ + @TableField(value = "feasibility") + @ApiModelProperty(value="可行性论证") + private String feasibility; + /** * 论证状态 */ diff --git a/src/main/java/com/glxp/api/req/purchase/PurApplyArgumentRequest.java b/src/main/java/com/glxp/api/req/purchase/PurApplyArgumentRequest.java new file mode 100644 index 000000000..f86728562 --- /dev/null +++ b/src/main/java/com/glxp/api/req/purchase/PurApplyArgumentRequest.java @@ -0,0 +1,42 @@ +package com.glxp.api.req.purchase; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.glxp.api.entity.purchase.PurApplyArgument; +import com.glxp.api.util.page.ListPageRequest; +import lombok.Data; + +import java.util.List; + +@Data +public class PurApplyArgumentRequest extends ListPageRequest { + + + /** + * 询价单据号 + */ + private String applyBillNo; + + /** + * 论证状态 + */ + private Integer argStatus; + + /** + * 申购负责人 + */ + private String createName; + + /** + * 产品名字 + */ + private String productName; + + private Long deptCode; + + @TableField(value = "pageType") + private Integer pageType; + + private String templateId; + + private List list; +} diff --git a/src/main/java/com/glxp/api/service/purchase/impl/PurApplyArgumentService.java b/src/main/java/com/glxp/api/service/purchase/impl/PurApplyArgumentService.java index 96943ee2f..c67a1449d 100644 --- a/src/main/java/com/glxp/api/service/purchase/impl/PurApplyArgumentService.java +++ b/src/main/java/com/glxp/api/service/purchase/impl/PurApplyArgumentService.java @@ -1,11 +1,15 @@ package com.glxp.api.service.purchase.impl; import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.glxp.api.entity.auth.AuthAdmin; import com.glxp.api.entity.auth.DeptEntity; import com.glxp.api.entity.purchase.PurApplyDetailEntity; import com.glxp.api.entity.purchase.PurApplyEntity; +import com.glxp.api.req.purchase.PurApplyArgumentRequest; import com.glxp.api.service.auth.CustomerService; import com.glxp.api.service.auth.DeptService; import org.springframework.beans.BeanUtils; @@ -69,4 +73,31 @@ public class PurApplyArgumentService extends ServiceImpl queryPageList(PurApplyArgumentRequest purApplyArgumentRequest) { + LambdaQueryWrapper qw = new LambdaQueryWrapper<>(); + qw.like(StrUtil.isNotEmpty(purApplyArgumentRequest.getApplyBillNo()),PurApplyArgument::getApplyBillNo,purApplyArgumentRequest.getApplyBillNo()); + qw.like(StrUtil.isNotEmpty(purApplyArgumentRequest.getCreateName()),PurApplyArgument::getCreateName,purApplyArgumentRequest.getCreateName()); + qw.like(StrUtil.isNotEmpty(purApplyArgumentRequest.getProductName()),PurApplyArgument::getProductName,purApplyArgumentRequest.getProductName()); + qw.eq(ObjectUtil.isNotNull(purApplyArgumentRequest.getArgStatus()),PurApplyArgument::getArgStatus,purApplyArgumentRequest.getArgStatus()); + qw.eq(ObjectUtil.isNotNull(purApplyArgumentRequest.getDeptCode()),PurApplyArgument::getDeptCode,purApplyArgumentRequest.getDeptCode()); + return list(qw); + } + + public int argAllPass(Long id) { + QueryWrapper qw = new QueryWrapper<>(); + qw.eq("orderIdFk",id); + qw.eq("argStatus",2); + List list = list(qw); + if (CollectionUtil.isNotEmpty(list)){ + return 2;//有拒绝的 + } + qw.eq("argStatus",0); + list = list(qw); + if (CollectionUtil.isNotEmpty(list)){ + return 0;//有未论证的 + } + return 1;//全部通过 + } + } diff --git a/src/main/java/com/glxp/api/util/EntityToMapConverter.java b/src/main/java/com/glxp/api/util/EntityToMapConverter.java new file mode 100644 index 000000000..fdb34b4ef --- /dev/null +++ b/src/main/java/com/glxp/api/util/EntityToMapConverter.java @@ -0,0 +1,35 @@ +package com.glxp.api.util; + +import java.lang.reflect.Field; +import java.util.HashMap; +import java.util.Map; + +public class EntityToMapConverter { + + public static Map convertEntityToMap(T entity) { + if (entity == null) { + return null; + } + + Map result = new HashMap<>(); + Class clazz = entity.getClass(); + + // 获取所有字段(包括私有字段,但需要设置setAccessible(true)) + Field[] fields = clazz.getDeclaredFields(); + + for (Field field : fields) { + field.setAccessible(true); // 设置为可访问,以便访问私有字段 + + try { + // 获取字段的值 + Object value = field.get(entity); + result.put(field.getName(), value); + } catch (IllegalAccessException e) { + // 这通常不会发生,因为我们已经调用了setAccessible(true) + e.printStackTrace(); + } + } + + return result; + } +} diff --git a/src/main/resources/mybatis/mapper/purchase/PurApplyDetailDao.xml b/src/main/resources/mybatis/mapper/purchase/PurApplyDetailDao.xml index f00ca65e1..2eb8e3053 100644 --- a/src/main/resources/mybatis/mapper/purchase/PurApplyDetailDao.xml +++ b/src/main/resources/mybatis/mapper/purchase/PurApplyDetailDao.xml @@ -21,10 +21,10 @@