diff --git a/src/main/java/com/nov/KgLowDurable/constant/TwoOutApproverConstant.java b/src/main/java/com/nov/KgLowDurable/constant/TwoOutApproverConstant.java new file mode 100644 index 0000000..56a8939 --- /dev/null +++ b/src/main/java/com/nov/KgLowDurable/constant/TwoOutApproverConstant.java @@ -0,0 +1,120 @@ +package com.nov.KgLowDurable.constant; + +/** + * @author: liweidong + * @create: 2026-01-12 + */ +public class TwoOutApproverConstant { + // ==================== 基本信息字段 ==================== + + /** + * 领用人 - 文本控件 + * 对应表单中的"领用人"字段 + */ + public static final String TEXT_RECEIVER = "Text-1753842895562"; + + /** + * 部门 - 文本控件 + * 对应表单中的"部门"字段 + */ + public static final String TEXT_DEPARTMENT = "Text-1764895727005"; + + /** + * 单号 - 文本控件 + * 对应表单中的"单号"字段 + */ + public static final String TEXT_ORDER_NO = "Text-1768182878024"; + + /** + * 事由 - 文本域控件 + * 对应表单中的"事由"字段 + */ + public static final String TEXTAREA_REASON = "Textarea-1765250821333"; + + /** + * 物资列表 - 表格控件 + * 对应表单中的物资明细表格 + */ + 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-1768182193673"; + +// /** +// * 单价 - 表格列(文本控件) +// * 对应表格中的"单价"列 +// */ +// public static final String TABLE_COL_UNIT_PRICE = "Text-1768182205649"; + + /** + * 出库人 - 表格列(文本控件) + * 对应表格中的"出库人"列 + */ + public static final String TABLE_COL_OUTBOUND_PERSON = "Text-1768182222649"; + + /** + * 出库数量 - 表格列(文本控件) + * 对应表格中的"出库数量"列 + */ + public static final String TABLE_COL_OUTBOUND_QUANTITY = "Text-1753842938570"; + + /** + * 物资描述 - 表格列(文本控件) + * 对应表格中的"物资描述"列 + */ + public static final String TABLE_COL_MATERIAL_DESCRIPTION = "Text-1764895768454"; + + /** + * 库存 - 表格列(文本控件) + * 对应表格中的"库存"列 + */ + public static final String TABLE_COL_INVENTORY = "Text-1768182234129"; + + // ==================== 字段类型 ==================== + + 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 = "C4c9RG97FAz4CpxoSPTMHGU2KWYxA3sMqEKUjSiJp"; + + public static final Integer NOTIFY_TYPE = 2; + + public static final Integer USE_TEMPLATE_APPROVER = 0; + +} diff --git a/src/main/java/com/nov/KgLowDurable/service/IUserService.java b/src/main/java/com/nov/KgLowDurable/service/IUserService.java index db723bd..7faefff 100644 --- a/src/main/java/com/nov/KgLowDurable/service/IUserService.java +++ b/src/main/java/com/nov/KgLowDurable/service/IUserService.java @@ -45,5 +45,5 @@ public interface IUserService extends IService { * 入库审批 * @param json */ - void submitPutApproval(String json); + void submitApproval(String json); } 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 a18ee6e..42279b9 100644 --- a/src/main/java/com/nov/KgLowDurable/service/Impl/LdOnePutStorageServiceImpl.java +++ b/src/main/java/com/nov/KgLowDurable/service/Impl/LdOnePutStorageServiceImpl.java @@ -383,7 +383,7 @@ public class LdOnePutStorageServiceImpl extends ServiceImpl getTwoOutStorageList(Date startTime, Date endTime, String shipperName, String departmentId, Integer pageNum, Integer pageSize) { PageHelper.startPage(pageNum,pageSize); @@ -124,7 +131,73 @@ public class LdTwoOutStorageServiceImpl extends ServiceImpl tableRowList = new ArrayList<>(); + for (LdTwoOutStorageDetail twoOutStorageDetail : dto.getLdTwoOutStorageDetailList()) { + BigDecimal num = null; + if(BatchConstant.CONSUMER.equals(twoOutStorageDetail.getType())){ + LdConsumerForm consumerForm = consumerFormService.getById(twoOutStorageDetail.getTwoInventoryId()); + num = consumerForm.getNum(); + }else { + LdDurableForm durableForm = durableFormService.getById(twoOutStorageDetail.getTwoInventoryId()); + num = durableForm.getNum(); + } + // 1. 创建表格行 + TableRow tableRow = new TableRow(Arrays.asList( + new Content(TwoOutApproverConstant.TEXT, TwoOutApproverConstant.TABLE_COL_MATERIAL_NAME, Value.textValue(twoOutStorageDetail.getMaterialName())), + new Content(TwoOutApproverConstant.TEXT, TwoOutApproverConstant.TABLE_COL_MATERIAL_CODE, Value.textValue(twoOutStorageDetail.getMaterialCode())), + new Content(TwoOutApproverConstant.TEXT, TwoOutApproverConstant.TABLE_COL_SPECIFICATION, Value.textValue(twoOutStorageDetail.getModel())), + new Content(TwoOutApproverConstant.TEXT, TwoOutApproverConstant.TABLE_COL_UNIT, Value.textValue(twoOutStorageDetail.getUnit())), + new Content(TwoOutApproverConstant.TEXT, TwoOutApproverConstant.TABLE_COL_CATEGORY, Value.textValue( BatchConstant.CONSUMER.equals(twoOutStorageDetail.getType())?"易耗":"耐用")), + new Content(TwoOutApproverConstant.TEXT, TwoOutApproverConstant.TABLE_COL_OUTBOUND_PERSON, Value.textValue(dto.getUserInfoVO().getName())), + new Content(TwoOutApproverConstant.TEXT, TwoOutApproverConstant.TABLE_COL_OUTBOUND_QUANTITY, Value.textValue(String.valueOf(twoOutStorageDetail.getNum()))), + new Content(TwoOutApproverConstant.TEXT, TwoOutApproverConstant.TABLE_COL_MATERIAL_DESCRIPTION, Value.textValue(null)), + new Content(TwoOutApproverConstant.TEXT, TwoOutApproverConstant.TABLE_COL_INVENTORY, Value.textValue(String.valueOf(num))) + )); + tableRowList.add(tableRow); + } + + // 2. 创建主要内容(完全按照您的JSON结构) + List contents = Arrays.asList( + new Content(TwoOutApproverConstant.TEXT, TwoOutApproverConstant.TEXT_RECEIVER, Value.textValue(dto.getLdTwoOutStorage().getProposerName())), + new Content(TwoOutApproverConstant.TEXT, TwoOutApproverConstant.TEXT_DEPARTMENT, Value.textValue(dto.getLdTwoOutStorage().getDepartment())), + new Content(TwoOutApproverConstant.TEXT, TwoOutApproverConstant.TEXT_ORDER_NO, Value.textValue(dto.getLdTwoOutStorage().getOrderNo())), + new Content(TwoOutApproverConstant.TEXT, TwoOutApproverConstant.TEXTAREA_REASON, Value.textValue(dto.getLdTwoOutStorage().getReason())), + new Content(TwoOutApproverConstant.TABLE, TwoOutApproverConstant.TABLE_MATERIAL_LIST, + Value.tableValue(tableRowList)) + ); + + + // 3. 创建审批人 + List ldApproves = approveService.getByFromId(dto.getLdTwoOutStorage().getId(), "1"); + 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, + TwoOutApproverConstant.CHOOSE_DEPARTMENT, + dto.getUserInfoVO().getUserId(), + TwoOutApproverConstant.NOTIFY_TYPE, + TwoOutApproverConstant.TEMPLATE_ID, + TwoOutApproverConstant.USE_TEMPLATE_APPROVER + ); + + try { + // 5. 序列化 + ObjectMapper mapper = new ObjectMapper(); + String json = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(applyRequest); + System.out.println(json); + userService.submitApproval(json); + } catch (JsonProcessingException e) { + e.printStackTrace(); + } } 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 338f6f1..efd9c12 100644 --- a/src/main/java/com/nov/KgLowDurable/service/Impl/UserServiceImpl.java +++ b/src/main/java/com/nov/KgLowDurable/service/Impl/UserServiceImpl.java @@ -298,7 +298,7 @@ public class UserServiceImpl extends ServiceImpl implements IU } @Override - public void submitPutApproval(String json) { + public void submitApproval(String json) { // Map headers = new HashMap() {{ // put("Content-Type", "application/json"); // }};