From 26c94f63ce664beb410ee4763f40f353949bab2c Mon Sep 17 00:00:00 2001 From: RuicyWu <1063154311@qq.com> Date: Sun, 14 Jun 2026 00:28:50 +0800 Subject: [PATCH] fix bug --- .../seeyon/apps/u8c/aop/FormDataSaveAop.java | 15 +-- .../U8CInventoryNumQueryController.java | 8 +- .../seeyon/apps/u8c/node/U8CCommonNode.java | 2 + .../apps/u8c/node/U8CFkdSaveAuditNode.java | 5 +- .../node/U8CInventoryManageDocAddNode.java | 44 +++++-- .../u8c/node/U8CMaterialoutSaveSignNode.java | 23 +++- .../apps/u8c/node/U8COtherInSaveSignNode.java | 8 +- .../u8c/node/U8COtherOutSaveSignNode.java | 8 +- .../u8c/node/U8CPurchaseinSaveSignNode.java | 25 ++-- .../apps/u8c/node/U8CSkdSaveAuditAddNode.java | 26 +++- .../apps/u8c/node/U8CYfDanSaveAuditNode.java | 7 +- .../apps/u8c/node/U8CYsDanSaveAuditNode.java | 12 +- .../u8c/node/xtc/U8CXtcFkdSaveAuditNode.java | 106 +++++++++++++++ .../u8c/node/xtc/U8CXtcMaterialBackNode.java | 87 +++++++++++++ .../node/xtc/U8CXtcOrderSaveApproveNode.java | 39 ++++++ .../node/xtc/U8CXtcProductinSaveSignNode.java | 76 +++++++++++ .../xtc/U8CXtcPurchaseinSaveSignNode.java | 101 +++++++++++++++ .../node/xtc/U8CXtcSaleOrderInsertNode.java | 96 ++++++++++++++ .../xtc/U8CXtcSaleOrderSaveAuditNode.java | 96 ++++++++++++++ .../u8c/node/xtc/U8CXtcSaleOutSaveNode.java | 84 ++++++++++++ .../node/xtc/U8CXtcYfDanSaveAuditNode.java | 119 +++++++++++++++++ .../apps/u8c/po/U8cParamsPreHandler.java | 61 ++++++--- .../u8c/po/inventory/InvBillvoInvbasVo.java | 8 ++ .../U8COrderSaveApproveChildrenVo.java | 4 + .../U8COrderSaveApproveParentVo.java | 4 + .../u8c/po/ordersaveapprove/U8CPuorderVo.java | 24 ++++ .../U8CProductinSaveSignChildren.java | 68 ++++++++++ .../productin/U8CProductinSaveSignParam.java | 13 ++ .../U8CProductinSaveSignParentVo.java | 58 +++++++++ .../po/productin/U8CProductinSaveSignVo.java | 24 ++++ .../purchasein/U8CPurchaseinChildrenVo.java | 9 ++ .../po/saleorder/U8CSaleOrderAddChildren.java | 122 ++++++++++++++++++ .../po/saleorder/U8CSaleOrderAddParam.java | 15 +++ .../po/saleorder/U8CSaleOrderAddParentVo.java | 95 ++++++++++++++ .../u8c/po/saleorder/U8CSaleOrderAddVo.java | 24 ++++ .../saleout/U8CSaleOutSaveSignChildren.java | 86 ++++++++++++ .../po/saleout/U8CSaleOutSaveSignParam.java | 14 ++ .../saleout/U8CSaleOutSaveSignParentVo.java | 77 +++++++++++ .../u8c/po/saleout/U8CSaleOutSaveSignVo.java | 25 ++++ .../apps/u8c/service/FlowTemplateService.java | 33 +++++ .../u8c/service/U8CInventoryQueryService.java | 84 +++++++++++- .../apps/u8c/service/U8CProjQueryService.java | 3 +- .../u8c/service/U8CStorageQueryService.java | 79 ++++++++++++ 43 files changed, 1845 insertions(+), 72 deletions(-) create mode 100644 apps-customize/src/main/java/com/seeyon/apps/u8c/node/xtc/U8CXtcFkdSaveAuditNode.java create mode 100644 apps-customize/src/main/java/com/seeyon/apps/u8c/node/xtc/U8CXtcMaterialBackNode.java create mode 100644 apps-customize/src/main/java/com/seeyon/apps/u8c/node/xtc/U8CXtcOrderSaveApproveNode.java create mode 100644 apps-customize/src/main/java/com/seeyon/apps/u8c/node/xtc/U8CXtcProductinSaveSignNode.java create mode 100644 apps-customize/src/main/java/com/seeyon/apps/u8c/node/xtc/U8CXtcPurchaseinSaveSignNode.java create mode 100644 apps-customize/src/main/java/com/seeyon/apps/u8c/node/xtc/U8CXtcSaleOrderInsertNode.java create mode 100644 apps-customize/src/main/java/com/seeyon/apps/u8c/node/xtc/U8CXtcSaleOrderSaveAuditNode.java create mode 100644 apps-customize/src/main/java/com/seeyon/apps/u8c/node/xtc/U8CXtcSaleOutSaveNode.java create mode 100644 apps-customize/src/main/java/com/seeyon/apps/u8c/node/xtc/U8CXtcYfDanSaveAuditNode.java create mode 100644 apps-customize/src/main/java/com/seeyon/apps/u8c/po/ordersaveapprove/U8COrderSaveApproveChildrenVo.java create mode 100644 apps-customize/src/main/java/com/seeyon/apps/u8c/po/ordersaveapprove/U8COrderSaveApproveParentVo.java create mode 100644 apps-customize/src/main/java/com/seeyon/apps/u8c/po/ordersaveapprove/U8CPuorderVo.java create mode 100644 apps-customize/src/main/java/com/seeyon/apps/u8c/po/productin/U8CProductinSaveSignChildren.java create mode 100644 apps-customize/src/main/java/com/seeyon/apps/u8c/po/productin/U8CProductinSaveSignParam.java create mode 100644 apps-customize/src/main/java/com/seeyon/apps/u8c/po/productin/U8CProductinSaveSignParentVo.java create mode 100644 apps-customize/src/main/java/com/seeyon/apps/u8c/po/productin/U8CProductinSaveSignVo.java create mode 100644 apps-customize/src/main/java/com/seeyon/apps/u8c/po/saleorder/U8CSaleOrderAddChildren.java create mode 100644 apps-customize/src/main/java/com/seeyon/apps/u8c/po/saleorder/U8CSaleOrderAddParam.java create mode 100644 apps-customize/src/main/java/com/seeyon/apps/u8c/po/saleorder/U8CSaleOrderAddParentVo.java create mode 100644 apps-customize/src/main/java/com/seeyon/apps/u8c/po/saleorder/U8CSaleOrderAddVo.java create mode 100644 apps-customize/src/main/java/com/seeyon/apps/u8c/po/saleout/U8CSaleOutSaveSignChildren.java create mode 100644 apps-customize/src/main/java/com/seeyon/apps/u8c/po/saleout/U8CSaleOutSaveSignParam.java create mode 100644 apps-customize/src/main/java/com/seeyon/apps/u8c/po/saleout/U8CSaleOutSaveSignParentVo.java create mode 100644 apps-customize/src/main/java/com/seeyon/apps/u8c/po/saleout/U8CSaleOutSaveSignVo.java create mode 100644 apps-customize/src/main/java/com/seeyon/apps/u8c/service/FlowTemplateService.java create mode 100644 apps-customize/src/main/java/com/seeyon/apps/u8c/service/U8CStorageQueryService.java diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/aop/FormDataSaveAop.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/aop/FormDataSaveAop.java index 08db7c9..4699f45 100644 --- a/apps-customize/src/main/java/com/seeyon/apps/u8c/aop/FormDataSaveAop.java +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/aop/FormDataSaveAop.java @@ -33,6 +33,7 @@ import com.seeyon.apps.u8c.util.FormQueryUtils; import com.seeyon.apps.u8c.util.FormViewUtils; import com.seeyon.cap4.save.param.FormDataSaveParam; import com.seeyon.cap4.template.bean.MergeDataParamBean; +import com.seeyon.ctp.common.AppContext; import org.apache.commons.lang.StringUtils; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.annotation.*; @@ -42,16 +43,12 @@ import org.springframework.stereotype.Component; import java.util.*; @Aspect -@Component public class FormDataSaveAop { private static final Log log = Log.get(FormDataSaveAop.class); - @Autowired - private U8cHttpClient u8cHttpClient; - @Autowired - private ZqcU8cConfigProvider zqcU8cConfigProvider; - @Autowired - private U8CKsService ksService; + private U8cHttpClient u8cHttpClient = (U8cHttpClient) AppContext.getBean("u8cHttpClient"); + private ZqcU8cConfigProvider zqcU8cConfigProvider = (ZqcU8cConfigProvider) AppContext.getBean("zqcU8cConfigProvider"); + private U8CKsService ksService = (U8CKsService) AppContext.getBean("u8CKsService"); @Around("execution(* com.seeyon.cap4.template.service.CAPFormDataService.saveOrUpdateForm(..))") public Object listenFormEdit(ProceedingJoinPoint jp) throws Throwable { @@ -293,7 +290,9 @@ public class FormDataSaveAop { } if(viewItemKey.equals("税率")) { String sl = value; - u8CYfChildren.setSl(Double.valueOf((Double.parseDouble(sl) * 100) + "").intValue() + ""); + if(StringUtils.isNotBlank(sl)) { + u8CYfChildren.setSl(Double.valueOf((Double.parseDouble(sl) * 100) + "").intValue() + ""); + } } if(viewItemKey.equals("税额")) { u8CYfChildren.setDfybsj(value); diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/controller/U8CInventoryNumQueryController.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/controller/U8CInventoryNumQueryController.java index 20a3403..2be85e0 100644 --- a/apps-customize/src/main/java/com/seeyon/apps/u8c/controller/U8CInventoryNumQueryController.java +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/controller/U8CInventoryNumQueryController.java @@ -1,11 +1,13 @@ package com.seeyon.apps.u8c.controller; import cn.hutool.log.Log; +import com.alibaba.fastjson.JSONObject; import com.seeyon.aicloud.common.JsonUtils; import com.seeyon.apps.u8c.resp.U8cResponse; import com.seeyon.apps.u8c.service.U8cHttpClient; import com.seeyon.ctp.common.AppContext; import com.seeyon.ctp.common.controller.BaseController; +import com.seeyon.ctp.util.json.JSONUtil; import org.apache.commons.lang.StringUtils; import javax.servlet.http.HttpServletRequest; @@ -27,9 +29,11 @@ public class U8CInventoryNumQueryController extends BaseController { String storeId = request.getHeader("storeId"); String isListByBVCode = request.getHeader("isListByBVCode"); String batchcode = request.getHeader("batchcode"); + String calbody = request.getHeader("calbody") == null ? "ZQC001" : request.getHeader("calbody"); + String corp = request.getHeader("corp") == null ? "10" : request.getHeader("corp"); Map params = new HashMap<>(); - params.put("calbody","ZQC001"); - params.put("corp","10"); + params.put("calbody",calbody); + params.put("corp",corp); params.put("inventory",inventory); params.put("isGroupByWarehouse","Y"); if(StringUtils.isNotBlank(storeId)){ diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8CCommonNode.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8CCommonNode.java index b8d1972..c95c85b 100644 --- a/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8CCommonNode.java +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8CCommonNode.java @@ -1,6 +1,7 @@ package com.seeyon.apps.u8c.node; import cn.hutool.log.Log; +import com.seeyon.apps.collaboration.po.ColSummary; import com.seeyon.apps.common.workflow.constants.WorkFlowType; import com.seeyon.apps.common.workflow.node.ACommonSuperNode; import com.seeyon.apps.ext.workflow.vo.FieldDataVo; @@ -72,6 +73,7 @@ public abstract class U8CCommonNode extends ACommonSuperNode { return false; } + // ========== 主推送逻辑 ========== @Override public SuperNodeContext proceed(String request, FormDataVo formDataVo, FormDataMasterBean formDataMasterBean) throws Exception { diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8CFkdSaveAuditNode.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8CFkdSaveAuditNode.java index 0b5cf65..8c7aa5e 100644 --- a/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8CFkdSaveAuditNode.java +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8CFkdSaveAuditNode.java @@ -22,6 +22,7 @@ import com.seeyon.apps.u8c.util.EnumMapUtils; import com.seeyon.cap4.form.bean.FormDataMasterBean; import com.seeyon.ctp.organization.bo.V3xOrgMember; import com.seeyon.ctp.organization.manager.OrgManager; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @@ -76,7 +77,7 @@ public class U8CFkdSaveAuditNode extends U8CCommonNode{ u8CFkdSaveAuditChildren.setZy(getStringValue(formDataVo, "付款说明")); u8CFkdSaveAuditChildren.setSzxmid(EnumMapUtils.getEnumItemCode(getDbValue(formDataVo,"费用类型"))); u8CFkdSaveAuditChildren.setJobid(getStringValue(formDataVo, "项目编号")); - U8cParamsPreHandler.preHandleFkdBillVoParentvo(parentVo); + U8cParamsPreHandler.preHandleFkdBillVoParentvo(subject,parentVo); } u8CFkdSaveAuditChildren.setJfbbje(getStringValue(formDataVo, "支付金额")); u8CFkdSaveAuditChildren.setJfybje(getStringValue(formDataVo, "支付金额")); @@ -154,7 +155,7 @@ public class U8CFkdSaveAuditNode extends U8CCommonNode{ u8CYfChildren.setDfbbje(dfybje); u8CYfChildren.setDfybje(dfybje); String sl = getStringValue(formDataVo,"税率"); - if(sl != null) { + if(StringUtils.isNotBlank(sl)) { u8CYfChildren.setSl(Double.valueOf((Double.parseDouble(sl) * 100) + "").intValue() + ""); } u8CYfChildren.setDfybsj(getStringValue(formDataVo,"税额")); diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8CInventoryManageDocAddNode.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8CInventoryManageDocAddNode.java index eeed834..f93ffd1 100644 --- a/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8CInventoryManageDocAddNode.java +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8CInventoryManageDocAddNode.java @@ -1,9 +1,11 @@ package com.seeyon.apps.u8c.node; import com.seeyon.aicloud.common.JsonUtils; +import com.seeyon.apps.collaboration.po.ColSummary; import com.seeyon.apps.ext.workflow.vo.FormDataVo; import com.seeyon.apps.ext.workflow.vo.SuperNodeContext; import com.seeyon.apps.u8c.po.inventory.*; +import com.seeyon.apps.u8c.service.FlowTemplateService; import com.seeyon.cap4.form.bean.FormDataMasterBean; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -17,29 +19,43 @@ public class U8CInventoryManageDocAddNode extends U8CCommonNode{ @Autowired private U8CInventoryManageDocAssignNode manageDocAssignNode; + @Autowired + private FlowTemplateService flowTemplateService; @Override public String buildParam(String request, FormDataVo formDataVo) throws Exception { + ColSummary colSummary = formDataVo.getColSummary(); + Long templeteId = colSummary.getTempleteId(); + String subject = flowTemplateService.getTemplateName(templeteId); U8CInventoryManageDocAddParam param = new U8CInventoryManageDocAddParam(); InventoryBillvo billvo = new InventoryBillvo(); InvBillvoParentvo invBillvoParentvo = new InvBillvoParentvo(); billvo.setParentvo(invBillvoParentvo); - invBillvoParentvo.setCurrentcorp("10"); param.setBillvo(billvo); InvBillvoInvbasVo invBillvoInvbasVo = new InvBillvoInvbasVo(); Invmandocvo invmandocvo = new Invmandocvo(); invBillvoParentvo.setInvmanVo(invmandocvo); invBillvoParentvo.setInvbasVo(invBillvoInvbasVo); - invBillvoInvbasVo.setInvcode(getStringValue(formDataVo, "材料系统编码")); - invBillvoInvbasVo.setInvname(getStringValue(formDataVo, "材料名称")); - invBillvoInvbasVo.setInvspec(getStringValue(formDataVo, "规格型号")); - invBillvoInvbasVo.setInvtype(getStringValue(formDataVo, "材料内部编码")); - invBillvoInvbasVo.setPk_corp("10"); + String pk_corp = "10"; + if(subject.startsWith("XTC")) { + pk_corp = "11"; + invBillvoInvbasVo.setInvcode(getStringValue(formDataVo, "材料内部编码")); + invBillvoInvbasVo.setInvname(getStringValue(formDataVo, "材料名称")); + invBillvoInvbasVo.setInvspec(getStringValue(formDataVo, "规格型号")); + invBillvoInvbasVo.setInvpinpai(getStringValue(formDataVo, "品牌")); + }else { + invBillvoInvbasVo.setInvcode(getStringValue(formDataVo, "材料系统编码")); + invBillvoInvbasVo.setInvname(getStringValue(formDataVo, "材料名称")); + invBillvoInvbasVo.setInvspec(getStringValue(formDataVo, "规格型号")); + invBillvoInvbasVo.setInvtype(getStringValue(formDataVo, "材料内部编码")); + } String ctLv1 = getStringValue(formDataVo, "一级材料分类编码"); String ctLv2 = getStringValue(formDataVo, "二级材料分类编码"); String ctLv3 = getStringValue(formDataVo, "三级材料分类编码"); String ctf = StringUtils.isNotBlank(ctLv3) ? ctLv3 : (StringUtils.isNotBlank(ctLv2) ? ctLv2 : ctLv1); invBillvoInvbasVo.setPk_invcl(ctf); + invBillvoParentvo.setCurrentcorp(pk_corp); + invBillvoInvbasVo.setPk_corp(pk_corp); String measdocEnumValue = getEnumValue(formDataVo, "计量单位"); invBillvoInvbasVo.setPk_measdoc((measdocEnumValue.substring(4))); invmandocvo.setWholemanaflag(getStringValue(formDataVo, "材料是否批次管理")); @@ -68,13 +84,23 @@ public class U8CInventoryManageDocAddNode extends U8CCommonNode{ @Override public SuperNodeContext otherAction(String request, FormDataVo formDataVo, FormDataMasterBean formDataMasterBean) throws Exception { + ColSummary colSummary = formDataVo.getColSummary(); + String subject = colSummary.getSubject(); U8CInventoryManageDocAssignParam assignParam = new U8CInventoryManageDocAssignParam(); List invmandocvos = new ArrayList<>(); assignParam.setInvmandocvo(invmandocvos); Invmandocvo invmandocvo = new Invmandocvo(); - invmandocvo.setPk_corp("10"); - invmandocvo.setPk_calbody("ZQC001"); - invmandocvo.setPk_invmandoc(getStringValue(formDataVo, "材料系统编码")); + String pk_corp = "10"; + String pk_calbody = "ZQC001"; + if(subject.startsWith("XTC")) { + pk_corp = "11"; + pk_calbody = "XTC001"; + invmandocvo.setPk_invmandoc(getStringValue(formDataVo, "材料内部编码")); + }else { + invmandocvo.setPk_invmandoc(getStringValue(formDataVo, "材料系统编码")); + } + invmandocvo.setPk_corp(pk_corp); + invmandocvo.setPk_calbody(pk_calbody); invmandocvo.setBilltempletid("BD100812100000000001"); invmandocvos.add(invmandocvo); manageDocAssignNode.subActionProceed(JsonUtils.toJSONString(assignParam)); diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8CMaterialoutSaveSignNode.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8CMaterialoutSaveSignNode.java index c71fc05..0e78ded 100644 --- a/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8CMaterialoutSaveSignNode.java +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8CMaterialoutSaveSignNode.java @@ -1,6 +1,7 @@ package com.seeyon.apps.u8c.node; import com.seeyon.aicloud.common.JsonUtils; +import com.seeyon.apps.collaboration.po.ColSummary; import com.seeyon.apps.ext.workflow.vo.FormDataVo; import com.seeyon.apps.ext.workflow.vo.SuperNodeContext; import com.seeyon.apps.u8c.po.U8cParamsPreHandler; @@ -8,8 +9,9 @@ import com.seeyon.apps.u8c.po.materialout.U8CMaterialoutChildrenVo; import com.seeyon.apps.u8c.po.materialout.U8CMaterialoutGeneralBillVo; import com.seeyon.apps.u8c.po.materialout.U8CMaterialoutParentVo; import com.seeyon.apps.u8c.po.materialout.U8CMaterialoutSaveSignParam; -import com.seeyon.apps.u8c.resp.U8cResponse; +import com.seeyon.apps.u8c.service.FlowTemplateService; import com.seeyon.cap4.form.bean.FormDataMasterBean; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.util.ArrayList; @@ -19,9 +21,22 @@ import java.util.Map; @Component public class U8CMaterialoutSaveSignNode extends U8CCommonNode{ + @Autowired + private FlowTemplateService flowTemplateService; + + private String getCinventoryidFieldName(String subject) { + if("XTC-材料出库申请".equals(subject)) { + return "材料系统编码"; + }else { + return "材料编码"; + } + } + @Override public String buildParam(String request, FormDataVo formDataVo) throws Exception { U8CMaterialoutSaveSignParam param = new U8CMaterialoutSaveSignParam(); + ColSummary colSummary = formDataVo.getColSummary(); + String subject = flowTemplateService.getTemplateName(colSummary.getTempleteId()); U8CMaterialoutGeneralBillVo generalBillVo = new U8CMaterialoutGeneralBillVo(); param.setGeneralBillVO(generalBillVo); List childrenVoList = new ArrayList<>(); @@ -30,12 +45,12 @@ public class U8CMaterialoutSaveSignNode extends U8CCommonNode{ parentVo.setDbilldate(getStringValue(formDataVo,"填报日期")); parentVo.setCwarehouseid(getStringValue(formDataVo,"出库仓库编码")); Map> subFormMap = formDataVo.getSubFormMap(); - U8cParamsPreHandler.preHandleMaterialoutSaveSignBillVoParentvo(parentVo); + U8cParamsPreHandler.preHandleMaterialoutSaveSignBillVoParentvo(subject,parentVo); List subDataList = subFormMap.get("出库材料明细"); String projId = getStringValue(formDataVo,"项目编号"); for (FormDataVo dataVo : subDataList) { U8CMaterialoutChildrenVo childrenVo = new U8CMaterialoutChildrenVo(); - childrenVo.setCinventoryid(getStringValue(dataVo,"材料编码")); + childrenVo.setCinventoryid(getStringValue(dataVo,getCinventoryidFieldName(subject))); childrenVo.setVbatchcode(getStringValue(dataVo,"批次号")); childrenVo.setCprojectid(projId); childrenVo.setNoutnum(getStringValue(dataVo,"本次出库数量")); @@ -74,6 +89,6 @@ public class U8CMaterialoutSaveSignNode extends U8CCommonNode{ @Override public String getNodeName() { - return "库存材料出库单保存即签字"; + return "材料出库-库存材料出库单保存即签字"; } } diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8COtherInSaveSignNode.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8COtherInSaveSignNode.java index f0a00ff..eee835b 100644 --- a/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8COtherInSaveSignNode.java +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8COtherInSaveSignNode.java @@ -7,11 +7,9 @@ import com.seeyon.apps.u8c.po.otherin.U8COtherInSaveSignChildrenVo; import com.seeyon.apps.u8c.po.otherin.U8COtherInSaveSignGeneralBillVO; import com.seeyon.apps.u8c.po.otherin.U8COtherInSaveSignParam; import com.seeyon.apps.u8c.po.otherin.U8COtherInSaveSignParentVo; -import com.seeyon.apps.u8c.resp.U8cResponse; import com.seeyon.apps.u8c.service.U8CProjQueryService; import com.seeyon.apps.u8c.util.JsonUtils; import com.seeyon.cap4.form.bean.FormDataMasterBean; -import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @@ -46,9 +44,9 @@ public class U8COtherInSaveSignNode extends U8CCommonNode{ for (FormDataVo dataVo : subDataList) { U8COtherInSaveSignChildrenVo childrenVo = new U8COtherInSaveSignChildrenVo(); childrenVo.setCinventoryid(getStringValue(dataVo,"材料系统编码")); - if(StringUtils.isNotBlank(pjc) && u8CProjQueryService.existedProj(pjc)) { - childrenVo.setCprojectid(pjc); - } + childrenVo.setCprojectid(pjc); +// if(StringUtils.isNotBlank(pjc) && u8CProjQueryService.existedProj(pjc)) { +// } String isBatchManage = getStringValue(dataVo,"材料是否批次管理"); if("是".equals(isBatchManage)) { childrenVo.setVbatchcode(getStringValue(dataVo,u8CInType.equals("调拨") ? "调入批次号" : "材料批次号")); diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8COtherOutSaveSignNode.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8COtherOutSaveSignNode.java index 7c10394..1e67ad9 100644 --- a/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8COtherOutSaveSignNode.java +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8COtherOutSaveSignNode.java @@ -7,11 +7,9 @@ import com.seeyon.apps.u8c.po.otherout.U8COtherOutSaveSignChildrenVo; import com.seeyon.apps.u8c.po.otherout.U8COtherOutSaveSignGeneralBillVO; import com.seeyon.apps.u8c.po.otherout.U8COtherOutSaveSignParam; import com.seeyon.apps.u8c.po.otherout.U8COtherOutSaveSignParentVo; -import com.seeyon.apps.u8c.resp.U8cResponse; import com.seeyon.apps.u8c.service.U8CProjQueryService; import com.seeyon.apps.u8c.util.JsonUtils; import com.seeyon.cap4.form.bean.FormDataMasterBean; -import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @@ -44,9 +42,9 @@ public class U8COtherOutSaveSignNode extends U8CCommonNode{ for (FormDataVo dataVo : subDataList) { U8COtherOutSaveSignChildrenVo childrenVo = new U8COtherOutSaveSignChildrenVo(); childrenVo.setCinventoryid(getStringValue(dataVo,"材料系统编码")); - if(StringUtils.isNotBlank(pjc) && u8CProjQueryService.existedProj(pjc)) { - childrenVo.setCprojectid(pjc); - } + childrenVo.setCprojectid(pjc); +// if(StringUtils.isNotBlank(pjc) && u8CProjQueryService.existedProj(pjc)) { +// } String isBatchManage = getStringValue(dataVo,"材料是否批次管理"); if("是".equals(isBatchManage)) { childrenVo.setVbatchcode(getStringValue(dataVo,"调出批次号")); diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8CPurchaseinSaveSignNode.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8CPurchaseinSaveSignNode.java index d0a30d1..1653998 100644 --- a/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8CPurchaseinSaveSignNode.java +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8CPurchaseinSaveSignNode.java @@ -1,6 +1,7 @@ package com.seeyon.apps.u8c.node; import com.seeyon.aicloud.common.JsonUtils; +import com.seeyon.apps.collaboration.po.ColSummary; import com.seeyon.apps.ext.workflow.vo.FormDataVo; import com.seeyon.apps.ext.workflow.vo.SuperNodeContext; import com.seeyon.apps.u8c.po.U8cParamsPreHandler; @@ -8,22 +9,31 @@ import com.seeyon.apps.u8c.po.purchasein.U8CPurchaseinChildrenVo; import com.seeyon.apps.u8c.po.purchasein.U8CPurchaseinGeneralBillVo; import com.seeyon.apps.u8c.po.purchasein.U8CPurchaseinParentVo; import com.seeyon.apps.u8c.po.purchasein.U8CPurchaseinSaveSignParam; -import com.seeyon.apps.u8c.po.yfd.U8CYfChildren; -import com.seeyon.apps.u8c.resp.U8cResponse; +import com.seeyon.apps.u8c.service.FlowTemplateService; +import com.seeyon.apps.u8c.service.U8CStorageQueryService; import com.seeyon.cap4.form.bean.FormDataMasterBean; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.util.ArrayList; import java.util.List; import java.util.Map; +import java.util.Optional; @Component public class U8CPurchaseinSaveSignNode extends U8CCommonNode{ + @Autowired + private U8CStorageQueryService u8CStorageQueryService; + @Autowired + private FlowTemplateService flowTemplateService; + @Override public String buildParam(String request, FormDataVo formDataVo) throws Exception { U8CPurchaseinSaveSignParam param = new U8CPurchaseinSaveSignParam();; + ColSummary colSummary = formDataVo.getColSummary(); + String subject = flowTemplateService.getTemplateName(colSummary.getTempleteId()); List billVoList = new ArrayList<>(); param.setGeneralBillVO(billVoList); U8CPurchaseinGeneralBillVo billVo = new U8CPurchaseinGeneralBillVo(); @@ -33,9 +43,10 @@ public class U8CPurchaseinSaveSignNode extends U8CCommonNode{ parentVo.setVbillcode(getStringValue(formDataVo,"单据编号")); parentVo.setDbilldate(getStringValue(formDataVo,"填报日期")); parentVo.setDaccountdate(getStringValue(formDataVo,"填报日期")); - parentVo.setCwarehouseid(getStringValue(formDataVo,"入库仓库编号"));//如果需要传仓库ID的话,则需要根据OA仓库名称,查询U8C仓库ID String projId = getStringValue(formDataVo,"项目编号"); - U8cParamsPreHandler.preHandlePurchaseinSaveSignBillVoParentvo(parentVo); + U8cParamsPreHandler.preHandlePurchaseinSaveSignBillVoParentvo(subject,parentVo); + parentVo.setCwarehouseid(Optional.ofNullable(getStringValue(formDataVo,"入库仓库编号")) + .orElse(u8CStorageQueryService.getStorageCode(parentVo.getPk_corp(),getStringValue(formDataVo,"仓库名称"))));//如果需要传仓库ID的话,则需要根据OA仓库名称,查询U8C仓库ID Map> subFormMap = formDataVo.getSubFormMap(); List subDataList = subFormMap.get("入库材料明细"); for (FormDataVo dataVo : subDataList) { @@ -51,10 +62,8 @@ public class U8CPurchaseinSaveSignNode extends U8CCommonNode{ if("是".equals(isBatchManage)) { childrenVo.setVbatchcode(getStringValue(dataVo,"材料批次号")); } - if(childrenVo.getNictaxrate() != null) { - childrenVo.setNprice(getStringValue(dataVo,"无税单价")); - childrenVo.setNmny(getStringValue(dataVo,"无税金额")); - } + childrenVo.setNprice(getStringValue(dataVo,"无税单价")); + childrenVo.setNmny(getStringValue(dataVo,"无税金额")); childrenVo.setVnotebody(getStringValue(dataVo,"入库备注说明")); childrenVoList.add(childrenVo); } diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8CSkdSaveAuditAddNode.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8CSkdSaveAuditAddNode.java index 2a7cb97..72259a7 100644 --- a/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8CSkdSaveAuditAddNode.java +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8CSkdSaveAuditAddNode.java @@ -1,6 +1,7 @@ package com.seeyon.apps.u8c.node; import com.seeyon.aicloud.common.JsonUtils; +import com.seeyon.apps.collaboration.po.ColSummary; import com.seeyon.apps.ext.workflow.vo.FormDataVo; import com.seeyon.apps.ext.workflow.vo.SuperNodeContext; import com.seeyon.apps.u8c.po.U8cParamsPreHandler; @@ -8,9 +9,10 @@ import com.seeyon.apps.u8c.po.skd.U8CSkdChildren; import com.seeyon.apps.u8c.po.skd.U8CSkdParentVo; import com.seeyon.apps.u8c.po.skd.U8CSkdSaveAuditAddParam; import com.seeyon.apps.u8c.po.skd.U8CSkdBillVo; -import com.seeyon.apps.u8c.resp.U8cResponse; +import com.seeyon.apps.u8c.service.FlowTemplateService; import com.seeyon.apps.u8c.service.U8CKsService; import com.seeyon.cap4.form.bean.FormDataMasterBean; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @@ -23,10 +25,14 @@ public class U8CSkdSaveAuditAddNode extends U8CCommonNode{ @Autowired private U8CKsService u8CKsService; + @Autowired + private FlowTemplateService flowTemplateService; @Override public String buildParam(String request, FormDataVo formDataVo) throws Exception { U8CSkdSaveAuditAddParam param = new U8CSkdSaveAuditAddParam(); + ColSummary colSummary = formDataVo.getColSummary(); + String subject = flowTemplateService.getTemplateName(colSummary.getTempleteId()); List billVoList = new ArrayList<>(); U8CSkdBillVo billVo = new U8CSkdBillVo(); billVoList.add(billVo); @@ -34,7 +40,7 @@ public class U8CSkdSaveAuditAddNode extends U8CCommonNode{ parentVo.setDjbh(getStringValue(formDataVo,"单据编号")); parentVo.setDjrq(getStringValue(formDataVo,"收款日期")); parentVo.setShrq(getStringValue(formDataVo,"收款日期")); - U8cParamsPreHandler.preHandleSkdBillVoParentvo(parentVo); + U8cParamsPreHandler.preHandleSkdBillVoParentvo(subject,parentVo); List childrenList = new ArrayList<>(); billVo.setChildren(childrenList); billVo.setParentVo(parentVo); @@ -42,15 +48,22 @@ public class U8CSkdSaveAuditAddNode extends U8CCommonNode{ cSkdChildren.setZy(getStringValue(formDataVo, "收款摘要")); String szxmText = getStringValue(formDataVo, "收款选项"); cSkdChildren.setSzxmid(getSzxmCode(szxmText)); - if (szxmText.equals("员工还款")) { + if ("员工还款".equals(szxmText)) { cSkdChildren.setHbbm(getKsCode(getStringValue(formDataVo, "对方名称"))); } else { cSkdChildren.setHbbm(getStringValue(formDataVo, "对方编号")); } + if(subject.startsWith("XTC")) { + cSkdChildren.setHbbm(getStringValue(formDataVo, "对方单位编码")); + cSkdChildren.setZy(getStringValue(formDataVo, "备注1")); + cSkdChildren.setDfbbje(getStringValue(formDataVo, "收款金额")); + cSkdChildren.setDfybje(getStringValue(formDataVo, "收款金额")); + }else { + cSkdChildren.setDfbbje(getStringValue(formDataVo, "本次收款金额")); + cSkdChildren.setDfybje(getStringValue(formDataVo, "本次收款金额")); + } cSkdChildren.setJobid(getStringValue(formDataVo, "项目编号")); cSkdChildren.setBfyhzh(getStringValue(formDataVo, "收款银行账号")); - cSkdChildren.setDfbbje(getStringValue(formDataVo, "本次收款金额")); - cSkdChildren.setDfybje(getStringValue(formDataVo, "本次收款金额")); childrenList.add(cSkdChildren); param.setBillvo(billVoList); @@ -58,6 +71,9 @@ public class U8CSkdSaveAuditAddNode extends U8CCommonNode{ } private String getSzxmCode(String text) { + if(StringUtils.isBlank(text)) { + return null; + } if(text.equals("员工还款")) { return "15007"; } diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8CYfDanSaveAuditNode.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8CYfDanSaveAuditNode.java index 6e5acd1..6845c19 100644 --- a/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8CYfDanSaveAuditNode.java +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8CYfDanSaveAuditNode.java @@ -1,6 +1,7 @@ package com.seeyon.apps.u8c.node; import cn.hutool.log.Log; +import com.seeyon.apps.collaboration.po.ColSummary; import com.seeyon.apps.ext.workflow.vo.FormDataVo; import com.seeyon.apps.ext.workflow.vo.SuperNodeContext; import com.seeyon.apps.u8c.constants.U8cConstants; @@ -67,7 +68,7 @@ public class U8CYfDanSaveAuditNode extends U8CCommonNode{ u8CYfChildren.setDfbbje(getStringValue(dataVo, "报销金额")); u8CYfChildren.setDfybje(getStringValue(dataVo, "报销金额")); String sl = getStringValue(dataVo,"税率"); - if(sl != null) { + if(StringUtils.isNotBlank(sl)) { u8CYfChildren.setSl(Double.valueOf((Double.parseDouble(sl) * 100) + "").intValue() + ""); } u8CYfChildren.setDfybsj(getStringValue(dataVo,"税额")); @@ -108,6 +109,8 @@ public class U8CYfDanSaveAuditNode extends U8CCommonNode{ public void execute() throws Exception { U8CFkdSaveAuditAddParam param = new U8CFkdSaveAuditAddParam(); // ...构建参数 + ColSummary colSummary = formDataVo.getColSummary(); + String subject = colSummary.getSubject(); List billVoList = new ArrayList<>(); U8CFkdSaveAuditBillVo billVo = new U8CFkdSaveAuditBillVo(); billVoList.add(billVo); @@ -124,7 +127,7 @@ public class U8CYfDanSaveAuditNode extends U8CCommonNode{ if(member != null) { parentVo.setHbbm(getKsCode(member.getName())); } - U8cParamsPreHandler.preHandleFkdBillVoParentvo(parentVo); + U8cParamsPreHandler.preHandleFkdBillVoParentvo(subject,parentVo); U8CFkdSaveAuditChildren u8CFkdSaveAuditChildren = new U8CFkdSaveAuditChildren(); u8CFkdSaveAuditChildren.setZy(getStringValue(formDataVo, "支付说明")); parentVo.setSzxmid("16010"); diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8CYsDanSaveAuditNode.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8CYsDanSaveAuditNode.java index ba10868..cc8530e 100644 --- a/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8CYsDanSaveAuditNode.java +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8CYsDanSaveAuditNode.java @@ -1,6 +1,7 @@ package com.seeyon.apps.u8c.node; import com.seeyon.aicloud.common.JsonUtils; +import com.seeyon.apps.collaboration.po.ColSummary; import com.seeyon.apps.ext.workflow.vo.FormDataVo; import com.seeyon.apps.ext.workflow.vo.SuperNodeContext; import com.seeyon.apps.u8c.po.*; @@ -9,7 +10,10 @@ import com.seeyon.apps.u8c.po.arap.ArapBillVoChildren; import com.seeyon.apps.u8c.po.arap.ArapBillVoParentvo; import com.seeyon.apps.u8c.po.arap.U8CYsDanSaveAuditAddParam; import com.seeyon.apps.u8c.resp.U8cResponse; +import com.seeyon.apps.u8c.service.FlowTemplateService; import com.seeyon.cap4.form.bean.FormDataMasterBean; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.util.ArrayList; @@ -18,10 +22,14 @@ import java.util.List; @Component public class U8CYsDanSaveAuditNode extends U8CCommonNode{ + @Autowired + private FlowTemplateService flowTemplateService; @Override public String buildParam(String request, FormDataVo formDataVo) throws Exception { U8CYsDanSaveAuditAddParam param = new U8CYsDanSaveAuditAddParam(); + ColSummary colSummary = formDataVo.getColSummary(); + String subject = flowTemplateService.getTemplateName(colSummary.getTempleteId()); List billVoList = new ArrayList<>(); ArapBillVo billVo = new ArapBillVo(); List childrenList = new ArrayList<>(); @@ -38,7 +46,7 @@ public class U8CYsDanSaveAuditNode extends U8CCommonNode{ children.setJfybje(getStringValue(formDataVo,"本次开票金额含税")); children.setJfbbje(getStringValue(formDataVo,"本次开票金额含税")); String sl = getStringValue(formDataVo,"税率"); - if(sl != null) { + if(StringUtils.isNotBlank(sl)) { children.setSl(Double.valueOf((Double.parseDouble(sl) * 100) + "").intValue() + ""); } children.setJfybsj(getStringValue(formDataVo,"税额")); @@ -49,7 +57,7 @@ public class U8CYsDanSaveAuditNode extends U8CCommonNode{ billVo.setParentvo(parentvo); billVoList.add(billVo); param.setBillvo(billVoList); - U8cParamsPreHandler.preHandleArapBillVoParentvo(parentvo); + U8cParamsPreHandler.preHandleArapBillVoParentvo(subject,parentvo); return JsonUtils.toJSONString(param); } diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/node/xtc/U8CXtcFkdSaveAuditNode.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/node/xtc/U8CXtcFkdSaveAuditNode.java new file mode 100644 index 0000000..416aef7 --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/node/xtc/U8CXtcFkdSaveAuditNode.java @@ -0,0 +1,106 @@ +package com.seeyon.apps.u8c.node.xtc; + +import cn.hutool.log.Log; +import com.seeyon.aicloud.common.JsonUtils; +import com.seeyon.apps.collaboration.po.ColSummary; +import com.seeyon.apps.ext.workflow.vo.FieldDataVo; +import com.seeyon.apps.ext.workflow.vo.FormDataVo; +import com.seeyon.apps.ext.workflow.vo.SuperNodeContext; +import com.seeyon.apps.u8c.constants.U8cConstants; +import com.seeyon.apps.u8c.node.U8CCommonNode; +import com.seeyon.apps.u8c.node.U8CYfDanSaveAuditNode; +import com.seeyon.apps.u8c.po.U8cParamsPreHandler; +import com.seeyon.apps.u8c.po.fkd.U8CFkdSaveAuditAddParam; +import com.seeyon.apps.u8c.po.fkd.U8CFkdSaveAuditBillVo; +import com.seeyon.apps.u8c.po.fkd.U8CFkdSaveAuditChildren; +import com.seeyon.apps.u8c.po.fkd.U8CFkdSaveAuditParentVo; +import com.seeyon.apps.u8c.po.yfd.U8CYfBillVo; +import com.seeyon.apps.u8c.po.yfd.U8CYfChildren; +import com.seeyon.apps.u8c.po.yfd.U8CYfDanParentVo; +import com.seeyon.apps.u8c.po.yfd.U8CYfDanSaveAuditAddParam; +import com.seeyon.apps.u8c.resp.U8cResponse; +import com.seeyon.apps.u8c.service.FlowTemplateService; +import com.seeyon.apps.u8c.service.U8CKsService; +import com.seeyon.apps.u8c.util.EnumMapUtils; +import com.seeyon.cap4.form.bean.FormDataMasterBean; +import com.seeyon.ctp.organization.bo.V3xOrgMember; +import com.seeyon.ctp.organization.manager.OrgManager; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.*; + +@Component +public class U8CXtcFkdSaveAuditNode extends U8CCommonNode { + private static final Log log = Log.get(U8CXtcFkdSaveAuditNode.class); + @Autowired + private U8CKsService u8CKsService; + @Autowired + private OrgManager orgManager; + @Autowired + private FlowTemplateService flowTemplateService; + + @Override + public String buildParam(String request, FormDataVo formDataVo) throws Exception { + U8CFkdSaveAuditAddParam param = new U8CFkdSaveAuditAddParam(); + List billVoList = new ArrayList<>(); + U8CFkdSaveAuditBillVo billVo = new U8CFkdSaveAuditBillVo(); + billVoList.add(billVo); + param.setBillvo(billVoList); + List childrenList = new ArrayList(); + U8CFkdSaveAuditParentVo parentVo = new U8CFkdSaveAuditParentVo(); + billVo.setParentvo(parentVo); + billVo.setChildren(childrenList); + parentVo.setDjbh(getStringValue(formDataVo,"单据编号")); + parentVo.setDjrq(getStringValue(formDataVo,"支付日期")); + parentVo.setShrq(getStringValue(formDataVo,"支付日期")); + ColSummary colSummary = formDataVo.getColSummary(); + String subject = flowTemplateService.getTemplateName(colSummary.getTempleteId()); + U8CFkdSaveAuditChildren u8CFkdSaveAuditChildren = new U8CFkdSaveAuditChildren(); + parentVo.setBfyhzh(getStringValue(formDataVo,"支付银行账号")); + parentVo.setHbbm(getStringValue(formDataVo, "乙方单位编号")); + u8CFkdSaveAuditChildren.setZy(getStringValue(formDataVo, "付款事项说明")); + u8CFkdSaveAuditChildren.setSzxmid("15011"); + u8CFkdSaveAuditChildren.setJobid(getStringValue(formDataVo, "项目编号")); + U8cParamsPreHandler.preHandleFkdBillVoParentvo(subject,parentVo); + u8CFkdSaveAuditChildren.setJfbbje(getStringValue(formDataVo, "支付金额")); + u8CFkdSaveAuditChildren.setJfybje(getStringValue(formDataVo, "支付金额")); + childrenList.add(u8CFkdSaveAuditChildren); + return JsonUtils.toJSONString(param); + } + + + @Override + public boolean isForcePushMethod() { + return false; + } + + @Override + public String getMethod() { + return "/u8cloud/api/arap/fk/insertapprove"; + } + + @Override + public boolean hasOtherAction(FormDataVo formDataVo) { + return false; + } + + @Override + public boolean preCheck(FormDataVo formDataVo) throws NoSuchFieldException { + return false; + } + + @Override + public SuperNodeContext otherAction(String request, FormDataVo formDataVo, FormDataMasterBean formDataMasterBean) throws Exception { + return null; + } + + private String getKsCode(String ksName) throws Exception { + return u8CKsService.getKsCode(ksName); + } + + @Override + public String getNodeName() { + return "新天成-付款单保存即审批节点"; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/node/xtc/U8CXtcMaterialBackNode.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/node/xtc/U8CXtcMaterialBackNode.java new file mode 100644 index 0000000..544e791 --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/node/xtc/U8CXtcMaterialBackNode.java @@ -0,0 +1,87 @@ +package com.seeyon.apps.u8c.node.xtc; + +import com.seeyon.aicloud.common.JsonUtils; +import com.seeyon.apps.collaboration.po.ColSummary; +import com.seeyon.apps.ext.workflow.vo.FormDataVo; +import com.seeyon.apps.ext.workflow.vo.SuperNodeContext; +import com.seeyon.apps.u8c.node.U8CCommonNode; +import com.seeyon.apps.u8c.po.U8cParamsPreHandler; +import com.seeyon.apps.u8c.po.materialout.U8CMaterialoutChildrenVo; +import com.seeyon.apps.u8c.po.materialout.U8CMaterialoutGeneralBillVo; +import com.seeyon.apps.u8c.po.materialout.U8CMaterialoutParentVo; +import com.seeyon.apps.u8c.po.materialout.U8CMaterialoutSaveSignParam; +import com.seeyon.apps.u8c.service.FlowTemplateService; +import com.seeyon.cap4.form.bean.FormDataMasterBean; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +@Component +public class U8CXtcMaterialBackNode extends U8CCommonNode { + + @Autowired + private FlowTemplateService flowTemplateService; + + @Override + public String buildParam(String request, FormDataVo formDataVo) throws Exception { + U8CMaterialoutSaveSignParam param = new U8CMaterialoutSaveSignParam(); + ColSummary colSummary = formDataVo.getColSummary(); + Long templeteId = colSummary.getTempleteId(); + String subject = flowTemplateService.getTemplateName(templeteId); + U8CMaterialoutGeneralBillVo generalBillVo = new U8CMaterialoutGeneralBillVo(); + param.setGeneralBillVO(generalBillVo); + List childrenVoList = new ArrayList<>(); + U8CMaterialoutParentVo parentVo = new U8CMaterialoutParentVo(); + parentVo.setVbillcode(getStringValue(formDataVo,"单据编号")); + parentVo.setDbilldate(getStringValue(formDataVo,"填报日期")); + parentVo.setCwarehouseid("XTC-材料出库申请".equals(subject) ? getStringValue(formDataVo,"出库仓库编码") : getStringValue(formDataVo,"退库仓库编码")); + Map> subFormMap = formDataVo.getSubFormMap(); + U8cParamsPreHandler.preHandleMaterialoutSaveSignBillVoParentvo(subject,parentVo); + List subDataList = subFormMap.get(subject.equals("XTC-材料出库申请") ? "出库材料明细" : "退库材料明细"); + String projId = getStringValue(formDataVo,"项目编号"); + for (FormDataVo dataVo : subDataList) { + U8CMaterialoutChildrenVo childrenVo = new U8CMaterialoutChildrenVo(); + childrenVo.setCinventoryid(getStringValue(dataVo,"材料编码")); + childrenVo.setCprojectid(projId); + childrenVo.setNoutnum(subject.equals("XTC-材料出库申请") ? getStringValue(dataVo,"本次出库数量") : getStringValue(dataVo,"本次退库数量")); + childrenVo.setVnotebody(getStringValue(dataVo,"出库备注说明")); + String isBatchManage = getStringValue(dataVo,"材料是否批次管理"); + if("是".equals(isBatchManage)) { + childrenVo.setVbatchcode(subject.equals("XTC-材料出库申请") ? getStringValue(dataVo,"材料批次号") : getStringValue(dataVo,"材料入库批次号")); + } + childrenVoList.add(childrenVo); + } + generalBillVo.setParentvo(parentVo); + generalBillVo.setChildrenvo(childrenVoList); + return JsonUtils.toJSONString(param); + } + + + @Override + public boolean isForcePushMethod() { + return false; + } + + @Override + public String getMethod() { + return "/u8cloud/api/ic/materialout/save/sign"; + } + + @Override + public boolean hasOtherAction(FormDataVo formDataVo) { + return false; + } + + @Override + public SuperNodeContext otherAction(String request, FormDataVo formDataVo, FormDataMasterBean formDataMasterBean) throws Exception { + return null; + } + + @Override + public String getNodeName() { + return "新天成-材料出库-库存材料出库单保存即签字"; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/node/xtc/U8CXtcOrderSaveApproveNode.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/node/xtc/U8CXtcOrderSaveApproveNode.java new file mode 100644 index 0000000..7798255 --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/node/xtc/U8CXtcOrderSaveApproveNode.java @@ -0,0 +1,39 @@ +package com.seeyon.apps.u8c.node.xtc; + +import com.seeyon.apps.ext.workflow.vo.FormDataVo; +import com.seeyon.apps.ext.workflow.vo.SuperNodeContext; +import com.seeyon.apps.u8c.node.U8CCommonNode; +import com.seeyon.cap4.form.bean.FormDataMasterBean; + +public class U8CXtcOrderSaveApproveNode extends U8CCommonNode { + + @Override + public String buildParam(String request, FormDataVo formDataVo) throws Exception { + return ""; + } + + @Override + public boolean isForcePushMethod() { + return false; + } + + @Override + public String getMethod() { + return ""; + } + + @Override + public boolean hasOtherAction(FormDataVo formDataVo) throws Exception { + return false; + } + + @Override + public SuperNodeContext otherAction(String request, FormDataVo formDataVo, FormDataMasterBean formDataMasterBean) throws Exception { + return null; + } + + @Override + public String getNodeName() { + return ""; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/node/xtc/U8CXtcProductinSaveSignNode.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/node/xtc/U8CXtcProductinSaveSignNode.java new file mode 100644 index 0000000..e446af3 --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/node/xtc/U8CXtcProductinSaveSignNode.java @@ -0,0 +1,76 @@ +package com.seeyon.apps.u8c.node.xtc; + +import com.seeyon.apps.ext.workflow.vo.FormDataVo; +import com.seeyon.apps.ext.workflow.vo.SuperNodeContext; +import com.seeyon.apps.u8c.node.U8CCommonNode; +import com.seeyon.apps.u8c.po.productin.U8CProductinSaveSignChildren; +import com.seeyon.apps.u8c.po.productin.U8CProductinSaveSignParam; +import com.seeyon.apps.u8c.po.productin.U8CProductinSaveSignParentVo; +import com.seeyon.apps.u8c.po.productin.U8CProductinSaveSignVo; +import com.seeyon.apps.u8c.util.JsonUtils; +import com.seeyon.cap4.form.bean.FormDataMasterBean; +import org.springframework.stereotype.Component; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +@Component +public class U8CXtcProductinSaveSignNode extends U8CCommonNode { + + @Override + public String buildParam(String request, FormDataVo formDataVo) throws Exception { + U8CProductinSaveSignParam param = new U8CProductinSaveSignParam(); + U8CProductinSaveSignVo vo = new U8CProductinSaveSignVo(); + U8CProductinSaveSignParentVo parentVo = new U8CProductinSaveSignParentVo(); + List childrenList = new ArrayList(); + param.setGeneralBillVO_46(vo); + vo.setChildrenvo(childrenList); + vo.setParentvo(parentVo); + parentVo.setCoperatorid("18727203091");//制单人 + parentVo.setVbillcode(getStringValue(formDataVo,"单据编号"));//单据编号 + parentVo.setDbilldate(getStringValue(formDataVo,"单据日期"));//单据日期 + parentVo.setPk_corp("11"); + parentVo.setCwarehouseid(getStringValue(formDataVo,"仓库编码")); + parentVo.setVnote(getStringValue(formDataVo,"备注"));//备注 + Map> subFormMap = formDataVo.getSubFormMap(); + List subDataList = subFormMap.get("明细表1"); + for (FormDataVo dataVo : subDataList) { + U8CProductinSaveSignChildren children = new U8CProductinSaveSignChildren(); + children.setCrowno(getStringValue(dataVo,"明细表序号")); + children.setCinventoryid(getStringValue(dataVo,"产品编号")); + children.setNinnum(getStringValue(dataVo,"入库数量")); + children.setNprice(getStringValue(dataVo,"单价")); + children.setNmny(getStringValue(dataVo,"金额")); + children.setVbatchcode(getStringValue(dataVo,"批次号")); + children.setVnotebody(getStringValue(dataVo,"明细行备注"));//备注 + childrenList.add(children); + } + return JsonUtils.toJson(param); + } + + @Override + public boolean isForcePushMethod() { + return false; + } + + @Override + public String getMethod() { + return "/u8cloud/api/ic/productin/save/sign"; + } + + @Override + public boolean hasOtherAction(FormDataVo formDataVo) throws Exception { + return false; + } + + @Override + public SuperNodeContext otherAction(String request, FormDataVo formDataVo, FormDataMasterBean formDataMasterBean) throws Exception { + return null; + } + + @Override + public String getNodeName() { + return "新天成-产成品入库保存审批"; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/node/xtc/U8CXtcPurchaseinSaveSignNode.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/node/xtc/U8CXtcPurchaseinSaveSignNode.java new file mode 100644 index 0000000..3142426 --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/node/xtc/U8CXtcPurchaseinSaveSignNode.java @@ -0,0 +1,101 @@ +package com.seeyon.apps.u8c.node.xtc; + +import com.seeyon.aicloud.common.JsonUtils; +import com.seeyon.apps.collaboration.po.ColSummary; +import com.seeyon.apps.ext.workflow.vo.FormDataVo; +import com.seeyon.apps.ext.workflow.vo.SuperNodeContext; +import com.seeyon.apps.u8c.node.U8CCommonNode; +import com.seeyon.apps.u8c.po.U8cParamsPreHandler; +import com.seeyon.apps.u8c.po.purchasein.U8CPurchaseinChildrenVo; +import com.seeyon.apps.u8c.po.purchasein.U8CPurchaseinGeneralBillVo; +import com.seeyon.apps.u8c.po.purchasein.U8CPurchaseinParentVo; +import com.seeyon.apps.u8c.po.purchasein.U8CPurchaseinSaveSignParam; +import com.seeyon.apps.u8c.service.U8CProjQueryService; +import com.seeyon.apps.u8c.service.U8CStorageQueryService; +import com.seeyon.cap4.form.bean.FormDataMasterBean; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.Optional; + + +@Component +public class U8CXtcPurchaseinSaveSignNode extends U8CCommonNode { + + @Autowired + private U8CStorageQueryService u8CStorageQueryService; + @Autowired + private U8CProjQueryService projQueryService; + + @Override + public String buildParam(String request, FormDataVo formDataVo) throws Exception { + U8CPurchaseinSaveSignParam param = new U8CPurchaseinSaveSignParam();; + ColSummary colSummary = formDataVo.getColSummary(); + String subject = colSummary.getSubject(); + List billVoList = new ArrayList<>(); + param.setGeneralBillVO(billVoList); + U8CPurchaseinGeneralBillVo billVo = new U8CPurchaseinGeneralBillVo(); + billVoList.add(billVo); + List childrenVoList = new ArrayList<>(); + U8CPurchaseinParentVo parentVo = new U8CPurchaseinParentVo(); + parentVo.setVbillcode(getStringValue(formDataVo,"单据编号")); + parentVo.setDbilldate(getStringValue(formDataVo,"填报日期")); + parentVo.setDaccountdate(getStringValue(formDataVo,"填报日期")); + String projId = getStringValue(formDataVo,"项目编号"); + U8cParamsPreHandler.preHandlePurchaseinSaveSignBillVoParentvo(subject,parentVo); + parentVo.setCwarehouseid(Optional.ofNullable(getStringValue(formDataVo,"入库仓库")) + .orElse(u8CStorageQueryService.getStorageCode(parentVo.getPk_corp(),getStringValue(formDataVo,"仓库名称"))));//如果需要传仓库ID的话,则需要根据OA仓库名称,查询U8C仓库ID + Map> subFormMap = formDataVo.getSubFormMap(); + List subDataList = subFormMap.get("入库材料明细"); + for (FormDataVo dataVo : subDataList) { + U8CPurchaseinChildrenVo childrenVo = new U8CPurchaseinChildrenVo(); + String clBm = getStringValue(dataVo,"材料系统编码"); + childrenVo.setCinventoryid(clBm); + childrenVo.setNinnum(getStringValue(dataVo,"本次入库数量")); //实入数量 + childrenVo.setNtaxprice(getStringValue(dataVo,"本次入库单价"));//含税单价 + childrenVo.setNtaxmny(getStringValue(dataVo,"本次入库金额"));//含税金额 + childrenVo.setNictaxrate(Double.valueOf((Double.parseDouble(getStringValue(dataVo,"材料税率")) * 100) + "").intValue() + "");//税率 + childrenVo.setNoritaxmny(getStringValue(dataVo,"税额")); + String isBatchManage = getStringValue(dataVo,"材料是否批次管理"); + if("是".equals(isBatchManage)) { + childrenVo.setVbatchcode(getStringValue(dataVo,"材料批次号")); + } + childrenVo.setNprice(getStringValue(dataVo,"无税单价")); + childrenVo.setNmny(getStringValue(dataVo,"无税金额")); + childrenVo.setVnotebody(getStringValue(dataVo,"入库说明")); + childrenVo.setCprojectid(projId);//如果需要传项目ID的话,则需要根据OA项目名称,查询U8C项目ID + childrenVoList.add(childrenVo); + } + billVo.setChildrenvo(childrenVoList); + billVo.setParentvo(parentVo); + return JsonUtils.toJSONString(param); + } + + @Override + public boolean isForcePushMethod() { + return false; + } + + @Override + public String getMethod() { + return "/u8cloud/api/ic/purchasein/save/sign"; + } + + @Override + public boolean hasOtherAction(FormDataVo formDataVo) { + return false; + } + + @Override + public SuperNodeContext otherAction(String request, FormDataVo formDataVo, FormDataMasterBean formDataMasterBean) throws Exception { + return null; + } + + @Override + public String getNodeName() { + return "新天成-材料入库-库存采购入库保存即签字推送节点"; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/node/xtc/U8CXtcSaleOrderInsertNode.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/node/xtc/U8CXtcSaleOrderInsertNode.java new file mode 100644 index 0000000..ddf46ac --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/node/xtc/U8CXtcSaleOrderInsertNode.java @@ -0,0 +1,96 @@ +package com.seeyon.apps.u8c.node.xtc; + +import com.seeyon.aicloud.common.JsonUtils; +import com.seeyon.apps.ext.workflow.vo.FormDataVo; +import com.seeyon.apps.ext.workflow.vo.SuperNodeContext; +import com.seeyon.apps.u8c.node.U8CCommonNode; +import com.seeyon.apps.u8c.po.saleorder.U8CSaleOrderAddChildren; +import com.seeyon.apps.u8c.po.saleorder.U8CSaleOrderAddParam; +import com.seeyon.apps.u8c.po.saleorder.U8CSaleOrderAddParentVo; +import com.seeyon.apps.u8c.po.saleorder.U8CSaleOrderAddVo; +import com.seeyon.cap4.form.bean.FormDataMasterBean; +import com.seeyon.ctp.organization.manager.OrgManager; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +@Component +public class U8CXtcSaleOrderInsertNode extends U8CCommonNode { + + @Autowired + private OrgManager orgManager; + + @Override + public String buildParam(String request, FormDataVo formDataVo) throws Exception { + U8CSaleOrderAddParam param = new U8CSaleOrderAddParam(); + List orderAddVoList = new ArrayList(); + U8CSaleOrderAddVo u8CSaleOrderAddVo = new U8CSaleOrderAddVo(); + param.setSaleorder(orderAddVoList); + U8CSaleOrderAddParentVo parentVo = new U8CSaleOrderAddParentVo(); + List childrenList = new ArrayList(); + u8CSaleOrderAddVo.setParentvo(parentVo); + u8CSaleOrderAddVo.setChildrenvo(childrenList); + orderAddVoList.add(u8CSaleOrderAddVo); + parentVo.setCbiztype("so02"); //业务流程 + parentVo.setVreceiptcode(getStringValue(formDataVo,"单据编号"));//单据编号 + parentVo.setDbilldate(getStringValue(formDataVo,"填报日期"));//单据日期 + parentVo.setCcalbodyid("XTC001");//库存组织 + parentVo.setCcustomerid(getStringValue(formDataVo,"甲方单位编号"));//客户 + parentVo.setCdeptid(getStringValue(formDataVo,"U8C部门编码"));//部门 + parentVo.setCoperatorid("18727203091");//制单人 + parentVo.setCsalecorpid("XTC001");//销售组织 + parentVo.setPk_corp("11"); + Map> subFormMap = formDataVo.getSubFormMap(); + List subDataList = subFormMap.get("产品明细"); + for (FormDataVo dataVo : subDataList) { + U8CSaleOrderAddChildren children = new U8CSaleOrderAddChildren(); + children.setCrowno(getStringValue(dataVo,"序号")); //行号 + children.setCinventoryid(getStringValue(dataVo,"产品编码")); //产品编号 + children.setCbatchid(getStringValue(dataVo,"批次号")); //批次号 + children.setNnumber(getStringValue(dataVo,"数量")); //数量 + children.setNoriginalcurprice(getStringValue(dataVo,"无税单价")); //无税单价 + children.setNoriginalcurmny(getStringValue(dataVo,"无税金额")); //无税金额 + String sl = getStringValue(formDataVo,"税率"); + if(StringUtils.isNotBlank(sl)) { + children.setNtaxrate(Double.valueOf((Double.parseDouble(sl) * 100) + "").intValue() + ""); + } + children.setNoriginalcurtaxmny(getStringValue(dataVo,"税额")); //税额 + children.setNoriginalcurtaxprice(getStringValue(dataVo,"含税单价")); //含税单价 + children.setNoriginalcursummny(getStringValue(dataVo,"含税金额")); //价税合计 + children.setCprojectid(getStringValue(dataVo,"项目编号")); //项目编码 + children.setBlargessflag(getStringValue(dataVo,"是否赠品")); //是否赠品 + children.setFrownote(getStringValue(dataVo,"备注")); //行备注 + childrenList.add(children); + } + return JsonUtils.toJSONString(param); + } + + @Override + public boolean isForcePushMethod() { + return false; + } + + @Override + public String getMethod() { + return "/u8cloud/api/so/saleorder/insert"; + } + + @Override + public boolean hasOtherAction(FormDataVo formDataVo) throws Exception { + return false; + } + + @Override + public SuperNodeContext otherAction(String request, FormDataVo formDataVo, FormDataMasterBean formDataMasterBean) throws Exception { + return null; + } + + @Override + public String getNodeName() { + return "新天成-销售订单新增"; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/node/xtc/U8CXtcSaleOrderSaveAuditNode.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/node/xtc/U8CXtcSaleOrderSaveAuditNode.java new file mode 100644 index 0000000..7d94084 --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/node/xtc/U8CXtcSaleOrderSaveAuditNode.java @@ -0,0 +1,96 @@ +package com.seeyon.apps.u8c.node.xtc; + +import com.seeyon.aicloud.common.JsonUtils; +import com.seeyon.apps.ext.workflow.vo.FormDataVo; +import com.seeyon.apps.ext.workflow.vo.SuperNodeContext; +import com.seeyon.apps.u8c.node.U8CCommonNode; +import com.seeyon.apps.u8c.po.saleorder.U8CSaleOrderAddChildren; +import com.seeyon.apps.u8c.po.saleorder.U8CSaleOrderAddParam; +import com.seeyon.apps.u8c.po.saleorder.U8CSaleOrderAddParentVo; +import com.seeyon.apps.u8c.po.saleorder.U8CSaleOrderAddVo; +import com.seeyon.cap4.form.bean.FormDataMasterBean; +import com.seeyon.ctp.organization.manager.OrgManager; +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +@Component +public class U8CXtcSaleOrderSaveAuditNode extends U8CCommonNode { + + @Autowired + private OrgManager orgManager; + + @Override + public String buildParam(String request, FormDataVo formDataVo) throws Exception { + U8CSaleOrderAddParam param = new U8CSaleOrderAddParam(); + List orderAddVoList = new ArrayList(); + U8CSaleOrderAddVo u8CSaleOrderAddVo = new U8CSaleOrderAddVo(); + param.setSaleorder(orderAddVoList); + U8CSaleOrderAddParentVo parentVo = new U8CSaleOrderAddParentVo(); + List childrenList = new ArrayList(); + u8CSaleOrderAddVo.setParentvo(parentVo); + u8CSaleOrderAddVo.setChildrenvo(childrenList); + orderAddVoList.add(u8CSaleOrderAddVo); + parentVo.setCbiztype("so02"); //业务流程 + parentVo.setVreceiptcode(getStringValue(formDataVo,"单据编号"));//单据编号 + parentVo.setDbilldate(getStringValue(formDataVo,"填报日期"));//单据日期 + parentVo.setCcalbodyid("XTC001");//库存组织 + parentVo.setCcustomerid(getStringValue(formDataVo,"甲方单位编号"));//客户 + parentVo.setCdeptid(getStringValue(formDataVo,"U8C部门编码"));//部门 + parentVo.setCoperatorid("18727203091");//制单人 + parentVo.setCsalecorpid("XTC001");//销售组织 + parentVo.setPk_corp("11"); + Map> subFormMap = formDataVo.getSubFormMap(); + List subDataList = subFormMap.get("产品明细"); + for (FormDataVo dataVo : subDataList) { + U8CSaleOrderAddChildren children = new U8CSaleOrderAddChildren(); + children.setCrowno(getStringValue(dataVo,"序号")); //行号 + children.setCinventoryid(getStringValue(dataVo,"产品编码")); //产品编号 + children.setCbatchid(getStringValue(dataVo,"批次号")); //批次号 + children.setNnumber(getStringValue(dataVo,"数量")); //数量 + children.setNoriginalcurprice(getStringValue(dataVo,"无税单价")); //无税单价 + children.setNoriginalcurmny(getStringValue(dataVo,"无税金额")); //无税金额 + String sl = getStringValue(formDataVo,"税率"); + if(StringUtils.isNotBlank(sl)) { + children.setNtaxrate(Double.valueOf((Double.parseDouble(sl) * 100) + "").intValue() + ""); + } + children.setNoriginalcurtaxmny(getStringValue(dataVo,"税额")); //税额 + children.setNoriginalcurtaxprice(getStringValue(dataVo,"含税单价")); //含税单价 + children.setNoriginalcursummny(getStringValue(dataVo,"含税金额")); //价税合计 + children.setCprojectid(getStringValue(dataVo,"项目编号")); //项目编码 + children.setBlargessflag(getStringValue(dataVo,"是否赠品")); //是否赠品 + children.setFrownote(getStringValue(dataVo,"备注")); //行备注 + childrenList.add(children); + } + return JsonUtils.toJSONString(param); + } + + @Override + public boolean isForcePushMethod() { + return false; + } + + @Override + public String getMethod() { + return "/u8cloud/api/so/saleorder/saveapprove"; + } + + @Override + public boolean hasOtherAction(FormDataVo formDataVo) throws Exception { + return false; + } + + @Override + public SuperNodeContext otherAction(String request, FormDataVo formDataVo, FormDataMasterBean formDataMasterBean) throws Exception { + return null; + } + + @Override + public String getNodeName() { + return "新天成-销售订单保存审批"; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/node/xtc/U8CXtcSaleOutSaveNode.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/node/xtc/U8CXtcSaleOutSaveNode.java new file mode 100644 index 0000000..1c16001 --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/node/xtc/U8CXtcSaleOutSaveNode.java @@ -0,0 +1,84 @@ +package com.seeyon.apps.u8c.node.xtc; + +import com.seeyon.aicloud.common.JsonUtils; +import com.seeyon.apps.ext.workflow.vo.FormDataVo; +import com.seeyon.apps.ext.workflow.vo.SuperNodeContext; +import com.seeyon.apps.u8c.node.U8CCommonNode; +import com.seeyon.apps.u8c.po.saleout.U8CSaleOutSaveSignChildren; +import com.seeyon.apps.u8c.po.saleout.U8CSaleOutSaveSignParam; +import com.seeyon.apps.u8c.po.saleout.U8CSaleOutSaveSignParentVo; +import com.seeyon.apps.u8c.po.saleout.U8CSaleOutSaveSignVo; +import com.seeyon.cap4.form.bean.FormDataMasterBean; +import com.seeyon.ctp.organization.manager.OrgManager; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +@Component +public class U8CXtcSaleOutSaveNode extends U8CCommonNode { + + @Autowired + private OrgManager orgManager; + + @Override + public String buildParam(String request, FormDataVo formDataVo) throws Exception { + U8CSaleOutSaveSignParam param = new U8CSaleOutSaveSignParam(); + U8CSaleOutSaveSignVo vo = new U8CSaleOutSaveSignVo(); + param.setGeneralBillVO(vo); + U8CSaleOutSaveSignParentVo parentVo = new U8CSaleOutSaveSignParentVo(); + List childrenList = new ArrayList(); + vo.setParentvo(parentVo); + vo.setChildrenvo(childrenList); + parentVo.setCbiztype("so02"); //业务流程 + parentVo.setDbilldate(getStringValue(formDataVo,"填报日期"));//单据日期 + parentVo.setCcustomerid(getStringValue(formDataVo,"收货单位编号"));//客户 + parentVo.setCoperatorid("18727203091");//制单人 + parentVo.setPk_calbody("XTC001");//销售组织 + parentVo.setPk_corp("11"); + parentVo.setCwarehouseid(getStringValue(formDataVo,"仓库编号"));//仓库 + Map> subFormMap = formDataVo.getSubFormMap(); + List subDataList = subFormMap.get("明细表1"); + for (FormDataVo dataVo : subDataList) { + U8CSaleOutSaveSignChildren children = new U8CSaleOutSaveSignChildren(); + children.setCsourcetype("30"); + children.setVsourcebillcode(getStringValue(dataVo,"来源单据号")); //来源单据号 + children.setVsourcerowno(getStringValue(dataVo,"来源单据行号")); //来源单据行号 + children.setNoutnum(getStringValue(dataVo,"数量")); //实出数量 + children.setNshouldoutnum(getStringValue(dataVo,"应出数量")); //应出数量 + children.setCprojectid(getStringValue(formDataVo,"项目编号")); //项目 + children.setCinventoryid(getStringValue(dataVo,"货物编号")); //存货ID + children.setVbatchcode(getStringValue(dataVo,"批次号")); //批次号 + children.setVnotebody(getStringValue(dataVo,"明细表备注")); //备注 + childrenList.add(children); + } + return JsonUtils.toJSONString(param); + } + + @Override + public boolean isForcePushMethod() { + return false; + } + + @Override + public String getMethod() { + return "/u8cloud/api/ic/saleout/save/sign"; + } + + @Override + public boolean hasOtherAction(FormDataVo formDataVo) throws Exception { + return false; + } + + @Override + public SuperNodeContext otherAction(String request, FormDataVo formDataVo, FormDataMasterBean formDataMasterBean) throws Exception { + return null; + } + + @Override + public String getNodeName() { + return "新天成-库存销售出库保存审批"; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/node/xtc/U8CXtcYfDanSaveAuditNode.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/node/xtc/U8CXtcYfDanSaveAuditNode.java new file mode 100644 index 0000000..1398fcc --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/node/xtc/U8CXtcYfDanSaveAuditNode.java @@ -0,0 +1,119 @@ +package com.seeyon.apps.u8c.node.xtc; + +import cn.hutool.log.Log; +import com.seeyon.apps.collaboration.po.ColSummary; +import com.seeyon.apps.ext.workflow.vo.FormDataVo; +import com.seeyon.apps.ext.workflow.vo.SuperNodeContext; +import com.seeyon.apps.u8c.constants.U8cConstants; +import com.seeyon.apps.u8c.node.U8CCommonNode; +import com.seeyon.apps.u8c.node.U8CFkdSaveAuditNode; +import com.seeyon.apps.u8c.po.U8cParamsPreHandler; +import com.seeyon.apps.u8c.po.fkd.U8CFkdSaveAuditAddParam; +import com.seeyon.apps.u8c.po.fkd.U8CFkdSaveAuditBillVo; +import com.seeyon.apps.u8c.po.fkd.U8CFkdSaveAuditChildren; +import com.seeyon.apps.u8c.po.fkd.U8CFkdSaveAuditParentVo; +import com.seeyon.apps.u8c.po.yfd.U8CYfBillVo; +import com.seeyon.apps.u8c.po.yfd.U8CYfChildren; +import com.seeyon.apps.u8c.po.yfd.U8CYfDanParentVo; +import com.seeyon.apps.u8c.po.yfd.U8CYfDanSaveAuditAddParam; +import com.seeyon.apps.u8c.resp.U8cResponse; +import com.seeyon.apps.u8c.service.FlowTemplateService; +import com.seeyon.apps.u8c.service.U8CKsService; +import com.seeyon.apps.u8c.util.EnumMapUtils; +import com.seeyon.apps.u8c.util.JsonUtils; +import com.seeyon.cap4.form.bean.FormDataMasterBean; +import com.seeyon.ctp.organization.bo.V3xOrgMember; +import com.seeyon.ctp.organization.manager.OrgManager; +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.*; + +@Component +public class U8CXtcYfDanSaveAuditNode extends U8CCommonNode { + + private static final Log log = Log.get(U8CXtcYfDanSaveAuditNode.class); + @Autowired + private U8CKsService u8CKsService; + @Autowired + private U8CFkdSaveAuditNode u8CFkdSaveAuditNode; + @Autowired + private OrgManager orgManager; + + @Override + public String buildParam(String request, FormDataVo formDataVo) throws Exception { + U8CYfDanSaveAuditAddParam param = new U8CYfDanSaveAuditAddParam(); + List billVoList = new ArrayList<>(); + param.setBillvo(billVoList); + U8CYfBillVo billVo = new U8CYfBillVo(); + billVoList.add(billVo); + List u8CYfChildrenList = new ArrayList<>(); + U8CYfDanParentVo u8CYfDanParentVo = new U8CYfDanParentVo(); + billVo.setChildren(u8CYfChildrenList); + billVo.setParentvo(u8CYfDanParentVo); + u8CYfDanParentVo.setDjbh(getStringValue(formDataVo, "单据编号")); + u8CYfDanParentVo.setDjrq(getStringValue(formDataVo, "填报日期")); + u8CYfDanParentVo.setShrq(getStringValue(formDataVo, "填报日期")); + Long ksOaId = Long.valueOf(getDbValue(formDataVo, "填报人员")); + V3xOrgMember member = orgManager.getMemberById(ksOaId); + if(member != null) { + u8CYfDanParentVo.setHbbm(getKsCode(member.getName())); + } + U8cParamsPreHandler.preHandleYfdBillVoParentvo(u8CYfDanParentVo); + u8CYfDanParentVo.setDwbm("11"); + u8CYfDanParentVo.setHbbm(getStringValue(formDataVo, "对方单位编码")); + + U8CYfChildren u8CYfChildren = new U8CYfChildren(); + u8CYfChildren.setZy(getStringValue(formDataVo, "备注")); + u8CYfChildren.setSzxmid("15010"); + u8CYfChildren.setJobid(getStringValue(formDataVo, "项目编号")); + u8CYfChildren.setDfbbje(getStringValue(formDataVo, "收票金额")); + u8CYfChildren.setDfybje(getStringValue(formDataVo, "收票金额")); + String sl = getStringValue(formDataVo, "税率"); + if (StringUtils.isNotBlank(sl)) { + u8CYfChildren.setSl(Double.valueOf((Double.parseDouble(sl) * 100) + "").intValue() + ""); + } + u8CYfChildren.setDfybsj(getStringValue(formDataVo, "税额")); + u8CYfChildren.setDfybwsje(getStringValue(formDataVo, "无税金额")); + u8CYfChildrenList.add(u8CYfChildren); + if(u8CYfChildrenList.size() == 0 ) { + return null; + } + return JsonUtils.toJson(param); + } + + @Override + public boolean isForcePushMethod() { + return false; + } + + @Override + public String getMethod() { + return "/u8cloud/api/arap/yf/insertapprove"; + } + + @Override + public boolean hasOtherAction(FormDataVo formDataVo) throws Exception { + return false; + } + + @Override + public SuperNodeContext otherAction(String request, FormDataVo formDataVo, FormDataMasterBean formDataMasterBean) throws Exception { + return null; + } + + @Override + public String getNodeName() { + return "新天成-应付单保存即审批节点"; + } + + private String getKsCode(String ksName) throws Exception { + return u8CKsService.getKsCode(ksName); + } + + @Override + public boolean preCheck(FormDataVo formDataVo) throws NoSuchFieldException { + return false; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/po/U8cParamsPreHandler.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/U8cParamsPreHandler.java index e2b8afa..da19888 100644 --- a/apps-customize/src/main/java/com/seeyon/apps/u8c/po/U8cParamsPreHandler.java +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/U8cParamsPreHandler.java @@ -50,9 +50,13 @@ public class U8cParamsPreHandler { docParentvo.setCreator("0001F8100000000000BI"); } - public static void preHandleArapBillVoParentvo(ArapBillVoParentvo arapParentvo){ + public static void preHandleArapBillVoParentvo(String subject,ArapBillVoParentvo arapParentvo){ + if(subject.startsWith("XTC")) { + arapParentvo.setDwbm("11"); + }else{ + arapParentvo.setDwbm("10"); + } arapParentvo.setDjlxbm("D0"); - arapParentvo.setDwbm("10"); arapParentvo.setPj_jsfs("20"); arapParentvo.setWldx("0"); arapParentvo.setBzbm("CNY"); @@ -73,9 +77,13 @@ public class U8cParamsPreHandler { parentVo.setCdispatcherid("2002"); } - public static void preHandleSkdBillVoParentvo(U8CSkdParentVo skdParentvo){ + public static void preHandleSkdBillVoParentvo(String subject,U8CSkdParentVo skdParentvo){ + if(subject.startsWith("XTC")) { + skdParentvo.setDwbm("11"); + }else { + skdParentvo.setDwbm("10"); + } skdParentvo.setDjlxbm("D2"); - skdParentvo.setDwbm("10"); skdParentvo.setPj_jsfs("20"); skdParentvo.setWldx("0"); skdParentvo.setBzbm("CNY"); @@ -93,9 +101,13 @@ public class U8cParamsPreHandler { u8CYfDanParentVo.setShr("13986834633"); } - public static void preHandleFkdBillVoParentvo(U8CFkdSaveAuditParentVo u8CFkdSaveAuditParentVo){ + public static void preHandleFkdBillVoParentvo(String subject,U8CFkdSaveAuditParentVo u8CFkdSaveAuditParentVo){ u8CFkdSaveAuditParentVo.setDjlxbm("D3"); - u8CFkdSaveAuditParentVo.setDwbm("10"); + if(subject.startsWith("XTC")) { + u8CFkdSaveAuditParentVo.setDwbm("11"); + }else { + u8CFkdSaveAuditParentVo.setDwbm("10"); + } u8CFkdSaveAuditParentVo.setPj_jsfs("20"); u8CFkdSaveAuditParentVo.setWldx("1"); u8CFkdSaveAuditParentVo.setBzbm("CNY"); @@ -113,18 +125,33 @@ public class U8cParamsPreHandler { u8CFkdSaveAuditParentVo.setShr("13997704117"); } - public static void preHandlePurchaseinSaveSignBillVoParentvo(U8CPurchaseinParentVo parentVo){ - parentVo.setPk_corp("10"); - parentVo.setCoperatorid("18827263320"); - parentVo.setCbiztype("c001"); - parentVo.setCdispatcherid("1001"); - parentVo.setPk_calbody("ZQC001"); + public static void preHandlePurchaseinSaveSignBillVoParentvo(String subject,U8CPurchaseinParentVo parentVo){ + if(subject.startsWith("XTC")) { + parentVo.setPk_corp("11"); + parentVo.setCoperatorid("18827263320"); + parentVo.setCdispatcherid("1001"); + parentVo.setPk_calbody("XTC001"); + parentVo.setCbiztype("c001"); + }else { + parentVo.setPk_corp("10"); + parentVo.setCoperatorid("18827263320"); + parentVo.setCbiztype("c001"); + parentVo.setCdispatcherid("1001"); + parentVo.setPk_calbody("ZQC001"); + } } - public static void preHandleMaterialoutSaveSignBillVoParentvo(U8CMaterialoutParentVo parentVo){ - parentVo.setPk_corp("10"); - parentVo.setCoperatorid("18827263320"); - parentVo.setCdispatcherid("2003"); - parentVo.setPk_calbody("ZQC001"); + public static void preHandleMaterialoutSaveSignBillVoParentvo(String subject,U8CMaterialoutParentVo parentVo){ + if(subject.startsWith("XTC")) { + parentVo.setPk_corp("11"); + parentVo.setCoperatorid("18827263320"); + parentVo.setCdispatcherid("2003"); + parentVo.setPk_calbody("XTC001"); + }else { + parentVo.setPk_corp("10"); + parentVo.setCoperatorid("18827263320"); + parentVo.setCdispatcherid("2003"); + parentVo.setPk_calbody("ZQC001"); + } } } diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/po/inventory/InvBillvoInvbasVo.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/inventory/InvBillvoInvbasVo.java index c49cf02..40c6fe8 100644 --- a/apps-customize/src/main/java/com/seeyon/apps/u8c/po/inventory/InvBillvoInvbasVo.java +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/inventory/InvBillvoInvbasVo.java @@ -10,6 +10,7 @@ public class InvBillvoInvbasVo { private String pk_invcl; //存货分类 private String pk_measdoc; //主计量单位 private String pk_taxitems; //税目 + private String invpinpai;//品牌 public String getInvcode() { return invcode; @@ -75,4 +76,11 @@ public class InvBillvoInvbasVo { this.pk_taxitems = pk_taxitems; } + public String getInvpinpai() { + return invpinpai; + } + + public void setInvpinpai(String invpinpai) { + this.invpinpai = invpinpai; + } } diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/po/ordersaveapprove/U8COrderSaveApproveChildrenVo.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/ordersaveapprove/U8COrderSaveApproveChildrenVo.java new file mode 100644 index 0000000..2b6e904 --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/ordersaveapprove/U8COrderSaveApproveChildrenVo.java @@ -0,0 +1,4 @@ +package com.seeyon.apps.u8c.po.ordersaveapprove; + +public class U8COrderSaveApproveChildrenVo { +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/po/ordersaveapprove/U8COrderSaveApproveParentVo.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/ordersaveapprove/U8COrderSaveApproveParentVo.java new file mode 100644 index 0000000..819da8f --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/ordersaveapprove/U8COrderSaveApproveParentVo.java @@ -0,0 +1,4 @@ +package com.seeyon.apps.u8c.po.ordersaveapprove; + +public class U8COrderSaveApproveParentVo { +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/po/ordersaveapprove/U8CPuorderVo.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/ordersaveapprove/U8CPuorderVo.java new file mode 100644 index 0000000..4afd4db --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/ordersaveapprove/U8CPuorderVo.java @@ -0,0 +1,24 @@ +package com.seeyon.apps.u8c.po.ordersaveapprove; + +import java.util.List; + +public class U8CPuorderVo { + private U8COrderSaveApproveParentVo parentvo; + private List childrenvo; + + public U8COrderSaveApproveParentVo getParentvo() { + return parentvo; + } + + public void setParentvo(U8COrderSaveApproveParentVo parentvo) { + this.parentvo = parentvo; + } + + public List getChildrenvo() { + return childrenvo; + } + + public void setChildrenvo(List childrenvo) { + this.childrenvo = childrenvo; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/po/productin/U8CProductinSaveSignChildren.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/productin/U8CProductinSaveSignChildren.java new file mode 100644 index 0000000..5fcc00c --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/productin/U8CProductinSaveSignChildren.java @@ -0,0 +1,68 @@ +package com.seeyon.apps.u8c.po.productin; + +public class U8CProductinSaveSignChildren { + + private String crowno;//行号 + private String cinventoryid;//行号 + private String ninnum;//数量 + private String vbatchcode;//批次号 + private String nprice;//单价 + private String nmny;//金额 + private String vnotebody;//行备注 + + public String getCrowno() { + return crowno; + } + + public void setCrowno(String crowno) { + this.crowno = crowno; + } + + public String getCinventoryid() { + return cinventoryid; + } + + public void setCinventoryid(String cinventoryid) { + this.cinventoryid = cinventoryid; + } + + public String getNinnum() { + return ninnum; + } + + public void setNinnum(String ninnum) { + this.ninnum = ninnum; + } + + public String getVbatchcode() { + return vbatchcode; + } + + public void setVbatchcode(String vbatchcode) { + this.vbatchcode = vbatchcode; + } + + public String getNprice() { + return nprice; + } + + public void setNprice(String nprice) { + this.nprice = nprice; + } + + public String getNmny() { + return nmny; + } + + public void setNmny(String nmny) { + this.nmny = nmny; + } + + public String getVnotebody() { + return vnotebody; + } + + public void setVnotebody(String vnotebody) { + this.vnotebody = vnotebody; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/po/productin/U8CProductinSaveSignParam.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/productin/U8CProductinSaveSignParam.java new file mode 100644 index 0000000..ae84d0a --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/productin/U8CProductinSaveSignParam.java @@ -0,0 +1,13 @@ +package com.seeyon.apps.u8c.po.productin; + +public class U8CProductinSaveSignParam { + private U8CProductinSaveSignVo GeneralBillVO_46; + + public U8CProductinSaveSignVo getGeneralBillVO_46() { + return GeneralBillVO_46; + } + + public void setGeneralBillVO_46(U8CProductinSaveSignVo generalBillVO_46) { + GeneralBillVO_46 = generalBillVO_46; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/po/productin/U8CProductinSaveSignParentVo.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/productin/U8CProductinSaveSignParentVo.java new file mode 100644 index 0000000..bafeade --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/productin/U8CProductinSaveSignParentVo.java @@ -0,0 +1,58 @@ +package com.seeyon.apps.u8c.po.productin; + +public class U8CProductinSaveSignParentVo { + private String coperatorid;//制单人 + private String vbillcode;//单据编号 + private String dbilldate;//单据日期 + private String cwarehouseid;//仓库ID + private String pk_corp; //公司 + private String vnote;//备注 + + public String getCoperatorid() { + return coperatorid; + } + + public void setCoperatorid(String coperatorid) { + this.coperatorid = coperatorid; + } + + public String getVbillcode() { + return vbillcode; + } + + public void setVbillcode(String vbillcode) { + this.vbillcode = vbillcode; + } + + public String getDbilldate() { + return dbilldate; + } + + public void setDbilldate(String dbilldate) { + this.dbilldate = dbilldate; + } + + public String getCwarehouseid() { + return cwarehouseid; + } + + public void setCwarehouseid(String cwarehouseid) { + this.cwarehouseid = cwarehouseid; + } + + public String getPk_corp() { + return pk_corp; + } + + public void setPk_corp(String pk_corp) { + this.pk_corp = pk_corp; + } + + public String getVnote() { + return vnote; + } + + public void setVnote(String vnote) { + this.vnote = vnote; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/po/productin/U8CProductinSaveSignVo.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/productin/U8CProductinSaveSignVo.java new file mode 100644 index 0000000..76add6f --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/productin/U8CProductinSaveSignVo.java @@ -0,0 +1,24 @@ +package com.seeyon.apps.u8c.po.productin; + +import java.util.List; + +public class U8CProductinSaveSignVo { + private U8CProductinSaveSignParentVo parentvo; + private List childrenvo; + + public U8CProductinSaveSignParentVo getParentvo() { + return parentvo; + } + + public void setParentvo(U8CProductinSaveSignParentVo parentvo) { + this.parentvo = parentvo; + } + + public List getChildrenvo() { + return childrenvo; + } + + public void setChildrenvo(List childrenvo) { + this.childrenvo = childrenvo; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/po/purchasein/U8CPurchaseinChildrenVo.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/purchasein/U8CPurchaseinChildrenVo.java index 857b352..3ea3097 100644 --- a/apps-customize/src/main/java/com/seeyon/apps/u8c/po/purchasein/U8CPurchaseinChildrenVo.java +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/purchasein/U8CPurchaseinChildrenVo.java @@ -11,6 +11,7 @@ public class U8CPurchaseinChildrenVo { private String nictaxrate;//税率 private String nprice;//单价 private String nmny;//金额 + private String noritaxmny; //税额 private String vnotebody;//备注 public String getCinventoryid() { @@ -92,4 +93,12 @@ public class U8CPurchaseinChildrenVo { public void setVnotebody(String vnotebody) { this.vnotebody = vnotebody; } + + public String getNoritaxmny() { + return noritaxmny; + } + + public void setNoritaxmny(String noritaxmny) { + this.noritaxmny = noritaxmny; + } } diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/po/saleorder/U8CSaleOrderAddChildren.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/saleorder/U8CSaleOrderAddChildren.java new file mode 100644 index 0000000..da703db --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/saleorder/U8CSaleOrderAddChildren.java @@ -0,0 +1,122 @@ +package com.seeyon.apps.u8c.po.saleorder; + +public class U8CSaleOrderAddChildren { + + private String crowno;//行号 + private String cinventoryid;//存货 + private String cbatchid;//批次号 + private String nnumber;//数量 + private String noriginalcurprice;//无税单价 + private String noriginalcurmny;//无税金额 + private String ntaxrate;//税率 + private String noriginalcurtaxmny;//税额 + private String noriginalcurtaxprice;//含税单价 + private String noriginalcursummny; //价税合计 + private String cprojectid;//项目 + private String blargessflag;//是否赠品 + private String frownote; //行备注 + + public String getCrowno() { + return crowno; + } + + public void setCrowno(String crowno) { + this.crowno = crowno; + } + + public String getCinventoryid() { + return cinventoryid; + } + + public void setCinventoryid(String cinventoryid) { + this.cinventoryid = cinventoryid; + } + + public String getNnumber() { + return nnumber; + } + + public void setNnumber(String nnumber) { + this.nnumber = nnumber; + } + + public String getNoriginalcurprice() { + return noriginalcurprice; + } + + public void setNoriginalcurprice(String noriginalcurprice) { + this.noriginalcurprice = noriginalcurprice; + } + + public String getNoriginalcurmny() { + return noriginalcurmny; + } + + public void setNoriginalcurmny(String noriginalcurmny) { + this.noriginalcurmny = noriginalcurmny; + } + + public String getNtaxrate() { + return ntaxrate; + } + + public void setNtaxrate(String ntaxrate) { + this.ntaxrate = ntaxrate; + } + + public String getNoriginalcurtaxmny() { + return noriginalcurtaxmny; + } + + public void setNoriginalcurtaxmny(String noriginalcurtaxmny) { + this.noriginalcurtaxmny = noriginalcurtaxmny; + } + + public String getNoriginalcurtaxprice() { + return noriginalcurtaxprice; + } + + public void setNoriginalcurtaxprice(String noriginalcurtaxprice) { + this.noriginalcurtaxprice = noriginalcurtaxprice; + } + + public String getNoriginalcursummny() { + return noriginalcursummny; + } + + public void setNoriginalcursummny(String noriginalcursummny) { + this.noriginalcursummny = noriginalcursummny; + } + + public String getBlargessflag() { + return blargessflag; + } + + public void setBlargessflag(String blargessflag) { + this.blargessflag = blargessflag; + } + + public String getFrownote() { + return frownote; + } + + public void setFrownote(String frownote) { + this.frownote = frownote; + } + + public String getCbatchid() { + return cbatchid; + } + + public void setCbatchid(String cbatchid) { + this.cbatchid = cbatchid; + } + + public String getCprojectid() { + return cprojectid; + } + + public void setCprojectid(String cprojectid) { + this.cprojectid = cprojectid; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/po/saleorder/U8CSaleOrderAddParam.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/saleorder/U8CSaleOrderAddParam.java new file mode 100644 index 0000000..f716d7f --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/saleorder/U8CSaleOrderAddParam.java @@ -0,0 +1,15 @@ +package com.seeyon.apps.u8c.po.saleorder; + +import java.util.List; + +public class U8CSaleOrderAddParam { + private List saleorder; + + public List getSaleorder() { + return saleorder; + } + + public void setSaleorder(List saleorder) { + this.saleorder = saleorder; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/po/saleorder/U8CSaleOrderAddParentVo.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/saleorder/U8CSaleOrderAddParentVo.java new file mode 100644 index 0000000..ad671fb --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/saleorder/U8CSaleOrderAddParentVo.java @@ -0,0 +1,95 @@ +package com.seeyon.apps.u8c.po.saleorder; + +public class U8CSaleOrderAddParentVo { + + private String cbiztype; //业务流程 + private String vreceiptcode; //单据编号 + private String dbilldate; //单据日期 + private String ccalbodyid; //库存组织 + private String ccustomerid; //客户 + private String cdeptid; //部门 + private String coperatorid; //制单人 + private String csalecorpid;//销售组织 + private String pk_corp; //公司 + private String vnote;//备注 + + public String getCbiztype() { + return cbiztype; + } + + public void setCbiztype(String cbiztype) { + this.cbiztype = cbiztype; + } + + public String getVreceiptcode() { + return vreceiptcode; + } + + public void setVreceiptcode(String vreceiptcode) { + this.vreceiptcode = vreceiptcode; + } + + public String getDbilldate() { + return dbilldate; + } + + public void setDbilldate(String dbilldate) { + this.dbilldate = dbilldate; + } + + public String getCcalbodyid() { + return ccalbodyid; + } + + public void setCcalbodyid(String ccalbodyid) { + this.ccalbodyid = ccalbodyid; + } + + public String getCcustomerid() { + return ccustomerid; + } + + public void setCcustomerid(String ccustomerid) { + this.ccustomerid = ccustomerid; + } + + public String getCdeptid() { + return cdeptid; + } + + public void setCdeptid(String cdeptid) { + this.cdeptid = cdeptid; + } + + public String getCoperatorid() { + return coperatorid; + } + + public void setCoperatorid(String coperatorid) { + this.coperatorid = coperatorid; + } + + public String getCsalecorpid() { + return csalecorpid; + } + + public void setCsalecorpid(String csalecorpid) { + this.csalecorpid = csalecorpid; + } + + public String getPk_corp() { + return pk_corp; + } + + public void setPk_corp(String pk_corp) { + this.pk_corp = pk_corp; + } + + public String getVnote() { + return vnote; + } + + public void setVnote(String vnote) { + this.vnote = vnote; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/po/saleorder/U8CSaleOrderAddVo.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/saleorder/U8CSaleOrderAddVo.java new file mode 100644 index 0000000..9a91a2c --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/saleorder/U8CSaleOrderAddVo.java @@ -0,0 +1,24 @@ +package com.seeyon.apps.u8c.po.saleorder; + +import java.util.List; + +public class U8CSaleOrderAddVo { + private List childrenvo; + private U8CSaleOrderAddParentVo parentvo; + + public List getChildrenvo() { + return childrenvo; + } + + public void setChildrenvo(List childrenvo) { + this.childrenvo = childrenvo; + } + + public U8CSaleOrderAddParentVo getParentvo() { + return parentvo; + } + + public void setParentvo(U8CSaleOrderAddParentVo parentvo) { + this.parentvo = parentvo; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/po/saleout/U8CSaleOutSaveSignChildren.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/saleout/U8CSaleOutSaveSignChildren.java new file mode 100644 index 0000000..2637d96 --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/saleout/U8CSaleOutSaveSignChildren.java @@ -0,0 +1,86 @@ +package com.seeyon.apps.u8c.po.saleout; + +public class U8CSaleOutSaveSignChildren { + + private String vsourcebillcode;//来源单据号 + private String vsourcerowno;//来源单据行号 + private String csourcetype;//来源单据类型 + private String noutnum;//实出数量 + private String nshouldoutnum;//应出数量 + private String cprojectid;//项目 + private String cinventoryid;//存货ID + private String vbatchcode;//批次号 + private String vnotebody; //行备注 + + public String getVsourcebillcode() { + return vsourcebillcode; + } + + public void setVsourcebillcode(String vsourcebillcode) { + this.vsourcebillcode = vsourcebillcode; + } + + public String getVsourcerowno() { + return vsourcerowno; + } + + public void setVsourcerowno(String vsourcerowno) { + this.vsourcerowno = vsourcerowno; + } + + public String getCsourcetype() { + return csourcetype; + } + + public void setCsourcetype(String csourcetype) { + this.csourcetype = csourcetype; + } + + public String getNoutnum() { + return noutnum; + } + + public void setNoutnum(String noutnum) { + this.noutnum = noutnum; + } + + public String getNshouldoutnum() { + return nshouldoutnum; + } + + public void setNshouldoutnum(String nshouldoutnum) { + this.nshouldoutnum = nshouldoutnum; + } + + public String getCprojectid() { + return cprojectid; + } + + public void setCprojectid(String cprojectid) { + this.cprojectid = cprojectid; + } + + public String getVnotebody() { + return vnotebody; + } + + public void setVnotebody(String vnotebody) { + this.vnotebody = vnotebody; + } + + public String getCinventoryid() { + return cinventoryid; + } + + public void setCinventoryid(String cinventoryid) { + this.cinventoryid = cinventoryid; + } + + public String getVbatchcode() { + return vbatchcode; + } + + public void setVbatchcode(String vbatchcode) { + this.vbatchcode = vbatchcode; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/po/saleout/U8CSaleOutSaveSignParam.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/saleout/U8CSaleOutSaveSignParam.java new file mode 100644 index 0000000..8b5a948 --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/saleout/U8CSaleOutSaveSignParam.java @@ -0,0 +1,14 @@ +package com.seeyon.apps.u8c.po.saleout; + + +public class U8CSaleOutSaveSignParam { + private U8CSaleOutSaveSignVo GeneralBillVO; + + public U8CSaleOutSaveSignVo getGeneralBillVO() { + return GeneralBillVO; + } + + public void setGeneralBillVO(U8CSaleOutSaveSignVo generalBillVO) { + GeneralBillVO = generalBillVO; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/po/saleout/U8CSaleOutSaveSignParentVo.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/saleout/U8CSaleOutSaveSignParentVo.java new file mode 100644 index 0000000..4c20061 --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/saleout/U8CSaleOutSaveSignParentVo.java @@ -0,0 +1,77 @@ +package com.seeyon.apps.u8c.po.saleout; + +public class U8CSaleOutSaveSignParentVo { + + private String cbiztype; //业务流程 + private String dbilldate; //单据日期 + private String pk_calbody; //库存组织PK + private String cwarehouseid;//仓库 + private String ccustomerid; //客户 + private String coperatorid; //制单人 + private String pk_corp; //公司 + private String vnote;//备注 + + public String getCbiztype() { + return cbiztype; + } + + public void setCbiztype(String cbiztype) { + this.cbiztype = cbiztype; + } + + public String getDbilldate() { + return dbilldate; + } + + public void setDbilldate(String dbilldate) { + this.dbilldate = dbilldate; + } + + public String getPk_calbody() { + return pk_calbody; + } + + public void setPk_calbody(String pk_calbody) { + this.pk_calbody = pk_calbody; + } + + public String getCcustomerid() { + return ccustomerid; + } + + public void setCcustomerid(String ccustomerid) { + this.ccustomerid = ccustomerid; + } + + public String getCoperatorid() { + return coperatorid; + } + + public void setCoperatorid(String coperatorid) { + this.coperatorid = coperatorid; + } + + public String getPk_corp() { + return pk_corp; + } + + public void setPk_corp(String pk_corp) { + this.pk_corp = pk_corp; + } + + public String getVnote() { + return vnote; + } + + public void setVnote(String vnote) { + this.vnote = vnote; + } + + public String getCwarehouseid() { + return cwarehouseid; + } + + public void setCwarehouseid(String cwarehouseid) { + this.cwarehouseid = cwarehouseid; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/po/saleout/U8CSaleOutSaveSignVo.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/saleout/U8CSaleOutSaveSignVo.java new file mode 100644 index 0000000..8cb2478 --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/saleout/U8CSaleOutSaveSignVo.java @@ -0,0 +1,25 @@ +package com.seeyon.apps.u8c.po.saleout; + + +import java.util.List; + +public class U8CSaleOutSaveSignVo { + private List childrenvo; + private U8CSaleOutSaveSignParentVo parentvo; + + public List getChildrenvo() { + return childrenvo; + } + + public void setChildrenvo(List childrenvo) { + this.childrenvo = childrenvo; + } + + public U8CSaleOutSaveSignParentVo getParentvo() { + return parentvo; + } + + public void setParentvo(U8CSaleOutSaveSignParentVo parentvo) { + this.parentvo = parentvo; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/service/FlowTemplateService.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/service/FlowTemplateService.java new file mode 100644 index 0000000..4ce0ab1 --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/service/FlowTemplateService.java @@ -0,0 +1,33 @@ +package com.seeyon.apps.u8c.service; + +import com.seeyon.ctp.util.JDBCAgent; +import org.springframework.stereotype.Component; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +@Component +public class FlowTemplateService { + + public String getTemplateName(Long templateId) { + String sql = "SELECT SUBJECT FROM ctp_template WHERE ID = ?"; + JDBCAgent jdbcAgent = new JDBCAgent(); + try { + List param = new ArrayList<>(); + param.add(templateId); + jdbcAgent.execute(sql,param); + List list = jdbcAgent.resultSetToList(); + if(list == null || list.size() == 0) { + return null; + } + Map resultMap = (Map)list.get(0); + return (String)resultMap.get("subject"); + }catch (Exception e) { + + }finally { + jdbcAgent.close(); + } + return null; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/service/U8CInventoryQueryService.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/service/U8CInventoryQueryService.java index d5eaf91..2fd17a6 100644 --- a/apps-customize/src/main/java/com/seeyon/apps/u8c/service/U8CInventoryQueryService.java +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/service/U8CInventoryQueryService.java @@ -1,20 +1,100 @@ package com.seeyon.apps.u8c.service; +import cn.hutool.log.Log; +import com.seeyon.aicloud.common.JsonUtils; import com.seeyon.apps.u8c.config.ZqcU8cConfigProvider; import com.seeyon.apps.u8c.constants.U8cConstants; +import com.seeyon.apps.u8c.resp.U8cResponse; +import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.collections.MapUtils; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + @Component public class U8CInventoryQueryService { + private static final Log log = Log.get(U8CInventoryQueryService.class); + @Autowired private ZqcU8cConfigProvider zqcU8cConfigProvider; @Autowired private U8cHttpClient u8cHttpClient; public String getInventoryIdByName(String name) { - String url = zqcU8cConfigProvider.getBizConfigByKey(U8cConstants.u8cUrl) + "/u8cloud/api/uapbd/invmandoc/query"; - return ""; + // 1. 参数非空校验 + if (StringUtils.isBlank(name)) { + log.error("根据名称查询存货失败:存货名称不能为空"); + return null; + } + try { + // 2. 构建查询参数 + Map params = new HashMap<>(4); + params.put("invname", name.trim()); + // 3. 拼接接口地址 + String baseUrl = zqcU8cConfigProvider.getBizConfigByKey(U8cConstants.u8cUrl); + String apiUrl = baseUrl + "/u8cloud/api/uapbd/invmandoc/query"; + String paramStr = JsonUtils.toJSONString(params); + log.info("根据存货名称查询U8C存货,参数:{},接口地址:{}", paramStr, apiUrl); + // 4. 调用U8C接口 + String response = u8cHttpClient.doPost(apiUrl, paramStr); + U8cResponse u8cResponse = u8cHttpClient.parseResponse(response); + // 5. 接口响应状态判断 + if (u8cResponse == null || !u8cResponse.isSuccess()) { + log.error("U8C存货查询接口调用失败,响应:{}", JsonUtils.toJSONString(u8cResponse)); + return null; + } + // 6. 解析data数据 + String dataString = u8cResponse.getData(); + if (StringUtils.isBlank(dataString)) { + log.error("U8C返回数据为空,存货名称:{}", name); + return null; + } + Map dataMap = JsonUtils.parseObject(dataString, Map.class); + if (MapUtils.isEmpty(dataMap)) { + log.error("U8C返回数据结构为空,存货名称:{}", name); + return null; + } + // 7. 判断总条数 + Integer allCount = (Integer) dataMap.getOrDefault("allcount", 0); + if (allCount <= 0) { + log.warn("未查询到存货信息,存货名称:{}", name); + return null; + } + if (allCount > 1) { + log.warn("存货名称重复,找到多条数据({}条),名称:{}", allCount, name); + return null; + } + // 8. 安全解析数据集合(逐层判空,防止空指针) + List dataList = (List) dataMap.get("datas"); + if (CollectionUtils.isEmpty(dataList)) { + log.error("U8C返回datas为空,存货名称:{}", name); + return null; + } + // 9. 逐层解析VO结构 + Map rowMap = (Map) dataList.get(0); + if (MapUtils.isEmpty(rowMap)) { + return null; + } + Map parentVo = (Map) rowMap.get("parentvo"); + if (MapUtils.isEmpty(parentVo)) { + return null; + } + Map invbasVo = (Map) parentVo.get("invbasVo"); + if (MapUtils.isEmpty(invbasVo)) { + return null; + } + // 10. 获取存货编码 + String invCode = (String) invbasVo.get("invcode"); + log.info("存货查询成功:名称={},编码={}", name, invCode); + return invCode; + } catch (Exception e) { + log.error("根据存货名称[{}]查询U8C存货编码出现异常", name, e); + return null; + } } } diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/service/U8CProjQueryService.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/service/U8CProjQueryService.java index 1499636..2694f10 100644 --- a/apps-customize/src/main/java/com/seeyon/apps/u8c/service/U8CProjQueryService.java +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/service/U8CProjQueryService.java @@ -36,7 +36,7 @@ public class U8CProjQueryService { if(dataMap == null || dataMap.size() <= 0 ) { throw new RuntimeException("未找到项目信息"); } - Integer count = Integer.parseInt((String)dataMap.get("allcount")); + Integer count = (Integer) dataMap.get("allcount"); return count > 0; }catch (Exception e) { log.error(e.getMessage(),e); @@ -70,4 +70,5 @@ public class U8CProjQueryService { } return null; } + } diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/service/U8CStorageQueryService.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/service/U8CStorageQueryService.java new file mode 100644 index 0000000..5e4e465 --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/service/U8CStorageQueryService.java @@ -0,0 +1,79 @@ +package com.seeyon.apps.u8c.service; + +import cn.hutool.log.Log; +import com.seeyon.aicloud.common.JsonUtils; +import com.seeyon.apps.u8c.config.ZqcU8cConfigProvider; +import com.seeyon.apps.u8c.constants.U8cConstants; +import com.seeyon.apps.u8c.resp.U8cResponse; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Component +public class U8CStorageQueryService { + + private static final Log log = Log.get(U8CStorageQueryService.class); + + @Autowired + private ZqcU8cConfigProvider zqcU8cConfigProvider; + @Autowired + private U8cHttpClient u8cHttpClient; + + public String getStorageCode(String corp,String storname) { + try { + Map params = new HashMap<>(); + params.put("corpcode", corp); + params.put("storname",storname); + String url = zqcU8cConfigProvider.getBizConfigByKey(U8cConstants.u8cUrl) + "/u8cloud/api/uapbd/stordoc/query"; + String paramStr = JsonUtils.toJSONString(params); + log.info("查询仓库信息的参数为: " + paramStr); + String response = u8cHttpClient.doPost(url, paramStr); + U8cResponse u8cResponse = u8cHttpClient.parseResponse(response); + String dataString = u8cResponse.getData(); + Map dataMap = JsonUtils.parseObject(dataString, Map.class); + if(dataMap == null || dataMap.size() <= 0 ) { + throw new RuntimeException("未找到仓库信息"); + } + Integer count = (Integer) dataMap.get("allcount"); + if(count > 1 ){ + return null; + } + List dataList = (List)dataMap.get("datas"); + Map rowMap = (Map) dataList.get(0); + return (String)rowMap.get("storcode"); + }catch (Exception e) { + log.error(e.getMessage(),e); + return null; + } + } + + public String getPkCode(String projCode,String corp) { + try { + Map params = new HashMap<>(); + params.put("jobcode", projCode); + params.put("corp",corp); + String url = zqcU8cConfigProvider.getBizConfigByKey(U8cConstants.u8cUrl) + "/u8cloud/api/uapbd/bdjobmngfil/query"; + String paramStr = JsonUtils.toJSONString(params); + log.info("查询项目信息的参数为: " + paramStr); + String response = u8cHttpClient.doPost(url, paramStr); + U8cResponse u8cResponse = u8cHttpClient.parseResponse(response); + String dataString = u8cResponse.getData(); + Map dataMap = JsonUtils.parseObject(dataString, Map.class); + if(dataMap == null || dataMap.size() <= 0 ) { + throw new RuntimeException("未找到项目信息"); + } + Object[] array = (Object[]) dataMap.get("datas"); + if(array.length == 0) { + return null; + } + Map map = (Map) array[0]; + return map.get("pk_jobmngfil") + "," + map.get("pk_jobbasfil"); + }catch (Exception e) { + log.error(e.getMessage()); + } + return null; + } +}