This commit is contained in:
2026-06-14 00:28:50 +08:00
parent 82c890fd75
commit 26c94f63ce
43 changed files with 1845 additions and 72 deletions

View File

@@ -33,6 +33,7 @@ import com.seeyon.apps.u8c.util.FormQueryUtils;
import com.seeyon.apps.u8c.util.FormViewUtils; import com.seeyon.apps.u8c.util.FormViewUtils;
import com.seeyon.cap4.save.param.FormDataSaveParam; import com.seeyon.cap4.save.param.FormDataSaveParam;
import com.seeyon.cap4.template.bean.MergeDataParamBean; import com.seeyon.cap4.template.bean.MergeDataParamBean;
import com.seeyon.ctp.common.AppContext;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.*; import org.aspectj.lang.annotation.*;
@@ -42,16 +43,12 @@ import org.springframework.stereotype.Component;
import java.util.*; import java.util.*;
@Aspect @Aspect
@Component
public class FormDataSaveAop { public class FormDataSaveAop {
private static final Log log = Log.get(FormDataSaveAop.class); private static final Log log = Log.get(FormDataSaveAop.class);
@Autowired private U8cHttpClient u8cHttpClient = (U8cHttpClient) AppContext.getBean("u8cHttpClient");
private U8cHttpClient u8cHttpClient; private ZqcU8cConfigProvider zqcU8cConfigProvider = (ZqcU8cConfigProvider) AppContext.getBean("zqcU8cConfigProvider");
@Autowired private U8CKsService ksService = (U8CKsService) AppContext.getBean("u8CKsService");
private ZqcU8cConfigProvider zqcU8cConfigProvider;
@Autowired
private U8CKsService ksService;
@Around("execution(* com.seeyon.cap4.template.service.CAPFormDataService.saveOrUpdateForm(..))") @Around("execution(* com.seeyon.cap4.template.service.CAPFormDataService.saveOrUpdateForm(..))")
public Object listenFormEdit(ProceedingJoinPoint jp) throws Throwable { public Object listenFormEdit(ProceedingJoinPoint jp) throws Throwable {
@@ -293,7 +290,9 @@ public class FormDataSaveAop {
} }
if(viewItemKey.equals("税率")) { if(viewItemKey.equals("税率")) {
String sl = value; 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("税额")) { if(viewItemKey.equals("税额")) {
u8CYfChildren.setDfybsj(value); u8CYfChildren.setDfybsj(value);

View File

@@ -1,11 +1,13 @@
package com.seeyon.apps.u8c.controller; package com.seeyon.apps.u8c.controller;
import cn.hutool.log.Log; import cn.hutool.log.Log;
import com.alibaba.fastjson.JSONObject;
import com.seeyon.aicloud.common.JsonUtils; import com.seeyon.aicloud.common.JsonUtils;
import com.seeyon.apps.u8c.resp.U8cResponse; import com.seeyon.apps.u8c.resp.U8cResponse;
import com.seeyon.apps.u8c.service.U8cHttpClient; import com.seeyon.apps.u8c.service.U8cHttpClient;
import com.seeyon.ctp.common.AppContext; import com.seeyon.ctp.common.AppContext;
import com.seeyon.ctp.common.controller.BaseController; import com.seeyon.ctp.common.controller.BaseController;
import com.seeyon.ctp.util.json.JSONUtil;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
@@ -27,9 +29,11 @@ public class U8CInventoryNumQueryController extends BaseController {
String storeId = request.getHeader("storeId"); String storeId = request.getHeader("storeId");
String isListByBVCode = request.getHeader("isListByBVCode"); String isListByBVCode = request.getHeader("isListByBVCode");
String batchcode = request.getHeader("batchcode"); 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<String,Object> params = new HashMap<>(); Map<String,Object> params = new HashMap<>();
params.put("calbody","ZQC001"); params.put("calbody",calbody);
params.put("corp","10"); params.put("corp",corp);
params.put("inventory",inventory); params.put("inventory",inventory);
params.put("isGroupByWarehouse","Y"); params.put("isGroupByWarehouse","Y");
if(StringUtils.isNotBlank(storeId)){ if(StringUtils.isNotBlank(storeId)){

View File

@@ -1,6 +1,7 @@
package com.seeyon.apps.u8c.node; package com.seeyon.apps.u8c.node;
import cn.hutool.log.Log; 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.constants.WorkFlowType;
import com.seeyon.apps.common.workflow.node.ACommonSuperNode; import com.seeyon.apps.common.workflow.node.ACommonSuperNode;
import com.seeyon.apps.ext.workflow.vo.FieldDataVo; import com.seeyon.apps.ext.workflow.vo.FieldDataVo;
@@ -72,6 +73,7 @@ public abstract class U8CCommonNode extends ACommonSuperNode {
return false; return false;
} }
// ========== 主推送逻辑 ========== // ========== 主推送逻辑 ==========
@Override @Override
public SuperNodeContext proceed(String request, FormDataVo formDataVo, FormDataMasterBean formDataMasterBean) throws Exception { public SuperNodeContext proceed(String request, FormDataVo formDataVo, FormDataMasterBean formDataMasterBean) throws Exception {

View File

@@ -22,6 +22,7 @@ import com.seeyon.apps.u8c.util.EnumMapUtils;
import com.seeyon.cap4.form.bean.FormDataMasterBean; import com.seeyon.cap4.form.bean.FormDataMasterBean;
import com.seeyon.ctp.organization.bo.V3xOrgMember; import com.seeyon.ctp.organization.bo.V3xOrgMember;
import com.seeyon.ctp.organization.manager.OrgManager; import com.seeyon.ctp.organization.manager.OrgManager;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@@ -76,7 +77,7 @@ public class U8CFkdSaveAuditNode extends U8CCommonNode{
u8CFkdSaveAuditChildren.setZy(getStringValue(formDataVo, "付款说明")); u8CFkdSaveAuditChildren.setZy(getStringValue(formDataVo, "付款说明"));
u8CFkdSaveAuditChildren.setSzxmid(EnumMapUtils.getEnumItemCode(getDbValue(formDataVo,"费用类型"))); u8CFkdSaveAuditChildren.setSzxmid(EnumMapUtils.getEnumItemCode(getDbValue(formDataVo,"费用类型")));
u8CFkdSaveAuditChildren.setJobid(getStringValue(formDataVo, "项目编号")); u8CFkdSaveAuditChildren.setJobid(getStringValue(formDataVo, "项目编号"));
U8cParamsPreHandler.preHandleFkdBillVoParentvo(parentVo); U8cParamsPreHandler.preHandleFkdBillVoParentvo(subject,parentVo);
} }
u8CFkdSaveAuditChildren.setJfbbje(getStringValue(formDataVo, "支付金额")); u8CFkdSaveAuditChildren.setJfbbje(getStringValue(formDataVo, "支付金额"));
u8CFkdSaveAuditChildren.setJfybje(getStringValue(formDataVo, "支付金额")); u8CFkdSaveAuditChildren.setJfybje(getStringValue(formDataVo, "支付金额"));
@@ -154,7 +155,7 @@ public class U8CFkdSaveAuditNode extends U8CCommonNode{
u8CYfChildren.setDfbbje(dfybje); u8CYfChildren.setDfbbje(dfybje);
u8CYfChildren.setDfybje(dfybje); u8CYfChildren.setDfybje(dfybje);
String sl = getStringValue(formDataVo,"税率"); String sl = getStringValue(formDataVo,"税率");
if(sl != null) { if(StringUtils.isNotBlank(sl)) {
u8CYfChildren.setSl(Double.valueOf((Double.parseDouble(sl) * 100) + "").intValue() + ""); u8CYfChildren.setSl(Double.valueOf((Double.parseDouble(sl) * 100) + "").intValue() + "");
} }
u8CYfChildren.setDfybsj(getStringValue(formDataVo,"税额")); u8CYfChildren.setDfybsj(getStringValue(formDataVo,"税额"));

View File

@@ -1,9 +1,11 @@
package com.seeyon.apps.u8c.node; package com.seeyon.apps.u8c.node;
import com.seeyon.aicloud.common.JsonUtils; 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.FormDataVo;
import com.seeyon.apps.ext.workflow.vo.SuperNodeContext; import com.seeyon.apps.ext.workflow.vo.SuperNodeContext;
import com.seeyon.apps.u8c.po.inventory.*; import com.seeyon.apps.u8c.po.inventory.*;
import com.seeyon.apps.u8c.service.FlowTemplateService;
import com.seeyon.cap4.form.bean.FormDataMasterBean; import com.seeyon.cap4.form.bean.FormDataMasterBean;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@@ -17,29 +19,43 @@ public class U8CInventoryManageDocAddNode extends U8CCommonNode{
@Autowired @Autowired
private U8CInventoryManageDocAssignNode manageDocAssignNode; private U8CInventoryManageDocAssignNode manageDocAssignNode;
@Autowired
private FlowTemplateService flowTemplateService;
@Override @Override
public String buildParam(String request, FormDataVo formDataVo) throws Exception { 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(); U8CInventoryManageDocAddParam param = new U8CInventoryManageDocAddParam();
InventoryBillvo billvo = new InventoryBillvo(); InventoryBillvo billvo = new InventoryBillvo();
InvBillvoParentvo invBillvoParentvo = new InvBillvoParentvo(); InvBillvoParentvo invBillvoParentvo = new InvBillvoParentvo();
billvo.setParentvo(invBillvoParentvo); billvo.setParentvo(invBillvoParentvo);
invBillvoParentvo.setCurrentcorp("10");
param.setBillvo(billvo); param.setBillvo(billvo);
InvBillvoInvbasVo invBillvoInvbasVo = new InvBillvoInvbasVo(); InvBillvoInvbasVo invBillvoInvbasVo = new InvBillvoInvbasVo();
Invmandocvo invmandocvo = new Invmandocvo(); Invmandocvo invmandocvo = new Invmandocvo();
invBillvoParentvo.setInvmanVo(invmandocvo); invBillvoParentvo.setInvmanVo(invmandocvo);
invBillvoParentvo.setInvbasVo(invBillvoInvbasVo); invBillvoParentvo.setInvbasVo(invBillvoInvbasVo);
invBillvoInvbasVo.setInvcode(getStringValue(formDataVo, "材料系统编码")); String pk_corp = "10";
invBillvoInvbasVo.setInvname(getStringValue(formDataVo, "材料名称")); if(subject.startsWith("XTC")) {
invBillvoInvbasVo.setInvspec(getStringValue(formDataVo, "规格型号")); pk_corp = "11";
invBillvoInvbasVo.setInvtype(getStringValue(formDataVo, "材料内部编码")); invBillvoInvbasVo.setInvcode(getStringValue(formDataVo, "材料内部编码"));
invBillvoInvbasVo.setPk_corp("10"); 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 ctLv1 = getStringValue(formDataVo, "一级材料分类编码");
String ctLv2 = getStringValue(formDataVo, "二级材料分类编码"); String ctLv2 = getStringValue(formDataVo, "二级材料分类编码");
String ctLv3 = getStringValue(formDataVo, "三级材料分类编码"); String ctLv3 = getStringValue(formDataVo, "三级材料分类编码");
String ctf = StringUtils.isNotBlank(ctLv3) ? ctLv3 : (StringUtils.isNotBlank(ctLv2) ? ctLv2 : ctLv1); String ctf = StringUtils.isNotBlank(ctLv3) ? ctLv3 : (StringUtils.isNotBlank(ctLv2) ? ctLv2 : ctLv1);
invBillvoInvbasVo.setPk_invcl(ctf); invBillvoInvbasVo.setPk_invcl(ctf);
invBillvoParentvo.setCurrentcorp(pk_corp);
invBillvoInvbasVo.setPk_corp(pk_corp);
String measdocEnumValue = getEnumValue(formDataVo, "计量单位"); String measdocEnumValue = getEnumValue(formDataVo, "计量单位");
invBillvoInvbasVo.setPk_measdoc((measdocEnumValue.substring(4))); invBillvoInvbasVo.setPk_measdoc((measdocEnumValue.substring(4)));
invmandocvo.setWholemanaflag(getStringValue(formDataVo, "材料是否批次管理")); invmandocvo.setWholemanaflag(getStringValue(formDataVo, "材料是否批次管理"));
@@ -68,13 +84,23 @@ public class U8CInventoryManageDocAddNode extends U8CCommonNode{
@Override @Override
public SuperNodeContext otherAction(String request, FormDataVo formDataVo, FormDataMasterBean formDataMasterBean) throws Exception { public SuperNodeContext otherAction(String request, FormDataVo formDataVo, FormDataMasterBean formDataMasterBean) throws Exception {
ColSummary colSummary = formDataVo.getColSummary();
String subject = colSummary.getSubject();
U8CInventoryManageDocAssignParam assignParam = new U8CInventoryManageDocAssignParam(); U8CInventoryManageDocAssignParam assignParam = new U8CInventoryManageDocAssignParam();
List<Invmandocvo> invmandocvos = new ArrayList<>(); List<Invmandocvo> invmandocvos = new ArrayList<>();
assignParam.setInvmandocvo(invmandocvos); assignParam.setInvmandocvo(invmandocvos);
Invmandocvo invmandocvo = new Invmandocvo(); Invmandocvo invmandocvo = new Invmandocvo();
invmandocvo.setPk_corp("10"); String pk_corp = "10";
invmandocvo.setPk_calbody("ZQC001"); String pk_calbody = "ZQC001";
invmandocvo.setPk_invmandoc(getStringValue(formDataVo, "材料系统编码")); 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"); invmandocvo.setBilltempletid("BD100812100000000001");
invmandocvos.add(invmandocvo); invmandocvos.add(invmandocvo);
manageDocAssignNode.subActionProceed(JsonUtils.toJSONString(assignParam)); manageDocAssignNode.subActionProceed(JsonUtils.toJSONString(assignParam));

View File

@@ -1,6 +1,7 @@
package com.seeyon.apps.u8c.node; package com.seeyon.apps.u8c.node;
import com.seeyon.aicloud.common.JsonUtils; 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.FormDataVo;
import com.seeyon.apps.ext.workflow.vo.SuperNodeContext; import com.seeyon.apps.ext.workflow.vo.SuperNodeContext;
import com.seeyon.apps.u8c.po.U8cParamsPreHandler; 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.U8CMaterialoutGeneralBillVo;
import com.seeyon.apps.u8c.po.materialout.U8CMaterialoutParentVo; import com.seeyon.apps.u8c.po.materialout.U8CMaterialoutParentVo;
import com.seeyon.apps.u8c.po.materialout.U8CMaterialoutSaveSignParam; 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 com.seeyon.cap4.form.bean.FormDataMasterBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.ArrayList; import java.util.ArrayList;
@@ -19,9 +21,22 @@ import java.util.Map;
@Component @Component
public class U8CMaterialoutSaveSignNode extends U8CCommonNode{ public class U8CMaterialoutSaveSignNode extends U8CCommonNode{
@Autowired
private FlowTemplateService flowTemplateService;
private String getCinventoryidFieldName(String subject) {
if("XTC-材料出库申请".equals(subject)) {
return "材料系统编码";
}else {
return "材料编码";
}
}
@Override @Override
public String buildParam(String request, FormDataVo formDataVo) throws Exception { public String buildParam(String request, FormDataVo formDataVo) throws Exception {
U8CMaterialoutSaveSignParam param = new U8CMaterialoutSaveSignParam(); U8CMaterialoutSaveSignParam param = new U8CMaterialoutSaveSignParam();
ColSummary colSummary = formDataVo.getColSummary();
String subject = flowTemplateService.getTemplateName(colSummary.getTempleteId());
U8CMaterialoutGeneralBillVo generalBillVo = new U8CMaterialoutGeneralBillVo(); U8CMaterialoutGeneralBillVo generalBillVo = new U8CMaterialoutGeneralBillVo();
param.setGeneralBillVO(generalBillVo); param.setGeneralBillVO(generalBillVo);
List<U8CMaterialoutChildrenVo> childrenVoList = new ArrayList<>(); List<U8CMaterialoutChildrenVo> childrenVoList = new ArrayList<>();
@@ -30,12 +45,12 @@ public class U8CMaterialoutSaveSignNode extends U8CCommonNode{
parentVo.setDbilldate(getStringValue(formDataVo,"填报日期")); parentVo.setDbilldate(getStringValue(formDataVo,"填报日期"));
parentVo.setCwarehouseid(getStringValue(formDataVo,"出库仓库编码")); parentVo.setCwarehouseid(getStringValue(formDataVo,"出库仓库编码"));
Map<String, List<FormDataVo>> subFormMap = formDataVo.getSubFormMap(); Map<String, List<FormDataVo>> subFormMap = formDataVo.getSubFormMap();
U8cParamsPreHandler.preHandleMaterialoutSaveSignBillVoParentvo(parentVo); U8cParamsPreHandler.preHandleMaterialoutSaveSignBillVoParentvo(subject,parentVo);
List<FormDataVo> subDataList = subFormMap.get("出库材料明细"); List<FormDataVo> subDataList = subFormMap.get("出库材料明细");
String projId = getStringValue(formDataVo,"项目编号"); String projId = getStringValue(formDataVo,"项目编号");
for (FormDataVo dataVo : subDataList) { for (FormDataVo dataVo : subDataList) {
U8CMaterialoutChildrenVo childrenVo = new U8CMaterialoutChildrenVo(); U8CMaterialoutChildrenVo childrenVo = new U8CMaterialoutChildrenVo();
childrenVo.setCinventoryid(getStringValue(dataVo,"材料编码")); childrenVo.setCinventoryid(getStringValue(dataVo,getCinventoryidFieldName(subject)));
childrenVo.setVbatchcode(getStringValue(dataVo,"批次号")); childrenVo.setVbatchcode(getStringValue(dataVo,"批次号"));
childrenVo.setCprojectid(projId); childrenVo.setCprojectid(projId);
childrenVo.setNoutnum(getStringValue(dataVo,"本次出库数量")); childrenVo.setNoutnum(getStringValue(dataVo,"本次出库数量"));
@@ -74,6 +89,6 @@ public class U8CMaterialoutSaveSignNode extends U8CCommonNode{
@Override @Override
public String getNodeName() { public String getNodeName() {
return "库存材料出库单保存即签字"; return "材料出库-库存材料出库单保存即签字";
} }
} }

View File

@@ -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.U8COtherInSaveSignGeneralBillVO;
import com.seeyon.apps.u8c.po.otherin.U8COtherInSaveSignParam; import com.seeyon.apps.u8c.po.otherin.U8COtherInSaveSignParam;
import com.seeyon.apps.u8c.po.otherin.U8COtherInSaveSignParentVo; 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.service.U8CProjQueryService;
import com.seeyon.apps.u8c.util.JsonUtils; import com.seeyon.apps.u8c.util.JsonUtils;
import com.seeyon.cap4.form.bean.FormDataMasterBean; import com.seeyon.cap4.form.bean.FormDataMasterBean;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@@ -46,9 +44,9 @@ public class U8COtherInSaveSignNode extends U8CCommonNode{
for (FormDataVo dataVo : subDataList) { for (FormDataVo dataVo : subDataList) {
U8COtherInSaveSignChildrenVo childrenVo = new U8COtherInSaveSignChildrenVo(); U8COtherInSaveSignChildrenVo childrenVo = new U8COtherInSaveSignChildrenVo();
childrenVo.setCinventoryid(getStringValue(dataVo,"材料系统编码")); 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,"材料是否批次管理"); String isBatchManage = getStringValue(dataVo,"材料是否批次管理");
if("".equals(isBatchManage)) { if("".equals(isBatchManage)) {
childrenVo.setVbatchcode(getStringValue(dataVo,u8CInType.equals("调拨") ? "调入批次号" : "材料批次号")); childrenVo.setVbatchcode(getStringValue(dataVo,u8CInType.equals("调拨") ? "调入批次号" : "材料批次号"));

View File

@@ -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.U8COtherOutSaveSignGeneralBillVO;
import com.seeyon.apps.u8c.po.otherout.U8COtherOutSaveSignParam; import com.seeyon.apps.u8c.po.otherout.U8COtherOutSaveSignParam;
import com.seeyon.apps.u8c.po.otherout.U8COtherOutSaveSignParentVo; 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.service.U8CProjQueryService;
import com.seeyon.apps.u8c.util.JsonUtils; import com.seeyon.apps.u8c.util.JsonUtils;
import com.seeyon.cap4.form.bean.FormDataMasterBean; import com.seeyon.cap4.form.bean.FormDataMasterBean;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@@ -44,9 +42,9 @@ public class U8COtherOutSaveSignNode extends U8CCommonNode{
for (FormDataVo dataVo : subDataList) { for (FormDataVo dataVo : subDataList) {
U8COtherOutSaveSignChildrenVo childrenVo = new U8COtherOutSaveSignChildrenVo(); U8COtherOutSaveSignChildrenVo childrenVo = new U8COtherOutSaveSignChildrenVo();
childrenVo.setCinventoryid(getStringValue(dataVo,"材料系统编码")); 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,"材料是否批次管理"); String isBatchManage = getStringValue(dataVo,"材料是否批次管理");
if("".equals(isBatchManage)) { if("".equals(isBatchManage)) {
childrenVo.setVbatchcode(getStringValue(dataVo,"调出批次号")); childrenVo.setVbatchcode(getStringValue(dataVo,"调出批次号"));

View File

@@ -1,6 +1,7 @@
package com.seeyon.apps.u8c.node; package com.seeyon.apps.u8c.node;
import com.seeyon.aicloud.common.JsonUtils; 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.FormDataVo;
import com.seeyon.apps.ext.workflow.vo.SuperNodeContext; import com.seeyon.apps.ext.workflow.vo.SuperNodeContext;
import com.seeyon.apps.u8c.po.U8cParamsPreHandler; 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.U8CPurchaseinGeneralBillVo;
import com.seeyon.apps.u8c.po.purchasein.U8CPurchaseinParentVo; import com.seeyon.apps.u8c.po.purchasein.U8CPurchaseinParentVo;
import com.seeyon.apps.u8c.po.purchasein.U8CPurchaseinSaveSignParam; import com.seeyon.apps.u8c.po.purchasein.U8CPurchaseinSaveSignParam;
import com.seeyon.apps.u8c.po.yfd.U8CYfChildren; import com.seeyon.apps.u8c.service.FlowTemplateService;
import com.seeyon.apps.u8c.resp.U8cResponse; import com.seeyon.apps.u8c.service.U8CStorageQueryService;
import com.seeyon.cap4.form.bean.FormDataMasterBean; import com.seeyon.cap4.form.bean.FormDataMasterBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Optional;
@Component @Component
public class U8CPurchaseinSaveSignNode extends U8CCommonNode{ public class U8CPurchaseinSaveSignNode extends U8CCommonNode{
@Autowired
private U8CStorageQueryService u8CStorageQueryService;
@Autowired
private FlowTemplateService flowTemplateService;
@Override @Override
public String buildParam(String request, FormDataVo formDataVo) throws Exception { public String buildParam(String request, FormDataVo formDataVo) throws Exception {
U8CPurchaseinSaveSignParam param = new U8CPurchaseinSaveSignParam();; U8CPurchaseinSaveSignParam param = new U8CPurchaseinSaveSignParam();;
ColSummary colSummary = formDataVo.getColSummary();
String subject = flowTemplateService.getTemplateName(colSummary.getTempleteId());
List<U8CPurchaseinGeneralBillVo> billVoList = new ArrayList<>(); List<U8CPurchaseinGeneralBillVo> billVoList = new ArrayList<>();
param.setGeneralBillVO(billVoList); param.setGeneralBillVO(billVoList);
U8CPurchaseinGeneralBillVo billVo = new U8CPurchaseinGeneralBillVo(); U8CPurchaseinGeneralBillVo billVo = new U8CPurchaseinGeneralBillVo();
@@ -33,9 +43,10 @@ public class U8CPurchaseinSaveSignNode extends U8CCommonNode{
parentVo.setVbillcode(getStringValue(formDataVo,"单据编号")); parentVo.setVbillcode(getStringValue(formDataVo,"单据编号"));
parentVo.setDbilldate(getStringValue(formDataVo,"填报日期")); parentVo.setDbilldate(getStringValue(formDataVo,"填报日期"));
parentVo.setDaccountdate(getStringValue(formDataVo,"填报日期")); parentVo.setDaccountdate(getStringValue(formDataVo,"填报日期"));
parentVo.setCwarehouseid(getStringValue(formDataVo,"入库仓库编号"));//如果需要传仓库ID的话则需要根据OA仓库名称查询U8C仓库ID
String projId = getStringValue(formDataVo,"项目编号"); 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<String, List<FormDataVo>> subFormMap = formDataVo.getSubFormMap(); Map<String, List<FormDataVo>> subFormMap = formDataVo.getSubFormMap();
List<FormDataVo> subDataList = subFormMap.get("入库材料明细"); List<FormDataVo> subDataList = subFormMap.get("入库材料明细");
for (FormDataVo dataVo : subDataList) { for (FormDataVo dataVo : subDataList) {
@@ -51,10 +62,8 @@ public class U8CPurchaseinSaveSignNode extends U8CCommonNode{
if("".equals(isBatchManage)) { if("".equals(isBatchManage)) {
childrenVo.setVbatchcode(getStringValue(dataVo,"材料批次号")); childrenVo.setVbatchcode(getStringValue(dataVo,"材料批次号"));
} }
if(childrenVo.getNictaxrate() != null) { childrenVo.setNprice(getStringValue(dataVo,"无税单价"));
childrenVo.setNprice(getStringValue(dataVo,"无税单价")); childrenVo.setNmny(getStringValue(dataVo,"无税金额"));
childrenVo.setNmny(getStringValue(dataVo,"无税金额"));
}
childrenVo.setVnotebody(getStringValue(dataVo,"入库备注说明")); childrenVo.setVnotebody(getStringValue(dataVo,"入库备注说明"));
childrenVoList.add(childrenVo); childrenVoList.add(childrenVo);
} }

View File

@@ -1,6 +1,7 @@
package com.seeyon.apps.u8c.node; package com.seeyon.apps.u8c.node;
import com.seeyon.aicloud.common.JsonUtils; 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.FormDataVo;
import com.seeyon.apps.ext.workflow.vo.SuperNodeContext; import com.seeyon.apps.ext.workflow.vo.SuperNodeContext;
import com.seeyon.apps.u8c.po.U8cParamsPreHandler; 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.U8CSkdParentVo;
import com.seeyon.apps.u8c.po.skd.U8CSkdSaveAuditAddParam; import com.seeyon.apps.u8c.po.skd.U8CSkdSaveAuditAddParam;
import com.seeyon.apps.u8c.po.skd.U8CSkdBillVo; 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.apps.u8c.service.U8CKsService;
import com.seeyon.cap4.form.bean.FormDataMasterBean; import com.seeyon.cap4.form.bean.FormDataMasterBean;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@@ -23,10 +25,14 @@ public class U8CSkdSaveAuditAddNode extends U8CCommonNode{
@Autowired @Autowired
private U8CKsService u8CKsService; private U8CKsService u8CKsService;
@Autowired
private FlowTemplateService flowTemplateService;
@Override @Override
public String buildParam(String request, FormDataVo formDataVo) throws Exception { public String buildParam(String request, FormDataVo formDataVo) throws Exception {
U8CSkdSaveAuditAddParam param = new U8CSkdSaveAuditAddParam(); U8CSkdSaveAuditAddParam param = new U8CSkdSaveAuditAddParam();
ColSummary colSummary = formDataVo.getColSummary();
String subject = flowTemplateService.getTemplateName(colSummary.getTempleteId());
List<U8CSkdBillVo> billVoList = new ArrayList<>(); List<U8CSkdBillVo> billVoList = new ArrayList<>();
U8CSkdBillVo billVo = new U8CSkdBillVo(); U8CSkdBillVo billVo = new U8CSkdBillVo();
billVoList.add(billVo); billVoList.add(billVo);
@@ -34,7 +40,7 @@ public class U8CSkdSaveAuditAddNode extends U8CCommonNode{
parentVo.setDjbh(getStringValue(formDataVo,"单据编号")); parentVo.setDjbh(getStringValue(formDataVo,"单据编号"));
parentVo.setDjrq(getStringValue(formDataVo,"收款日期")); parentVo.setDjrq(getStringValue(formDataVo,"收款日期"));
parentVo.setShrq(getStringValue(formDataVo,"收款日期")); parentVo.setShrq(getStringValue(formDataVo,"收款日期"));
U8cParamsPreHandler.preHandleSkdBillVoParentvo(parentVo); U8cParamsPreHandler.preHandleSkdBillVoParentvo(subject,parentVo);
List<U8CSkdChildren> childrenList = new ArrayList<>(); List<U8CSkdChildren> childrenList = new ArrayList<>();
billVo.setChildren(childrenList); billVo.setChildren(childrenList);
billVo.setParentVo(parentVo); billVo.setParentVo(parentVo);
@@ -42,15 +48,22 @@ public class U8CSkdSaveAuditAddNode extends U8CCommonNode{
cSkdChildren.setZy(getStringValue(formDataVo, "收款摘要")); cSkdChildren.setZy(getStringValue(formDataVo, "收款摘要"));
String szxmText = getStringValue(formDataVo, "收款选项"); String szxmText = getStringValue(formDataVo, "收款选项");
cSkdChildren.setSzxmid(getSzxmCode(szxmText)); cSkdChildren.setSzxmid(getSzxmCode(szxmText));
if (szxmText.equals("员工还款")) { if ("员工还款".equals(szxmText)) {
cSkdChildren.setHbbm(getKsCode(getStringValue(formDataVo, "对方名称"))); cSkdChildren.setHbbm(getKsCode(getStringValue(formDataVo, "对方名称")));
} else { } else {
cSkdChildren.setHbbm(getStringValue(formDataVo, "对方编号")); 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.setJobid(getStringValue(formDataVo, "项目编号"));
cSkdChildren.setBfyhzh(getStringValue(formDataVo, "收款银行账号")); cSkdChildren.setBfyhzh(getStringValue(formDataVo, "收款银行账号"));
cSkdChildren.setDfbbje(getStringValue(formDataVo, "本次收款金额"));
cSkdChildren.setDfybje(getStringValue(formDataVo, "本次收款金额"));
childrenList.add(cSkdChildren); childrenList.add(cSkdChildren);
param.setBillvo(billVoList); param.setBillvo(billVoList);
@@ -58,6 +71,9 @@ public class U8CSkdSaveAuditAddNode extends U8CCommonNode{
} }
private String getSzxmCode(String text) { private String getSzxmCode(String text) {
if(StringUtils.isBlank(text)) {
return null;
}
if(text.equals("员工还款")) { if(text.equals("员工还款")) {
return "15007"; return "15007";
} }

View File

@@ -1,6 +1,7 @@
package com.seeyon.apps.u8c.node; package com.seeyon.apps.u8c.node;
import cn.hutool.log.Log; 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.FormDataVo;
import com.seeyon.apps.ext.workflow.vo.SuperNodeContext; import com.seeyon.apps.ext.workflow.vo.SuperNodeContext;
import com.seeyon.apps.u8c.constants.U8cConstants; import com.seeyon.apps.u8c.constants.U8cConstants;
@@ -67,7 +68,7 @@ public class U8CYfDanSaveAuditNode extends U8CCommonNode{
u8CYfChildren.setDfbbje(getStringValue(dataVo, "报销金额")); u8CYfChildren.setDfbbje(getStringValue(dataVo, "报销金额"));
u8CYfChildren.setDfybje(getStringValue(dataVo, "报销金额")); u8CYfChildren.setDfybje(getStringValue(dataVo, "报销金额"));
String sl = getStringValue(dataVo,"税率"); String sl = getStringValue(dataVo,"税率");
if(sl != null) { if(StringUtils.isNotBlank(sl)) {
u8CYfChildren.setSl(Double.valueOf((Double.parseDouble(sl) * 100) + "").intValue() + ""); u8CYfChildren.setSl(Double.valueOf((Double.parseDouble(sl) * 100) + "").intValue() + "");
} }
u8CYfChildren.setDfybsj(getStringValue(dataVo,"税额")); u8CYfChildren.setDfybsj(getStringValue(dataVo,"税额"));
@@ -108,6 +109,8 @@ public class U8CYfDanSaveAuditNode extends U8CCommonNode{
public void execute() throws Exception { public void execute() throws Exception {
U8CFkdSaveAuditAddParam param = new U8CFkdSaveAuditAddParam(); U8CFkdSaveAuditAddParam param = new U8CFkdSaveAuditAddParam();
// ...构建参数 // ...构建参数
ColSummary colSummary = formDataVo.getColSummary();
String subject = colSummary.getSubject();
List<U8CFkdSaveAuditBillVo> billVoList = new ArrayList<>(); List<U8CFkdSaveAuditBillVo> billVoList = new ArrayList<>();
U8CFkdSaveAuditBillVo billVo = new U8CFkdSaveAuditBillVo(); U8CFkdSaveAuditBillVo billVo = new U8CFkdSaveAuditBillVo();
billVoList.add(billVo); billVoList.add(billVo);
@@ -124,7 +127,7 @@ public class U8CYfDanSaveAuditNode extends U8CCommonNode{
if(member != null) { if(member != null) {
parentVo.setHbbm(getKsCode(member.getName())); parentVo.setHbbm(getKsCode(member.getName()));
} }
U8cParamsPreHandler.preHandleFkdBillVoParentvo(parentVo); U8cParamsPreHandler.preHandleFkdBillVoParentvo(subject,parentVo);
U8CFkdSaveAuditChildren u8CFkdSaveAuditChildren = new U8CFkdSaveAuditChildren(); U8CFkdSaveAuditChildren u8CFkdSaveAuditChildren = new U8CFkdSaveAuditChildren();
u8CFkdSaveAuditChildren.setZy(getStringValue(formDataVo, "支付说明")); u8CFkdSaveAuditChildren.setZy(getStringValue(formDataVo, "支付说明"));
parentVo.setSzxmid("16010"); parentVo.setSzxmid("16010");

View File

@@ -1,6 +1,7 @@
package com.seeyon.apps.u8c.node; package com.seeyon.apps.u8c.node;
import com.seeyon.aicloud.common.JsonUtils; 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.FormDataVo;
import com.seeyon.apps.ext.workflow.vo.SuperNodeContext; import com.seeyon.apps.ext.workflow.vo.SuperNodeContext;
import com.seeyon.apps.u8c.po.*; 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.ArapBillVoParentvo;
import com.seeyon.apps.u8c.po.arap.U8CYsDanSaveAuditAddParam; import com.seeyon.apps.u8c.po.arap.U8CYsDanSaveAuditAddParam;
import com.seeyon.apps.u8c.resp.U8cResponse; import com.seeyon.apps.u8c.resp.U8cResponse;
import com.seeyon.apps.u8c.service.FlowTemplateService;
import com.seeyon.cap4.form.bean.FormDataMasterBean; 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 org.springframework.stereotype.Component;
import java.util.ArrayList; import java.util.ArrayList;
@@ -18,10 +22,14 @@ import java.util.List;
@Component @Component
public class U8CYsDanSaveAuditNode extends U8CCommonNode{ public class U8CYsDanSaveAuditNode extends U8CCommonNode{
@Autowired
private FlowTemplateService flowTemplateService;
@Override @Override
public String buildParam(String request, FormDataVo formDataVo) throws Exception { public String buildParam(String request, FormDataVo formDataVo) throws Exception {
U8CYsDanSaveAuditAddParam param = new U8CYsDanSaveAuditAddParam(); U8CYsDanSaveAuditAddParam param = new U8CYsDanSaveAuditAddParam();
ColSummary colSummary = formDataVo.getColSummary();
String subject = flowTemplateService.getTemplateName(colSummary.getTempleteId());
List<ArapBillVo> billVoList = new ArrayList<>(); List<ArapBillVo> billVoList = new ArrayList<>();
ArapBillVo billVo = new ArapBillVo(); ArapBillVo billVo = new ArapBillVo();
List<ArapBillVoChildren> childrenList = new ArrayList<>(); List<ArapBillVoChildren> childrenList = new ArrayList<>();
@@ -38,7 +46,7 @@ public class U8CYsDanSaveAuditNode extends U8CCommonNode{
children.setJfybje(getStringValue(formDataVo,"本次开票金额含税")); children.setJfybje(getStringValue(formDataVo,"本次开票金额含税"));
children.setJfbbje(getStringValue(formDataVo,"本次开票金额含税")); children.setJfbbje(getStringValue(formDataVo,"本次开票金额含税"));
String sl = getStringValue(formDataVo,"税率"); String sl = getStringValue(formDataVo,"税率");
if(sl != null) { if(StringUtils.isNotBlank(sl)) {
children.setSl(Double.valueOf((Double.parseDouble(sl) * 100) + "").intValue() + ""); children.setSl(Double.valueOf((Double.parseDouble(sl) * 100) + "").intValue() + "");
} }
children.setJfybsj(getStringValue(formDataVo,"税额")); children.setJfybsj(getStringValue(formDataVo,"税额"));
@@ -49,7 +57,7 @@ public class U8CYsDanSaveAuditNode extends U8CCommonNode{
billVo.setParentvo(parentvo); billVo.setParentvo(parentvo);
billVoList.add(billVo); billVoList.add(billVo);
param.setBillvo(billVoList); param.setBillvo(billVoList);
U8cParamsPreHandler.preHandleArapBillVoParentvo(parentvo); U8cParamsPreHandler.preHandleArapBillVoParentvo(subject,parentvo);
return JsonUtils.toJSONString(param); return JsonUtils.toJSONString(param);
} }

View File

@@ -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<U8CFkdSaveAuditBillVo> billVoList = new ArrayList<>();
U8CFkdSaveAuditBillVo billVo = new U8CFkdSaveAuditBillVo();
billVoList.add(billVo);
param.setBillvo(billVoList);
List<U8CFkdSaveAuditChildren> childrenList = new ArrayList<U8CFkdSaveAuditChildren>();
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 "新天成-付款单保存即审批节点";
}
}

View File

@@ -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<U8CMaterialoutChildrenVo> 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<String, List<FormDataVo>> subFormMap = formDataVo.getSubFormMap();
U8cParamsPreHandler.preHandleMaterialoutSaveSignBillVoParentvo(subject,parentVo);
List<FormDataVo> 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 "新天成-材料出库-库存材料出库单保存即签字";
}
}

View File

@@ -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 "";
}
}

View File

@@ -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<U8CProductinSaveSignChildren> childrenList = new ArrayList<U8CProductinSaveSignChildren>();
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<String, List<FormDataVo>> subFormMap = formDataVo.getSubFormMap();
List<FormDataVo> 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 "新天成-产成品入库保存审批";
}
}

View File

@@ -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<U8CPurchaseinGeneralBillVo> billVoList = new ArrayList<>();
param.setGeneralBillVO(billVoList);
U8CPurchaseinGeneralBillVo billVo = new U8CPurchaseinGeneralBillVo();
billVoList.add(billVo);
List<U8CPurchaseinChildrenVo> 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<String, List<FormDataVo>> subFormMap = formDataVo.getSubFormMap();
List<FormDataVo> 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 "新天成-材料入库-库存采购入库保存即签字推送节点";
}
}

View File

@@ -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<U8CSaleOrderAddVo> orderAddVoList = new ArrayList<U8CSaleOrderAddVo>();
U8CSaleOrderAddVo u8CSaleOrderAddVo = new U8CSaleOrderAddVo();
param.setSaleorder(orderAddVoList);
U8CSaleOrderAddParentVo parentVo = new U8CSaleOrderAddParentVo();
List<U8CSaleOrderAddChildren> childrenList = new ArrayList<U8CSaleOrderAddChildren>();
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<String, List<FormDataVo>> subFormMap = formDataVo.getSubFormMap();
List<FormDataVo> 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 "新天成-销售订单新增";
}
}

View File

@@ -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<U8CSaleOrderAddVo> orderAddVoList = new ArrayList<U8CSaleOrderAddVo>();
U8CSaleOrderAddVo u8CSaleOrderAddVo = new U8CSaleOrderAddVo();
param.setSaleorder(orderAddVoList);
U8CSaleOrderAddParentVo parentVo = new U8CSaleOrderAddParentVo();
List<U8CSaleOrderAddChildren> childrenList = new ArrayList<U8CSaleOrderAddChildren>();
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<String, List<FormDataVo>> subFormMap = formDataVo.getSubFormMap();
List<FormDataVo> 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 "新天成-销售订单保存审批";
}
}

View File

@@ -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<U8CSaleOutSaveSignChildren> childrenList = new ArrayList<U8CSaleOutSaveSignChildren>();
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<String, List<FormDataVo>> subFormMap = formDataVo.getSubFormMap();
List<FormDataVo> 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 "新天成-库存销售出库保存审批";
}
}

View File

@@ -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<U8CYfBillVo> billVoList = new ArrayList<>();
param.setBillvo(billVoList);
U8CYfBillVo billVo = new U8CYfBillVo();
billVoList.add(billVo);
List<U8CYfChildren> 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;
}
}

View File

@@ -50,9 +50,13 @@ public class U8cParamsPreHandler {
docParentvo.setCreator("0001F8100000000000BI"); 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.setDjlxbm("D0");
arapParentvo.setDwbm("10");
arapParentvo.setPj_jsfs("20"); arapParentvo.setPj_jsfs("20");
arapParentvo.setWldx("0"); arapParentvo.setWldx("0");
arapParentvo.setBzbm("CNY"); arapParentvo.setBzbm("CNY");
@@ -73,9 +77,13 @@ public class U8cParamsPreHandler {
parentVo.setCdispatcherid("2002"); 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.setDjlxbm("D2");
skdParentvo.setDwbm("10");
skdParentvo.setPj_jsfs("20"); skdParentvo.setPj_jsfs("20");
skdParentvo.setWldx("0"); skdParentvo.setWldx("0");
skdParentvo.setBzbm("CNY"); skdParentvo.setBzbm("CNY");
@@ -93,9 +101,13 @@ public class U8cParamsPreHandler {
u8CYfDanParentVo.setShr("13986834633"); u8CYfDanParentVo.setShr("13986834633");
} }
public static void preHandleFkdBillVoParentvo(U8CFkdSaveAuditParentVo u8CFkdSaveAuditParentVo){ public static void preHandleFkdBillVoParentvo(String subject,U8CFkdSaveAuditParentVo u8CFkdSaveAuditParentVo){
u8CFkdSaveAuditParentVo.setDjlxbm("D3"); u8CFkdSaveAuditParentVo.setDjlxbm("D3");
u8CFkdSaveAuditParentVo.setDwbm("10"); if(subject.startsWith("XTC")) {
u8CFkdSaveAuditParentVo.setDwbm("11");
}else {
u8CFkdSaveAuditParentVo.setDwbm("10");
}
u8CFkdSaveAuditParentVo.setPj_jsfs("20"); u8CFkdSaveAuditParentVo.setPj_jsfs("20");
u8CFkdSaveAuditParentVo.setWldx("1"); u8CFkdSaveAuditParentVo.setWldx("1");
u8CFkdSaveAuditParentVo.setBzbm("CNY"); u8CFkdSaveAuditParentVo.setBzbm("CNY");
@@ -113,18 +125,33 @@ public class U8cParamsPreHandler {
u8CFkdSaveAuditParentVo.setShr("13997704117"); u8CFkdSaveAuditParentVo.setShr("13997704117");
} }
public static void preHandlePurchaseinSaveSignBillVoParentvo(U8CPurchaseinParentVo parentVo){ public static void preHandlePurchaseinSaveSignBillVoParentvo(String subject,U8CPurchaseinParentVo parentVo){
parentVo.setPk_corp("10"); if(subject.startsWith("XTC")) {
parentVo.setCoperatorid("18827263320"); parentVo.setPk_corp("11");
parentVo.setCbiztype("c001"); parentVo.setCoperatorid("18827263320");
parentVo.setCdispatcherid("1001"); parentVo.setCdispatcherid("1001");
parentVo.setPk_calbody("ZQC001"); 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){ public static void preHandleMaterialoutSaveSignBillVoParentvo(String subject,U8CMaterialoutParentVo parentVo){
parentVo.setPk_corp("10"); if(subject.startsWith("XTC")) {
parentVo.setCoperatorid("18827263320"); parentVo.setPk_corp("11");
parentVo.setCdispatcherid("2003"); parentVo.setCoperatorid("18827263320");
parentVo.setPk_calbody("ZQC001"); parentVo.setCdispatcherid("2003");
parentVo.setPk_calbody("XTC001");
}else {
parentVo.setPk_corp("10");
parentVo.setCoperatorid("18827263320");
parentVo.setCdispatcherid("2003");
parentVo.setPk_calbody("ZQC001");
}
} }
} }

View File

@@ -10,6 +10,7 @@ public class InvBillvoInvbasVo {
private String pk_invcl; //存货分类 private String pk_invcl; //存货分类
private String pk_measdoc; //主计量单位 private String pk_measdoc; //主计量单位
private String pk_taxitems; //税目 private String pk_taxitems; //税目
private String invpinpai;//品牌
public String getInvcode() { public String getInvcode() {
return invcode; return invcode;
@@ -75,4 +76,11 @@ public class InvBillvoInvbasVo {
this.pk_taxitems = pk_taxitems; this.pk_taxitems = pk_taxitems;
} }
public String getInvpinpai() {
return invpinpai;
}
public void setInvpinpai(String invpinpai) {
this.invpinpai = invpinpai;
}
} }

View File

@@ -0,0 +1,4 @@
package com.seeyon.apps.u8c.po.ordersaveapprove;
public class U8COrderSaveApproveChildrenVo {
}

View File

@@ -0,0 +1,4 @@
package com.seeyon.apps.u8c.po.ordersaveapprove;
public class U8COrderSaveApproveParentVo {
}

View File

@@ -0,0 +1,24 @@
package com.seeyon.apps.u8c.po.ordersaveapprove;
import java.util.List;
public class U8CPuorderVo {
private U8COrderSaveApproveParentVo parentvo;
private List<U8COrderSaveApproveChildrenVo> childrenvo;
public U8COrderSaveApproveParentVo getParentvo() {
return parentvo;
}
public void setParentvo(U8COrderSaveApproveParentVo parentvo) {
this.parentvo = parentvo;
}
public List<U8COrderSaveApproveChildrenVo> getChildrenvo() {
return childrenvo;
}
public void setChildrenvo(List<U8COrderSaveApproveChildrenVo> childrenvo) {
this.childrenvo = childrenvo;
}
}

View File

@@ -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;
}
}

View File

@@ -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;
}
}

View File

@@ -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;
}
}

View File

@@ -0,0 +1,24 @@
package com.seeyon.apps.u8c.po.productin;
import java.util.List;
public class U8CProductinSaveSignVo {
private U8CProductinSaveSignParentVo parentvo;
private List<U8CProductinSaveSignChildren> childrenvo;
public U8CProductinSaveSignParentVo getParentvo() {
return parentvo;
}
public void setParentvo(U8CProductinSaveSignParentVo parentvo) {
this.parentvo = parentvo;
}
public List<U8CProductinSaveSignChildren> getChildrenvo() {
return childrenvo;
}
public void setChildrenvo(List<U8CProductinSaveSignChildren> childrenvo) {
this.childrenvo = childrenvo;
}
}

View File

@@ -11,6 +11,7 @@ public class U8CPurchaseinChildrenVo {
private String nictaxrate;//税率 private String nictaxrate;//税率
private String nprice;//单价 private String nprice;//单价
private String nmny;//金额 private String nmny;//金额
private String noritaxmny; //税额
private String vnotebody;//备注 private String vnotebody;//备注
public String getCinventoryid() { public String getCinventoryid() {
@@ -92,4 +93,12 @@ public class U8CPurchaseinChildrenVo {
public void setVnotebody(String vnotebody) { public void setVnotebody(String vnotebody) {
this.vnotebody = vnotebody; this.vnotebody = vnotebody;
} }
public String getNoritaxmny() {
return noritaxmny;
}
public void setNoritaxmny(String noritaxmny) {
this.noritaxmny = noritaxmny;
}
} }

View File

@@ -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;
}
}

View File

@@ -0,0 +1,15 @@
package com.seeyon.apps.u8c.po.saleorder;
import java.util.List;
public class U8CSaleOrderAddParam {
private List<U8CSaleOrderAddVo> saleorder;
public List<U8CSaleOrderAddVo> getSaleorder() {
return saleorder;
}
public void setSaleorder(List<U8CSaleOrderAddVo> saleorder) {
this.saleorder = saleorder;
}
}

View File

@@ -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;
}
}

View File

@@ -0,0 +1,24 @@
package com.seeyon.apps.u8c.po.saleorder;
import java.util.List;
public class U8CSaleOrderAddVo {
private List<U8CSaleOrderAddChildren> childrenvo;
private U8CSaleOrderAddParentVo parentvo;
public List<U8CSaleOrderAddChildren> getChildrenvo() {
return childrenvo;
}
public void setChildrenvo(List<U8CSaleOrderAddChildren> childrenvo) {
this.childrenvo = childrenvo;
}
public U8CSaleOrderAddParentVo getParentvo() {
return parentvo;
}
public void setParentvo(U8CSaleOrderAddParentVo parentvo) {
this.parentvo = parentvo;
}
}

View File

@@ -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;
}
}

View File

@@ -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;
}
}

View File

@@ -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;
}
}

View File

@@ -0,0 +1,25 @@
package com.seeyon.apps.u8c.po.saleout;
import java.util.List;
public class U8CSaleOutSaveSignVo {
private List<U8CSaleOutSaveSignChildren> childrenvo;
private U8CSaleOutSaveSignParentVo parentvo;
public List<U8CSaleOutSaveSignChildren> getChildrenvo() {
return childrenvo;
}
public void setChildrenvo(List<U8CSaleOutSaveSignChildren> childrenvo) {
this.childrenvo = childrenvo;
}
public U8CSaleOutSaveSignParentVo getParentvo() {
return parentvo;
}
public void setParentvo(U8CSaleOutSaveSignParentVo parentvo) {
this.parentvo = parentvo;
}
}

View File

@@ -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<Object> param = new ArrayList<>();
param.add(templateId);
jdbcAgent.execute(sql,param);
List list = jdbcAgent.resultSetToList();
if(list == null || list.size() == 0) {
return null;
}
Map<String,Object> resultMap = (Map)list.get(0);
return (String)resultMap.get("subject");
}catch (Exception e) {
}finally {
jdbcAgent.close();
}
return null;
}
}

View File

@@ -1,20 +1,100 @@
package com.seeyon.apps.u8c.service; 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.config.ZqcU8cConfigProvider;
import com.seeyon.apps.u8c.constants.U8cConstants; 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.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Component @Component
public class U8CInventoryQueryService { public class U8CInventoryQueryService {
private static final Log log = Log.get(U8CInventoryQueryService.class);
@Autowired @Autowired
private ZqcU8cConfigProvider zqcU8cConfigProvider; private ZqcU8cConfigProvider zqcU8cConfigProvider;
@Autowired @Autowired
private U8cHttpClient u8cHttpClient; private U8cHttpClient u8cHttpClient;
public String getInventoryIdByName(String name) { public String getInventoryIdByName(String name) {
String url = zqcU8cConfigProvider.getBizConfigByKey(U8cConstants.u8cUrl) + "/u8cloud/api/uapbd/invmandoc/query"; // 1. 参数非空校验
return ""; if (StringUtils.isBlank(name)) {
log.error("根据名称查询存货失败:存货名称不能为空");
return null;
}
try {
// 2. 构建查询参数
Map<String, String> 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<String, Object> 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<String, Object> rowMap = (Map<String, Object>) dataList.get(0);
if (MapUtils.isEmpty(rowMap)) {
return null;
}
Map<String, Object> parentVo = (Map<String, Object>) rowMap.get("parentvo");
if (MapUtils.isEmpty(parentVo)) {
return null;
}
Map<String, Object> invbasVo = (Map<String, Object>) 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;
}
} }
} }

View File

@@ -36,7 +36,7 @@ public class U8CProjQueryService {
if(dataMap == null || dataMap.size() <= 0 ) { if(dataMap == null || dataMap.size() <= 0 ) {
throw new RuntimeException("未找到项目信息"); throw new RuntimeException("未找到项目信息");
} }
Integer count = Integer.parseInt((String)dataMap.get("allcount")); Integer count = (Integer) dataMap.get("allcount");
return count > 0; return count > 0;
}catch (Exception e) { }catch (Exception e) {
log.error(e.getMessage(),e); log.error(e.getMessage(),e);
@@ -70,4 +70,5 @@ public class U8CProjQueryService {
} }
return null; return null;
} }
} }

View File

@@ -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<String,String> 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<Object> dataList = (List<Object>)dataMap.get("datas");
Map<String,Object> rowMap = (Map<String, Object>) 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<String,String> 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<String,Object> map = (Map<String, Object>) array[0];
return map.get("pk_jobmngfil") + "," + map.get("pk_jobbasfil");
}catch (Exception e) {
log.error(e.getMessage());
}
return null;
}
}