From 2680cdc7894ec2cbb99c237ba344aa956b497237 Mon Sep 17 00:00:00 2001
From: yangjun <1173114630@qq.com>
Date: Mon, 13 Oct 2025 09:20:37 +0800
Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E9=87=87=E8=B4=AD=E5=8D=95?=
=?UTF-8?q?=E5=AE=A1=E6=A0=B8=E5=8A=9F=E8=83=BD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
nursing-unit-api/pom.xml | 6 +
.../pad/invoicing/api/InvoicingApi.java | 83 ++++++
.../org/jeecg/config/shiro/ShiroConfig.java | 1 +
.../java/com/nu/entity/CgdInfoEntity.java | 79 +++++
.../java/com/nu/entity/CgdMainEntity.java | 77 +++++
.../com/nu/entity/MaterialCategoryEntity.java | 63 ++++
.../com/nu/entity/MaterialInfoEntity.java | 106 +++++++
.../nu/entity/MaterialMedicationEntity.java | 64 +++++
.../com/nu/entity/MaterialTypeEntity.java | 57 ++++
.../java/com/nu/entity/QgdInfoEntity.java | 78 +++++
.../java/com/nu/entity/QgdMainEntity.java | 47 +++
.../nu-invoicing-local-api/pom.xml | 6 +
.../modules/invoicing/api/IInvoicingApi.java | 25 ++
.../NuInvoicingCgdMainController.java | 2 +-
.../service/INuInvoicingCgdMainService.java | 2 +
.../impl/NuInvoicingCgdMainServiceImpl.java | 269 +++++++++++++++++-
.../qgd/controller/QgdInfoController.java | 5 +-
.../qgd/service/impl/QgdInfoServiceImpl.java | 8 +-
.../qgd/service/impl/QgdMainServiceImpl.java | 2 +-
.../mapper/BlWarehouseMaterialInfoMapper.java | 3 +
20 files changed, 970 insertions(+), 13 deletions(-)
create mode 100644 nursing-unit-api/src/main/java/com/nu/modules/pad/invoicing/api/InvoicingApi.java
create mode 100644 nursing-unit-common/src/main/java/com/nu/entity/CgdInfoEntity.java
create mode 100644 nursing-unit-common/src/main/java/com/nu/entity/CgdMainEntity.java
create mode 100644 nursing-unit-common/src/main/java/com/nu/entity/MaterialCategoryEntity.java
create mode 100644 nursing-unit-common/src/main/java/com/nu/entity/MaterialInfoEntity.java
create mode 100644 nursing-unit-common/src/main/java/com/nu/entity/MaterialMedicationEntity.java
create mode 100644 nursing-unit-common/src/main/java/com/nu/entity/MaterialTypeEntity.java
create mode 100644 nursing-unit-common/src/main/java/com/nu/entity/QgdInfoEntity.java
create mode 100644 nursing-unit-common/src/main/java/com/nu/entity/QgdMainEntity.java
create mode 100644 nursing-unit-invoicing/nu-invoicing-api/nu-invoicing-local-api/src/main/java/com/nu/modules/invoicing/api/IInvoicingApi.java
diff --git a/nursing-unit-api/pom.xml b/nursing-unit-api/pom.xml
index d473cb0..b794417 100644
--- a/nursing-unit-api/pom.xml
+++ b/nursing-unit-api/pom.xml
@@ -57,5 +57,11 @@
2.0.0
compile
+
+ com.nursingunit.boot
+ nu-invoicing-local-api
+ 2.0.0
+ compile
+
diff --git a/nursing-unit-api/src/main/java/com/nu/modules/pad/invoicing/api/InvoicingApi.java b/nursing-unit-api/src/main/java/com/nu/modules/pad/invoicing/api/InvoicingApi.java
new file mode 100644
index 0000000..59a8f28
--- /dev/null
+++ b/nursing-unit-api/src/main/java/com/nu/modules/pad/invoicing/api/InvoicingApi.java
@@ -0,0 +1,83 @@
+package com.nu.modules.pad.invoicing.api;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.nu.entity.*;
+import com.nu.modules.invoicing.api.IInvoicingApi;
+import io.swagger.annotations.ApiOperation;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.aspect.annotation.AutoLog;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.List;
+
+@RestController
+@RequestMapping("/api/pad/invoicing")
+public class InvoicingApi {
+
+
+ @Autowired
+ private IInvoicingApi invoicingApi;
+
+ @ApiOperation(value = "查询物料信息-分页列表查询", notes = "查询物料信息-分页列表查询")
+ @AutoLog(value = "查询物料信息-分页列表查询")
+ @GetMapping(value = "/queryInvoicingList")
+ public Result> queryInvoicingList(MaterialInfoEntity materialInfoEntityDto,
+ @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
+ @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
+ HttpServletRequest req) {
+ IPage pageList = invoicingApi.queryInvoicingList(pageNo, pageSize, materialInfoEntityDto,req);
+ return Result.OK(pageList);
+ }
+
+
+ @ApiOperation(value = "查询购物车信息-分页列表查询", notes = "查询购物车信息-分页列表查询")
+ @AutoLog(value = "查询购物车信息-分页列表查询")
+ @GetMapping(value = "/queryShoppingCartList")
+ public Result> queryShoppingCartList(QgdInfoEntity qgdInfoEntityDto,
+ @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
+ @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
+ HttpServletRequest req) {
+ IPage pageList = invoicingApi.queryShoppingCartList(pageNo, pageSize, qgdInfoEntityDto,req);
+ return Result.OK(pageList);
+ }
+
+
+ @ApiOperation(value="请购单-请购信息-添加", notes="请购单-请购信息-添加")
+ @AutoLog(value = "请购单-请购信息-添加")
+ @PostMapping(value = "/addShoppingCartList")
+ public Result addShoppingCartList(@RequestBody List infoList) {
+ invoicingApi.addShoppingCartList(infoList);
+ return Result.OK("添加成功!");
+ }
+
+ @ApiOperation(value="生成采购单信息", notes="生成采购单信息")
+ @AutoLog(value = "生成采购单信息")
+ @PostMapping(value = "/generatedPurchaseOrder")
+ public Result generatedPurchaseOrder(QgdInfoEntity qgdInfoEntity, HttpServletRequest req) {
+ invoicingApi.generatedPurchaseOrder(qgdInfoEntity);
+ return Result.OK("已提交采购信息");
+ }
+
+ @ApiOperation(value = "查询采购单详细信息", notes = "查询采购单详细信息")
+ @AutoLog(value = "查询采购单详细信息")
+ @GetMapping(value = "/queryCgdInfoList")
+ public Result> queryCgdInfoList(CgdInfoEntity cgdInfoEntityDto,
+ @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
+ @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
+ HttpServletRequest req) {
+ IPage pageList = invoicingApi.queryCgdInfoList(pageNo, pageSize, cgdInfoEntityDto,req);
+ return Result.OK(pageList);
+ }
+
+
+ @ApiOperation(value="审核采购单信息", notes="审核采购单信息")
+ @AutoLog(value = "审核采购单信息")
+ @PostMapping(value = "/reviewPurchaseOrder")
+ public Result reviewPurchaseOrder(CgdMainEntity cgdMainEntity, HttpServletRequest req) {
+ invoicingApi.reviewPurchaseOrder(cgdMainEntity);
+ return Result.OK("操作成功");
+ }
+
+}
diff --git a/nursing-unit-base-core/src/main/java/org/jeecg/config/shiro/ShiroConfig.java b/nursing-unit-base-core/src/main/java/org/jeecg/config/shiro/ShiroConfig.java
index b8c9e84..b03422b 100644
--- a/nursing-unit-base-core/src/main/java/org/jeecg/config/shiro/ShiroConfig.java
+++ b/nursing-unit-base-core/src/main/java/org/jeecg/config/shiro/ShiroConfig.java
@@ -90,6 +90,7 @@ public class ShiroConfig {
}
filterChainDefinitionMap.put("/api/tplink/videoStorage/**", "anon"); //视频缓存存储接口
+ filterChainDefinitionMap.put("/api/pad/invoicing/**", "anon"); //测试进销存对应的接口
filterChainDefinitionMap.put("/iot/tq/api/electricityMeter/**", "anon"); //电表回调
filterChainDefinitionMap.put("/api/pad/baseInfo/**", "anon"); //电表回调
filterChainDefinitionMap.put("/iot/tq/api/waterMeter/**", "anon"); //水表回调
diff --git a/nursing-unit-common/src/main/java/com/nu/entity/CgdInfoEntity.java b/nursing-unit-common/src/main/java/com/nu/entity/CgdInfoEntity.java
new file mode 100644
index 0000000..88d773f
--- /dev/null
+++ b/nursing-unit-common/src/main/java/com/nu/entity/CgdInfoEntity.java
@@ -0,0 +1,79 @@
+package com.nu.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.jeecgframework.poi.excel.annotation.Excel;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @Description: nu_invoicing_cgd_info
+ * @Author: jeecg-boot
+ * @Date: 2025-09-26
+ * @Version: V1.0
+ */
+@Data
+public class CgdInfoEntity implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ /**id*/
+ private String id;
+ /**createBy*/
+ /**createTime*/
+ @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+ @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+ private Date createTime;
+ /**updateBy*/
+ private String updateBy;
+ /**updateTime*/
+ @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+ @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+ private Date updateTime;
+ /**sysOrgCode*/
+ private String sysOrgCode;
+ /**请购单id*/
+ private String mainId;
+ /**采购单id*/
+ private String cgdId;
+ /**物料id*/
+ private String wlId;
+ /**物料编码*/
+ private String wlMaterialNo;
+ /**物料名称*/
+ private String wlName;
+ /**采购单位*/
+ private String wlUnits;
+ /**规格型号*/
+ private String wlSpecificationModel;
+ /**上限*/
+ private String wlUpperLimit;
+ /**下限*/
+ private String wlLowerLimit;
+ /**供应商id*/
+ private String suppliersId;
+ /**供应商名称*/
+ private String suppliersName;
+ /**请购数量*/
+ private Integer purchaseQuantity;
+ /**银行*/
+ private String brand;
+ /**库房*/
+ private String nuId;
+ /**入库数量*/
+ private String rksl;
+ /**未入库数量*/
+ private String wrksl;
+ /**采购单价*/
+ private String procurementPrice;
+ /**到货单间*/
+ private String arrivalPrice;
+}
diff --git a/nursing-unit-common/src/main/java/com/nu/entity/CgdMainEntity.java b/nursing-unit-common/src/main/java/com/nu/entity/CgdMainEntity.java
new file mode 100644
index 0000000..f374701
--- /dev/null
+++ b/nursing-unit-common/src/main/java/com/nu/entity/CgdMainEntity.java
@@ -0,0 +1,77 @@
+package com.nu.entity;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import org.jeecg.common.aspect.annotation.Dict;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @Description: nu_invoicing_cgd_main
+ * @Author: jeecg-boot
+ * @Date: 2025-09-26
+ * @Version: V1.0
+ */
+@Data
+public class CgdMainEntity implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ /**id*/
+ private String id;
+ /**createBy*/
+ private String createBy;
+ /**createTime*/
+ @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+ @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+ private Date createTime;
+ /**updateBy*/
+ private String updateBy;
+ /**updateTime*/
+ @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+ @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+ private Date updateTime;
+ /**请购单id*/
+ private String qgdId;
+ /**采购单单号*/
+ private String cgdNo;
+ /**供应商id*/
+ private String gysId;
+ /**请购时间*/
+ @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
+ @DateTimeFormat(pattern="yyyy-MM-dd")
+ private Date qgDate;
+ /**请购人*/
+ private String qgBy;
+ /**供应商联系人*/
+ private String gysLxr;
+ /**供应商联系电话*/
+ private String gysLxrdh;
+ /**供应商openId*/
+ private String gysOpenId;
+ /**付款方式*/
+ private String gysFkfs;
+ /**状态 0:待采购 1:采购中 2采购完成 3作废*/
+ private String status;
+ /**采购单类型 0采购单 1挂帐单 2结账单 9作废*/
+ @Dict(dicCode = "cgd_type")
+ private String cgdType;
+ /**随行单*/
+ private String sxdPath;
+ /**销账单*/
+ private String xzdPath;
+ /**结账单*/
+ private String jzdPath;
+ /**审核人*/
+ private String reviewedBy;
+ /**审核时间*/
+ @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+ @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+ private Date reviewedTime;
+ /**审核备注*/
+ private String content;
+
+ private List cgdInfoList;
+}
diff --git a/nursing-unit-common/src/main/java/com/nu/entity/MaterialCategoryEntity.java b/nursing-unit-common/src/main/java/com/nu/entity/MaterialCategoryEntity.java
new file mode 100644
index 0000000..95dab29
--- /dev/null
+++ b/nursing-unit-common/src/main/java/com/nu/entity/MaterialCategoryEntity.java
@@ -0,0 +1,63 @@
+package com.nu.entity;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.jeecg.common.aspect.annotation.Dict;
+import org.jeecgframework.poi.excel.annotation.Excel;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @Description: 物料类别
+ * @Author: jeecg-boot
+ * @Date: 2025-03-17
+ * @Version: V1.0
+ */
+@Data
+public class MaterialCategoryEntity implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ /**id*/
+ private String id;
+ /**物料类别名称*/
+ private String categoryName;
+ /**是否启用 0启用 1未启用*/
+ @Dict(dicCode = "iz_enabled")
+ private String izEnabled;
+ /**是否删除 0未删除 1删除*/
+ private String delFlag;
+ /**创建人*/
+ private String createBy;
+ /**创建日期*/
+ @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+ @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+ private Date createTime;
+ /**更新人*/
+ private String updateBy;
+ /**更新日期*/
+ @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+ @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+ private Date updateTime;
+ /**所属部门*/
+ private String sysOrgCode;
+ private String icon;
+ private Integer sort;
+
+ private String typeName;
+ private String medicationName;
+ private String categoryId;
+ private String typeId;
+ private String medicationId;
+
+ private Integer categoryRowSpan;
+ private Integer typeRowSpan;
+
+ private Integer num;
+}
diff --git a/nursing-unit-common/src/main/java/com/nu/entity/MaterialInfoEntity.java b/nursing-unit-common/src/main/java/com/nu/entity/MaterialInfoEntity.java
new file mode 100644
index 0000000..93da59f
--- /dev/null
+++ b/nursing-unit-common/src/main/java/com/nu/entity/MaterialInfoEntity.java
@@ -0,0 +1,106 @@
+package com.nu.entity;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.jeecg.common.aspect.annotation.Dict;
+import org.jeecgframework.poi.excel.annotation.Excel;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * @Description: 物料信息
+ * @Author: jeecg-boot
+ * @Date: 2025-03-13
+ * @Version: V1.0
+ */
+@Data
+public class MaterialInfoEntity implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ /**id*/
+ private String id;
+ /**物料类别*/
+ @Dict(dictTable = "nu_config_material_category", dicText = "category_name", dicCode = "id")
+ private String categoryId;
+ /**物料类型*/
+ @Dict(dictTable = "nu_config_material_type", dicText = "type_name", dicCode = "id")
+ private String typeId;
+ /**用药类型*/
+ @Dict(dictTable = "nu_config_material_medication", dicText = "medication_name", dicCode = "id")
+ private String medicationId;
+ /**货品名称*/
+ private String materialName;
+ /**货品编码*/
+ private String materialNo;
+ /**规格型号*/
+ private String specificationModel;
+ /**销售单价*/
+ private BigDecimal salesUnitPrice;
+ /**参考单价*/
+ private BigDecimal referenceUnitPrice;
+ /**货品单位*/
+ private String materialUnits;
+ /**多单位开关 0关 1开*/
+ private String multiUnitSwitch;
+ /**父级单位*/
+ private String oneUnit;
+ /**父级单位兑换比例*/
+ private Integer oneUnitProportion;
+ /**父级单位价格*/
+ private BigDecimal oneUnitPrice;
+ /**爷级单位*/
+ private String twoUnit;
+ /**爷级单位兑换比例*/
+ private Integer twoUnitProportion;
+ /**爷级单位价格*/
+ private BigDecimal twoUnitPrice;
+ /**多单位采购默认使用 0子集 1父级 2爷级*/
+ private String multiUnitType;
+ /**供应商*/
+ @Dict(dictTable = "nu_config_suppliers_info" , dicCode = "id" , dicText = "suppliers_name")
+ private String suppliers;
+ /**物料图片*/
+ private String materialImg;
+ /**物料标识*/
+ private String materialIdent;
+ /**是否启用 0启用 1未启用*/
+ @Dict(dicCode = "iz_enabled")
+ private String izEnabled;
+ /**是否删除 0未删除 1删除*/
+ private String delFlag;
+ /**创建人*/
+ private String createBy;
+ /**创建日期*/
+ @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+ @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+ private Date createTime;
+ /**更新人*/
+ private String updateBy;
+ /**更新日期*/
+ @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+ @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+ private Date updateTime;
+ /**所属部门*/
+ private String sysOrgCode;
+ /**拼音*/
+ private String pinyin;
+ /**物料上限*/
+ private String upperLimit;
+ /**物料下县*/
+ private String lowerLimit;
+
+ private String treeId;//树id,用于查询
+
+ private String kcsl;//库存数量
+ @Dict(dictTable = "nu_base_info", dicText = "nu_name", dicCode = "nu_id")
+ private String nuId;//库房id
+
+}
diff --git a/nursing-unit-common/src/main/java/com/nu/entity/MaterialMedicationEntity.java b/nursing-unit-common/src/main/java/com/nu/entity/MaterialMedicationEntity.java
new file mode 100644
index 0000000..a84cab3
--- /dev/null
+++ b/nursing-unit-common/src/main/java/com/nu/entity/MaterialMedicationEntity.java
@@ -0,0 +1,64 @@
+package com.nu.entity;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.jeecg.common.aspect.annotation.Dict;
+import org.jeecgframework.poi.excel.annotation.Excel;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @Description: 物料用药类型
+ * @Author: jeecg-boot
+ * @Date: 2025-03-17
+ * @Version: V1.0
+ */
+@Data
+public class MaterialMedicationEntity implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ /**id*/
+ private String id;
+ /**物料类别*/
+ @Dict(dictTable = "nu_config_material_category", dicText = "category_name", dicCode = "id")
+ private String categoryId;
+ /**物料类型*/
+ @Dict(dictTable = "nu_config_material_type", dicText = "type_name", dicCode = "id")
+ private String typeId;
+ /**名称*/
+ private String medicationName;
+ /**是否启用 0启用 1未启用*/
+ @Dict(dicCode = "iz_enabled")
+ private String izEnabled;
+ /**是否删除 0未删除 1删除*/
+ @TableLogic
+ private String delFlag;
+ /**创建人*/
+ private String createBy;
+ /**创建日期*/
+ @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+ @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+ private Date createTime;
+ /**更新人*/
+ private String updateBy;
+ /**更新日期*/
+ @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+ @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+ private Date updateTime;
+ /**所属部门*/
+ private String sysOrgCode;
+ private String icon;
+
+ private String levle;//当前所在层级 1一级 2二级 3三级
+
+ private String qycj;//迁移至第几层 0三级 1二级 2一级
+
+
+}
diff --git a/nursing-unit-common/src/main/java/com/nu/entity/MaterialTypeEntity.java b/nursing-unit-common/src/main/java/com/nu/entity/MaterialTypeEntity.java
new file mode 100644
index 0000000..f32f973
--- /dev/null
+++ b/nursing-unit-common/src/main/java/com/nu/entity/MaterialTypeEntity.java
@@ -0,0 +1,57 @@
+package com.nu.entity;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.jeecg.common.aspect.annotation.Dict;
+import org.jeecgframework.poi.excel.annotation.Excel;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @Description: 物料类型
+ * @Author: jeecg-boot
+ * @Date: 2025-03-17
+ * @Version: V1.0
+ */
+@Data
+public class MaterialTypeEntity implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ /**id*/
+ private String id;
+ /**物料类别*/
+ @Dict(dictTable = "nu_config_material_category" , dicText = "category_name" , dicCode = "id")
+ private String categoryId;
+ /**物料类型*/
+ private String typeName;
+ /**是否启用 0启用 1未启用*/
+ @Dict(dicCode = "iz_enabled")
+ private String izEnabled;
+ /**是否删除 0未删除 1删除*/
+ @TableLogic
+ private String delFlag;
+ /**创建人*/
+ private String createBy;
+ /**创建日期*/
+ @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+ @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+ private Date createTime;
+ /**更新人*/
+ private String updateBy;
+ /**更新日期*/
+ @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+ @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+ private Date updateTime;
+ /**所属部门*/
+ private String sysOrgCode;
+ private String icon;
+
+ private Integer num;
+}
diff --git a/nursing-unit-common/src/main/java/com/nu/entity/QgdInfoEntity.java b/nursing-unit-common/src/main/java/com/nu/entity/QgdInfoEntity.java
new file mode 100644
index 0000000..3137deb
--- /dev/null
+++ b/nursing-unit-common/src/main/java/com/nu/entity/QgdInfoEntity.java
@@ -0,0 +1,78 @@
+package com.nu.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.jeecg.common.aspect.annotation.Dict;
+import org.jeecgframework.poi.excel.annotation.Excel;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @Description: 请购单-请购信息
+ * @Author: jeecg-boot
+ * @Date: 2025-06-26
+ * @Version: V1.0
+ */
+@Data
+public class QgdInfoEntity implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ /**id*/
+ private String id;
+ /**createBy*/
+ private String createBy;
+ /**createTime*/
+ @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+ @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+ private java.util.Date createTime;
+ /**updateBy*/
+ private String updateBy;
+ /**updateTime*/
+ @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+ @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+ private java.util.Date updateTime;
+ /**sysOrgCode*/
+ private String sysOrgCode;
+ /**请购单id*/
+ private String mainId;
+ /**请购单编号*/
+ private String mainNo;
+ /**物料id*/
+ private String wlId;
+ /**物料编码*/
+ private String wlMaterialNo;
+ /**物料名称*/
+ private String wlName;
+ /**采购单位*/
+ private String wlUnits;
+ /**规格型号*/
+ private String wlSpecificationModel;
+ /**上限*/
+ private String wlUpperLimit;
+ /**下限*/
+ private String wlLowerLimit;
+ /**供应商id*/
+ private String suppliersId;
+ /**供应商名称*/
+ private String suppliersName;
+ /**请购数量*/
+ private Integer purchaseQuantity;
+ /**brand*/
+ private String brand;
+ /**库房*/
+ @Dict(dictTable = "nu_base_info", dicText = "nu_name", dicCode = "nu_id")
+ private String nuId;
+
+ /**参考单价*/
+ private String referenceUnitPrice;
+
+}
diff --git a/nursing-unit-common/src/main/java/com/nu/entity/QgdMainEntity.java b/nursing-unit-common/src/main/java/com/nu/entity/QgdMainEntity.java
new file mode 100644
index 0000000..7f2af98
--- /dev/null
+++ b/nursing-unit-common/src/main/java/com/nu/entity/QgdMainEntity.java
@@ -0,0 +1,47 @@
+package com.nu.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+import org.jeecgframework.poi.excel.annotation.Excel;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+
+/**
+ * @Description: 请购单
+ * @Author: jeecg-boot
+ * @Date: 2025-06-26
+ * @Version: V1.0
+ */
+@Data
+public class QgdMainEntity implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ /**id*/
+ private String id;
+ /**createBy*/
+ private String createBy;
+ /**createTime*/
+ @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+ @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+ private java.util.Date createTime;
+ /**updateBy*/
+ private String updateBy;
+ /**updateTime*/
+ @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
+ @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+ private java.util.Date updateTime;
+ /**sysOrgCode*/
+ private String sysOrgCode;
+ /**请购单号*/
+ private String qgdNo;
+ /**请购状态 0未下单 1已下单*/
+ private Integer status;
+}
diff --git a/nursing-unit-invoicing/nu-invoicing-api/nu-invoicing-local-api/pom.xml b/nursing-unit-invoicing/nu-invoicing-api/nu-invoicing-local-api/pom.xml
index 7c44f9b..fbf93a1 100644
--- a/nursing-unit-invoicing/nu-invoicing-api/nu-invoicing-local-api/pom.xml
+++ b/nursing-unit-invoicing/nu-invoicing-api/nu-invoicing-local-api/pom.xml
@@ -7,6 +7,12 @@
nu-invoicing-api
2.0.0
+
+
+ com.nursingunit.boot
+ nursing-unit-common
+
+
4.0.0
nu-invoicing-local-api
diff --git a/nursing-unit-invoicing/nu-invoicing-api/nu-invoicing-local-api/src/main/java/com/nu/modules/invoicing/api/IInvoicingApi.java b/nursing-unit-invoicing/nu-invoicing-api/nu-invoicing-local-api/src/main/java/com/nu/modules/invoicing/api/IInvoicingApi.java
new file mode 100644
index 0000000..15ade09
--- /dev/null
+++ b/nursing-unit-invoicing/nu-invoicing-api/nu-invoicing-local-api/src/main/java/com/nu/modules/invoicing/api/IInvoicingApi.java
@@ -0,0 +1,25 @@
+package com.nu.modules.invoicing.api;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.nu.entity.CgdInfoEntity;
+import com.nu.entity.CgdMainEntity;
+import com.nu.entity.MaterialInfoEntity;
+import com.nu.entity.QgdInfoEntity;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.List;
+
+public interface IInvoicingApi {
+
+ IPage queryInvoicingList(Integer pageNo, Integer pageSize, MaterialInfoEntity materialInfoEntityDto, HttpServletRequest req);
+
+ IPage queryShoppingCartList(Integer pageNo, Integer pageSize, QgdInfoEntity qgdInfoEntityDto, HttpServletRequest req);
+
+ void addShoppingCartList(List infoList);
+
+ String generatedPurchaseOrder(QgdInfoEntity qgdInfoEntity);
+
+ IPage queryCgdInfoList(Integer pageNo, Integer pageSize, CgdInfoEntity cgdInfoEntityDto, HttpServletRequest req);
+
+ void reviewPurchaseOrder(CgdMainEntity cgdMainEntity);
+}
diff --git a/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/cgd/controller/NuInvoicingCgdMainController.java b/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/cgd/controller/NuInvoicingCgdMainController.java
index e2ea545..be45c65 100644
--- a/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/cgd/controller/NuInvoicingCgdMainController.java
+++ b/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/cgd/controller/NuInvoicingCgdMainController.java
@@ -183,7 +183,7 @@ public class NuInvoicingCgdMainController extends JeecgController auditInfo(@RequestBody NuInvoicingCgdMain nuInvoicingCgdMain) {
- nuInvoicingCgdMainService.updateById(nuInvoicingCgdMain);
+ nuInvoicingCgdMainService.auditInfo(nuInvoicingCgdMain);
return Result.OK("添加成功!");
}
diff --git a/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/cgd/service/INuInvoicingCgdMainService.java b/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/cgd/service/INuInvoicingCgdMainService.java
index 533c59a..9ed128a 100644
--- a/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/cgd/service/INuInvoicingCgdMainService.java
+++ b/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/cgd/service/INuInvoicingCgdMainService.java
@@ -12,4 +12,6 @@ import com.baomidou.mybatisplus.extension.service.IService;
public interface INuInvoicingCgdMainService extends IService {
void rukuInfo(NuInvoicingCgdMain nuInvoicingCgdMain);
+
+ void auditInfo(NuInvoicingCgdMain nuInvoicingCgdMain);
}
diff --git a/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/cgd/service/impl/NuInvoicingCgdMainServiceImpl.java b/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/cgd/service/impl/NuInvoicingCgdMainServiceImpl.java
index 667d6af..744cc1b 100644
--- a/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/cgd/service/impl/NuInvoicingCgdMainServiceImpl.java
+++ b/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/cgd/service/impl/NuInvoicingCgdMainServiceImpl.java
@@ -1,21 +1,42 @@
package com.nu.modules.cgd.service.impl;
+import cn.hutool.core.bean.BeanUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.nu.entity.*;
+import com.nu.modules.ConfigMaterial.entity.ConfigMaterialInfo;
+import com.nu.modules.ConfigMaterial.mapper.ConfigMaterialInfoMapper;
import com.nu.modules.cgd.entity.NuInvoicingCgdInfo;
import com.nu.modules.cgd.entity.NuInvoicingCgdMain;
import com.nu.modules.cgd.mapper.NuInvoicingCgdInfoMapper;
import com.nu.modules.cgd.mapper.NuInvoicingCgdMainMapper;
import com.nu.modules.cgd.service.INuInvoicingCgdMainService;
+import com.nu.modules.configSuppliersInfo.entity.ConfigSuppliersInfo;
+import com.nu.modules.configSuppliersInfo.mapper.ConfigSuppliersInfoMapper;
+import com.nu.modules.invoicing.api.IInvoicingApi;
+import com.nu.modules.qgd.entity.QgdInfo;
+import com.nu.modules.qgd.entity.QgdMain;
+import com.nu.modules.qgd.mapper.QgdInfoMapper;
+import com.nu.modules.qgd.mapper.QgdMainMapper;
+import com.nu.modules.warehouseMaterialInfo.entity.BlWarehouseMaterialInfo;
+import com.nu.modules.warehouseMaterialInfo.mapper.BlWarehouseMaterialInfoMapper;
import org.apache.commons.lang.StringUtils;
+import org.apache.shiro.SecurityUtils;
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.common.system.query.QueryRuleEnum;
+import org.jeecg.common.system.vo.LoginUser;
+import org.jeecg.common.util.DateUtils;
+import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import javax.servlet.http.HttpServletRequest;
import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Random;
+import java.util.*;
/**
* @Description: nu_invoicing_cgd_main
@@ -24,11 +45,29 @@ import java.util.Random;
* @Version: V1.0
*/
@Service
-public class NuInvoicingCgdMainServiceImpl extends ServiceImpl implements INuInvoicingCgdMainService {
+public class NuInvoicingCgdMainServiceImpl extends ServiceImpl implements INuInvoicingCgdMainService, IInvoicingApi {
@Autowired
private NuInvoicingCgdInfoMapper cgdInfoMapper;
+ @Autowired
+ private NuInvoicingCgdMainMapper cgdMainMapper;
+
+ @Autowired
+ private BlWarehouseMaterialInfoMapper warehouseMaterialInfoMapper;
+
+ @Autowired
+ private ConfigMaterialInfoMapper configMaterialInfoMapper;
+
+ @Autowired
+ private QgdMainMapper qgdMainMapper;
+
+ @Autowired
+ private QgdInfoMapper qgdInfoMapper;
+
+ @Autowired
+ private ConfigSuppliersInfoMapper gysMapper;
+
@Override
public void rukuInfo(NuInvoicingCgdMain nuInvoicingCgdMain) {
@@ -67,4 +106,224 @@ public class NuInvoicingCgdMainServiceImpl extends ServiceImpl().eq("cgd_id",nuInvoicingCgdMain.getId()));
+ for(NuInvoicingCgdInfo nuInvoicingCgdInfo : nuInvoicingCgdMain.getCgdInfoList()){
+ cgdInfoMapper.insert(nuInvoicingCgdInfo);
+ }
+ baseMapper.updateById(nuInvoicingCgdMain);
+ }
+
+
+ //--------------------------------------------------pad 接口-------------------------------------------------
+ @Override
+ public IPage queryInvoicingList(Integer pageNo, Integer pageSize, MaterialInfoEntity materialInfoEntityDto, HttpServletRequest req) {
+ BlWarehouseMaterialInfo warehouseMaterialInfo = new BlWarehouseMaterialInfo();
+ BeanUtils.copyProperties(materialInfoEntityDto,warehouseMaterialInfo);
+ Map customeRuleMap = new HashMap<>();
+ QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(warehouseMaterialInfo, req.getParameterMap(), customeRuleMap);
+ Page page = new Page<>(pageNo, pageSize);
+ List list = warehouseMaterialInfoMapper.selectList(page,queryWrapper);
+ IPage entityPage = new Page<>(page.getCurrent(), page.getSize(), page.getTotal());
+ entityPage.setRecords(BeanUtil.copyToList(list, MaterialInfoEntity.class));
+ return entityPage;
+ }
+
+ @Override
+ public IPage queryShoppingCartList(Integer pageNo, Integer pageSize, QgdInfoEntity qgdInfoEntityDto, HttpServletRequest req) {
+// LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+ //查询当前人是否有请购数据
+ QueryWrapper mainQueryWrapper = new QueryWrapper<>();
+// mainQueryWrapper.eq("create_by",sysUser.getUsername());
+ mainQueryWrapper.eq("status",0);
+ QgdMain qgdMain = qgdMainMapper.selectOne(mainQueryWrapper);
+ //如果请购单为空,给一个默认的值,使最后的结果为空
+ if(qgdMain == null){
+ qgdMain = new QgdMain();
+ qgdMain.setId("-1");//默认没有请购单
+ }
+ //查询请购详细信息
+ QgdInfo nuInvoicingQgdInfo = new QgdInfo();
+ BeanUtils.copyProperties(qgdInfoEntityDto,nuInvoicingQgdInfo);
+ QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(nuInvoicingQgdInfo, req.getParameterMap());
+ queryWrapper.eq("main_id",qgdMain.getId());
+ Page page = new Page(pageNo, pageSize);
+ List list = qgdInfoMapper.selectList(page, queryWrapper);
+ //封装返回结果
+ IPage entityPage = new Page<>(page.getCurrent(), page.getSize(), page.getTotal());
+ entityPage.setRecords(BeanUtil.copyToList(list, QgdInfoEntity.class));
+ return entityPage;
+ }
+
+ @Override
+ public void addShoppingCartList(List infoList) {
+ LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+
+ QueryWrapper queryWrapper = new QueryWrapper<>();
+// queryWrapper.eq("create_by",sysUser.getUsername());
+ queryWrapper.eq("status",0);
+ QgdMain qgdMain = qgdMainMapper.selectOne(queryWrapper);
+ if(qgdMain == null){
+ // 生成请购单号
+ Date date = new Date();
+// String nowDate = DateUtils.formatDate(date,"yyyy-MM-dd");
+ QueryWrapper queryWrapper2 = new QueryWrapper<>();
+// queryWrapper2.eq("create_by",sysUser.getUsername());
+// queryWrapper2.like("create_time",nowDate);
+ //查询当天是否有请购单
+ List listSize = qgdMainMapper.selectList(queryWrapper2);
+ int size = listSize.size()+1;
+ String ddwh = String.format("%03d", size);
+ String qgdNo = sysUser.getOrgCode() + DateUtils.formatDate(date,"yyyyMMdd")+ddwh;
+ qgdMain = new QgdMain();
+ qgdMain.setCreateBy(sysUser.getUsername());
+ qgdMain.setCreateTime(new Date());
+ qgdMain.setStatus(0);
+ qgdMain.setQgdNo(qgdNo);
+ qgdMainMapper.insert(qgdMain);
+ }
+ for (QgdInfoEntity info : infoList) {
+ if(info.getPurchaseQuantity()!=null && info.getPurchaseQuantity()>0){
+ //获取物料基础信息
+ ConfigMaterialInfo ConfigMaterialInfo = configMaterialInfoMapper.selectById(info.getWlId());
+ //获取物料上限下限
+ BlWarehouseMaterialInfo warehouseMaterialInfo = warehouseMaterialInfoMapper.selectOne(new QueryWrapper().eq("wl_id",info.getWlId()).eq("nu_id",info.getNuId()));
+ info.setMainId(qgdMain.getId());
+ info.setMainNo(qgdMain.getQgdNo());
+ info.setWlName(ConfigMaterialInfo.getMaterialName());
+ info.setWlMaterialNo(ConfigMaterialInfo.getMaterialNo());
+ info.setWlSpecificationModel(ConfigMaterialInfo.getSpecificationModel());
+ info.setWlUnits(ConfigMaterialInfo.getMaterialUnits());
+ info.setWlUpperLimit(warehouseMaterialInfo.getUpperLimit());
+ info.setWlLowerLimit(warehouseMaterialInfo.getLowerLimit());
+ if(StringUtils.equals("1",ConfigMaterialInfo.getMultiUnitType())){
+ info.setReferenceUnitPrice(ConfigMaterialInfo.getOneUnitPrice()+"");
+ }else if(StringUtils.equals("2",ConfigMaterialInfo.getMultiUnitType())){
+ info.setReferenceUnitPrice(ConfigMaterialInfo.getTwoUnitPrice()+"");
+ } else if(StringUtils.equals("3",ConfigMaterialInfo.getMultiUnitType())){
+ info.setReferenceUnitPrice(ConfigMaterialInfo.getReferenceUnitPrice()+"");
+ }
+ QgdInfo qgdInfo = new QgdInfo();
+ BeanUtils.copyProperties(info,qgdInfo);
+ qgdInfoMapper.insert(qgdInfo);
+ }
+ }
+ }
+
+ @Override
+ public String generatedPurchaseOrder(QgdInfoEntity qgdInfoEntity) {
+
+ LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
+ //查询当前人是否有请购数据
+ QueryWrapper mainQueryWrapper = new QueryWrapper<>();
+// mainQueryWrapper.eq("create_by",sysUser.getUsername());
+ mainQueryWrapper.eq("status",0);
+ QgdMain qgdMain = qgdMainMapper.selectOne(mainQueryWrapper);
+ if(qgdMain == null){
+ qgdMain = new QgdMain();
+ qgdMain.setId("-1");
+ }
+ //查询请购详细信息
+ QueryWrapper queryWrapper = new QueryWrapper<>();
+ queryWrapper.eq("main_id",qgdMain.getId());
+ List qgdInfoList = qgdInfoMapper.selectList(queryWrapper);
+
+ List