From 0bda6ae94d4744eb3a265201280e12539165b5b8 Mon Sep 17 00:00:00 2001 From: liweidong-hj Date: Mon, 12 Jan 2026 11:09:31 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9A=82=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/nov/KgLowDurable/common/Approver.java | 4 +- .../KgLowDurable/config/FileUploadConfig.java | 2 +- .../KgLowDurable/constant/BatchConstant.java | 14 ++ .../constant/OnePutApproverConstant.java | 140 ++++++++++++++++++ .../controller/LdPurchaseEndController.java | 8 +- .../mapper/LdOneOutStorageDetailMapper.java | 2 + .../mapper/LdOnePutStorageDetailMapper.java | 2 + .../KgLowDurable/mapper/RoleUserMapper.java | 18 +++ .../pojo/dto/ApplyRequest/ApplyData.java | 18 +++ .../pojo/dto/ApplyRequest/ApplyRequest.java | 26 ++++ .../pojo/dto/ApplyRequest/Approver.java | 19 +++ .../pojo/dto/ApplyRequest/Content.java | 18 +++ .../pojo/dto/ApplyRequest/DateValue.java | 17 +++ .../pojo/dto/ApplyRequest/TableRow.java | 18 +++ .../pojo/dto/ApplyRequest/TableValue.java | 17 +++ .../pojo/dto/ApplyRequest/Value.java | 40 +++++ .../KgLowDurable/pojo/entity/RoleUser.java | 28 ++++ .../pojo/vo/LdOneOutStorageInfoVO.java | 2 +- .../ILdOneOutStorageDetailService.java | 9 ++ .../ILdOnePutStorageDetailService.java | 7 + .../service/IRoleUserService.java | 20 +++ .../KgLowDurable/service/IUserService.java | 6 + .../Impl/LdConsumerFormServiceImpl.java | 50 ++++++- .../service/Impl/LdOneFormServiceImpl.java | 19 ++- .../LdOneOutStorageDetailServiceImpl.java | 7 + .../Impl/LdOneOutStorageServiceImpl.java | 27 ++-- .../LdOnePutStorageDetailServiceImpl.java | 5 + .../Impl/LdOnePutStorageServiceImpl.java | 82 +++++++++- .../Impl/LdPurchaseEndServiceImpl.java | 3 + .../LdTwoOutStorageDetailServiceImpl.java | 6 +- .../Impl/LdTwoOutStorageServiceImpl.java | 10 +- .../service/Impl/RoleUserServiceImpl.java | 27 ++++ .../service/Impl/UserServiceImpl.java | 27 ++++ .../KgLowDurable/util/SerialNumberUtil.java | 3 +- .../mapper/LdOneOutStorageDetailMapper.xml | 6 + .../mapper/LdOnePutStorageDetailMapper.xml | 5 + src/main/resources/mapper/RoleUserMapper.xml | 15 ++ 37 files changed, 691 insertions(+), 36 deletions(-) create mode 100644 src/main/java/com/nov/KgLowDurable/constant/OnePutApproverConstant.java create mode 100644 src/main/java/com/nov/KgLowDurable/mapper/RoleUserMapper.java create mode 100644 src/main/java/com/nov/KgLowDurable/pojo/dto/ApplyRequest/ApplyData.java create mode 100644 src/main/java/com/nov/KgLowDurable/pojo/dto/ApplyRequest/ApplyRequest.java create mode 100644 src/main/java/com/nov/KgLowDurable/pojo/dto/ApplyRequest/Approver.java create mode 100644 src/main/java/com/nov/KgLowDurable/pojo/dto/ApplyRequest/Content.java create mode 100644 src/main/java/com/nov/KgLowDurable/pojo/dto/ApplyRequest/DateValue.java create mode 100644 src/main/java/com/nov/KgLowDurable/pojo/dto/ApplyRequest/TableRow.java create mode 100644 src/main/java/com/nov/KgLowDurable/pojo/dto/ApplyRequest/TableValue.java create mode 100644 src/main/java/com/nov/KgLowDurable/pojo/dto/ApplyRequest/Value.java create mode 100644 src/main/java/com/nov/KgLowDurable/pojo/entity/RoleUser.java create mode 100644 src/main/java/com/nov/KgLowDurable/service/IRoleUserService.java create mode 100644 src/main/java/com/nov/KgLowDurable/service/Impl/RoleUserServiceImpl.java create mode 100644 src/main/resources/mapper/RoleUserMapper.xml diff --git a/src/main/java/com/nov/KgLowDurable/common/Approver.java b/src/main/java/com/nov/KgLowDurable/common/Approver.java index 68b090e..8bbc9ba 100644 --- a/src/main/java/com/nov/KgLowDurable/common/Approver.java +++ b/src/main/java/com/nov/KgLowDurable/common/Approver.java @@ -10,6 +10,8 @@ public class Approver { private int attr = 1; // 节点审批方式:1-或签;2-会签,仅在节点为多人审批时有效 private List userid; // 审批人id列表 - + + public Approver(int i, List anXingHe) { + } } diff --git a/src/main/java/com/nov/KgLowDurable/config/FileUploadConfig.java b/src/main/java/com/nov/KgLowDurable/config/FileUploadConfig.java index 3a6eaa3..1f92885 100644 --- a/src/main/java/com/nov/KgLowDurable/config/FileUploadConfig.java +++ b/src/main/java/com/nov/KgLowDurable/config/FileUploadConfig.java @@ -9,7 +9,7 @@ import org.springframework.stereotype.Component; public class FileUploadConfig { // 本地服务器地址 - @Value("${file.upload.server:http://192.168.0.107:8083}") + @Value("${file.upload.server:http://localhost:8083}") private String serverUrl; // 基础存储路径 diff --git a/src/main/java/com/nov/KgLowDurable/constant/BatchConstant.java b/src/main/java/com/nov/KgLowDurable/constant/BatchConstant.java index b76f138..3090160 100644 --- a/src/main/java/com/nov/KgLowDurable/constant/BatchConstant.java +++ b/src/main/java/com/nov/KgLowDurable/constant/BatchConstant.java @@ -98,6 +98,20 @@ public interface BatchConstant { */ String SCRAP = "2"; + /** web角色信息*/ + /** + * 部门库存管理员 + */ + String DEPT_STOCK_ADMIN = "deptStockAdmin"; + + /** + * 站库存管理员 + */ + String STATION_STOCK_ADMIN = "stationStockAdmin"; + + + + diff --git a/src/main/java/com/nov/KgLowDurable/constant/OnePutApproverConstant.java b/src/main/java/com/nov/KgLowDurable/constant/OnePutApproverConstant.java new file mode 100644 index 0000000..c384c23 --- /dev/null +++ b/src/main/java/com/nov/KgLowDurable/constant/OnePutApproverConstant.java @@ -0,0 +1,140 @@ +package com.nov.KgLowDurable.constant; + +/** + * @author: liweidong + * @create: 2026-01-09 + */ +public class OnePutApproverConstant { + + // ==================== 基本信息字段 ==================== + + /** + * 入库人 - 文本控件 + * 对应表单中的"入库人"字段 + */ + public static final String TEXT_INBOUND_PERSON = "Text-1753842895562"; + + /** + * 采购单名称 - 文本控件 + * 对应表单中的"采购单名称"字段 + */ + public static final String TEXT_PURCHASE_ORDER_NAME = "Text-1764895727005"; + + /** + * 入库单号 - 文本控件 + * 对应表单中的"入库单号"字段 + */ + public static final String TEXT_INBOUND_ORDER_NO = "Text-1765952634498"; + + /** + * 入库日期 - 日期控件 + * 对应表单中的"入库日期"字段 + */ + public static final String DATE_INBOUND_DATE = "Date-1765952657849"; + + /** + * 入库人部门 - 文本控件 + * 对应表单中的"入库人部门"字段 + */ + public static final String TEXT_DEPARTMENT = "Text-1767928426958"; + + /** + * 物资类型 - 文本控件 + * 对应表单中的"物资类型"字段 + */ + public static final String TEXT_MATERIAL_TYPE = "Text-1767928458421"; + + /** + * 事由 - 文本域控件 + * 对应表单中的"事由"字段 + */ + public static final String TEXTAREA_REASON = "Textarea-1765952756865"; + + /** + * 物资列表 - 表格控件 + * 对应表单中的物资明细表格 + */ + public static final String TABLE_MATERIAL_LIST = "Table-1752131467618"; + + + + + + // ==================== 表格列字段 ==================== + + /** + * 物资名称 - 表格列(文本控件) + * 对应表格中的"物资名称"列 + */ + public static final String TABLE_COL_MATERIAL_NAME = "Text-1764896053375"; + + /** + * 物资编号 - 表格列(文本控件) + * 对应表格中的"物资编号"列 + */ + public static final String TABLE_COL_MATERIAL_CODE = "Text-1764896063342"; + + /** + * 规格型号 - 表格列(文本控件) + * 对应表格中的"规格型号"列 + */ + public static final String TABLE_COL_SPECIFICATION = "Text-1753775946265"; + + /** + * 单位 - 表格列(文本控件) + * 对应表格中的"单位"列 + */ + public static final String TABLE_COL_UNIT = "Text-1753775948881"; + + /** + * 类别 - 表格列(文本控件) + * 对应表格中的"类别"列 + */ + public static final String TABLE_COL_CATEGORY = "Text-1767928477965"; + + /** + * 计划数量 - 表格列(文本控件) + * 对应表格中的"计划数量"列 + */ + public static final String TABLE_COL_PLAN_QUANTITY = "Text-1765952944297"; + + /** + * 已入库数量 - 表格列(文本控件) + * 对应表格中的"已入库数量"列 + */ + public static final String TABLE_COL_INBOUND_QUANTITY = "Text-1765952953209"; + + /** + * 单价 - 表格列(文本控件) + * 对应表格中的"单价"列 + */ + public static final String TABLE_COL_UNIT_PRICE = "Text-1765952961761"; + + /** + * 本次入库数量 - 表格列(文本控件) + * 对应表格中的"本次入库数量"列 + */ + public static final String TABLE_COL_CURRENT_INBOUND_QUANTITY = "Text-1765952974081"; + + + + // ==================== 字段类型 ==================== + + public static final String TEXT = "Text"; + + public static final String DATE = "Date"; + + public static final String TEXTAREA = "Textarea"; + + public static final String TABLE = "Table"; + + public static final Integer CHOOSE_DEPARTMENT = 0; + + public static final String TEMPLATE_ID = "3WN6zH1mDGyoi5qWQcpBvgZMoevfG63f4ZTytiYt"; + + public static final Integer NOTIFY_TYPE = 2; + + public static final Integer USE_TEMPLATE_APPROVER = 0; + + +} diff --git a/src/main/java/com/nov/KgLowDurable/controller/LdPurchaseEndController.java b/src/main/java/com/nov/KgLowDurable/controller/LdPurchaseEndController.java index 2219511..f3acf53 100644 --- a/src/main/java/com/nov/KgLowDurable/controller/LdPurchaseEndController.java +++ b/src/main/java/com/nov/KgLowDurable/controller/LdPurchaseEndController.java @@ -58,12 +58,8 @@ public class LdPurchaseEndController { }) public Result getPurchasesByIds( @RequestParam(required = false) String ids) { - try { - List quarters = purchaseEndService.getPurchasesByIds(ids); - return Result.OK(quarters); - } catch (Exception e) { - return Result.error("获取采购单数据"); - } + List quarters = purchaseEndService.getPurchasesByIds(ids); + return Result.OK(quarters); } } diff --git a/src/main/java/com/nov/KgLowDurable/mapper/LdOneOutStorageDetailMapper.java b/src/main/java/com/nov/KgLowDurable/mapper/LdOneOutStorageDetailMapper.java index 7b74b0f..f2d0e4a 100644 --- a/src/main/java/com/nov/KgLowDurable/mapper/LdOneOutStorageDetailMapper.java +++ b/src/main/java/com/nov/KgLowDurable/mapper/LdOneOutStorageDetailMapper.java @@ -1,6 +1,7 @@ package com.nov.KgLowDurable.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.nov.KgLowDurable.pojo.entity.LdOneOutStorageDetail; +import com.nov.KgLowDurable.pojo.vo.LdOneOutStorageDetailVO; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -22,4 +23,5 @@ public interface LdOneOutStorageDetailMapper extends BaseMapper selectByOneOutStorageId(@Param("oneOutStorageId") Long oneOutStorageId); + List selectByOneOutId(@Param("oneOutStorageId") Long oneOutStorageId); } diff --git a/src/main/java/com/nov/KgLowDurable/mapper/LdOnePutStorageDetailMapper.java b/src/main/java/com/nov/KgLowDurable/mapper/LdOnePutStorageDetailMapper.java index 7e5a890..cfb412c 100644 --- a/src/main/java/com/nov/KgLowDurable/mapper/LdOnePutStorageDetailMapper.java +++ b/src/main/java/com/nov/KgLowDurable/mapper/LdOnePutStorageDetailMapper.java @@ -18,4 +18,6 @@ public interface LdOnePutStorageDetailMapper extends BaseMapper selectSummaryData(@Param("collect")List collect); List selectByOnePutStorageId(@Param("onePutStorageId") Long onePutStorageId); + + List selectByLdPurchaseEndId(@Param("ldPurchaseEndId") Long ldPurchaseEndId); } diff --git a/src/main/java/com/nov/KgLowDurable/mapper/RoleUserMapper.java b/src/main/java/com/nov/KgLowDurable/mapper/RoleUserMapper.java new file mode 100644 index 0000000..1bb0f9d --- /dev/null +++ b/src/main/java/com/nov/KgLowDurable/mapper/RoleUserMapper.java @@ -0,0 +1,18 @@ +package com.nov.KgLowDurable.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.nov.KgLowDurable.pojo.entity.RoleUser; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * Mapper 接口 + * + * @author Chill + */ +public interface RoleUserMapper extends BaseMapper { + + + List selectByUserId(@Param("userId") String userId); +} diff --git a/src/main/java/com/nov/KgLowDurable/pojo/dto/ApplyRequest/ApplyData.java b/src/main/java/com/nov/KgLowDurable/pojo/dto/ApplyRequest/ApplyData.java new file mode 100644 index 0000000..71a356b --- /dev/null +++ b/src/main/java/com/nov/KgLowDurable/pojo/dto/ApplyRequest/ApplyData.java @@ -0,0 +1,18 @@ +package com.nov.KgLowDurable.pojo.dto.ApplyRequest; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import java.util.List; + +/** + * @author: liweidong + * @create: 2026-01-09 + */ + +@Data +@NoArgsConstructor +@AllArgsConstructor +public class ApplyData { + private List contents; +} diff --git a/src/main/java/com/nov/KgLowDurable/pojo/dto/ApplyRequest/ApplyRequest.java b/src/main/java/com/nov/KgLowDurable/pojo/dto/ApplyRequest/ApplyRequest.java new file mode 100644 index 0000000..e60c74c --- /dev/null +++ b/src/main/java/com/nov/KgLowDurable/pojo/dto/ApplyRequest/ApplyRequest.java @@ -0,0 +1,26 @@ +package com.nov.KgLowDurable.pojo.dto.ApplyRequest; + +import com.fasterxml.jackson.annotation.JsonInclude; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +/** + * @author: liweidong + * @create: 2026-01-09 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@JsonInclude(JsonInclude.Include.NON_NULL) +public class ApplyRequest { + private ApplyData applyData; + private List approver; + private Integer chooseDepartment; + private String creatorUserid; + private Integer notifyType; + private String templateId; + private Integer useTemplateApprover; +} diff --git a/src/main/java/com/nov/KgLowDurable/pojo/dto/ApplyRequest/Approver.java b/src/main/java/com/nov/KgLowDurable/pojo/dto/ApplyRequest/Approver.java new file mode 100644 index 0000000..fde0753 --- /dev/null +++ b/src/main/java/com/nov/KgLowDurable/pojo/dto/ApplyRequest/Approver.java @@ -0,0 +1,19 @@ +package com.nov.KgLowDurable.pojo.dto.ApplyRequest; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +/** + * @author: liweidong + * @create: 2026-01-09 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +public class Approver { + private Integer attr; + private List userid; +} diff --git a/src/main/java/com/nov/KgLowDurable/pojo/dto/ApplyRequest/Content.java b/src/main/java/com/nov/KgLowDurable/pojo/dto/ApplyRequest/Content.java new file mode 100644 index 0000000..caaa354 --- /dev/null +++ b/src/main/java/com/nov/KgLowDurable/pojo/dto/ApplyRequest/Content.java @@ -0,0 +1,18 @@ +package com.nov.KgLowDurable.pojo.dto.ApplyRequest; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author: liweidong + * @create: 2026-01-09 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +public class Content { + private String control; + private String id; + private Value value; +} \ No newline at end of file diff --git a/src/main/java/com/nov/KgLowDurable/pojo/dto/ApplyRequest/DateValue.java b/src/main/java/com/nov/KgLowDurable/pojo/dto/ApplyRequest/DateValue.java new file mode 100644 index 0000000..55e4d5b --- /dev/null +++ b/src/main/java/com/nov/KgLowDurable/pojo/dto/ApplyRequest/DateValue.java @@ -0,0 +1,17 @@ +package com.nov.KgLowDurable.pojo.dto.ApplyRequest; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @author: liweidong + * @create: 2026-01-09 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +public class DateValue { + private String type; + private String sTimestamp; +} diff --git a/src/main/java/com/nov/KgLowDurable/pojo/dto/ApplyRequest/TableRow.java b/src/main/java/com/nov/KgLowDurable/pojo/dto/ApplyRequest/TableRow.java new file mode 100644 index 0000000..d9b300d --- /dev/null +++ b/src/main/java/com/nov/KgLowDurable/pojo/dto/ApplyRequest/TableRow.java @@ -0,0 +1,18 @@ +package com.nov.KgLowDurable.pojo.dto.ApplyRequest; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +/** + * @author: liweidong + * @create: 2026-01-09 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +public class TableRow { + private List list; +} diff --git a/src/main/java/com/nov/KgLowDurable/pojo/dto/ApplyRequest/TableValue.java b/src/main/java/com/nov/KgLowDurable/pojo/dto/ApplyRequest/TableValue.java new file mode 100644 index 0000000..4f06043 --- /dev/null +++ b/src/main/java/com/nov/KgLowDurable/pojo/dto/ApplyRequest/TableValue.java @@ -0,0 +1,17 @@ +package com.nov.KgLowDurable.pojo.dto.ApplyRequest; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import java.util.List; + +/** + * @author: liweidong + * @create: 2026-01-09 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +public class TableValue { + private List children; +} diff --git a/src/main/java/com/nov/KgLowDurable/pojo/dto/ApplyRequest/Value.java b/src/main/java/com/nov/KgLowDurable/pojo/dto/ApplyRequest/Value.java new file mode 100644 index 0000000..2e727a3 --- /dev/null +++ b/src/main/java/com/nov/KgLowDurable/pojo/dto/ApplyRequest/Value.java @@ -0,0 +1,40 @@ +package com.nov.KgLowDurable.pojo.dto.ApplyRequest; + +import com.fasterxml.jackson.annotation.JsonInclude; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +/** + * @author: liweidong + * @create: 2026-01-09 + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@JsonInclude(JsonInclude.Include.NON_NULL) +public class Value { + // 用于Text、Textarea、Selector等控件 + private String text; + + // 用于Date控件 + private DateValue date; + + // 用于Table控件 - 直接是List + private List children; + + // 静态工厂方法 + public static Value textValue(String text) { + return new Value(text, null, null); + } + + public static Value dateValue(DateValue date) { + return new Value(null, date, null); + } + + public static Value tableValue(List rows) { + return new Value(null, null, rows); + } +} \ No newline at end of file diff --git a/src/main/java/com/nov/KgLowDurable/pojo/entity/RoleUser.java b/src/main/java/com/nov/KgLowDurable/pojo/entity/RoleUser.java new file mode 100644 index 0000000..3afca43 --- /dev/null +++ b/src/main/java/com/nov/KgLowDurable/pojo/entity/RoleUser.java @@ -0,0 +1,28 @@ +package com.nov.KgLowDurable.pojo.entity; +import com.baomidou.mybatisplus.annotation.TableName; +import com.nov.KgLowDurable.annotation.Schema; +import lombok.Data; +import java.io.Serializable; + +/** + * 实体类 + * + * @author Chill + */ +@Data +@TableName("t_role_user") +@Schema(description = "RoleUser对象") +public class RoleUser implements Serializable { + + /** + * 角色id + */ + private Integer roleId; + + /** + * 用户id + */ + private String userId; + + +} diff --git a/src/main/java/com/nov/KgLowDurable/pojo/vo/LdOneOutStorageInfoVO.java b/src/main/java/com/nov/KgLowDurable/pojo/vo/LdOneOutStorageInfoVO.java index 4e379ab..5a67bd5 100644 --- a/src/main/java/com/nov/KgLowDurable/pojo/vo/LdOneOutStorageInfoVO.java +++ b/src/main/java/com/nov/KgLowDurable/pojo/vo/LdOneOutStorageInfoVO.java @@ -26,6 +26,6 @@ public class LdOneOutStorageInfoVO implements Serializable { /** * 一级出库明细 */ - private List ldOneOutStorageDetails; + private List ldOneOutStorageDetails; } diff --git a/src/main/java/com/nov/KgLowDurable/service/ILdOneOutStorageDetailService.java b/src/main/java/com/nov/KgLowDurable/service/ILdOneOutStorageDetailService.java index 8756cc1..3fad4ad 100644 --- a/src/main/java/com/nov/KgLowDurable/service/ILdOneOutStorageDetailService.java +++ b/src/main/java/com/nov/KgLowDurable/service/ILdOneOutStorageDetailService.java @@ -1,6 +1,8 @@ package com.nov.KgLowDurable.service; import com.baomidou.mybatisplus.extension.service.IService; import com.nov.KgLowDurable.pojo.entity.LdOneOutStorageDetail; +import com.nov.KgLowDurable.pojo.vo.LdOneOutStorageDetailVO; + import java.util.List; /** @@ -45,4 +47,11 @@ public interface ILdOneOutStorageDetailService extends IService ids); + + /** + * 根据一级出库ID查询 明细信息 + * @param oneOutStorageId + * @return + */ + List getByOneOutId(Long oneOutStorageId); } diff --git a/src/main/java/com/nov/KgLowDurable/service/ILdOnePutStorageDetailService.java b/src/main/java/com/nov/KgLowDurable/service/ILdOnePutStorageDetailService.java index b29d0c3..8282a12 100644 --- a/src/main/java/com/nov/KgLowDurable/service/ILdOnePutStorageDetailService.java +++ b/src/main/java/com/nov/KgLowDurable/service/ILdOnePutStorageDetailService.java @@ -37,4 +37,11 @@ public interface ILdOnePutStorageDetailService extends IService ids); + + /** + * 查询已入库数量 + * @param ldPurchaseEndId + * @return + */ + List getInboundQuantity(Long ldPurchaseEndId); } diff --git a/src/main/java/com/nov/KgLowDurable/service/IRoleUserService.java b/src/main/java/com/nov/KgLowDurable/service/IRoleUserService.java new file mode 100644 index 0000000..72fa8a9 --- /dev/null +++ b/src/main/java/com/nov/KgLowDurable/service/IRoleUserService.java @@ -0,0 +1,20 @@ +package com.nov.KgLowDurable.service; +import com.baomidou.mybatisplus.extension.service.IService; +import com.nov.KgLowDurable.pojo.entity.RoleUser; + +import java.util.List; + +/** + * 服务类 + * + * @author Chill + */ +public interface IRoleUserService extends IService { + + /** + * 根据用户Id 获取角色信息 + * @param userId + * @return + */ + List selectByUserId(String userId); +} diff --git a/src/main/java/com/nov/KgLowDurable/service/IUserService.java b/src/main/java/com/nov/KgLowDurable/service/IUserService.java index 11b1467..db723bd 100644 --- a/src/main/java/com/nov/KgLowDurable/service/IUserService.java +++ b/src/main/java/com/nov/KgLowDurable/service/IUserService.java @@ -40,4 +40,10 @@ public interface IUserService extends IService { * @return */ List getUserByDeptId(String departmentId); + + /** + * 入库审批 + * @param json + */ + void submitPutApproval(String json); } diff --git a/src/main/java/com/nov/KgLowDurable/service/Impl/LdConsumerFormServiceImpl.java b/src/main/java/com/nov/KgLowDurable/service/Impl/LdConsumerFormServiceImpl.java index 87e4ebf..61bfee7 100644 --- a/src/main/java/com/nov/KgLowDurable/service/Impl/LdConsumerFormServiceImpl.java +++ b/src/main/java/com/nov/KgLowDurable/service/Impl/LdConsumerFormServiceImpl.java @@ -3,16 +3,23 @@ package com.nov.KgLowDurable.service.Impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; +import com.nov.KgLowDurable.constant.BatchConstant; +import com.nov.KgLowDurable.exception.CustomerException; import com.nov.KgLowDurable.mapper.LdConsumerFormMapper; import com.nov.KgLowDurable.pojo.entity.LdConsumerForm; +import com.nov.KgLowDurable.pojo.entity.Role; +import com.nov.KgLowDurable.pojo.entity.RoleUser; +import com.nov.KgLowDurable.pojo.entity.User; import com.nov.KgLowDurable.pojo.vo.LdTwoInventoryVO; -import com.nov.KgLowDurable.service.ILdConsumerFormService; -import com.nov.KgLowDurable.service.ILdDurableFormService; +import com.nov.KgLowDurable.service.*; import lombok.AllArgsConstructor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; import java.util.List; +import java.util.Set; +import java.util.stream.Collectors; /** * 服务实现类 @@ -28,6 +35,15 @@ public class LdConsumerFormServiceImpl extends ServiceImpl getConsumerFormList(String departmentId, String materialName, Integer num, Integer pageNum, Integer pageSize) { + public PageInfo getConsumerFormList(String departmentId, String materialName, Integer num, Integer pageNum, Integer pageSize) { +// User user = userService.getById(userId); +// if(null == user){ +// throw new CustomerException("用户信息不存在"); +// } +// List roleUserList = roleUserService.selectByUserId(userId); +// if(CollectionUtils.isEmpty(roleUserList)){ +// throw new CustomerException("该用户没有任何角色信息: "+user.getName()); +// } +// +// // 先找出所有角色 +// Set roleCodes = roleUserList.stream() +// .map(roleUser -> roleService.getById(roleUser.getRoleId())) +// .map(Role::getCode) +// .collect(Collectors.toSet()); +// +// // 检查是否有有效角色 +// if (!roleCodes.contains(BatchConstant.DEPT_STOCK_ADMIN) && +// !roleCodes.contains(BatchConstant.STATION_STOCK_ADMIN)) { +// throw new CustomerException("该用户角色无法获取信息: " + user.getName()); +// } +// +// // 按优先级处理 +// if (roleCodes.contains(BatchConstant.STATION_STOCK_ADMIN)) { +// departmentId = null; +// } else if (roleCodes.contains(BatchConstant.DEPT_STOCK_ADMIN)) { +// departmentId = user.getDepartment(); +// } + PageHelper.startPage(pageNum,pageSize); List ldConsumerFormList = consumerFormMapper.selectConsumerFormList(departmentId,materialName,num); PageInfo pageInfo = new PageInfo<>(ldConsumerFormList); diff --git a/src/main/java/com/nov/KgLowDurable/service/Impl/LdOneFormServiceImpl.java b/src/main/java/com/nov/KgLowDurable/service/Impl/LdOneFormServiceImpl.java index e658c83..d33deed 100644 --- a/src/main/java/com/nov/KgLowDurable/service/Impl/LdOneFormServiceImpl.java +++ b/src/main/java/com/nov/KgLowDurable/service/Impl/LdOneFormServiceImpl.java @@ -59,8 +59,23 @@ public class LdOneFormServiceImpl extends ServiceImpl list = new ArrayList<>(); for (LdOneForm oneForm : oneFormList) { - List formList = oneFormMapper.selectByMaterialId(oneForm.getMaterialId(), oneForm.getType()); - list.addAll(formList); + if(BatchConstant.CONSUMER.equals(oneForm.getType())){ + List formList = oneFormMapper.selectByMaterialId(oneForm.getMaterialId(), oneForm.getType()); + if(CollectionUtils.isEmpty(formList)){ + oneForm.setNum(new BigDecimal(0)); + list.add(oneForm); + }else { + list.addAll(formList); + } + }else { + LdOneForm ldOneForm = oneFormMapper.selectById(oneForm.getId()); + if(null == ldOneForm){ + oneForm.setNum(new BigDecimal(0)); + list.add(oneForm); + }else { + list.add(ldOneForm); + } + } } //分组并求和 diff --git a/src/main/java/com/nov/KgLowDurable/service/Impl/LdOneOutStorageDetailServiceImpl.java b/src/main/java/com/nov/KgLowDurable/service/Impl/LdOneOutStorageDetailServiceImpl.java index f0d758d..11b1e3e 100644 --- a/src/main/java/com/nov/KgLowDurable/service/Impl/LdOneOutStorageDetailServiceImpl.java +++ b/src/main/java/com/nov/KgLowDurable/service/Impl/LdOneOutStorageDetailServiceImpl.java @@ -6,6 +6,7 @@ import com.nov.KgLowDurable.mapper.LdOnePutStorageDetailMapper; import com.nov.KgLowDurable.pojo.entity.LdMaterial; import com.nov.KgLowDurable.pojo.entity.LdOneOutStorageDetail; import com.nov.KgLowDurable.pojo.entity.LdOnePutStorageDetail; +import com.nov.KgLowDurable.pojo.vo.LdOneOutStorageDetailVO; import com.nov.KgLowDurable.service.ILdMaterialService; import com.nov.KgLowDurable.service.ILdOneOutStorageDetailService; import com.nov.KgLowDurable.service.ILdOnePutStorageDetailService; @@ -66,4 +67,10 @@ public class LdOneOutStorageDetailServiceImpl extends ServiceImpl ids) { return oneOutStorageDetailMapper.deleteBatchIds(ids); } + + @Override + public List getByOneOutId(Long oneOutStorageId) { + return oneOutStorageDetailMapper.selectByOneOutId(oneOutStorageId); + } + } diff --git a/src/main/java/com/nov/KgLowDurable/service/Impl/LdOneOutStorageServiceImpl.java b/src/main/java/com/nov/KgLowDurable/service/Impl/LdOneOutStorageServiceImpl.java index 6440690..6376f3b 100644 --- a/src/main/java/com/nov/KgLowDurable/service/Impl/LdOneOutStorageServiceImpl.java +++ b/src/main/java/com/nov/KgLowDurable/service/Impl/LdOneOutStorageServiceImpl.java @@ -322,9 +322,9 @@ public class LdOneOutStorageServiceImpl extends ServiceImpl ldOneOutStorageDetailList = oneOutStorageDetailService.getByOneOutStorageId(ldOneOutStorage.getId()); - for (LdOneOutStorageDetail oneOutStorageDetail : ldOneOutStorageDetailList) { - List oneOutDetailList = oneOutStorageDetailService.selectByDemandEndId(oneOutStorageDetail.getLdDemandEndId()); - BigDecimal sum = oneOutDetailList.stream() - .map(LdOneOutStorageDetail::getOutboundQuantity) - .filter(Objects::nonNull) - .reduce(BigDecimal.ZERO, BigDecimal::add); - oneOutStorageDetail.setOutboundQuantity(sum); + List ldOneOutStorageDetailList = oneOutStorageDetailService.getByOneOutId(ldOneOutStorage.getId()); + + for (LdOneOutStorageDetailVO oneOutStorageDetail : ldOneOutStorageDetailList) { + //本次出库数量 + oneOutStorageDetail.setTheOutboundQuantity(oneOutStorageDetail.getOutboundQuantity()); + + //计算已出库储量 + if(null != oneOutStorageDetail.getLdDemandEndId()){ + List oneOutVODetailList = oneOutStorageDetailService.selectByDemandEndId(oneOutStorageDetail.getLdDemandEndId()); + BigDecimal sum = oneOutVODetailList.stream() + .map(LdOneOutStorageDetail::getOutboundQuantity) + .filter(Objects::nonNull) + .reduce(BigDecimal.ZERO, BigDecimal::add); + oneOutStorageDetail.setOutboundQuantity(sum); + } } LdOneOutStorageInfoVO ldOneOutStorageInfoVO = new LdOneOutStorageInfoVO(); diff --git a/src/main/java/com/nov/KgLowDurable/service/Impl/LdOnePutStorageDetailServiceImpl.java b/src/main/java/com/nov/KgLowDurable/service/Impl/LdOnePutStorageDetailServiceImpl.java index 3c0f638..8f63310 100644 --- a/src/main/java/com/nov/KgLowDurable/service/Impl/LdOnePutStorageDetailServiceImpl.java +++ b/src/main/java/com/nov/KgLowDurable/service/Impl/LdOnePutStorageDetailServiceImpl.java @@ -58,4 +58,9 @@ public class LdOnePutStorageDetailServiceImpl extends ServiceImpl ids) { return onePutStorageDetailMapper.deleteBatchIds(ids); } + + @Override + public List getInboundQuantity(Long ldPurchaseEndId) { + return onePutStorageDetailMapper.selectByLdPurchaseEndId(ldPurchaseEndId); + } } diff --git a/src/main/java/com/nov/KgLowDurable/service/Impl/LdOnePutStorageServiceImpl.java b/src/main/java/com/nov/KgLowDurable/service/Impl/LdOnePutStorageServiceImpl.java index a4a38f7..a18ee6e 100644 --- a/src/main/java/com/nov/KgLowDurable/service/Impl/LdOnePutStorageServiceImpl.java +++ b/src/main/java/com/nov/KgLowDurable/service/Impl/LdOnePutStorageServiceImpl.java @@ -1,10 +1,15 @@ package com.nov.KgLowDurable.service.Impl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializationFeature; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.nov.KgLowDurable.constant.BatchConstant; +import com.nov.KgLowDurable.constant.OnePutApproverConstant; import com.nov.KgLowDurable.exception.CustomerException; import com.nov.KgLowDurable.mapper.LdOnePutStorageMapper; +import com.nov.KgLowDurable.pojo.dto.ApplyRequest.*; import com.nov.KgLowDurable.pojo.dto.LdOnePutStorageDto; import com.nov.KgLowDurable.pojo.entity.*; import com.nov.KgLowDurable.pojo.vo.LdOnePutStorageDetailVO; @@ -20,10 +25,7 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import org.springframework.util.StringUtils; import java.math.BigDecimal; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Date; -import java.util.List; +import java.util.*; import java.util.stream.Collectors; /** @@ -316,8 +318,76 @@ public class LdOnePutStorageServiceImpl extends ServiceImpl tableRowList = new ArrayList<>(); + for (LdOnePutStorageDetailVO ldOnePutStorageDetailVO : dto.getLdOnePutStorageDetailVOList()) { + // 查询已入库数量 + List onePutStorageDetailList = onePutStorageDetailService.getInboundQuantity(ldOnePutStorageDetailVO.getLdPurchaseEndId()); + BigDecimal totalInboundQuantity = onePutStorageDetailList.stream() + .map(LdOnePutStorageDetail::getInboundQuantity) + .filter(Objects::nonNull) + .reduce(BigDecimal.ZERO, BigDecimal::add); + + // 1. 创建表格行 + TableRow tableRow = new TableRow(Arrays.asList( + new Content(OnePutApproverConstant.TEXT, OnePutApproverConstant.TABLE_COL_MATERIAL_NAME, Value.textValue(ldOnePutStorageDetailVO.getMaterialName())), + new Content(OnePutApproverConstant.TEXT, OnePutApproverConstant.TABLE_COL_MATERIAL_CODE, Value.textValue(ldOnePutStorageDetailVO.getMaterialCode())), + new Content(OnePutApproverConstant.TEXT, OnePutApproverConstant.TABLE_COL_SPECIFICATION, Value.textValue(ldOnePutStorageDetailVO.getModel())), + new Content(OnePutApproverConstant.TEXT, OnePutApproverConstant.TABLE_COL_UNIT, Value.textValue(ldOnePutStorageDetailVO.getUnit())), + new Content(OnePutApproverConstant.TEXT, OnePutApproverConstant.TABLE_COL_CATEGORY, Value.textValue( BatchConstant.CONSUMER.equals(ldOnePutStorageDetailVO.getType())?"易耗":"耐用")), + new Content(OnePutApproverConstant.TEXT, OnePutApproverConstant.TABLE_COL_PLAN_QUANTITY, Value.textValue(String.valueOf(ldOnePutStorageDetailVO.getRequiredQuantity()))), + new Content(OnePutApproverConstant.TEXT, OnePutApproverConstant.TABLE_COL_INBOUND_QUANTITY, Value.textValue(String.valueOf(totalInboundQuantity))), + new Content(OnePutApproverConstant.TEXT, OnePutApproverConstant.TABLE_COL_UNIT_PRICE, Value.textValue(String.valueOf(ldOnePutStorageDetailVO.getUnitPrice()))), + new Content(OnePutApproverConstant.TEXT, OnePutApproverConstant.TABLE_COL_CURRENT_INBOUND_QUANTITY, Value.textValue(String.valueOf(ldOnePutStorageDetailVO.getTheInboundQuantity()))) + )); + tableRowList.add(tableRow); + } + + + // 2. 创建主要内容(完全按照您的JSON结构) + List contents = Arrays.asList( + new Content(OnePutApproverConstant.TEXT, OnePutApproverConstant.TEXT_INBOUND_PERSON, Value.textValue(dto.getUserInfoVO().getName())), + new Content(OnePutApproverConstant.TEXT, OnePutApproverConstant.TEXT_PURCHASE_ORDER_NAME, Value.textValue(dto.getPurchaseEndInfo())), + new Content(OnePutApproverConstant.TEXT, OnePutApproverConstant.TEXT_INBOUND_ORDER_NO, Value.textValue(dto.getOrderNo())), + new Content(OnePutApproverConstant.DATE, OnePutApproverConstant.DATE_INBOUND_DATE, Value.dateValue(new DateValue("hour", String.valueOf(dto.getInDate().getTime())))), + new Content(OnePutApproverConstant.TEXT, OnePutApproverConstant.TEXT_DEPARTMENT, Value.textValue(dto.getUserInfoVO().getDepartment())), + new Content(OnePutApproverConstant.TEXT, OnePutApproverConstant.TEXT_MATERIAL_TYPE, Value.textValue("1".equals(dto.getMaterialType())?"办公物资":"其他物资")), + new Content(OnePutApproverConstant.TEXTAREA, OnePutApproverConstant.TEXTAREA_REASON, Value.textValue(dto.getReason())), + new Content(OnePutApproverConstant.TABLE, OnePutApproverConstant.TABLE_MATERIAL_LIST, + Value.tableValue(tableRowList)) + ); + + + // 3. 创建审批人 + List ldApproves = approveService.getByFromId(dto.getId(), "0"); + List approvers = new ArrayList<>(); + for (LdApprove ldApprove : ldApproves) { + Approver approver = new Approver(); + approver.setAttr(2); + approver.setUserid(Arrays.asList(ldApprove.getUserId())); + approvers.add(approver); + } + + // 4. 创建完整对象 + ApplyData applyData = new ApplyData(contents); + ApplyRequest applyRequest = new ApplyRequest( + applyData, + approvers, + OnePutApproverConstant.CHOOSE_DEPARTMENT, + dto.getUserInfoVO().getUserId(), + OnePutApproverConstant.NOTIFY_TYPE, + OnePutApproverConstant.TEMPLATE_ID, + OnePutApproverConstant.USE_TEMPLATE_APPROVER + ); + + try { + // 5. 序列化 + ObjectMapper mapper = new ObjectMapper(); + String json = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(applyRequest); + userService.submitPutApproval(json); + } catch (JsonProcessingException e) { + e.printStackTrace(); + } + } } diff --git a/src/main/java/com/nov/KgLowDurable/service/Impl/LdPurchaseEndServiceImpl.java b/src/main/java/com/nov/KgLowDurable/service/Impl/LdPurchaseEndServiceImpl.java index 0635d58..647402b 100644 --- a/src/main/java/com/nov/KgLowDurable/service/Impl/LdPurchaseEndServiceImpl.java +++ b/src/main/java/com/nov/KgLowDurable/service/Impl/LdPurchaseEndServiceImpl.java @@ -91,6 +91,9 @@ public class LdPurchaseEndServiceImpl extends ServiceImpl twoInventoryList = new ArrayList<>(); if(!CollectionUtils.isEmpty(consumerIds)){ - twoInventoryList = consumerFormService.getByIds(consumerIds); + List consumerList = consumerFormService.getByIds(consumerIds); + twoInventoryList.addAll(consumerList); } if(!CollectionUtils.isEmpty(durableIds)){ - twoInventoryList = durableFormService.getByIds(durableIds); + List durableList = durableFormService.getByIds(durableIds); + twoInventoryList.addAll(durableList); } return twoInventoryList; } diff --git a/src/main/java/com/nov/KgLowDurable/service/Impl/LdTwoOutStorageServiceImpl.java b/src/main/java/com/nov/KgLowDurable/service/Impl/LdTwoOutStorageServiceImpl.java index 1199ce6..60fcc92 100644 --- a/src/main/java/com/nov/KgLowDurable/service/Impl/LdTwoOutStorageServiceImpl.java +++ b/src/main/java/com/nov/KgLowDurable/service/Impl/LdTwoOutStorageServiceImpl.java @@ -72,7 +72,7 @@ public class LdTwoOutStorageServiceImpl extends ServiceImpl implements IRoleUserService { + + @Autowired + RoleUserMapper roleUserMapper; + + @Override + public List selectByUserId(String userId) { + return roleUserMapper.selectByUserId(userId); + } +} diff --git a/src/main/java/com/nov/KgLowDurable/service/Impl/UserServiceImpl.java b/src/main/java/com/nov/KgLowDurable/service/Impl/UserServiceImpl.java index becdf66..338f6f1 100644 --- a/src/main/java/com/nov/KgLowDurable/service/Impl/UserServiceImpl.java +++ b/src/main/java/com/nov/KgLowDurable/service/Impl/UserServiceImpl.java @@ -296,4 +296,31 @@ public class UserServiceImpl extends ServiceImpl implements IU public List getUserByDeptId(String departmentId) { return userMapper.selectByDepartmentId(departmentId); } + + @Override + public void submitPutApproval(String json) { +// Map headers = new HashMap() {{ +// put("Content-Type", "application/json"); +// }}; +// +// Map querys = new HashMap() {{ +// }}; +// +// String resp = null; +// try { +// resp = EntityUtils.toString( +// HttpUtils.doPost( +// "http://10.90.100.231:8132", +// "/qywx/applySubmit", +// "POST", +// headers, +// querys, +// json +// ).getEntity() +// ); +// } catch (Exception e) { +// e.printStackTrace(); +// } + + } } diff --git a/src/main/java/com/nov/KgLowDurable/util/SerialNumberUtil.java b/src/main/java/com/nov/KgLowDurable/util/SerialNumberUtil.java index 129758c..f7c3a0a 100644 --- a/src/main/java/com/nov/KgLowDurable/util/SerialNumberUtil.java +++ b/src/main/java/com/nov/KgLowDurable/util/SerialNumberUtil.java @@ -49,7 +49,7 @@ public class SerialNumberUtil { // 最大序列号 private static final int MAX_SEQUENCE = 999; // 默认前缀集合 - private static final String[] DEFAULT_PREFIXES = {"FI","FID","FO","FOD","SI","SID", "SO", "SOD"}; + private static final String[] DEFAULT_PREFIXES = {"FI","FID","FO","FOD","SI","SID", "SOW", "SOD"}; /** * 生成单个单号 @@ -215,7 +215,6 @@ public class SerialNumberUtil { ); } - // ============ 私有辅助方法 ============ /** * 验证前缀格式 diff --git a/src/main/resources/mapper/LdOneOutStorageDetailMapper.xml b/src/main/resources/mapper/LdOneOutStorageDetailMapper.xml index f6869ad..fa8053b 100644 --- a/src/main/resources/mapper/LdOneOutStorageDetailMapper.xml +++ b/src/main/resources/mapper/LdOneOutStorageDetailMapper.xml @@ -80,6 +80,12 @@ FROM ld_one_out_storage_detail WHERE one_out_storage_id = #{oneOutStorageId} + diff --git a/src/main/resources/mapper/LdOnePutStorageDetailMapper.xml b/src/main/resources/mapper/LdOnePutStorageDetailMapper.xml index 19e5728..9fb64de 100644 --- a/src/main/resources/mapper/LdOnePutStorageDetailMapper.xml +++ b/src/main/resources/mapper/LdOnePutStorageDetailMapper.xml @@ -106,5 +106,10 @@ FROM ld_one_put_storage_detail WHERE one_put_storage_id = #{onePutStorageId} + diff --git a/src/main/resources/mapper/RoleUserMapper.xml b/src/main/resources/mapper/RoleUserMapper.xml new file mode 100644 index 0000000..476924d --- /dev/null +++ b/src/main/resources/mapper/RoleUserMapper.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + +