diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/ZqcU8CPluginApi.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/ZqcU8CPluginApi.java new file mode 100644 index 0000000..d300957 --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/ZqcU8CPluginApi.java @@ -0,0 +1,43 @@ +package com.seeyon.apps.u8c; + +import com.seeyon.apps.common.plugin.api.APluginInfoApi; +import com.seeyon.apps.common.plugin.vo.ConfigVo; +import com.seeyon.apps.u8c.constants.U8cConstants; +import org.springframework.stereotype.Component; + +@Component +public class ZqcU8CPluginApi extends APluginInfoApi { + public ZqcU8CPluginApi() { + } + + public String getPluginId() { + return U8cConstants.getPluginId(); + } + + public String getCreateUser() { + return "橙阳科技"; + } + + public String getDescription() { + return "智谦诚U8C集成"; + } + + public ConfigVo getDefaultConfig() { + ConfigVo configVo = new ConfigVo(); + U8cConstants[] var2 = U8cConstants.values(); + int var3 = var2.length; + + for(int var4 = 0; var4 < var3; ++var4) { + U8cConstants value = var2[var4]; + if (value != U8cConstants.plugin) { + configVo.getDevParams().put(value.name(), value.getDefaultValue()); + configVo.getProdParams().put(value.name(), value.getDefaultValue()); + configVo.getParamMap().put(value.name(), value.getDescription()); + } + } + + return configVo; + } + +} + diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/aop/FormDataSaveAop.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/aop/FormDataSaveAop.java new file mode 100644 index 0000000..ca241f7 --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/aop/FormDataSaveAop.java @@ -0,0 +1,314 @@ +package com.seeyon.apps.u8c.aop; + +import cn.hutool.log.Log; +import com.seeyon.aicloud.common.JsonUtils; +import com.seeyon.apps.ext.workflow.vo.FormDataVo; +import com.seeyon.apps.u8c.config.ZqcU8cConfigProvider; +import com.seeyon.apps.u8c.constants.U8cConstants; +import com.seeyon.apps.u8c.node.U8CInventoryManageDocUpdateNode; +import com.seeyon.apps.u8c.node.U8CProjectDocAddNode; +import com.seeyon.apps.u8c.node.U8CUpdateCustdocNode; +import com.seeyon.apps.u8c.node.U8CYfDanSaveAuditNode; +import com.seeyon.apps.u8c.po.*; +import com.seeyon.apps.u8c.po.cus.CbdocVo; +import com.seeyon.apps.u8c.po.cus.DocBanks; +import com.seeyon.apps.u8c.po.cus.DocParentvo; +import com.seeyon.apps.u8c.po.cus.U8cCusDocUpdateParam; +import com.seeyon.apps.u8c.po.inventory.InvBillvoInvbasVo; +import com.seeyon.apps.u8c.po.inventory.InvBillvoParentvo; +import com.seeyon.apps.u8c.po.inventory.InventoryBillvo; +import com.seeyon.apps.u8c.po.inventory.U8CInventoryManageDocUpdateParam; +import com.seeyon.apps.u8c.po.proj.JobBasicInfo; +import com.seeyon.apps.u8c.po.proj.ProjectDocVo; +import com.seeyon.apps.u8c.po.proj.U8cProjectDocAddParam; +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.U8CKsService; +import com.seeyon.apps.u8c.service.U8cHttpClient; +import com.seeyon.apps.u8c.util.EnumMapUtils; +import com.seeyon.apps.u8c.util.FormQueryUtils; +import com.seeyon.apps.u8c.util.FormViewUtils; +import com.seeyon.cap4.save.param.FormDataSaveParam; +import com.seeyon.cap4.template.bean.MergeDataParamBean; +import org.apache.commons.lang.StringUtils; +import org.aspectj.lang.ProceedingJoinPoint; +import org.aspectj.lang.annotation.*; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.*; + +@Aspect +@Component +public class FormDataSaveAop { + + private static final Log log = Log.get(FormDataSaveAop.class); + @Autowired + private U8cHttpClient u8cHttpClient; + @Autowired + private ZqcU8cConfigProvider zqcU8cConfigProvider; + @Autowired + private U8CKsService ksService; + + @Around("execution(* com.seeyon.cap4.template.service.CAPFormDataService.saveOrUpdateForm(..))") + public Object listenFormEdit(ProceedingJoinPoint jp) throws Throwable { + // 获取方法参数 + log.info("----表单监听AOP逻辑开始执行----"); + try { + Object[] args = jp.getArgs(); + LinkedHashMap params = (LinkedHashMap) args[0]; + FormDataSaveParam formDataSaveParam = new FormDataSaveParam(params); + FormDataSaveParam.Content content = formDataSaveParam.getContent(); + String contentTemplateId = content.getContentTemplateId(); + Map formViews = FormViewUtils.getFormView(contentTemplateId); + String operateType = content.getOperateType(); + if (operateType == null) { + processAdd(formViews, formDataSaveParam.getMergeDataParamBean()); + } else { + processEdit(formViews, formDataSaveParam.getMergeDataParamBean()); + } + }catch (Exception e) { + log.error(e.getMessage()); + } + return jp.proceed(); + } + + private void processAdd(Map formViews, MergeDataParamBean mergeDataParamBean) throws Exception { + String title = (String) formViews.get("title"); + formViews.remove("title"); + switch (title) { + case "XM-项目信息一览": +// pushProjectAddInfo(formViews,mergeDataParamBean); + break; + } + } + + private void processEdit(Map formViews, MergeDataParamBean mergeDataParamBean) throws Exception { + String title = (String) formViews.get("title"); + formViews.remove("title"); + log.info("当前要同步的表单:" + title); + if(title.equals(zqcU8cConfigProvider.getBizConfigByKey(U8cConstants.ksEditSyncU8CTableName))) { + pushCusUpdateInfo(formViews,mergeDataParamBean); + }else if(title.equals(zqcU8cConfigProvider.getBizConfigByKey(U8cConstants.fkdInvocieDocSyncU8CTableName))) { + pushYfDanInfo(formViews,mergeDataParamBean); + } + } + + public void pushInventoryUpdateInfo(Map formView, MergeDataParamBean mergeDataParamBean) throws Exception { + U8CInventoryManageDocUpdateParam param = new U8CInventoryManageDocUpdateParam(); + InventoryBillvo billvo = new InventoryBillvo(); + InvBillvoParentvo parentvo = new InvBillvoParentvo(); + billvo.setParentvo(parentvo); + parentvo.setCurrentcorp("10"); + InvBillvoInvbasVo invbasVo = new InvBillvoInvbasVo(); + parentvo.setInvbasVo(invbasVo); + Map tableData = mergeDataParamBean.getTableData(); + for (String tableKey : tableData.keySet()) { + Map dataMap = (Map) tableData.get(tableKey); + Map formViews = (Map) formView.get(tableData); + for (String viewItemKey : formViews.keySet()) { + String value = (String) dataMap.get(formViews.get(viewItemKey).getFieldName()); + if(viewItemKey.equals("材料系统编码")) { + invbasVo.setInvcode(value); + } + if(viewItemKey.equals("材料名称")) { + invbasVo.setInvname(value); + } + if(viewItemKey.equals("规格型号")) { + invbasVo.setInvspec(value); + } + if(viewItemKey.equals("材料分类")) { + invbasVo.setPk_invcl(value); + } + } + } + U8CInventoryManageDocUpdateNode updateNode = new U8CInventoryManageDocUpdateNode(); + String respStr = u8cHttpClient.doPost(zqcU8cConfigProvider.getBizConfigByKey(U8cConstants.u8cUrl) + updateNode.getMethod(), JsonUtils.toJSONString(param)); + U8cResponse u8cResponse = u8cHttpClient.parseResponse(respStr); + if(!u8cResponse.isSuccess()) { + throw new RuntimeException("u8c材料管理档案更新推送失败: " + u8cResponse.getMsg()); + } + } + + public void pushCusUpdateInfo(Map formViews, MergeDataParamBean mergeDataParamBean) throws Exception { + U8cCusDocUpdateParam param = new U8cCusDocUpdateParam(); + List cbdocvos = new ArrayList<>(); + param.setCbdocvo(cbdocvos); + CbdocVo cbdocVo = new CbdocVo(); + cbdocvos.add(cbdocVo); + DocParentvo docParentvo = new DocParentvo(); + List docBanks = new ArrayList<>(); + Map tableData = mergeDataParamBean.getTableData(); + Map contentInfoMap = mergeDataParamBean.getContent(); + for (String tableKey : tableData.keySet()) { + Map formItemViews = (Map) formViews.get(tableKey); + if(tableKey.startsWith("formmain")) { + Map mainTableData = (Map) tableData.get(tableKey); + for (String itemViewKey : formItemViews.keySet()) { + String itemValue = (String)mainTableData.get(formItemViews.get(itemViewKey).getFieldName()); + if(itemViewKey.equals("客商编号") && StringUtils.isNotBlank(itemValue)) { + docParentvo.setCustcode(itemValue); + } + if(itemViewKey.equals("客商名称") && StringUtils.isNotBlank(itemValue)) { + docParentvo.setCustname(itemValue); + docParentvo.setCustshortname(itemValue); + } + if(itemViewKey.equals("统一社会信用代码") && StringUtils.isNotBlank(itemValue)) { + docParentvo.setTaxpayerid(itemValue); + } +// if(itemViewKey.equals("客商地区分类") && StringUtils.isNotBlank(itemValue)) { +// docParentvo.setPk_areacl(itemValue); +// } + } + }else { + List subDataList = (List)tableData.get(tableKey); + for (Object o : subDataList) { + Map rowMap = (Map) o; + DocBanks docBank = new DocBanks(); + for (String viewItemKey : formItemViews.keySet()) { + String itemValue = (String)rowMap.get(formItemViews.get(viewItemKey).getFieldName()); + if(viewItemKey.equals("账户名称") && StringUtils.isNotBlank(itemValue)) { + docBank.setAccountname(itemValue); + } + if(viewItemKey.equals("银行账号") && StringUtils.isNotBlank(itemValue)) { + docBank.setAccount(itemValue); + docBank.setAccname(itemValue); + } + if(viewItemKey.equals("银行类别") && StringUtils.isNotBlank(itemValue)) { + docBank.setBanktypename(itemValue); + } + } + U8cParamsPreHandler.preHandleCusInfoBankAdd(docBank); + docBanks.add(docBank); + } + } + } + U8cParamsPreHandler.preHandleCusInfoKsUpdate(docParentvo); + cbdocVo.setParentvo(docParentvo); + cbdocVo.setBanks(docBanks); + U8CUpdateCustdocNode u8CUpdateCustdocNode = new U8CUpdateCustdocNode(); + String pkCode = ksService.getKsPkByCode(docParentvo.getCustcode()); + docParentvo.setPk_cubasdoc(pkCode); + String paramStr = JsonUtils.toJSONString(param); + log.info("推送更新客商信息的参数: " + paramStr); + String respStr = u8cHttpClient.doPost(zqcU8cConfigProvider.getBizConfigByKey(U8cConstants.u8cUrl) + u8CUpdateCustdocNode.getMethod(), paramStr); + U8cResponse u8cResponse = u8cHttpClient.parseResponse(respStr); + if(!u8cResponse.isSuccess()) { + throw new RuntimeException("u8c客商档案更新失败: " + u8cResponse.getMsg()); + } + } + + private void pushProjectAddInfo(Map formView, MergeDataParamBean mergeDataParamBean) throws Exception { + U8cProjectDocAddParam u8cProjectDocAddParam = new U8cProjectDocAddParam(); + List projectDocVos = new ArrayList<>(); + u8cProjectDocAddParam.setVos(projectDocVos); + ProjectDocVo projectDocVo = new ProjectDocVo(); + JobBasicInfo jobBasicInfo = new JobBasicInfo(); + Map tableData = mergeDataParamBean.getTableData(); + for (String tableKey : tableData.keySet()) { + if(!tableKey.startsWith("formmain")) { + continue; + } + Map dataMap = (Map) tableData.get(tableKey); + Map formViews = (Map) formView.get(tableKey); + for (String viewItemKey : formViews.keySet()) { + Object value = dataMap.get(formViews.get(viewItemKey).getFieldName()); + if(viewItemKey.equals("项目系统编号") && StringUtils.isNotBlank((String) value)) { + jobBasicInfo.setJobcode((String) value); + } + if(viewItemKey.equals("项目名称") && StringUtils.isNotBlank((String) value)) { + jobBasicInfo.setJobname((String) value); + } + if(viewItemKey.equals("项目建设状态") && StringUtils.isNotBlank((String) value)) { +// EnumMapUtils.getEnumItemValueByEnumId() + } + if(viewItemKey.equals("计划竣工日期") && value != null) { + jobBasicInfo.setForecastenddate(value + ""); + } + if(viewItemKey.equals("计划开工日期") && value != null) { + jobBasicInfo.setBegindate(value + ""); + } + } + } + projectDocVo.setJobBasicInfo(jobBasicInfo); + projectDocVos.add(projectDocVo); + projectDocVo.setPk_corp("10"); + jobBasicInfo.setPk_jobtype("ZQC11"); + U8CProjectDocAddNode addNode = new U8CProjectDocAddNode(); + String paramStr = JsonUtils.toJSONString(u8cProjectDocAddParam); + String respStr = u8cHttpClient.doPost(zqcU8cConfigProvider.getBizConfigByKey(U8cConstants.u8cUrl) + addNode.getMethod(), paramStr); + U8cResponse u8cResponse = u8cHttpClient.parseResponse(respStr); + if(!u8cResponse.isSuccess()) { + throw new RuntimeException("u8c项目管理档案新增失败: " + u8cResponse.getMsg()); + } + } + + private void pushYfDanInfo(Map formView, MergeDataParamBean mergeDataParamBean) throws Exception { + U8CYfDanSaveAuditAddParam param = new U8CYfDanSaveAuditAddParam(); + List billVoList = new ArrayList<>(); + param.setBillvo(billVoList); + U8CYfBillVo billVo = new U8CYfBillVo(); + billVoList.add(billVo); + List u8CYfChildrenList = new ArrayList<>(); + U8CYfDanParentVo u8CYfDanParentVo = new U8CYfDanParentVo(); + billVo.setChildren(u8CYfChildrenList); + billVo.setParentvo(u8CYfDanParentVo); + U8CYfChildren u8CYfChildren = new U8CYfChildren(); + Map tableData = mergeDataParamBean.getTableData(); + Map contentInfoMap = mergeDataParamBean.getContent(); + String formId = contentInfoMap.get("contentDataId") + ""; + Boolean canPush = false; + for (String tableKey : tableData.keySet()) { + if(!tableKey.startsWith("formmain")) { + continue; + } + Map dataMap = (Map) tableData.get(tableKey); + Map formViews = (Map) formView.get(tableKey); + for (String viewItemKey : formViews.keySet()) { + String value = (String) dataMap.get(formViews.get(viewItemKey).getFieldName()); + if(viewItemKey.equals("是否到票") && "已到票".equals(value) ) { + Map oldRowData = FormQueryUtils.queryOneRowById(tableKey, formId); + Long oldEnumValueId = (Long) oldRowData.get(formViews.get(viewItemKey).getFieldName()); + String enumShowValue = EnumMapUtils.getEnumShowValue(oldEnumValueId); + if("已到票".equals(enumShowValue)) { + canPush = true; + } + } + if(viewItemKey.equals("档案编号")) { + u8CYfDanParentVo.setDjbh(value); + } + if(viewItemKey.equals("到票日期")) { + u8CYfDanParentVo.setDjrq(value); + u8CYfDanParentVo.setShrq(value); + } + if(viewItemKey.equals("收款单位编号")) { + u8CYfDanParentVo.setHbbm(value); + } + if(viewItemKey.equals("税率")) { + u8CYfDanParentVo.setHbbm(value); + } + if(viewItemKey.equals("税额")) { + u8CYfDanParentVo.setHbbm(value); + } + if(viewItemKey.equals("无税金额")) { + u8CYfDanParentVo.setHbbm(value); + } + } + } + if(!canPush) { + return; + } + u8CYfChildrenList.add(u8CYfChildren); + U8cParamsPreHandler.preHandleYfdBillVoParentvo(u8CYfDanParentVo); + U8CYfDanSaveAuditNode addNode = new U8CYfDanSaveAuditNode(); + String paramStr = JsonUtils.toJSONString(param); + String respStr = u8cHttpClient.doPost(zqcU8cConfigProvider.getBizConfigByKey(U8cConstants.u8cUrl) + addNode.getMethod(), paramStr); + U8cResponse u8cResponse = u8cHttpClient.parseResponse(respStr); + if(!u8cResponse.isSuccess()) { + throw new RuntimeException("付款及回票档案修改到票状态推送应付单到U8C失败: " + u8cResponse.getMsg()); + } + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/config/ZqcU8cConfigProvider.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/config/ZqcU8cConfigProvider.java new file mode 100644 index 0000000..e33e8d0 --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/config/ZqcU8cConfigProvider.java @@ -0,0 +1,21 @@ +package com.seeyon.apps.u8c.config; + +import com.seeyon.apps.common.config.ICstConfigApi; +import com.seeyon.apps.common.plugin.vo.ConfigVo; +import com.seeyon.apps.u8c.constants.U8cConstants; +import com.seeyon.ctp.common.AppContext; +import org.springframework.stereotype.Component; + +import static com.seeyon.apps.u8c.constants.U8cConstants.getPluginId; + + +@Component +public class ZqcU8cConfigProvider { + + protected ICstConfigApi cstConfigApi = (ICstConfigApi) AppContext.getBean("cstConfigApi"); + + public String getBizConfigByKey(U8cConstants key) { + ConfigVo config = cstConfigApi.getConfig(getPluginId()); + return config.getParamVal(key.name()); + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/constants/U8cConstants.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/constants/U8cConstants.java new file mode 100644 index 0000000..324ce12 --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/constants/U8cConstants.java @@ -0,0 +1,37 @@ +package com.seeyon.apps.u8c.constants; + +public enum U8cConstants { + + + plugin("src_zqcu8c","插件ID"), + u8cUrl("http://ip:port", "U8C地址"), + u8cSystem("ZQCOA", "u8cSystem"), + u8cUsercode("OA", "u8cUsercode"), + u8cPassword("0411fd12d05765c3019657ae66358733", "u8cPassword"), + u8cContentType("application/json", "u8cContentType"), + u8cConnection("Keep-Alive", "u8cConnection"), + ksEditSyncU8CTableName("","修改客商同步到u8c需要监听的表名"), + fkdInvocieDocSyncU8CTableName("","修改付款单到票状态同步u8c需要监听的表"), + ; + + U8cConstants(String defaultValue, String description) { + this.defaultValue = defaultValue; + this.description = description; + } + + private String defaultValue; + private String description; + + public String getDefaultValue() { + return defaultValue; + } + + public String getDescription() { + return description; + } + + public static String getPluginId() { + return plugin.defaultValue; + } + +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/controller/U8CInventoryCategoryQueryController.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/controller/U8CInventoryCategoryQueryController.java new file mode 100644 index 0000000..2bd6586 --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/controller/U8CInventoryCategoryQueryController.java @@ -0,0 +1,95 @@ +package com.seeyon.apps.u8c.controller; + +import cn.hutool.log.Log; +import com.seeyon.aicloud.common.JsonUtils; +import com.seeyon.apps.u8c.resp.U8cResponse; +import com.seeyon.apps.u8c.service.U8cHttpClient; +import com.seeyon.ctp.common.AppContext; +import com.seeyon.ctp.common.controller.BaseController; +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.OutputStream; +import java.nio.charset.StandardCharsets; +import java.util.HashMap; +import java.util.LinkedHashMap; +import java.util.Map; + +public class U8CInventoryCategoryQueryController extends BaseController { + + private static final Log log = Log.get(U8CInventoryCategoryQueryController.class); + + private U8cHttpClient u8cHttpClient = (U8cHttpClient) AppContext.getBean("u8cHttpClient"); + + public void queryCategory(HttpServletRequest request, HttpServletResponse response) { + try { + log.info("查询材料分类"); + String pcode = request.getHeader("pcode"); + Map params = new HashMap<>(); + params.put("page_now","1"); + params.put("page_size","2000"); + String respStr = u8cHttpClient.doPost("http://1.95.201.23:1818/u8cloud/api/uapbd/bdinvcl/query", JsonUtils.toJSONString(params)); + U8cResponse u8cResponse = u8cHttpClient.parseResponse(respStr); + Map map = JsonUtils.parseObject(u8cResponse.getData(), Map.class); + Object[] datas = (Object[]) map.get("datas"); + Map map2 = new LinkedHashMap<>(); + Map map5 = new LinkedHashMap<>(); + Map map8 = new LinkedHashMap<>(); + + for (Object item : datas) { + LinkedHashMap mapTemp = (LinkedHashMap) item; + String code = mapTemp.get("invclasscode"); + if (code == null) continue; + + switch (code.length()) { + case 2: + map2.put(code, item); + break; + case 5: + map5.put(code, item); + break; + case 8: + map8.put(code, item); + break; + default: + // 可选处理:不在 2、5、8 的 code + System.out.println("未识别长度的 code: " + code); + } + } + String respBody = ""; + if(StringUtils.isBlank(pcode)) { + respBody += JsonUtils.toJSONString(map2.values()); + }else if(StringUtils.isNotBlank(pcode) && pcode.length() == 2) { + Map temp = new HashMap<>(); + for (String key : map5.keySet()) { + if(pcode.equals(key.substring(0,2))) { + temp.put(key, map5.get(key)); + } + } + respBody += JsonUtils.toJSONString(temp.values()); + }else if(StringUtils.isNotBlank(pcode) && pcode.length() == 5) { + Map temp = new HashMap<>(); + for (String key : map8.keySet()) { + if(pcode.equals(key.substring(0,5))) { + temp.put(key, map8.get(key)); + } + } + respBody += JsonUtils.toJSONString(temp.values()); + } + response.setContentType("application/json;charset=UTF-8"); + response.setCharacterEncoding("UTF-8"); + response.setStatus(HttpServletResponse.SC_OK); + try (OutputStream out = response.getOutputStream()) { + out.write(respBody.getBytes(StandardCharsets.UTF_8)); + out.flush(); + } + return; + } catch (Exception e) { + log.error("查询失败", e); + } + response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); + } + +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/controller/U8CInventoryNumQueryController.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/controller/U8CInventoryNumQueryController.java new file mode 100644 index 0000000..20a3403 --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/controller/U8CInventoryNumQueryController.java @@ -0,0 +1,81 @@ +package com.seeyon.apps.u8c.controller; + +import cn.hutool.log.Log; +import com.seeyon.aicloud.common.JsonUtils; +import com.seeyon.apps.u8c.resp.U8cResponse; +import com.seeyon.apps.u8c.service.U8cHttpClient; +import com.seeyon.ctp.common.AppContext; +import com.seeyon.ctp.common.controller.BaseController; +import org.apache.commons.lang.StringUtils; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.OutputStream; +import java.nio.charset.StandardCharsets; +import java.util.*; + +public class U8CInventoryNumQueryController extends BaseController { + + private static final Log log = Log.get(U8CInventoryNumQueryController.class); + + private U8cHttpClient u8cHttpClient = (U8cHttpClient) AppContext.getBean("u8cHttpClient"); + + public void queryInventory(HttpServletRequest request, HttpServletResponse response) { + try { + log.info("查询材料现存量"); + String inventory = request.getHeader("inventory"); + String storeId = request.getHeader("storeId"); + String isListByBVCode = request.getHeader("isListByBVCode"); + String batchcode = request.getHeader("batchcode"); + Map params = new HashMap<>(); + params.put("calbody","ZQC001"); + params.put("corp","10"); + params.put("inventory",inventory); + params.put("isGroupByWarehouse","Y"); + if(StringUtils.isNotBlank(storeId)){ + params.put("warehouse",storeId); + }else { + params.put("warehouse","100001"); + } + if(StringUtils.isNotBlank(isListByBVCode)) { + params.put("isGroupByBatchcode", isListByBVCode); + }else { + params.put("isGroupByBatchcode", "N"); + } + if(StringUtils.isNotBlank(batchcode)){ + params.put("batchcode",batchcode); + } + String paramStr = JsonUtils.toJSONString(params); + log.info("现存量查询调用参数:" + paramStr); + String respStr = u8cHttpClient.doPost("http://1.95.201.23:1818/u8cloud/api/ic/onhand/query", paramStr); + U8cResponse u8cResponse = u8cHttpClient.parseResponse(respStr); + String respBody = ""; + Map map = JsonUtils.parseObject(u8cResponse.getData(), Map.class); + Object[] datas = (Object[]) map.get("datas"); + List resList = new ArrayList<>(); + if(datas != null) { + for (Object item : datas) { + LinkedHashMap mapTemp = (LinkedHashMap) item; + String code = mapTemp.get("cinventory_code"); + if(code == null) { + continue; + } + resList.add(mapTemp); + } + } + respBody += JsonUtils.toJSONString(resList); + response.setContentType("application/json;charset=UTF-8"); + response.setCharacterEncoding("UTF-8"); + response.setStatus(HttpServletResponse.SC_OK); + try (OutputStream out = response.getOutputStream()) { + out.write(respBody.getBytes(StandardCharsets.UTF_8)); + out.flush(); + } + return; + } catch (Exception e) { + log.error("查询失败", e); + } + response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); + } + +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/event/U8CProjectInfoPushEvent.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/event/U8CProjectInfoPushEvent.java new file mode 100644 index 0000000..38158b2 --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/event/U8CProjectInfoPushEvent.java @@ -0,0 +1,35 @@ +package com.seeyon.apps.u8c.event; + +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.po.proj.U8cProjectDocAddParam; +import com.seeyon.apps.u8c.resp.U8cResponse; +import com.seeyon.apps.u8c.service.U8cHttpClient; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +@Component +public class U8CProjectInfoPushEvent { + + private static final Log log = Log.get(U8CProjectInfoPushEvent.class); + + @Autowired + private U8cHttpClient u8cHttpClient; + @Autowired + private ZqcU8cConfigProvider cConfigProvider; + + public void pushProjectInfo(U8cProjectDocAddParam addParam) { + String url = cConfigProvider.getBizConfigByKey(U8cConstants.u8cUrl) + "/u8cloud/api/uapbd/bdjobmngfil/save"; + try { + String respStr = u8cHttpClient.doPost(url, JsonUtils.toJSONString(addParam)); + U8cResponse u8cResponse = u8cHttpClient.parseResponse(respStr); + if(!u8cResponse.isSuccess()) { + log.error("u8c项目管理档案新增失败: " + u8cResponse.getMsg()); + } + } catch (Exception e) { + log.error(e.getMessage(),e); + } + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/node/AllocateRemittanceNode.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/node/AllocateRemittanceNode.java new file mode 100644 index 0000000..fa56929 --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/node/AllocateRemittanceNode.java @@ -0,0 +1,31 @@ +package com.seeyon.apps.u8c.node; + +import org.springframework.stereotype.Component; + +/** + * 功能描述:
+ *
+ *
+ * 
+ * + * @Author: HuangZhengguo + * @Date: 2024/9/19 + */ +@Component +public class AllocateRemittanceNode extends U8CCashCommonNode { + + @Override + public String getMethod() { + return "/u8cloud/api/cmp/hj/insert"; + } + + @Override + public String getNodeId() { + return "ZqcAllocateRemittanceNode"; + } + + @Override + public String getNodeName() { + return "ZQC资金调拨推送U8C划账结算单"; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8CBankAccountAddNode.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8CBankAccountAddNode.java new file mode 100644 index 0000000..a5c273d --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8CBankAccountAddNode.java @@ -0,0 +1,73 @@ +package com.seeyon.apps.u8c.node; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +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.po.cus.U8cBankAccountAddParam; +import com.seeyon.apps.u8c.po.U8cParamsPreHandler; +import com.seeyon.apps.u8c.resp.U8cResponse; +import com.seeyon.apps.u8c.service.U8cHttpClient; +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.HashMap; +import java.util.List; +import java.util.Map; + +@Component +public class U8CBankAccountAddNode extends U8CCommonNode { + + @Autowired + private U8cHttpClient u8cHttpClient; + + @Override + public String buildParam(String request, FormDataVo formDataVo) throws Exception { + JSONObject jsonObject = JSON.parseObject(request); + U8cBankAccountAddParam param = new U8cBankAccountAddParam(); + param.setAccount(jsonObject.getString("bankaccount")); + param.setAccountcode(jsonObject.getString("bankaccountcode")); + param.setPk_banktype(jsonObject.getString("banktype")); + param.setOwnercorp(jsonObject.getString("ownercorp")); + U8cParamsPreHandler.preHandleBankAccountAdd(param); + Map map = new HashMap<>(); + List list = new ArrayList<>(); + list.add(param); + map.put("bankaccbasvo",list); + return JsonUtils.toJSONString(map); + } + + @Override + public boolean isForcePushMethod() { + return false; + } + + @Override + public String getResultFieldNameByNodeId() { + return ""; + } + + @Override + public String getMethod() { + return "/u8cloud/api/uapbd/bankaccount/insert"; + } + + @Override + public boolean hasOtherAction(FormDataVo formDataVo) { + return false; + } + + @Override + public SuperNodeContext otherAction(String request, FormDataVo formDataVo, FormDataMasterBean formDataMasterBean) { + return null; + } + + + @Override + public String getNodeName() { + return "推送U8C银行账户新增节点"; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8CCashCommonNode.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8CCashCommonNode.java new file mode 100644 index 0000000..5522468 --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8CCashCommonNode.java @@ -0,0 +1,195 @@ +package com.seeyon.apps.u8c.node; + +import cn.hutool.log.Log; +import com.alibaba.fastjson.JSONObject; +import com.seeyon.apps.common.config.ICstConfigApi; +import com.seeyon.apps.common.plugin.vo.ConfigVo; +import com.seeyon.apps.common.workflow.constants.WorkFlowType; +import com.seeyon.apps.common.workflow.node.ACommonSuperNode; +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.resp.U8cResponse; +import com.seeyon.apps.u8c.util.Cap4ReturnUtil; +import com.seeyon.apps.u8c.service.U8cHttpClient; +import com.seeyon.cap4.form.api.FormDataApi4Cap4; +import com.seeyon.cap4.form.bean.FormDataMasterBean; +import com.seeyon.ctp.common.AppContext; +import com.seeyon.ctp.common.exceptions.BusinessException; +import com.seeyon.apps.u8c.constants.U8cConstants; +import com.seeyon.apps.u8c.util.ParamUtil; +import org.springframework.beans.factory.annotation.Autowired; + +public abstract class U8CCashCommonNode extends ACommonSuperNode { + + private static final Log log = Log.get(U8CCashCommonNode.class); + + protected ICstConfigApi cstConfigApi = (ICstConfigApi) AppContext.getBean("cstConfigApi"); + protected FormDataApi4Cap4 formDataApi4Cap4; + + @Autowired + private U8cHttpClient u8cHttpClient; + + @Override + public String getPluginId() { + return U8cConstants.getPluginId(); + } + + @Override + public String getFormParse() { + return "json"; + } + + @Override + public WorkFlowType[] getTypes() { + return new WorkFlowType[]{WorkFlowType.superNode}; + } + + public void setFormDataApi4Cap4(FormDataApi4Cap4 formDataApi4Cap4) { + this.formDataApi4Cap4 = formDataApi4Cap4; + } + + public ConfigVo getU8cConfig() { + return cstConfigApi.getConfig(getPluginId()); + } + + @Override + public SuperNodeContext proceed(String request, FormDataVo formDataVo, FormDataMasterBean formDataMasterBean) throws Exception { + SuperNodeContext context = new SuperNodeContext(); + log.info("开始处理结算单据:" + getNodeId()); + + String param = new ParamUtil().param(request, getMethod(), formDataVo); + context.setRequest(param); + + if (shouldSkipAudit(formDataVo)) { + return context.success("跳过:已成功推送U8C"); + } + + ConfigVo configVo = getU8cConfig(); + String url = buildRequestUrl(configVo); + context.setUrl(url); + context.setNeedSave(true); + + try { + String response = sendU8cRequest(url, param, configVo); + log.info("U8C响应:" + response); + + U8cResponse u8cResponse = u8cHttpClient.parseResponse(response); + if (!u8cResponse.isSuccess()) { + return handlePushFailure(context, formDataVo, u8cResponse); + } + + return handleAudit(context, param, u8cResponse, configVo, formDataVo); + + } catch (Exception e) { + log.error("推送U8C异常", e); + context.back("推送U8C失败:OA处理异常:" + e.getMessage()); + formDataVo.getNewFieldDataMap().put("U8C-返回结果", "推送U8C失败:OA处理异常:" + e.getMessage()); + return context; + } + } + + private boolean shouldSkipAudit(FormDataVo formDataVo) throws NoSuchFieldException { + if ("/u8cloud/api/cmp/sj/audit".equals(getMethod())) { + FieldDataVo fhjg = formDataVo.getFieldData("U8C-返回结果收"); + return fhjg != null && fhjg.getStringValue().startsWith("推送U8C成功"); + } + return false; + } + + private String buildRequestUrl(ConfigVo configVo) { + return configVo.getParamVal(U8cConstants.u8cUrl.name()) + getMethod(); + } + + private String sendU8cRequest(String url, String param, ConfigVo configVo) throws Exception { + return u8cHttpClient.doPost(url, param); + } + + private SuperNodeContext handlePushFailure(SuperNodeContext context, FormDataVo formDataVo, U8cResponse u8cResponse) { + context.setResponse(u8cResponse.getRaw()); + context.setErrMsg(u8cResponse.getMsg()); + context.back("推送U8C失败:" + u8cResponse.getMsg()); + formDataVo.getNewFieldDataMap().put("U8C-返回结果", "推送U8C失败:" + u8cResponse.getMsg()); + return context; + } + + private SuperNodeContext handleAudit(SuperNodeContext context, String param, U8cResponse u8cResponse, ConfigVo configVo, FormDataVo formDataVo) { + try { + String auditRequest = buildAuditRequest(param, u8cResponse, formDataVo); + String auditUrl = getAuditUrl(configVo); + + String auditResponse = sendU8cRequest(auditUrl, auditRequest, configVo); + log.info("审核响应:" + auditResponse); + + U8cResponse auditU8cResponse = u8cHttpClient.parseResponse(auditResponse); + if (auditU8cResponse.isSuccess()) { + handleAuditSuccess(context, u8cResponse, formDataVo); + } else { + handleAuditFailure(context, auditU8cResponse, u8cResponse, param, configVo, formDataVo); + } + + } catch (Exception e) { + handleAuditException(context, e, u8cResponse, param, configVo, formDataVo); + } + return context; + } + + private String getAuditUrl(ConfigVo configVo) { + String base = configVo.getParamVal(U8cConstants.u8cUrl.name()); + switch (getMethod()) { + case "/u8cloud/api/cmp/fj/insert": + return base + "/u8cloud/api/cmp/fj/audit"; + case "/u8cloud/api/cmp/sj/insert": + return base + "/u8cloud/api/cmp/sj/audit"; + case "/u8cloud/api/cmp/hj/insert": + return base + "/u8cloud/api/cmp/hj/audit"; + default: + return base; + } + } + + private String buildAuditRequest(String param, U8cResponse u8cResponse, FormDataVo formDataVo) { + // 生成审核请求 JSON 字符串(略) + return new JSONObject().toString(); + } + + private void handleAuditSuccess(SuperNodeContext context, U8cResponse u8cResponse, FormDataVo formDataVo) throws BusinessException, NoSuchFieldException { + Cap4ReturnUtil cap4ReturnUtil = new Cap4ReturnUtil(); + cap4ReturnUtil.setParamReturn(getMethod(), u8cResponse, formDataVo,getNodeId()); + context.setResponse(u8cResponse.getRaw()); + context.success("推送U8C成功:" + u8cResponse.getStatus(), false); + updateFormDataResult(formDataVo, u8cResponse.getStatus()); + } + + private void handleAuditFailure(SuperNodeContext context, U8cResponse auditU8cResponse, U8cResponse original, String param, ConfigVo configVo, FormDataVo formDataVo) { + // 尝试删除单据、记录错误等(略) + context.setErrMsg(auditU8cResponse.getMsg()); + context.back("推送U8C失败:" + auditU8cResponse.getMsg()); + formDataVo.getNewFieldDataMap().put("U8C-返回结果", "推送U8C失败:" + auditU8cResponse.getMsg()); + } + + private void handleAuditException(SuperNodeContext context, Exception e, U8cResponse u8cResponse, String param, ConfigVo configVo, FormDataVo formDataVo) { + // 删除异常、记录异常(略) + context.setResponse("OA单据审核处理异常:" + e.getMessage()); + context.setErrMsg(e.getMessage()); + context.back("推送U8C失败:OA异常:" + e.getMessage()); + formDataVo.getNewFieldDataMap().put("U8C-返回结果", "推送U8C失败:OA异常:" + e.getMessage()); + } + + private void updateFormDataResult(FormDataVo formDataVo, int status) { + String result = "推送U8C成功:" + status; + String nodeId = getNodeId(); + if ("DiaoBoYdctCollectionNode".equals(nodeId)) { + formDataVo.getNewFieldDataMap().put("U8C-返回结果收", result); + } else if ("DiaoBoYdctPaymentNode".equals(nodeId)) { + formDataVo.getNewFieldDataMap().put("U8C-返回结果付", result); + } else if ("DiaoBoYdctRemittanceNode".equals(nodeId)) { + formDataVo.getNewFieldDataMap().put("U8C-返回结果收", result); + formDataVo.getNewFieldDataMap().put("U8C-返回结果付", result); + } else { + formDataVo.getNewFieldDataMap().put("U8C-返回结果", result); + } + } + + public abstract String getMethod(); +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8CCommonNode.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8CCommonNode.java new file mode 100644 index 0000000..b8d1972 --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8CCommonNode.java @@ -0,0 +1,348 @@ +package com.seeyon.apps.u8c.node; + +import cn.hutool.log.Log; +import com.seeyon.apps.common.workflow.constants.WorkFlowType; +import com.seeyon.apps.common.workflow.node.ACommonSuperNode; +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.config.ZqcU8cConfigProvider; +import com.seeyon.apps.u8c.resp.U8cResponse; +import com.seeyon.apps.u8c.service.U8cHttpClient; +import com.seeyon.apps.u8c.util.EnumMapUtils; +import com.seeyon.apps.u8c.util.JsonUtils; +import com.seeyon.cap4.form.api.FormDataApi4Cap4; +import com.seeyon.cap4.form.bean.FormDataMasterBean; +import com.seeyon.apps.u8c.constants.U8cConstants; +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + +public abstract class U8CCommonNode extends ACommonSuperNode { + + private static final Log log = Log.get(U8CCommonNode.class); + protected FormDataApi4Cap4 formDataApi4Cap4; + + @Autowired + protected U8cHttpClient u8cHttpClient; + + @Autowired + protected ZqcU8cConfigProvider zqcU8cConfigProvider; + + // ========== 基础覆写 ========== + @Override + public String getPluginId() { + return U8cConstants.getPluginId(); + } + + @Override + public String getFormParse() { + return "json"; + } + + @Override + public WorkFlowType[] getTypes() { + return new WorkFlowType[]{WorkFlowType.superNode}; + } + + @Override + public String getNodeId() { + return this.getClass().getSimpleName(); + } + + public void setFormDataApi4Cap4(FormDataApi4Cap4 formDataApi4Cap4) { + this.formDataApi4Cap4 = formDataApi4Cap4; + } + + // ========== 抽象定义 ========== + public abstract String buildParam(String request, FormDataVo formDataVo) throws Exception; + public abstract boolean isForcePushMethod(); + public abstract String getMethod(); + + public abstract boolean hasOtherAction(FormDataVo formDataVo) throws Exception; + public abstract SuperNodeContext otherAction(String request, FormDataVo formDataVo, FormDataMasterBean formDataMasterBean) throws Exception; + public List buildParamList(String request, FormDataVo formDataVo) throws Exception { + return null; + } + + public boolean isBatchPush() { + return false; + } + + // ========== 主推送逻辑 ========== + @Override + public SuperNodeContext proceed(String request, FormDataVo formDataVo, FormDataMasterBean formDataMasterBean) throws Exception { + SuperNodeContext context = new SuperNodeContext(); + log.info("开始处理单据: {}", getNodeId()); + if(!isBatchPush()) { + return singlePush(context,request,formDataVo,formDataMasterBean); + }else { + return multiPush(context,request,formDataVo,formDataMasterBean); + } + } + + public String callU8C(String param,String url) throws Exception { + log.info("推送参数: {}", param); + return u8cHttpClient.doPost(url, param); + } + + public SuperNodeContext singlePush(SuperNodeContext context,String request, FormDataVo formDataVo, FormDataMasterBean formDataMasterBean) { + String param = null; + try { + param = buildParam(request, formDataVo); + log.info("推送U8C参数构建完成"); + } catch (Exception e) { + log.error("推送U8C失败", e); + return handleError(context, formDataVo, "推送U8C失败:参数构建失败_ ", e); + } + try { + if (!isForcePushMethod()) { + String resultField = getResultFieldNameByNodeId(); + String value = getStringValue(formDataVo, resultField); + if ((value != null && value.startsWith("推送成功")) || preCheck(formDataVo) || param == null) { + return context.success(value + "跳过:" + getNodeId() + "推送"); + } + } + } catch (Exception e) { + log.error("跳过判断异常", e); + return handleError(context, formDataVo, "处理异常:OA跳过处理异常:", e); + } + context.setNeedSave(true); + context.setRequest(param); + String url = zqcU8cConfigProvider.getBizConfigByKey(U8cConstants.u8cUrl) + getMethod(); + context.setUrl(url); + + try { + String response = callU8C(param,url); + U8cResponse u8cResponse = u8cHttpClient.parseResponse(response); + context.setResponse(response); + + if (u8cResponse.isSuccess() || u8cResponse.getMsg().contains("单据已经签字确认")) { + if (!hasOtherAction(formDataVo)) { + updateResultField(formDataVo, "推送成功"); + return context.success("推送U8C成功:" + u8cResponse.getStatus(), false); + } + + // 链式子操作处理 + SuperNodeContext subCtx = otherAction(request, formDataVo, formDataMasterBean); + if (!subCtx.isSuccess()) { + return handleError(context, formDataVo, subCtx); + } + updateResultField(formDataVo, "推送成功"); + return context.success("推送U8C成功:" + u8cResponse.getStatus(), false); + } else { + return handleFailure(context, formDataVo, "推送U8C失败:" + u8cResponse.getMsg()); + } + + } catch (Exception e) { + log.error("推送U8C失败", e); + return handleError(context, formDataVo, "推送U8C失败:OA处理异常", e); + } + } + + public SuperNodeContext multiPush(SuperNodeContext context,String request, FormDataVo formDataVo, FormDataMasterBean formDataMasterBean) throws Exception { + List paramList = null; + try { + paramList = buildParamList(request, formDataVo); + log.info("推送U8C参数构建完成"); + } catch (Exception e) { + log.error("推送U8C失败", e); + return handleError(context, formDataVo, "推送U8C失败:参数构建失败_ ", e); + } + try { + if (!isForcePushMethod()) { + String resultField = getResultFieldNameByNodeId(); + String value = getStringValue(formDataVo, resultField); + if ((value != null && value.startsWith("推送成功")) || preCheck(formDataVo) || paramList == null || paramList.isEmpty()) { + return context.success(value + "跳过:" + getNodeId() + "推送"); + } + } + } catch (Exception e) { + log.error("跳过判断异常", e); + return handleError(context, formDataVo, "处理异常:OA跳过处理异常:", e); + } + context.setNeedSave(true); + context.setRequest(JsonUtils.toJson(paramList)); + String url = zqcU8cConfigProvider.getBizConfigByKey(U8cConstants.u8cUrl) + getMethod(); + context.setUrl(url); + List successMsgs = new ArrayList<>(); + List failMsgs = new ArrayList<>(); + List respList = new ArrayList<>(); + for (int i = 0; i < paramList.size(); i++) { + String param = paramList.get(i); + try { + String resp = callU8C(param, url); + respList.add(resp); + U8cResponse u8cResponse = u8cHttpClient.parseResponse(resp); + if (u8cResponse.isSuccess() || u8cResponse.getMsg().contains("单据已经签字确认")) { + successMsgs.add("第" + (i + 1) + "次成功:" + u8cResponse.getStatus()); + } else { + failMsgs.add("第" + (i + 1) + "次失败:" + u8cResponse.getMsg()); + } + } catch (Exception e) { + failMsgs.add("第" + (i + 1) + "次异常:" + e.getMessage()); + log.error("U8C推送异常", e); + } + } + context.setResponse(JsonUtils.toJson(respList)); + // 汇总结果 + String summary = "推送U8C完成:成功 " + successMsgs.size() + " 次,失败 " + failMsgs.size() + " 次。\n" + + String.join(";", successMsgs) + + (failMsgs.isEmpty() ? "" : ";失败详情:" + String.join(";", failMsgs)); + + if (failMsgs.isEmpty()) { + + if (!hasOtherAction(formDataVo)) { + updateResultField(formDataVo, "推送成功"); + return context.success("推送U8C成功", false); + } + // 链式子操作处理 + SuperNodeContext subCtx = otherAction(request, formDataVo, formDataMasterBean); + if (!subCtx.isSuccess()) { + return handleError(context, formDataVo, subCtx); + } + updateResultField(formDataVo, "推送成功"); + return context.success(summary, false); + } else { + updateResultField(formDataVo, "推送失败"); + return handleFailure(context, formDataVo, summary); + } + } + + // ========== 工具方法 ========== + public void subActionProceed(String param) throws Exception { + String url = zqcU8cConfigProvider.getBizConfigByKey(U8cConstants.u8cUrl) + getMethod(); + log.info("调用U8C的参数为: {}", param); + String resp = u8cHttpClient.doPost(url, param); + U8cResponse u8cResponse = u8cHttpClient.parseResponse(resp); + if (!u8cResponse.isSuccess()) { + throw new Exception(u8cResponse.getMsg()); + } + } + + public boolean preCheck(FormDataVo formDataVo) throws NoSuchFieldException { + return false; + } + + protected String getEnumValue(FormDataVo formDataVo, String key) throws Exception { + if (key == null) return null; + try { + FieldDataVo fieldData = formDataVo.getFieldData(key); + return EnumMapUtils.getEnumItemCode(fieldData.getDbValue()); + } catch (NoSuchFieldException e) { + log.info(e.getMessage()); + return null; + } + } + + protected String getStringValue(FormDataVo formDataVo, String key) throws Exception { + if (key == null) return null; + try { + FieldDataVo fieldData = formDataVo.getFieldData(key); + return StringUtils.isBlank(fieldData.getStringValue()) ? null : fieldData.getStringValue(); + } catch (NoSuchFieldException e) { + log.info(e.getMessage()); + return null; + } + } + + protected String getDbValue(FormDataVo formDataVo, String key) throws Exception { + if (key == null) return null; + try { + FieldDataVo fieldData = formDataVo.getFieldData(key); + return fieldData.getDbValue() + ""; + } catch (NoSuchFieldException e) { + log.info(e.getMessage()); + return null; + } + } + + protected String getResultFieldNameByNodeId() { + return "推送U8C状态"; + } + + protected void updateResultField(FormDataVo formDataVo, String value) { + String nodeId = getNodeId(); + if ("DiaoBoYdctRemittanceNode".equals(nodeId)) { + formDataVo.getNewFieldDataMap().put("U8C-返回结果收", value); + formDataVo.getNewFieldDataMap().put("U8C-返回结果付", value); + } else { + formDataVo.getNewFieldDataMap().put(getResultFieldNameByNodeId(), value); + } + } + + protected SuperNodeContext handleFailure(SuperNodeContext context, FormDataVo formDataVo, String errMsg) { + context.setErrMsg(errMsg); + log.error("U8C单据推送失败: {}", errMsg); + updateResultField(formDataVo, "推送失败"); + return context.back(errMsg); + } + + protected SuperNodeContext handleError(SuperNodeContext context, FormDataVo formDataVo, String prefix, Exception e) { + String msg = prefix + e.getMessage(); + log.error("U8C单据推送失败: {}", msg, e); + updateResultField(formDataVo, "推送失败"); + return context.back(msg); + } + + protected SuperNodeContext handleError(SuperNodeContext context, FormDataVo formDataVo, SuperNodeContext otherProcessResult) { + String msg = otherProcessResult.getErrMsg(); + log.error("U8C单据推送失败: {}", msg); + updateResultField(formDataVo, "推送失败"); + return context.back(msg); + } + + // ========== 🔗 链式子操作增强区 ========== + /** + * 链式执行多个子操作(自动回滚) + */ + protected SuperNodeContext executeActionChain(List steps, FormDataVo formDataVo) { + SuperNodeContext context = new SuperNodeContext(); + List executed = new ArrayList<>(); + for (ActionStep step : steps) { + log.info("执行子操作: {}", step.getName()); + try { + step.execute(); + executed.add(step); + } catch (Exception e) { + log.error("子操作执行失败,开始回滚: {}", e.getMessage(), e); + if (executed.size() == 0) { + step.rollback(); + } else { + for (int i = executed.size() - 1; i >= 0; i--) { + ActionStep s = executed.get(i); + try { + s.rollback(); + log.info("已回滚子操作: {}", s.getName()); + } catch (Exception ex) { + log.error("回滚失败: {} => {}", s.getName(), ex.getMessage(), ex); + } + } + } + updateResultField(formDataVo, "推送失败"); + return context.back(step.getName() + "失败:" + e.getMessage()); + } + } + return context.success("子操作成功", false); + } + + /** + * 子操作抽象步骤 + */ + public abstract static class ActionStep { + private final String name; + public ActionStep(String name) { this.name = name; } + public String getName() { return name; } + + /** 子操作执行逻辑 */ + public abstract void execute() throws Exception; + + /** 回滚逻辑(可选) */ + public void rollback() { + // 默认空实现 + } + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8CCustBasicDocAddNode.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8CCustBasicDocAddNode.java new file mode 100644 index 0000000..ad5730f --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8CCustBasicDocAddNode.java @@ -0,0 +1,124 @@ +package com.seeyon.apps.u8c.node; + + +import com.alibaba.fastjson.JSONObject; +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.po.cus.AssignCustbasvo; +import com.seeyon.apps.u8c.po.cus.CbdocVo; +import com.seeyon.apps.u8c.po.cus.DocBanks; +import com.seeyon.apps.u8c.po.cus.DocParentvo; +import com.seeyon.apps.u8c.po.cus.U8cCusDocAddParam; +import com.seeyon.apps.u8c.po.U8cParamsPreHandler; +import com.seeyon.apps.u8c.resp.U8cResponse; +import com.seeyon.apps.u8c.service.U8cOrgService; +import com.seeyon.cap4.form.bean.FormDataMasterBean; +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +/** + * 功能描述:
+ *
+ *
+ * 
+ * + * @Author: HuangZhengguo + * @Date: 2024/9/19 + */ +@Component +public class U8CCustBasicDocAddNode extends U8CCommonNode { + + @Autowired + private U8cOrgService u8cOrgService; + @Autowired + private U8CCustdocAssignNode u8CCustdocAssignNode; + + @Override + public String buildParam(String request, FormDataVo formDataVo) throws Exception { + List cbdocvo = new ArrayList<>(); + U8cCusDocAddParam docAddParam = new U8cCusDocAddParam(); + docAddParam.setCbdocvo(cbdocvo); + CbdocVo cbdoc = new CbdocVo(); + cbdocvo.add(cbdoc); + DocParentvo docParentvo = new DocParentvo(); + cbdoc.setParentvo(docParentvo); + List banks = new ArrayList<>(); + Map> subFormMap = formDataVo.getSubFormMap(); + List subDataList = subFormMap.get("银行账号"); + for (FormDataVo dataVo : subDataList) { + DocBanks docBank = new DocBanks(); + docBank.setAccount(getStringValue(dataVo,"银行账号")); + docBank.setAccountname(getStringValue(dataVo,"账户名称")); + docBank.setBanktypename(getStringValue(dataVo,"银行类别")); + U8cParamsPreHandler.preHandleCusInfoBankAdd(docBank); + if(StringUtils.isBlank(docBank.getAccountname()) || StringUtils.isBlank(docBank.getAccount())){ + break; + } + banks.add(docBank); + } + if(banks.size() > 0) { + cbdoc.setBanks(banks); + } + U8cParamsPreHandler.preHandleCusInfoKsAdd(docParentvo); + docParentvo.setPk_areacl(getStringValue(formDataVo,"客商地区分类")); + docParentvo.setCustcode(getStringValue(formDataVo,"客商编号")); + docParentvo.setCustname(getStringValue(formDataVo,"客商名称")); + docParentvo.setCustshortname(getStringValue(formDataVo,"客商简称")); + docParentvo.setTaxpayerid(getStringValue(formDataVo,"统一社会信用代码")); + return JsonUtils.toJSONString(docAddParam); + } + + @Override + public boolean isForcePushMethod() { + return false; + } + + @Override + public String getMethod() { + return "/u8cloud/api/uapbd/custdoc/insert"; + } + + @Override + public boolean hasOtherAction(FormDataVo formDataVo) { + return true; + } + + @Override + public SuperNodeContext otherAction(String request, FormDataVo formDataVo, FormDataMasterBean formDataMasterBean) throws Exception { + //客商档案分配 + String ksCode = getStringValue(formDataVo, "客商编号"); + //调用U8C接口查询公司编码 + String assignParam = buildKsAssignParam(ksCode); + u8CCustdocAssignNode.subActionProceed(assignParam); + SuperNodeContext context = new SuperNodeContext(); + return context.success("u8c客商分配成功:", false); + + } + + private String buildKsAssignParam(String ksCode) throws Exception { + List assignCustbasvoList = new ArrayList<>(); + String corpCodes ="10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,10001,10002,10003,10004,TEST"; + String[] codes = corpCodes.split(","); + for (String code : codes) { + AssignCustbasvo assignCustbasvo = new AssignCustbasvo(); + assignCustbasvo.setPk_cubasdoc(ksCode); + assignCustbasvo.setCustprop(2); + assignCustbasvo.setPk_corp(code); + assignCustbasvoList.add(assignCustbasvo); + } + JSONObject jsonObject = new JSONObject(); + jsonObject.put("custbasvo", assignCustbasvoList); + return jsonObject.toString(); + } + + @Override + public String getNodeName() { + return "新增客商基础档案推送U8C"; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8CCustdocAssignNode.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8CCustdocAssignNode.java new file mode 100644 index 0000000..511b83a --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8CCustdocAssignNode.java @@ -0,0 +1,66 @@ +package com.seeyon.apps.u8c.node; + + +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.po.cus.AssignCustbasvo; +import com.seeyon.apps.u8c.po.U8cParamsPreHandler; +import com.seeyon.apps.u8c.resp.U8cResponse; +import com.seeyon.cap4.form.bean.FormDataMasterBean; +import org.springframework.stereotype.Component; + +import java.util.ArrayList; +import java.util.List; + +/** + * 功能描述:
+ *
+ *
+ * 
+ * + * @Author: HuangZhengguo + * @Date: 2024/9/19 + */ + +@Component +public class U8CCustdocAssignNode extends U8CCommonNode { + + @Override + public String buildParam(String request, FormDataVo formDataVo) throws Exception { + // 获取指定的json格式 + AssignCustbasvo assignCustbasvo = new AssignCustbasvo(); + //调用接口获取u8c公司编码 + //assignCustbasvo.setPk_corp(); + assignCustbasvo.setPk_cubasdoc(formDataVo.getFieldData("客商编码").toString()); + U8cParamsPreHandler.preHandleCustAssignParam(assignCustbasvo); + List custbasvo = new ArrayList<>(); + custbasvo.add(assignCustbasvo); + return JsonUtils.toJSONString(custbasvo); + } + + @Override + public boolean isForcePushMethod() { + return true; + } + + @Override + public String getMethod() { + return "/u8cloud/api/uapbd/custdoc/assign"; + } + + @Override + public boolean hasOtherAction(FormDataVo formDataVo) { + return false; + } + + @Override + public SuperNodeContext otherAction(String request, FormDataVo formDataVo, FormDataMasterBean formDataMasterBean) { + return null; + } + + @Override + public String getNodeName() { + return "客商基础档案分配推送U8C"; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8CCustmanDocAddNode.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8CCustmanDocAddNode.java new file mode 100644 index 0000000..3f93065 --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8CCustmanDocAddNode.java @@ -0,0 +1,82 @@ +package com.seeyon.apps.u8c.node; + + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +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.resp.U8cResponse; +import com.seeyon.cap4.form.bean.FormDataMasterBean; +import org.springframework.stereotype.Component; + +/** + * 功能描述:
+ *
+ *
+ * 
+ * + * @Author: HuangZhengguo + * @Date: 2024/4/28 + */ +@Component +public class U8CCustmanDocAddNode extends U8CCommonNode { + + @Override + public String buildParam(String request, FormDataVo formDataVo) throws Exception { + JSONObject jsonObject = JSON.parseObject(request); + JSONArray billvos = jsonObject.getJSONArray("billvo"); + JSONObject billvo = billvos.getJSONObject(0); + FieldDataVo custmandocType = formDataVo.getFieldData("客商类型"); + String custmandocTypeValue = custmandocType.getStringValue(); + JSONArray childrenvos = new JSONArray(); + JSONObject childrenvo1 = new JSONObject(); + JSONObject childrenvo2 = new JSONObject(); + if("客户".equals(custmandocTypeValue)){ + childrenvo1.put("custflag","0"); + childrenvo2.put("custflag","4"); + childrenvos.add(childrenvo1); + childrenvos.add(childrenvo2); + billvo.put("childrenvo",childrenvos); + }else if ("供应商".equals(custmandocTypeValue)){ + childrenvo1.put("custflag","1"); + childrenvo2.put("custflag",""); + childrenvos.add(childrenvo1); + childrenvos.add(childrenvo2); + billvo.put("childrenvo",childrenvos); + }else if ("客商".equals(custmandocTypeValue)){ + childrenvo1.put("custflag","2"); + childrenvo2.put("custflag","3"); + childrenvos.add(childrenvo1); + childrenvos.add(childrenvo2); + billvo.put("childrenvo",childrenvos); + } + return jsonObject.toString(); + } + + @Override + public boolean isForcePushMethod() { + return false; + } + + @Override + public String getMethod() { + return "/u8cloud/api/uapbd/custmandoc/insert"; + } + + @Override + public boolean hasOtherAction(FormDataVo formDataVo) { + return false; + } + + @Override + public SuperNodeContext otherAction(String request, FormDataVo formDataVo, FormDataMasterBean formDataMasterBean) { + return null; + } + + @Override + public String getNodeName() { + return "新增客商档案推送U8C"; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8CFkdSaveAuditNode.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8CFkdSaveAuditNode.java new file mode 100644 index 0000000..ce9f6c0 --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8CFkdSaveAuditNode.java @@ -0,0 +1,209 @@ +package com.seeyon.apps.u8c.node; + +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.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.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 U8CFkdSaveAuditNode extends U8CCommonNode{ + private static final Log log = Log.get(U8CFkdSaveAuditNode.class); + @Autowired + private U8CKsService u8CKsService; + @Autowired + private U8CYfDanSaveAuditNode u8CYfDanSaveAuditNode; + @Autowired + private OrgManager orgManager; + + @Override + public String buildParam(String request, FormDataVo formDataVo) throws Exception { + U8CFkdSaveAuditAddParam param = new U8CFkdSaveAuditAddParam(); + List billVoList = new ArrayList<>(); + U8CFkdSaveAuditBillVo billVo = new U8CFkdSaveAuditBillVo(); + billVoList.add(billVo); + param.setBillvo(billVoList); + List childrenList = new ArrayList(); + U8CFkdSaveAuditParentVo parentVo = new U8CFkdSaveAuditParentVo(); + billVo.setParentvo(parentVo); + billVo.setChildren(childrenList); + parentVo.setDjbh(getStringValue(formDataVo,"单据编号")); + parentVo.setDjrq(getStringValue(formDataVo,"填报日期")); + parentVo.setShrq(getStringValue(formDataVo,"填报日期")); + ColSummary colSummary = formDataVo.getColSummary(); + String subject = colSummary.getSubject(); + Long ksOaId = Long.valueOf(getDbValue(formDataVo, "填报人员")); + V3xOrgMember member = orgManager.getMemberById(ksOaId); + U8CFkdSaveAuditChildren u8CFkdSaveAuditChildren = new U8CFkdSaveAuditChildren(); + if(!subject.contains("付款申请")){ + parentVo.setHbbm(getKsCode(member.getName())); + u8CFkdSaveAuditChildren.setZy(getStringValue(formDataVo, "借支说明")); + FieldDataVo jzlxFieldData = formDataVo.getFieldData("借支类型"); + String jzlxStr = jzlxFieldData.getStringValue(); + if("备用金".equals(jzlxStr)) { + parentVo.setSzxmid("15005"); + }else if("预支工资".equals(jzlxStr)) { + parentVo.setSzxmid("15006"); + }else { + parentVo.setSzxmid(EnumMapUtils.getEnumItemCode(getDbValue(formDataVo,"借支类型"))); + } + U8cParamsPreHandler.preHandleJzFkdBillVoParentvo(parentVo); + parentVo.setBfyhzh(getStringValue(formDataVo,"支付银行账号")); + }else { + parentVo.setHbbm(getStringValue(formDataVo,"收款单位编号")); + u8CFkdSaveAuditChildren.setZy(getStringValue(formDataVo, "付款说明")); + u8CFkdSaveAuditChildren.setSzxmid(EnumMapUtils.getEnumItemCode(getDbValue(formDataVo,"费用类型"))); + u8CFkdSaveAuditChildren.setJobid(getStringValue(formDataVo, "项目编号")); + U8cParamsPreHandler.preHandleFkdBillVoParentvo(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) { + ColSummary colSummary = formDataVo.getColSummary(); + String subject = colSummary.getSubject(); + if(!subject.contains("付款申请")) { + return false; + } + try { + String isReceivedInvoice = getStringValue(formDataVo, "是否到票"); + if("已到票".equals(isReceivedInvoice)) { + return true; + } + } catch (Exception e) { + return false; + } + return false; + } + + @Override + public boolean preCheck(FormDataVo formDataVo) throws NoSuchFieldException { + ColSummary colSummary = formDataVo.getColSummary(); + String subject = colSummary.getSubject(); + if(!subject.contains("付款申请")) { + return false; + } + try { + String isReceivedInvoice = getStringValue(formDataVo, "是否到票"); + if("无需到票".equals(isReceivedInvoice)) { + return true; + } + } catch (Exception e) { + + } + return false; + } + + @Override + public SuperNodeContext otherAction(String request, FormDataVo formDataVo, FormDataMasterBean formDataMasterBean) throws Exception { + ActionStep pushYfdAction = new ActionStep("推送付款申请已到票应付单") { + String yfdParam; + + @Override + public void execute() throws Exception { + U8CYfDanSaveAuditAddParam param = new U8CYfDanSaveAuditAddParam(); + // ...构建参数 + List billVoList = new ArrayList<>(); + param.setBillvo(billVoList); + U8CYfBillVo billVo = new U8CYfBillVo(); + billVoList.add(billVo); + List u8CYfChildrenList = new ArrayList<>(); + U8CYfDanParentVo u8CYfDanParentVo = new U8CYfDanParentVo(); + billVo.setChildren(u8CYfChildrenList); + billVo.setParentvo(u8CYfDanParentVo); + u8CYfDanParentVo.setDjbh(getStringValue(formDataVo, "单据编号") + "YFD"); + u8CYfDanParentVo.setDjrq(getStringValue(formDataVo, "填报日期")); + u8CYfDanParentVo.setShrq(getStringValue(formDataVo, "填报日期")); + u8CYfDanParentVo.setHbbm(getStringValue(formDataVo, "收款单位编号")); + U8cParamsPreHandler.preHandleYfdBillVoParentvo(u8CYfDanParentVo); + U8CYfChildren u8CYfChildren = new U8CYfChildren(); + u8CYfChildren.setZy(getStringValue(formDataVo, "付款说明")); + u8CYfChildren.setSzxmid(EnumMapUtils.getEnumItemCode(getDbValue(formDataVo,"费用类型"))); + u8CYfChildren.setJobid(getStringValue(formDataVo, "项目编号")); + u8CYfChildren.setDfbbje(getStringValue(formDataVo, "发票金额")); + u8CYfChildren.setDfybje(getStringValue(formDataVo, "发票金额")); + String sl = getStringValue(formDataVo,"税率"); + if(sl != null) { + u8CYfChildren.setSl(Double.valueOf((Double.parseDouble(sl) * 100) + "").intValue() + ""); + } + u8CYfChildren.setDfybsj(getStringValue(formDataVo,"税额")); + u8CYfChildren.setDfybwsje(getStringValue(formDataVo,"无税金额")); + u8CYfChildrenList.add(u8CYfChildren); + yfdParam = JsonUtils.toJSONString(param); + u8CYfDanSaveAuditNode.subActionProceed(yfdParam); + } + + @Override + public void rollback(){ + log.info("开始回滚付款单"); + //调用接口根据单据编号删除付款单据 + try { + String url = zqcU8cConfigProvider.getBizConfigByKey(U8cConstants.u8cUrl) + "/u8cloud/api/arap/fk/delete"; + Map deleteinfo = new HashMap<>(); + Map queryinfo = new HashMap<>(); + deleteinfo.put("coperator","0001F8100000000000BI"); + queryinfo.put("dwbm","10"); + queryinfo.put("djbh_from",getStringValue(formDataVo,"单据编号")); + queryinfo.put("to",getStringValue(formDataVo,"单据编号")); + Map param = new HashMap<>(); + param.put("deleteinfo",deleteinfo); + param.put("queryinfo",queryinfo); + String resp = u8cHttpClient.doPost(url, JsonUtils.toJSONString(param)); + U8cResponse u8cResponse = u8cHttpClient.parseResponse(resp); + if(!u8cResponse.isSuccess()) { + throw new Exception("删除付款单据失败"); + } + }catch (Exception e) { + log.error(e.getMessage()); + } + } + }; + + return executeActionChain(Arrays.asList(pushYfdAction), formDataVo); + } + + private String getKsCode(String ksName) throws Exception { + return u8CKsService.getKsCode(ksName); + } + + @Override + public String getNodeName() { + return "付款单保存即审批节点"; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8CInventoryAddNode.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8CInventoryAddNode.java new file mode 100644 index 0000000..aa37f50 --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8CInventoryAddNode.java @@ -0,0 +1,108 @@ +package com.seeyon.apps.u8c.node; + +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.po.inventory.Invbasdoc; +import com.seeyon.apps.u8c.po.inventory.InvbasdocAssignVo; +import com.seeyon.apps.u8c.po.inventory.InventoryParentvo; +import com.seeyon.apps.u8c.po.inventory.U8cInventoryAddParam; +import com.seeyon.apps.u8c.po.inventory.U8cInventoryAissgnParam; +import com.seeyon.apps.u8c.resp.U8cResponse; +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 U8CInventoryAddNode extends U8CCommonNode{ + + @Autowired + private U8CInventoryAssignNode u8CInventoryAssignNode; + + @Override + public String buildParam(String request, FormDataVo formDataVo) throws Exception { + U8cInventoryAddParam param = new U8cInventoryAddParam(); + List invbasdocs = new ArrayList<>(); + param.setInvbasdoc(invbasdocs); + Map> subFormMap = formDataVo.getSubFormMap(); + List subDataList = subFormMap.get("明细表1"); + for (FormDataVo dataVo : subDataList) { + Invbasdoc invbasdoc = new Invbasdoc(); + InventoryParentvo inventoryParentvo = new InventoryParentvo(); + invbasdoc.setParentvo(inventoryParentvo); + inventoryParentvo.setInvcode(getStringValue(dataVo,"材料系统编码")); + inventoryParentvo.setInvname(getStringValue(dataVo,"材料名称")); + inventoryParentvo.setInvspec(getStringValue(dataVo,"规格型号")); +// inventoryParentvo.setInvtype(getStringValue(formDataVo,"材料类型")); + String lv1 = getStringValue(dataVo,"一级材料分类"); + String lv2 = getStringValue(dataVo,"二级材料分类"); + String lv3 = getStringValue(dataVo,"三级材料分类"); + String storCategory = lv3 != null ? lv3 : (lv2 != null ? lv2 : lv1); + inventoryParentvo.setPk_invcl(storCategory); + String measdocEnumValue = getEnumValue(dataVo, "计量单位"); + inventoryParentvo.setPk_measdoc((measdocEnumValue.substring(4))); + inventoryParentvo.setGraphid(getStringValue(dataVo,"材料内部编码")); + inventoryParentvo.setCorpcode("10"); + inventoryParentvo.setPk_taxitems("9000"); +// List inventoryChildrenvos = new ArrayList<>(); +// InventoryChildrenvo inventoryChildrenvo = new InventoryChildrenvo(); +// inventoryChildrenvos.add(inventoryChildrenvo); +// invbasdoc.setChildrenvo(inventoryChildrenvos); +// inventoryChildrenvo.setPk_measdoc(getStringValue(dataVo,"计量单位")); + invbasdocs.add(invbasdoc); + } +// inventoryChildrenvo.setMainmeasrate(Double.valueOf(getStringValue(formDataVo,"与主计量单位换算系数"))); + //材料编码 + //材料是否批量管理 + return JsonUtils.toJSONString(param); + } + + @Override + public boolean isForcePushMethod() { + return false; + } + + @Override + public String getMethod() { + return "/u8cloud/api/uapbd/invbasdoc/insert"; + } + + @Override + public boolean hasOtherAction(FormDataVo formDataVo) { + return true; + } + + @Override + public SuperNodeContext otherAction(String request, FormDataVo formDataVo, FormDataMasterBean formDataMasterBean) throws Exception { + //存货档案分配 + U8cInventoryAissgnParam assignParam = new U8cInventoryAissgnParam(); + List assignVos = new ArrayList<>(); + Map> subFormMap = formDataVo.getSubFormMap(); + List subDataList = subFormMap.get("明细表1"); + + String corpCodes ="10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,10001,10002,10003,10004,TEST"; + String[] codes = corpCodes.split(","); + for (FormDataVo dataVo : subDataList) { + String inventoryDocCode = getStringValue(dataVo,"材料系统编码"); + for (String code : codes) { + InvbasdocAssignVo assignVo = new InvbasdocAssignVo(); + assignVo.setPk_invbasdoc(inventoryDocCode); + assignVo.setPk_corp(code); + assignVos.add(assignVo); + } + } + assignParam.setInvbasdocvo(assignVos); + u8CInventoryAssignNode.subActionProceed(JsonUtils.toJSONString(assignParam)); + SuperNodeContext context = new SuperNodeContext(); + return context.success("u8c存货分配成功:", false); + } + + @Override + public String getNodeName() { + return "u8c存货基本档案新增节点"; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8CInventoryAssignNode.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8CInventoryAssignNode.java new file mode 100644 index 0000000..bcd1ba3 --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8CInventoryAssignNode.java @@ -0,0 +1,44 @@ +package com.seeyon.apps.u8c.node; + +import com.seeyon.apps.ext.workflow.vo.FormDataVo; +import com.seeyon.apps.ext.workflow.vo.SuperNodeContext; +import com.seeyon.apps.u8c.resp.U8cResponse; +import com.seeyon.cap4.form.bean.FormDataMasterBean; +import org.springframework.stereotype.Component; + +/** + * 存货档案分配 + */ +@Component +public class U8CInventoryAssignNode extends U8CCommonNode{ + + @Override + public String buildParam(String request, FormDataVo formDataVo) throws Exception { + return ""; + } + + @Override + public boolean isForcePushMethod() { + return false; + } + + @Override + public String getMethod() { + return "/u8cloud/api/uapbd/invbasdoc/assign"; + } + + @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 "U8C存货档案分配"; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8CInventoryManageDocAddNode.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8CInventoryManageDocAddNode.java new file mode 100644 index 0000000..eeed834 --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8CInventoryManageDocAddNode.java @@ -0,0 +1,89 @@ +package com.seeyon.apps.u8c.node; + +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.po.inventory.*; +import com.seeyon.cap4.form.bean.FormDataMasterBean; +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.ArrayList; +import java.util.List; + +@Component +public class U8CInventoryManageDocAddNode extends U8CCommonNode{ + + @Autowired + private U8CInventoryManageDocAssignNode manageDocAssignNode; + + @Override + public String buildParam(String request, FormDataVo formDataVo) throws Exception { + U8CInventoryManageDocAddParam param = new U8CInventoryManageDocAddParam(); + InventoryBillvo billvo = new InventoryBillvo(); + InvBillvoParentvo invBillvoParentvo = new InvBillvoParentvo(); + billvo.setParentvo(invBillvoParentvo); + invBillvoParentvo.setCurrentcorp("10"); + param.setBillvo(billvo); + InvBillvoInvbasVo invBillvoInvbasVo = new InvBillvoInvbasVo(); + Invmandocvo invmandocvo = new Invmandocvo(); + invBillvoParentvo.setInvmanVo(invmandocvo); + invBillvoParentvo.setInvbasVo(invBillvoInvbasVo); + invBillvoInvbasVo.setInvcode(getStringValue(formDataVo, "材料系统编码")); + invBillvoInvbasVo.setInvname(getStringValue(formDataVo, "材料名称")); + invBillvoInvbasVo.setInvspec(getStringValue(formDataVo, "规格型号")); + invBillvoInvbasVo.setInvtype(getStringValue(formDataVo, "材料内部编码")); + invBillvoInvbasVo.setPk_corp("10"); + String ctLv1 = getStringValue(formDataVo, "一级材料分类编码"); + String ctLv2 = getStringValue(formDataVo, "二级材料分类编码"); + String ctLv3 = getStringValue(formDataVo, "三级材料分类编码"); + String ctf = StringUtils.isNotBlank(ctLv3) ? ctLv3 : (StringUtils.isNotBlank(ctLv2) ? ctLv2 : ctLv1); + invBillvoInvbasVo.setPk_invcl(ctf); + String measdocEnumValue = getEnumValue(formDataVo, "计量单位"); + invBillvoInvbasVo.setPk_measdoc((measdocEnumValue.substring(4))); + invmandocvo.setWholemanaflag(getStringValue(formDataVo, "材料是否批次管理")); + invBillvoInvbasVo.setPk_taxitems("9000"); +// paramList.add(param); +// inventoryChildrenvo.setMainmeasrate(Double.valueOf(getStringValue(formDataVo,"与主计量单位换算系数"))); + //材料编码 + //材料是否批量管理 + return JsonUtils.toJSONString(param); + } + + @Override + public boolean isForcePushMethod() { + return false; + } + + @Override + public String getMethod() { + return "/u8cloud/api/uapbd/invmandoc/insert"; + } + + @Override + public boolean hasOtherAction(FormDataVo formDataVo) { + return true; + } + + @Override + public SuperNodeContext otherAction(String request, FormDataVo formDataVo, FormDataMasterBean formDataMasterBean) throws Exception { + U8CInventoryManageDocAssignParam assignParam = new U8CInventoryManageDocAssignParam(); + List invmandocvos = new ArrayList<>(); + assignParam.setInvmandocvo(invmandocvos); + Invmandocvo invmandocvo = new Invmandocvo(); + invmandocvo.setPk_corp("10"); + invmandocvo.setPk_calbody("ZQC001"); + invmandocvo.setPk_invmandoc(getStringValue(formDataVo, "材料系统编码")); + invmandocvo.setBilltempletid("BD100812100000000001"); + invmandocvos.add(invmandocvo); + manageDocAssignNode.subActionProceed(JsonUtils.toJSONString(assignParam)); + SuperNodeContext context = new SuperNodeContext(); + return context.success("u8c存货管理档案分配成功:", false); + } + + @Override + public String getNodeName() { + return "推送存货管理档案新增数据"; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8CInventoryManageDocAssignNode.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8CInventoryManageDocAssignNode.java new file mode 100644 index 0000000..1230437 --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8CInventoryManageDocAssignNode.java @@ -0,0 +1,40 @@ +package com.seeyon.apps.u8c.node; + +import com.seeyon.apps.ext.workflow.vo.FormDataVo; +import com.seeyon.apps.ext.workflow.vo.SuperNodeContext; +import com.seeyon.apps.u8c.resp.U8cResponse; +import com.seeyon.cap4.form.bean.FormDataMasterBean; +import org.springframework.stereotype.Component; + +@Component +public class U8CInventoryManageDocAssignNode extends U8CCommonNode{ + @Override + public String buildParam(String request, FormDataVo formDataVo) throws Exception { + return ""; + } + + @Override + public boolean isForcePushMethod() { + return false; + } + + @Override + public String getMethod() { + return "/u8cloud/api/uapbd/invmandoc/assign"; + } + + @Override + public boolean hasOtherAction(FormDataVo formDataVo) { + return false; + } + + @Override + public SuperNodeContext otherAction(String request, FormDataVo formDataVo, FormDataMasterBean formDataMasterBean) throws Exception { + return null; + } + + @Override + public String getNodeName() { + return ""; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8CInventoryManageDocUpdateNode.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8CInventoryManageDocUpdateNode.java new file mode 100644 index 0000000..fa859ce --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8CInventoryManageDocUpdateNode.java @@ -0,0 +1,40 @@ +package com.seeyon.apps.u8c.node; + +import com.seeyon.apps.ext.workflow.vo.FormDataVo; +import com.seeyon.apps.ext.workflow.vo.SuperNodeContext; +import com.seeyon.cap4.form.bean.FormDataMasterBean; +import org.springframework.stereotype.Component; + +@Component +public class U8CInventoryManageDocUpdateNode extends U8CCommonNode{ + + @Override + public String buildParam(String request, FormDataVo formDataVo) throws Exception { + return ""; + } + + @Override + public boolean isForcePushMethod() { + return false; + } + + @Override + public String getMethod() { + return "/u8cloud/api/uapbd/invmandoc/update"; + } + + @Override + public boolean hasOtherAction(FormDataVo formDataVo) { + return false; + } + + @Override + public SuperNodeContext otherAction(String request, FormDataVo formDataVo, FormDataMasterBean formDataMasterBean) throws Exception { + return null; + } + + @Override + public String getNodeName() { + return "存货管理档案修改推送节点"; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8CInventoryUpdateNode.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8CInventoryUpdateNode.java new file mode 100644 index 0000000..686cf7a --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8CInventoryUpdateNode.java @@ -0,0 +1,67 @@ +package com.seeyon.apps.u8c.node; + +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.po.inventory.Invbasdoc; +import com.seeyon.apps.u8c.po.inventory.InventoryChildrenvo; +import com.seeyon.apps.u8c.po.inventory.InventoryParentvo; +import com.seeyon.apps.u8c.po.inventory.U8cInventoryUpdateParam; +import com.seeyon.apps.u8c.resp.U8cResponse; +import com.seeyon.cap4.form.bean.FormDataMasterBean; +import org.springframework.stereotype.Component; + +import java.util.ArrayList; +import java.util.List; + +@Component +public class U8CInventoryUpdateNode extends U8CCommonNode{ + + @Override + public String buildParam(String request, FormDataVo formDataVo) throws Exception { + U8cInventoryUpdateParam param = new U8cInventoryUpdateParam(); + Invbasdoc invbasdoc = new Invbasdoc(); + param.setInvbasdoc(invbasdoc); + InventoryParentvo inventoryParentvo = new InventoryParentvo(); + invbasdoc.setParentvo(inventoryParentvo); + inventoryParentvo.setInvcode(getStringValue(formDataVo,"材料系统编码")); + inventoryParentvo.setInvname(getStringValue(formDataVo,"材料名称")); + inventoryParentvo.setInvspec(getStringValue(formDataVo,"规格型号")); +// inventoryParentvo.setInvtype(getStringValue(formDataVo,"材料类型")); + inventoryParentvo.setPk_invcl(getStringValue(formDataVo,"材料分类")); + inventoryParentvo.setPk_measdoc(getStringValue(formDataVo,"计量单位")); + inventoryParentvo.setGraphid(getStringValue(formDataVo,"材料编码")); + List inventoryChildrenvos = new ArrayList<>(); + InventoryChildrenvo inventoryChildrenvo = new InventoryChildrenvo(); + inventoryChildrenvos.add(inventoryChildrenvo); + invbasdoc.setChildrenvo(inventoryChildrenvos); + inventoryChildrenvo.setPk_measdoc(getStringValue(formDataVo,"计量单位")); +// inventoryChildrenvo.setMainmeasrate(Double.valueOf(getStringValue(formDataVo,"与主计量单位换算系数"))); + return JsonUtils.toJSONString(param); + } + + @Override + public boolean isForcePushMethod() { + return false; + } + + @Override + public String getMethod() { + return "/u8cloud/api/uapbd/invbasdoc/update"; + } + + @Override + public boolean hasOtherAction(FormDataVo formDataVo) { + return false; + } + + @Override + public SuperNodeContext otherAction(String request, FormDataVo formDataVo, FormDataMasterBean formDataMasterBean) throws Exception { + return null; + } + + @Override + public String getNodeName() { + return "存货档案修改"; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8CMaterialoutSaveSignNode.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8CMaterialoutSaveSignNode.java new file mode 100644 index 0000000..c71fc05 --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8CMaterialoutSaveSignNode.java @@ -0,0 +1,79 @@ +package com.seeyon.apps.u8c.node; + +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.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.resp.U8cResponse; +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 U8CMaterialoutSaveSignNode extends U8CCommonNode{ + + @Override + public String buildParam(String request, FormDataVo formDataVo) throws Exception { + U8CMaterialoutSaveSignParam param = new U8CMaterialoutSaveSignParam(); + U8CMaterialoutGeneralBillVo generalBillVo = new U8CMaterialoutGeneralBillVo(); + param.setGeneralBillVO(generalBillVo); + List childrenVoList = new ArrayList<>(); + U8CMaterialoutParentVo parentVo = new U8CMaterialoutParentVo(); + parentVo.setVbillcode(getStringValue(formDataVo,"单据编号")); + parentVo.setDbilldate(getStringValue(formDataVo,"填报日期")); + parentVo.setCwarehouseid(getStringValue(formDataVo,"出库仓库编码")); + Map> subFormMap = formDataVo.getSubFormMap(); + U8cParamsPreHandler.preHandleMaterialoutSaveSignBillVoParentvo(parentVo); + List subDataList = subFormMap.get("出库材料明细"); + String projId = getStringValue(formDataVo,"项目编号"); + for (FormDataVo dataVo : subDataList) { + U8CMaterialoutChildrenVo childrenVo = new U8CMaterialoutChildrenVo(); + childrenVo.setCinventoryid(getStringValue(dataVo,"材料编码")); + childrenVo.setVbatchcode(getStringValue(dataVo,"批次号")); + childrenVo.setCprojectid(projId); + childrenVo.setNoutnum(getStringValue(dataVo,"本次出库数量")); + childrenVo.setVnotebody(getStringValue(dataVo,"出库备注说明")); + String isBatchManage = getStringValue(dataVo,"材料是否批次管理"); + if("是".equals(isBatchManage)) { + childrenVo.setVbatchcode(getStringValue(dataVo,"材料批次号")); + } + childrenVoList.add(childrenVo); + } + generalBillVo.setParentvo(parentVo); + generalBillVo.setChildrenvo(childrenVoList); + return JsonUtils.toJSONString(param); + } + + + @Override + public boolean isForcePushMethod() { + return false; + } + + @Override + public String getMethod() { + return "/u8cloud/api/ic/materialout/save/sign"; + } + + @Override + public boolean hasOtherAction(FormDataVo formDataVo) { + return false; + } + + @Override + public SuperNodeContext otherAction(String request, FormDataVo formDataVo, FormDataMasterBean formDataMasterBean) throws Exception { + return null; + } + + @Override + public String getNodeName() { + return "库存材料出库单保存即签字"; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8COtherInSaveSignNode.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8COtherInSaveSignNode.java new file mode 100644 index 0000000..f0a00ff --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8COtherInSaveSignNode.java @@ -0,0 +1,129 @@ +package com.seeyon.apps.u8c.node; + +import com.seeyon.apps.ext.workflow.vo.FormDataVo; +import com.seeyon.apps.ext.workflow.vo.SuperNodeContext; +import com.seeyon.apps.u8c.po.U8cParamsPreHandler; +import com.seeyon.apps.u8c.po.otherin.U8COtherInSaveSignChildrenVo; +import com.seeyon.apps.u8c.po.otherin.U8COtherInSaveSignGeneralBillVO; +import com.seeyon.apps.u8c.po.otherin.U8COtherInSaveSignParam; +import com.seeyon.apps.u8c.po.otherin.U8COtherInSaveSignParentVo; +import com.seeyon.apps.u8c.resp.U8cResponse; +import com.seeyon.apps.u8c.service.U8CProjQueryService; +import com.seeyon.apps.u8c.util.JsonUtils; +import com.seeyon.cap4.form.bean.FormDataMasterBean; +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +@Component +public class U8COtherInSaveSignNode extends U8CCommonNode{ + + @Autowired + private U8CProjQueryService u8CProjQueryService; + + @Override + public String buildParam(String request, FormDataVo formDataVo) throws Exception { + U8COtherInSaveSignParam saveSignParam = new U8COtherInSaveSignParam(); + List generalBillVOList = new ArrayList<>(); + saveSignParam.setGeneralBillVO_4A(generalBillVOList); + U8COtherInSaveSignGeneralBillVO generalBillVO = new U8COtherInSaveSignGeneralBillVO(); + generalBillVOList.add(generalBillVO); + List childrenVoList = new ArrayList<>(); + U8COtherInSaveSignParentVo parentVo = new U8COtherInSaveSignParentVo(); + parentVo.setVbillcode(getStringValue(formDataVo,"单据编号")); + parentVo.setDbilldate(getStringValue(formDataVo,"填报日期")); + String u8CInType = getStringValue(formDataVo, "U8C入库类型"); + parentVo.setCwarehouseid(getStringValue(formDataVo,u8CInType.equals("调拨") ? "调入仓库编号" : "退库仓库编码")); + parentVo.setCdispatcherid(u8CInType.equals("调拨") ? "1002" : "1003"); + String pjc = getStringValue(formDataVo,u8CInType.equals("调拨") ? "调入项目编码" : "项目编号"); + U8cParamsPreHandler.preHandleOtherInSaveSignParentvo(parentVo); + Map> subFormMap = formDataVo.getSubFormMap(); + List subDataList = subFormMap.get(u8CInType.equals("调拨") ? "调拨材料明细" : "退库材料明细"); + for (FormDataVo dataVo : subDataList) { + U8COtherInSaveSignChildrenVo childrenVo = new U8COtherInSaveSignChildrenVo(); + childrenVo.setCinventoryid(getStringValue(dataVo,"材料系统编码")); + if(StringUtils.isNotBlank(pjc) && u8CProjQueryService.existedProj(pjc)) { + childrenVo.setCprojectid(pjc); + } + String isBatchManage = getStringValue(dataVo,"材料是否批次管理"); + if("是".equals(isBatchManage)) { + childrenVo.setVbatchcode(getStringValue(dataVo,u8CInType.equals("调拨") ? "调入批次号" : "材料批次号")); + } + childrenVo.setNinnum(getStringValue(dataVo,u8CInType.equals("调拨") ? "本次调拨数量" : "本次退库数量")); + childrenVo.setVnotebody(getStringValue(dataVo,u8CInType.equals("调拨") ? "调拨备注说明" : "退库备注说明")); + childrenVoList.add(childrenVo); + } + generalBillVO.setChildrenvo(childrenVoList); + generalBillVO.setParentvo(parentVo); + return JsonUtils.toJson(saveSignParam); + } + + @Override + public List buildParamList(String request, FormDataVo formDataVo) throws Exception { +// List paramList = new ArrayList<>(); +// U8COtherInSaveSignParam saveSignParam = new U8COtherInSaveSignParam(); +// List generalBillVOList = new ArrayList<>(); +// saveSignParam.setGeneralBillVO_4A(generalBillVOList); +// U8COtherInSaveSignGeneralBillVO generalBillVO = new U8COtherInSaveSignGeneralBillVO(); +// generalBillVOList.add(generalBillVO); +// U8COtherInSaveSignParentVo parentVo = new U8COtherInSaveSignParentVo(); +// parentVo.setVbillcode(getStringValue(formDataVo,"单据编号")); +// parentVo.setDbilldate(getStringValue(formDataVo,"填报日期")); +// String u8CInType = getStringValue(formDataVo, "U8C入库类型"); +// parentVo.setCwarehouseid(getStringValue(formDataVo,u8CInType.equals("调拨") ? "调入仓库编号" : "退库仓库编码")); +// parentVo.setCdispatcherid(u8CInType.equals("调拨") ? "1002" : "1003"); +// String pjc = getStringValue(formDataVo,u8CInType.equals("调拨") ? "调入项目编码" : "项目编号"); +// U8cParamsPreHandler.preHandleOtherInSaveSignParentvo(parentVo); +// Map> subFormMap = formDataVo.getSubFormMap(); +// List subDataList = subFormMap.get(u8CInType.equals("调拨") ? "调拨材料明细" : "退库材料明细"); +// for (FormDataVo dataVo : subDataList) { +// List childrenVoList = new ArrayList<>(); +// U8COtherInSaveSignChildrenVo childrenVo = new U8COtherInSaveSignChildrenVo(); +// childrenVo.setCinventoryid(getStringValue(dataVo,"材料系统编码")); +// if(StringUtils.isNotBlank(pjc) && u8CProjQueryService.existedProj(pjc)) { +// childrenVo.setCprojectid(pjc); +// } +// String isBatchManage = getStringValue(dataVo,"材料是否批次管理"); +// if("是".equals(isBatchManage)) { +// childrenVo.setVbatchcode(getStringValue(dataVo,u8CInType.equals("调拨") ? "调入批次号" : "材料批次号")); +// } +// childrenVo.setNinnum(getStringValue(dataVo,u8CInType.equals("调拨") ? "本次调拨数量" : "本次退库数量")); +// childrenVo.setVnotebody(getStringValue(dataVo,u8CInType.equals("调拨") ? "调拨备注说明" : "退库备注说明")); +// childrenVoList.add(childrenVo); +// generalBillVO.setChildrenvo(childrenVoList); +// generalBillVO.setParentvo(parentVo); +// paramList.add(JsonUtils.toJson(saveSignParam)); +// } +// return paramList; + return null; + } + + @Override + public boolean isForcePushMethod() { + return false; + } + + @Override + public String getMethod() { + return "/u8cloud/api/ic/otherin/save/sign"; + } + + @Override + public boolean hasOtherAction(FormDataVo formDataVo) throws NoSuchFieldException { + return false; + } + + @Override + public SuperNodeContext otherAction(String request, FormDataVo formDataVo, FormDataMasterBean formDataMasterBean) throws Exception { + return null; + } + + @Override + public String getNodeName() { + return "库存其他入库保存即签字节点"; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8COtherOutSaveSignNode.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8COtherOutSaveSignNode.java new file mode 100644 index 0000000..7c10394 --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8COtherOutSaveSignNode.java @@ -0,0 +1,87 @@ +package com.seeyon.apps.u8c.node; + +import com.seeyon.apps.ext.workflow.vo.FormDataVo; +import com.seeyon.apps.ext.workflow.vo.SuperNodeContext; +import com.seeyon.apps.u8c.po.U8cParamsPreHandler; +import com.seeyon.apps.u8c.po.otherout.U8COtherOutSaveSignChildrenVo; +import com.seeyon.apps.u8c.po.otherout.U8COtherOutSaveSignGeneralBillVO; +import com.seeyon.apps.u8c.po.otherout.U8COtherOutSaveSignParam; +import com.seeyon.apps.u8c.po.otherout.U8COtherOutSaveSignParentVo; +import com.seeyon.apps.u8c.resp.U8cResponse; +import com.seeyon.apps.u8c.service.U8CProjQueryService; +import com.seeyon.apps.u8c.util.JsonUtils; +import com.seeyon.cap4.form.bean.FormDataMasterBean; +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +@Component +public class U8COtherOutSaveSignNode extends U8CCommonNode{ + + @Autowired + private U8CProjQueryService u8CProjQueryService; + + @Override + public String buildParam(String request, FormDataVo formDataVo) throws Exception { + U8COtherOutSaveSignParam saveSignParam = new U8COtherOutSaveSignParam(); + List generalBillVOList = new ArrayList<>(); + saveSignParam.setGeneralBillVO_4I(generalBillVOList); + U8COtherOutSaveSignGeneralBillVO generalBillVO = new U8COtherOutSaveSignGeneralBillVO(); + generalBillVOList.add(generalBillVO); + List childrenVoList = new ArrayList<>(); + U8COtherOutSaveSignParentVo parentVo = new U8COtherOutSaveSignParentVo(); + parentVo.setVbillcode(getStringValue(formDataVo,"单据编号")); + parentVo.setDbilldate(getStringValue(formDataVo,"填报日期")); + parentVo.setCwarehouseid(getStringValue(formDataVo,"调出仓库编号")); + String pjc = getStringValue(formDataVo,"调出项目编码"); + U8cParamsPreHandler.preHandleOtherOutSaveSignParentvo(parentVo); + Map> subFormMap = formDataVo.getSubFormMap(); + List subDataList = subFormMap.get("调拨材料明细"); + for (FormDataVo dataVo : subDataList) { + U8COtherOutSaveSignChildrenVo childrenVo = new U8COtherOutSaveSignChildrenVo(); + childrenVo.setCinventoryid(getStringValue(dataVo,"材料系统编码")); + if(StringUtils.isNotBlank(pjc) && u8CProjQueryService.existedProj(pjc)) { + childrenVo.setCprojectid(pjc); + } + String isBatchManage = getStringValue(dataVo,"材料是否批次管理"); + if("是".equals(isBatchManage)) { + childrenVo.setVbatchcode(getStringValue(dataVo,"调出批次号")); + } + childrenVo.setNoutnum(getStringValue(dataVo,"本次调拨数量")); + childrenVo.setVnotebody(getStringValue(dataVo,"调拨备注说明")); + childrenVoList.add(childrenVo); + } + generalBillVO.setChildrenvo(childrenVoList); + generalBillVO.setParentvo(parentVo); + return JsonUtils.toJson(saveSignParam); + } + + @Override + public boolean isForcePushMethod() { + return false; + } + + @Override + public String getMethod() { + return "/u8cloud/api/ic/otherout/save/sign"; + } + + @Override + public boolean hasOtherAction(FormDataVo formDataVo) throws NoSuchFieldException { + return false; + } + + @Override + public SuperNodeContext otherAction(String request, FormDataVo formDataVo, FormDataMasterBean formDataMasterBean) throws Exception { + return null; + } + + @Override + public String getNodeName() { + return "库存其他出库保存即签字"; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8CPaySettlementInfoAddNode.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8CPaySettlementInfoAddNode.java new file mode 100644 index 0000000..359fa8a --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8CPaySettlementInfoAddNode.java @@ -0,0 +1,40 @@ +package com.seeyon.apps.u8c.node; + +import com.seeyon.apps.ext.workflow.vo.FormDataVo; +import com.seeyon.apps.ext.workflow.vo.SuperNodeContext; +import com.seeyon.apps.u8c.resp.U8cResponse; +import com.seeyon.cap4.form.bean.FormDataMasterBean; +import org.springframework.stereotype.Component; + +@Component +public class U8CPaySettlementInfoAddNode 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) { + return false; + } + + @Override + public SuperNodeContext otherAction(String request, FormDataVo formDataVo, FormDataMasterBean formDataMasterBean) throws Exception { + return null; + } + + @Override + public String getNodeName() { + return "推送付款结算单新增"; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8CProjectDocAddNode.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8CProjectDocAddNode.java new file mode 100644 index 0000000..f73ee86 --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8CProjectDocAddNode.java @@ -0,0 +1,40 @@ +package com.seeyon.apps.u8c.node; + +import com.seeyon.apps.ext.workflow.vo.FormDataVo; +import com.seeyon.apps.ext.workflow.vo.SuperNodeContext; +import com.seeyon.apps.u8c.resp.U8cResponse; +import com.seeyon.cap4.form.bean.FormDataMasterBean; +import org.springframework.stereotype.Component; + +@Component +public class U8CProjectDocAddNode extends U8CCommonNode{ + @Override + public String buildParam(String request, FormDataVo formDataVo) throws Exception { + return ""; + } + + @Override + public boolean isForcePushMethod() { + return false; + } + + @Override + public String getMethod() { + return "/u8cloud/api/uapbd/bdjobmngfil/save"; + } + + @Override + public boolean hasOtherAction(FormDataVo formDataVo) { + return false; + } + + @Override + public SuperNodeContext otherAction(String request, FormDataVo formDataVo, FormDataMasterBean formDataMasterBean) { + return null; + } + + @Override + public String getNodeName() { + return "项目基础档案推送"; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8CProjectManageDocAddNode.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8CProjectManageDocAddNode.java new file mode 100644 index 0000000..3cff049 --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8CProjectManageDocAddNode.java @@ -0,0 +1,70 @@ +package com.seeyon.apps.u8c.node; + +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.po.proj.JobBasicInfo; +import com.seeyon.apps.u8c.po.proj.ProjectDocVo; +import com.seeyon.apps.u8c.po.proj.U8cProjectDocAddParam; +import com.seeyon.apps.u8c.resp.U8cResponse; +import com.seeyon.cap4.form.bean.FormDataMasterBean; +import org.springframework.stereotype.Component; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + + +@Component +public class U8CProjectManageDocAddNode extends U8CCommonNode{ + + @Override + public String buildParam(String request, FormDataVo formDataVo) throws Exception { + U8cProjectDocAddParam u8cProjectDocAddParam = new U8cProjectDocAddParam(); + List projectDocVos = new ArrayList<>(); + u8cProjectDocAddParam.setVos(projectDocVos); + List corps = Arrays.asList("10","10001", "10002", "10003", + "10004", "12", "13", "14", + "15", "16", "17", "18", + "19", "20", "21", "22", "23", "24"); + for (String corp : corps) { + ProjectDocVo projectDocVo = new ProjectDocVo(); + JobBasicInfo jobBasicInfo = new JobBasicInfo(); + jobBasicInfo.setJobcode(getStringValue(formDataVo,"项目系统编号")); + jobBasicInfo.setJobname(getStringValue(formDataVo,"项目名称")); + jobBasicInfo.setForecastenddate(getStringValue(formDataVo,"计划竣工日期")); + jobBasicInfo.setPk_corp(corp); + projectDocVo.setJobBasicInfo(jobBasicInfo); + projectDocVo.setPk_corp(corp); + jobBasicInfo.setPk_jobtype("ZQC11"); + projectDocVos.add(projectDocVo); + } + String paramStr = JsonUtils.toJSONString(u8cProjectDocAddParam); + return paramStr; + } + + @Override + public boolean isForcePushMethod() { + return false; + } + + @Override + public String getMethod() { + return "/u8cloud/api/uapbd/bdjobmngfil/save"; + } + + @Override + public boolean hasOtherAction(FormDataVo formDataVo) { + return false; + } + + @Override + public SuperNodeContext otherAction(String request, FormDataVo formDataVo, FormDataMasterBean formDataMasterBean) throws Exception { + return null; + } + + @Override + public String getNodeName() { + return "项目管理档案新增节点"; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8CProjectManageDocUpdateNode.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8CProjectManageDocUpdateNode.java new file mode 100644 index 0000000..7c17e0d --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8CProjectManageDocUpdateNode.java @@ -0,0 +1,89 @@ +package com.seeyon.apps.u8c.node; + +import com.seeyon.apps.ext.workflow.vo.FormDataVo; +import com.seeyon.apps.ext.workflow.vo.SuperNodeContext; +import com.seeyon.apps.u8c.po.proj.JobBasicInfo; +import com.seeyon.apps.u8c.po.proj.U8CProjectDocUpdateParam; +import com.seeyon.apps.u8c.service.U8CProjQueryService; +import com.seeyon.apps.u8c.util.JsonUtils; +import com.seeyon.cap4.form.bean.FormDataMasterBean; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.*; + +@Component +public class U8CProjectManageDocUpdateNode extends U8CCommonNode{ + + @Autowired + private U8CProjQueryService queryService; + + @Override + public List buildParamList(String request, FormDataVo formDataVo) throws Exception { + List paramList = new ArrayList<>(); + + String jobcode = getStringValue(formDataVo,"项目系统编号"); + String jobName = getStringValue(formDataVo,"项目名称"); + List corps = Arrays.asList("10","10001", "10002", "10003", + "10004", "12", "13", "14", + "15", "16", "17", "18", + "19", "20", "21", "22", "23", "24"); + for (String corp : corps) { + String pkcode = queryService.getPkCode(jobcode, corp); + if(pkcode == null) { + continue; + } + U8CProjectDocUpdateParam param = new U8CProjectDocUpdateParam(); + List vos = new ArrayList(); + String[] split = pkcode.split(","); + JobBasicInfo basicInfo = new JobBasicInfo(); + Map vo = new HashMap<>(); + basicInfo.setPk_corp(corp); + basicInfo.setPk_jobbasfil(split[1]); + basicInfo.setJobname(jobName); + vo.put("jobBasicInfo",basicInfo); + vo.put("pk_jobmngfil",split[0]); + vo.put("pk_corp",corp); + vos.add(vo); + param.setVos(vos); + paramList.add(JsonUtils.toJson(param)); + + } + return paramList; + } + + @Override + public String buildParam(String request, FormDataVo formDataVo) throws Exception { + return null; + } + + @Override + public boolean isBatchPush() { + return true; + } + + @Override + public boolean isForcePushMethod() { + return false; + } + + @Override + public String getMethod() { + return "/u8cloud/api/uapbd/bdjobmngfil/update"; + } + + @Override + public boolean hasOtherAction(FormDataVo formDataVo) { + return false; + } + + @Override + public SuperNodeContext otherAction(String request, FormDataVo formDataVo, FormDataMasterBean formDataMasterBean) throws Exception { + return null; + } + + @Override + public String getNodeName() { + return "项目管理档案信息变更"; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8CPurchaseinSaveSignNode.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8CPurchaseinSaveSignNode.java new file mode 100644 index 0000000..d0a30d1 --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8CPurchaseinSaveSignNode.java @@ -0,0 +1,90 @@ +package com.seeyon.apps.u8c.node; + +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.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.po.yfd.U8CYfChildren; +import com.seeyon.apps.u8c.resp.U8cResponse; +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 U8CPurchaseinSaveSignNode extends U8CCommonNode{ + + @Override + public String buildParam(String request, FormDataVo formDataVo) throws Exception { + U8CPurchaseinSaveSignParam param = new U8CPurchaseinSaveSignParam();; + List billVoList = new ArrayList<>(); + param.setGeneralBillVO(billVoList); + U8CPurchaseinGeneralBillVo billVo = new U8CPurchaseinGeneralBillVo(); + billVoList.add(billVo); + List childrenVoList = new ArrayList<>(); + U8CPurchaseinParentVo parentVo = new U8CPurchaseinParentVo(); + parentVo.setVbillcode(getStringValue(formDataVo,"单据编号")); + parentVo.setDbilldate(getStringValue(formDataVo,"填报日期")); + parentVo.setDaccountdate(getStringValue(formDataVo,"填报日期")); + parentVo.setCwarehouseid(getStringValue(formDataVo,"入库仓库编号"));//如果需要传仓库ID的话,则需要根据OA仓库名称,查询U8C仓库ID + String projId = getStringValue(formDataVo,"项目编号"); + U8cParamsPreHandler.preHandlePurchaseinSaveSignBillVoParentvo(parentVo); + Map> subFormMap = formDataVo.getSubFormMap(); + List subDataList = subFormMap.get("入库材料明细"); + for (FormDataVo dataVo : subDataList) { + U8CPurchaseinChildrenVo childrenVo = new U8CPurchaseinChildrenVo(); + String clBm = getStringValue(dataVo,"材料系统编码"); + childrenVo.setCinventoryid(clBm); + childrenVo.setCprojectid(projId);//如果需要传项目ID的话,则需要根据OA项目名称,查询U8C项目ID + childrenVo.setNinnum(getStringValue(dataVo,"本次入库数量")); //实入数量 + childrenVo.setNtaxprice(getStringValue(dataVo,"本次入库单价"));//含税单价 + childrenVo.setNtaxmny(getStringValue(dataVo,"本次入库金额"));//含税金额 + childrenVo.setNictaxrate(Double.valueOf((Double.parseDouble(getStringValue(dataVo,"材料税率")) * 100) + "").intValue() + "");//税率 + String isBatchManage = getStringValue(dataVo,"材料是否批次管理"); + if("是".equals(isBatchManage)) { + childrenVo.setVbatchcode(getStringValue(dataVo,"材料批次号")); + } + if(childrenVo.getNictaxrate() != null) { + childrenVo.setNprice(getStringValue(dataVo,"无税单价")); + childrenVo.setNmny(getStringValue(dataVo,"无税金额")); + } + childrenVo.setVnotebody(getStringValue(dataVo,"入库备注说明")); + childrenVoList.add(childrenVo); + } + billVo.setChildrenvo(childrenVoList); + billVo.setParentvo(parentVo); + return JsonUtils.toJSONString(param); + } + + @Override + public boolean isForcePushMethod() { + return false; + } + + @Override + public String getMethod() { + return "/u8cloud/api/ic/purchasein/save/sign"; + } + + @Override + public boolean hasOtherAction(FormDataVo formDataVo) { + return false; + } + + @Override + public SuperNodeContext otherAction(String request, FormDataVo formDataVo, FormDataMasterBean formDataMasterBean) throws Exception { + return null; + } + + @Override + public String getNodeName() { + return "库存采购入库保存即签字推送节点"; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8CSkdSaveAuditAddNode.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8CSkdSaveAuditAddNode.java new file mode 100644 index 0000000..afdd6d1 --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8CSkdSaveAuditAddNode.java @@ -0,0 +1,101 @@ +package com.seeyon.apps.u8c.node; + +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.po.U8cParamsPreHandler; +import com.seeyon.apps.u8c.po.skd.U8CSkdChildren; +import com.seeyon.apps.u8c.po.skd.U8CSkdParentVo; +import com.seeyon.apps.u8c.po.skd.U8CSkdSaveAuditAddParam; +import com.seeyon.apps.u8c.po.skd.U8CSkdBillVo; +import com.seeyon.apps.u8c.resp.U8cResponse; +import com.seeyon.apps.u8c.service.U8CKsService; +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; + + +@Component +public class U8CSkdSaveAuditAddNode extends U8CCommonNode{ + + @Autowired + private U8CKsService u8CKsService; + + @Override + public String buildParam(String request, FormDataVo formDataVo) throws Exception { + U8CSkdSaveAuditAddParam param = new U8CSkdSaveAuditAddParam(); + List billVoList = new ArrayList<>(); + U8CSkdBillVo billVo = new U8CSkdBillVo(); + billVoList.add(billVo); + U8CSkdParentVo parentVo = new U8CSkdParentVo(); + parentVo.setDjbh(getStringValue(formDataVo,"单据编号")); + parentVo.setDjrq(getStringValue(formDataVo,"填报日期")); + parentVo.setShrq(getStringValue(formDataVo,"填报日期")); + U8cParamsPreHandler.preHandleSkdBillVoParentvo(parentVo); + List childrenList = new ArrayList<>(); + billVo.setChildren(childrenList); + billVo.setParentVo(parentVo); + U8CSkdChildren cSkdChildren = new U8CSkdChildren(); + cSkdChildren.setZy(getStringValue(formDataVo, "收款摘要")); + String szxmText = getStringValue(formDataVo, "收款选项"); + cSkdChildren.setSzxmid(getSzxmCode(szxmText)); + if (szxmText.equals("员工还款")) { + cSkdChildren.setHbbm(getKsCode(getStringValue(formDataVo, "对方名称"))); + } else { + cSkdChildren.setHbbm(getStringValue(formDataVo, "对方编号")); + } + cSkdChildren.setJobid(getStringValue(formDataVo, "项目编号")); + cSkdChildren.setBfyhzh(getStringValue(formDataVo, "收款银行账号")); + cSkdChildren.setDfbbje(getStringValue(formDataVo, "本次收款金额")); + cSkdChildren.setDfybje(getStringValue(formDataVo, "本次收款金额")); + childrenList.add(cSkdChildren); + + param.setBillvo(billVoList); + return JsonUtils.toJSONString(param); + } + + private String getSzxmCode(String text) { + if(text.equals("员工还款")) { + return "15007"; + } + if(text.equals("项目回款")) { + return "15008"; + } + if(text.equals("其他收款")) { + return "15009"; + } + return null; + } + + @Override + public boolean isForcePushMethod() { + return false; + } + + @Override + public String getMethod() { + return "/u8cloud/api/arap/sk/insertapprove"; + } + + @Override + public boolean hasOtherAction(FormDataVo formDataVo) { + return false; + } + + @Override + public SuperNodeContext otherAction(String request, FormDataVo formDataVo, FormDataMasterBean formDataMasterBean) throws Exception { + return null; + } + + private String getKsCode(String ksName) throws Exception { + return u8CKsService.getKsCode(ksName); + } + + @Override + public String getNodeName() { + return "收款单保存审批信息推送"; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8CStordocAddNode.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8CStordocAddNode.java new file mode 100644 index 0000000..753ee5b --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8CStordocAddNode.java @@ -0,0 +1,62 @@ +package com.seeyon.apps.u8c.node; + +import com.seeyon.aicloud.common.JsonUtils; +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.po.stordoc.Stordoc; +import com.seeyon.apps.u8c.po.stordoc.U8cStordocAddParam; +import com.seeyon.apps.u8c.resp.U8cResponse; +import com.seeyon.cap4.form.bean.FormDataMasterBean; +import org.springframework.stereotype.Component; + +import java.util.ArrayList; +import java.util.List; + +@Component +public class U8CStordocAddNode extends U8CCommonNode{ + @Override + public boolean isForcePushMethod() { + return false; + } + + @Override + public String getMethod() { + return "/u8cloud/api/uapbd/stordoc/insert"; + } + + @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 buildParam(String request, FormDataVo formDataVo) throws Exception { + U8cStordocAddParam u8cStordocAddParam = new U8cStordocAddParam(); + List stordocs = new ArrayList<>(); + Stordoc stordoc = new Stordoc(); + stordoc.setPk_calbody("ZQC001"); + stordoc.setStorcode(getStringValue(formDataVo, "仓库编码")); + stordoc.setStorname(getStringValue(formDataVo, "仓库名称")); + stordoc.setPk_corp("10"); + stordocs.add(stordoc); + u8cStordocAddParam.setStordoc(stordocs); + return JsonUtils.toJSONString(u8cStordocAddParam); + } + + @Override + public boolean preCheck(FormDataVo formDataVo) throws NoSuchFieldException { + FieldDataVo fieldData = formDataVo.getFieldData("是否建仓"); + return fieldData.getStringValue().equals("不建仓"); + } + + @Override + public String getNodeName() { + return "仓库档案新增"; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8CUpdateCustdocNode.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8CUpdateCustdocNode.java new file mode 100644 index 0000000..0d29380 --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8CUpdateCustdocNode.java @@ -0,0 +1,92 @@ +package com.seeyon.apps.u8c.node; + + +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.po.cus.CbdocVo; +import com.seeyon.apps.u8c.po.cus.DocBanks; +import com.seeyon.apps.u8c.po.cus.DocParentvo; +import com.seeyon.apps.u8c.po.cus.U8cCusDocUpdateParam; +import com.seeyon.apps.u8c.po.U8cParamsPreHandler; +import com.seeyon.apps.u8c.resp.U8cResponse; +import com.seeyon.cap4.form.bean.FormDataMasterBean; +import org.apache.commons.lang.StringUtils; +import org.springframework.stereotype.Component; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +/** + * 功能描述: 更新客商档案信息
+ *
+ *
+ * 
+ * + * @Author: HuangZhengguo + * @Date: 2024/9/19 + */ + +@Component +public class U8CUpdateCustdocNode extends U8CCommonNode { + + @Override + public String buildParam(String request, FormDataVo formDataVo) throws Exception { + U8cCusDocUpdateParam param = new U8cCusDocUpdateParam(); + List cbdocvos = new ArrayList<>(); + param.setCbdocvo(cbdocvos); + CbdocVo cbdocVo = new CbdocVo(); + cbdocvos.add(cbdocVo); + DocParentvo docParentvo = new DocParentvo(); + docParentvo.setCustcode(getStringValue(formDataVo,"客商编号")); + docParentvo.setCustname(getStringValue(formDataVo,"客商名称")); + docParentvo.setCustshortname(getStringValue(formDataVo,"客商名称")); + docParentvo.setPk_areacl(getStringValue(formDataVo,"客商地区分类")); + docParentvo.setTaxpayerid(getStringValue(formDataVo,"统一社会信用代码")); + U8cParamsPreHandler.preHandleCusInfoKsUpdate(docParentvo); + List banks = new ArrayList<>(); + Map> subFormMap = formDataVo.getSubFormMap(); + List subDataList = subFormMap.get("银行账号"); + for (FormDataVo dataVo : subDataList) { + DocBanks docBank = new DocBanks(); + docBank.setAccount(getStringValue(dataVo,"银行账号")); + docBank.setAccountname(getStringValue(dataVo,"账户名称")); + docBank.setBanktypename(getStringValue(dataVo,"银行类别")); + U8cParamsPreHandler.preHandleCusInfoBankUpdate(docBank); + if(StringUtils.isBlank(docBank.getAccountname()) || StringUtils.isBlank(docBank.getAccount())){ + break; + } + banks.add(docBank); + } + if(banks.size() > 0) { + cbdocVo.setBanks(banks); + } + return JsonUtils.toJSONString(param); + } + + @Override + public boolean isForcePushMethod() { + return false; + } + + @Override + public String getMethod() { + return "/u8cloud/api/uapbd/custdoc/update"; + } + + @Override + public boolean hasOtherAction(FormDataVo formDataVo) { + return false; + } + + @Override + public SuperNodeContext otherAction(String request, FormDataVo formDataVo, FormDataMasterBean formDataMasterBean) { + return null; + } + + @Override + public String getNodeName() { + return "修改客商基础档案推送U8C"; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8CYfDanSaveAuditNode.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8CYfDanSaveAuditNode.java new file mode 100644 index 0000000..330589c --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8CYfDanSaveAuditNode.java @@ -0,0 +1,179 @@ +package com.seeyon.apps.u8c.node; + +import cn.hutool.log.Log; +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.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.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 U8CYfDanSaveAuditNode extends U8CCommonNode{ + + private static final Log log = Log.get(U8CYfDanSaveAuditNode.class); + @Autowired + private U8CKsService u8CKsService; + @Autowired + private U8CFkdSaveAuditNode u8CFkdSaveAuditNode; + @Autowired + private OrgManager orgManager; + + @Override + public String buildParam(String request, FormDataVo formDataVo) throws Exception { + U8CYfDanSaveAuditAddParam param = new U8CYfDanSaveAuditAddParam(); + List billVoList = new ArrayList<>(); + param.setBillvo(billVoList); + U8CYfBillVo billVo = new U8CYfBillVo(); + billVoList.add(billVo); + List u8CYfChildrenList = new ArrayList<>(); + U8CYfDanParentVo u8CYfDanParentVo = new U8CYfDanParentVo(); + billVo.setChildren(u8CYfChildrenList); + billVo.setParentvo(u8CYfDanParentVo); + u8CYfDanParentVo.setDjbh(getStringValue(formDataVo, "单据编号")); + u8CYfDanParentVo.setDjrq(getStringValue(formDataVo, "填报日期")); + u8CYfDanParentVo.setShrq(getStringValue(formDataVo, "填报日期")); + Long ksOaId = Long.valueOf(getDbValue(formDataVo, "填报人员")); + V3xOrgMember member = orgManager.getMemberById(ksOaId); + if(member != null) { + u8CYfDanParentVo.setHbbm(getKsCode(member.getName())); + } + U8cParamsPreHandler.preHandleYfdBillVoParentvo(u8CYfDanParentVo); + Map> subFormMap = formDataVo.getSubFormMap(); + List subDataList = subFormMap.get("费用明细"); + for (FormDataVo dataVo : subDataList) { + U8CYfChildren u8CYfChildren = new U8CYfChildren(); + u8CYfChildren.setZy(getStringValue(dataVo, "报销说明")); + u8CYfChildren.setSzxmid(EnumMapUtils.getEnumItemCode(getDbValue(dataVo,"费用类型"))); + u8CYfChildren.setJobid(getStringValue(dataVo, "项目系统编号")); + u8CYfChildren.setDfbbje(getStringValue(dataVo, "报销金额")); + u8CYfChildren.setDfybje(getStringValue(dataVo, "报销金额")); + String sl = getStringValue(dataVo,"税率"); + if(sl != null) { + u8CYfChildren.setSl(Double.valueOf((Double.parseDouble(sl) * 100) + "").intValue() + ""); + } + u8CYfChildren.setDfybsj(getStringValue(dataVo,"税额")); + u8CYfChildren.setDfybwsje(getStringValue(dataVo,"无税金额")); + 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 { + String payAmount = getStringValue(formDataVo, "支付金额"); + if(StringUtils.isBlank(payAmount)) { + return false; + } + return Double.parseDouble(payAmount) > 0d; + } + + @Override + public SuperNodeContext otherAction(String request, FormDataVo formDataVo, FormDataMasterBean formDataMasterBean) throws Exception { + ActionStep pushFkdAction = new ActionStep("费用报销付款单") { + String fkdParam; + + @Override + public void execute() throws Exception { + U8CFkdSaveAuditAddParam param = new U8CFkdSaveAuditAddParam(); + // ...构建参数 + List billVoList = new ArrayList<>(); + U8CFkdSaveAuditBillVo billVo = new U8CFkdSaveAuditBillVo(); + billVoList.add(billVo); + param.setBillvo(billVoList); + List childrenList = new ArrayList(); + U8CFkdSaveAuditParentVo parentVo = new U8CFkdSaveAuditParentVo(); + billVo.setParentvo(parentVo); + billVo.setChildren(childrenList); + parentVo.setDjbh(getStringValue(formDataVo,"单据编号") + "FKD"); + parentVo.setDjrq(getStringValue(formDataVo,"填报日期")); + parentVo.setShrq(getStringValue(formDataVo,"填报日期")); + Long ksOaId = Long.valueOf(getDbValue(formDataVo, "填报人员")); + V3xOrgMember member = orgManager.getMemberById(ksOaId); + if(member != null) { + parentVo.setHbbm(getKsCode(member.getName())); + } + U8cParamsPreHandler.preHandleFkdBillVoParentvo(parentVo); + U8CFkdSaveAuditChildren u8CFkdSaveAuditChildren = new U8CFkdSaveAuditChildren(); + u8CFkdSaveAuditChildren.setZy(getStringValue(formDataVo, "支付说明")); + parentVo.setSzxmid("16010"); + parentVo.setBfyhzh(getStringValue(formDataVo,"支付银行账号")); + u8CFkdSaveAuditChildren.setJfbbje(getStringValue(formDataVo, "支付金额")); + u8CFkdSaveAuditChildren.setJfybje(getStringValue(formDataVo, "支付金额")); + childrenList.add(u8CFkdSaveAuditChildren); + fkdParam = JsonUtils.toJson(param); + u8CFkdSaveAuditNode.subActionProceed(fkdParam); + } + @Override + public void rollback(){ + log.info("开始回滚应付单"); + //调用接口根据单据编号删除付款单据 + try { + String url = zqcU8cConfigProvider.getBizConfigByKey(U8cConstants.u8cUrl) + "/u8cloud/api/arap/yf/delete"; + Map deleteinfo = new HashMap<>(); + Map queryinfo = new HashMap<>(); + deleteinfo.put("coperator","0001F8100000000000BI"); + queryinfo.put("dwbm","10"); + queryinfo.put("djbh_from",getStringValue(formDataVo,"单据编号")); + queryinfo.put("to",getStringValue(formDataVo,"单据编号")); + Map param = new HashMap<>(); + param.put("deleteinfo",deleteinfo); + param.put("queryinfo",queryinfo); + String resp = u8cHttpClient.doPost(url, com.seeyon.aicloud.common.JsonUtils.toJSONString(param)); + U8cResponse u8cResponse = u8cHttpClient.parseResponse(resp); + if(!u8cResponse.isSuccess()) { + throw new Exception("删除应付单据失败"); + } + }catch (Exception e) { + log.error(e.getMessage()); + } + } + }; + return executeActionChain(Arrays.asList(pushFkdAction), formDataVo); + } + + @Override + public String getNodeName() { + return "应付单保存即审批节点"; + } + + private String getKsCode(String ksName) throws Exception { + return u8CKsService.getKsCode(ksName); + } + + @Override + public boolean preCheck(FormDataVo formDataVo) throws NoSuchFieldException { + return false; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8CYsDanSaveAuditNode.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8CYsDanSaveAuditNode.java new file mode 100644 index 0000000..1d2a5d2 --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8CYsDanSaveAuditNode.java @@ -0,0 +1,80 @@ +package com.seeyon.apps.u8c.node; + +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.po.*; +import com.seeyon.apps.u8c.po.arap.ArapBillVo; +import com.seeyon.apps.u8c.po.arap.ArapBillVoChildren; +import com.seeyon.apps.u8c.po.arap.ArapBillVoParentvo; +import com.seeyon.apps.u8c.po.arap.U8CYsDanSaveAuditAddParam; +import com.seeyon.apps.u8c.resp.U8cResponse; +import com.seeyon.cap4.form.bean.FormDataMasterBean; +import org.springframework.stereotype.Component; + +import java.util.ArrayList; +import java.util.List; + +@Component +public class U8CYsDanSaveAuditNode extends U8CCommonNode{ + + + @Override + public String buildParam(String request, FormDataVo formDataVo) throws Exception { + U8CYsDanSaveAuditAddParam param = new U8CYsDanSaveAuditAddParam(); + List billVoList = new ArrayList<>(); + ArapBillVo billVo = new ArapBillVo(); + List childrenList = new ArrayList<>(); + ArapBillVoChildren children = new ArapBillVoChildren(); + ArapBillVoParentvo parentvo = new ArapBillVoParentvo(); + parentvo.setDjbh(getStringValue(formDataVo, "单据编号")); + parentvo.setDjrq(getStringValue(formDataVo, "填报日期")); + parentvo.setHbbm(getStringValue(formDataVo, "甲方单位编号")); + parentvo.setVeinvnumber(getStringValue(formDataVo, "发票号码")); + parentvo.setSzxmid("15008"); + parentvo.setShrq(getStringValue(formDataVo, "填报日期")); + children.setZy(getStringValue(formDataVo, "开票申请说明")); + children.setJobid(getStringValue(formDataVo, "项目编号")); + children.setJfybje(getStringValue(formDataVo,"本次开票金额含税")); + children.setJfbbje(getStringValue(formDataVo,"本次开票金额含税")); + String sl = getStringValue(formDataVo,"税率"); + if(sl != null) { + children.setSl(Double.valueOf((Double.parseDouble(sl) * 100) + "").intValue() + ""); + } + children.setJfybsj(getStringValue(formDataVo,"税额")); + children.setJfybwsje(getStringValue(formDataVo,"未税金额")); + parentvo.setShr(parentvo.getDjrq()); + childrenList.add(children); + billVo.setChildren(childrenList); + billVo.setParentvo(parentvo); + billVoList.add(billVo); + param.setBillvo(billVoList); + U8cParamsPreHandler.preHandleArapBillVoParentvo(parentvo); + return JsonUtils.toJSONString(param); + } + + @Override + public boolean isForcePushMethod() { + return false; + } + + @Override + public String getMethod() { + return "/u8cloud/api/arap/ys/insertapprove"; + } + + @Override + public boolean hasOtherAction(FormDataVo formDataVo) { + return false; + } + + @Override + public SuperNodeContext otherAction(String request, FormDataVo formDataVo, FormDataMasterBean formDataMasterBean) throws Exception { + return null; + } + + @Override + public String getNodeName() { + return "应收单保存即审批节点"; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8cInsertReturnNode.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8cInsertReturnNode.java new file mode 100644 index 0000000..eacf957 --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/node/U8cInsertReturnNode.java @@ -0,0 +1,39 @@ +package com.seeyon.apps.u8c.node; + +import com.seeyon.apps.ext.workflow.vo.FormDataVo; +import com.seeyon.apps.ext.workflow.vo.SuperNodeContext; +import com.seeyon.apps.u8c.resp.U8cResponse; +import com.seeyon.cap4.form.bean.FormDataMasterBean; + +public class U8cInsertReturnNode extends U8CCommonNode{ + + @Override + public String buildParam(String request, FormDataVo formDataVo) throws Exception { + return ""; + } + + @Override + public boolean isForcePushMethod() { + return false; + } + + @Override + public String getMethod() { + return "/u8cloud/api/ic/purchasein/insertreturn"; + } + + @Override + public boolean hasOtherAction(FormDataVo formDataVo) throws NoSuchFieldException { + return false; + } + + @Override + public SuperNodeContext otherAction(String request, FormDataVo formDataVo, FormDataMasterBean formDataMasterBean) throws Exception { + return null; + } + + @Override + public String getNodeName() { + return "库存采购入库单退库节点"; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/po/U8cParamsPreHandler.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/U8cParamsPreHandler.java new file mode 100644 index 0000000..84b6cf6 --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/U8cParamsPreHandler.java @@ -0,0 +1,130 @@ +package com.seeyon.apps.u8c.po; + +import com.seeyon.apps.u8c.po.arap.ArapBillVoParentvo; +import com.seeyon.apps.u8c.po.cus.AssignCustbasvo; +import com.seeyon.apps.u8c.po.cus.DocBanks; +import com.seeyon.apps.u8c.po.cus.DocParentvo; +import com.seeyon.apps.u8c.po.cus.U8cBankAccountAddParam; +import com.seeyon.apps.u8c.po.fkd.U8CFkdSaveAuditParentVo; +import com.seeyon.apps.u8c.po.materialout.U8CMaterialoutParentVo; +import com.seeyon.apps.u8c.po.otherin.U8COtherInSaveSignParentVo; +import com.seeyon.apps.u8c.po.otherout.U8COtherOutSaveSignParentVo; +import com.seeyon.apps.u8c.po.purchasein.U8CPurchaseinParentVo; +import com.seeyon.apps.u8c.po.skd.U8CSkdParentVo; +import com.seeyon.apps.u8c.po.yfd.U8CYfDanParentVo; + +public class U8cParamsPreHandler { + + public static void preHandleBankAccountAdd(U8cBankAccountAddParam param){ + param.setPk_currtype("CNY"); + param.setAcctype("活期"); + param.setArapprop("收支"); + param.setAccountproperty("单位"); + param.setCreator("0001F8100000000000BI"); + param.setAccopendate("20250701"); + param.setGenebranprop("总账户"); + } + + public static void preHandleCusInfoBankAdd(DocBanks docBank){ + docBank.setAccopendate("20250701"); + docBank.setPk_currtype("CNY"); + docBank.setDefflag("是"); + } + + public static void preHandleCusInfoBankUpdate(DocBanks docBank){ + docBank.setPk_currtype("CNY"); + docBank.setDefflag("是"); + } + + public static void preHandleCustAssignParam(AssignCustbasvo custbasvo){ + custbasvo.setCustprop(2); + } + + public static void preHandleCusInfoKsAdd(DocParentvo docParentvo){ + docParentvo.setCustprop(0); + docParentvo.setCreator("0001F8100000000000BI"); + } + + public static void preHandleCusInfoKsUpdate(DocParentvo docParentvo){ + docParentvo.setCustprop(0); + docParentvo.setCreator("0001F8100000000000BI"); + } + + public static void preHandleArapBillVoParentvo(ArapBillVoParentvo arapParentvo){ + arapParentvo.setDjlxbm("D0"); + arapParentvo.setDwbm("10"); + arapParentvo.setPj_jsfs("20"); + arapParentvo.setWldx("0"); + arapParentvo.setBzbm("CNY"); + arapParentvo.setLrr("13997704117"); + arapParentvo.setShr("13986834633"); + } + + public static void preHandleOtherInSaveSignParentvo(U8COtherInSaveSignParentVo parentVo){ + parentVo.setPk_calbody("ZQC001"); + parentVo.setPk_corp("10"); + parentVo.setCoperatorid("18827263320"); + } + + public static void preHandleOtherOutSaveSignParentvo(U8COtherOutSaveSignParentVo parentVo){ + parentVo.setPk_calbody("ZQC001"); + parentVo.setPk_corp("10"); + parentVo.setCoperatorid("18827263320"); + parentVo.setCdispatcherid("2002"); + } + + public static void preHandleSkdBillVoParentvo(U8CSkdParentVo skdParentvo){ + skdParentvo.setDjlxbm("D2"); + skdParentvo.setDwbm("10"); + skdParentvo.setPj_jsfs("20"); + skdParentvo.setWldx("0"); + skdParentvo.setBzbm("CNY"); + skdParentvo.setLrr("18995908579"); + skdParentvo.setShr("13997704117"); + } + + public static void preHandleYfdBillVoParentvo(U8CYfDanParentVo u8CYfDanParentVo){ + u8CYfDanParentVo.setDjlxbm("D1"); + u8CYfDanParentVo.setDwbm("10"); + u8CYfDanParentVo.setPj_jsfs("20"); + u8CYfDanParentVo.setWldx("0"); + u8CYfDanParentVo.setBzbm("CNY"); + u8CYfDanParentVo.setLrr("13997704117"); + u8CYfDanParentVo.setShr("13986834633"); + } + + public static void preHandleFkdBillVoParentvo(U8CFkdSaveAuditParentVo u8CFkdSaveAuditParentVo){ + u8CFkdSaveAuditParentVo.setDjlxbm("D3"); + u8CFkdSaveAuditParentVo.setDwbm("10"); + u8CFkdSaveAuditParentVo.setPj_jsfs("20"); + u8CFkdSaveAuditParentVo.setWldx("0"); + u8CFkdSaveAuditParentVo.setBzbm("CNY"); + u8CFkdSaveAuditParentVo.setLrr("18995908579"); + u8CFkdSaveAuditParentVo.setShr("13997704117"); + } + + public static void preHandleJzFkdBillVoParentvo(U8CFkdSaveAuditParentVo u8CFkdSaveAuditParentVo){ + u8CFkdSaveAuditParentVo.setDjlxbm("D2"); + u8CFkdSaveAuditParentVo.setDwbm("10"); + u8CFkdSaveAuditParentVo.setPj_jsfs("20"); + u8CFkdSaveAuditParentVo.setWldx("0"); + u8CFkdSaveAuditParentVo.setBzbm("CNY"); + u8CFkdSaveAuditParentVo.setLrr("18995908579"); + u8CFkdSaveAuditParentVo.setShr("13997704117"); + } + + public static void preHandlePurchaseinSaveSignBillVoParentvo(U8CPurchaseinParentVo parentVo){ + parentVo.setPk_corp("10"); + parentVo.setCoperatorid("18827263320"); + parentVo.setCbiztype("c001"); + parentVo.setCdispatcherid("1001"); + parentVo.setPk_calbody("ZQC001"); + } + + public static void preHandleMaterialoutSaveSignBillVoParentvo(U8CMaterialoutParentVo parentVo){ + parentVo.setPk_corp("10"); + parentVo.setCoperatorid("18827263320"); + parentVo.setCdispatcherid("2003"); + parentVo.setPk_calbody("ZQC001"); + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/po/arap/ArapBillVo.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/arap/ArapBillVo.java new file mode 100644 index 0000000..4640d84 --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/arap/ArapBillVo.java @@ -0,0 +1,24 @@ +package com.seeyon.apps.u8c.po.arap; + +import java.util.List; + +public class ArapBillVo { + private List children; + private ArapBillVoParentvo parentvo; + + public List getChildren() { + return children; + } + + public void setChildren(List children) { + this.children = children; + } + + public ArapBillVoParentvo getParentvo() { + return parentvo; + } + + public void setParentvo(ArapBillVoParentvo parentvo) { + this.parentvo = parentvo; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/po/arap/ArapBillVoChildren.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/arap/ArapBillVoChildren.java new file mode 100644 index 0000000..d5ee70f --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/arap/ArapBillVoChildren.java @@ -0,0 +1,77 @@ +package com.seeyon.apps.u8c.po.arap; + +public class ArapBillVoChildren { + + private String zy;//摘要 + private String jobid;//专项 + private String jfybje;//借方原币金额 + private String jfbbje;//借方本币金额 + private String szxmid; //收支项目 + private String sl;//税率 + private String jfybsj;//借方原币税金 + private String jfybwsje;//原币无税金额 + + public String getZy() { + return zy; + } + + public void setZy(String zy) { + this.zy = zy; + } + + public String getJobid() { + return jobid; + } + + public void setJobid(String jobid) { + this.jobid = jobid; + } + + public String getJfybje() { + return jfybje; + } + + public void setJfybje(String jfybje) { + this.jfybje = jfybje; + } + + public String getJfbbje() { + return jfbbje; + } + + public void setJfbbje(String jfbbje) { + this.jfbbje = jfbbje; + } + + public String getSzxmid() { + return szxmid; + } + + public void setSzxmid(String szxmid) { + this.szxmid = szxmid; + } + + public String getSl() { + return sl; + } + + public void setSl(String sl) { + this.sl = sl; + } + + public String getJfybsj() { + return jfybsj; + } + + public void setJfybsj(String jfybsj) { + this.jfybsj = jfybsj; + } + + public String getJfybwsje() { + return jfybwsje; + } + + public void setJfybwsje(String jfybwsje) { + this.jfybwsje = jfybwsje; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/po/arap/ArapBillVoParentvo.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/arap/ArapBillVoParentvo.java new file mode 100644 index 0000000..011316b --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/arap/ArapBillVoParentvo.java @@ -0,0 +1,122 @@ +package com.seeyon.apps.u8c.po.arap; + +public class ArapBillVoParentvo { + + private String djlxbm; //单据类型编码 + private String dwbm;//公司 + private String djbh; // 单据号 + private String djrq;//单据日期 + private String pj_jsfs; //结算方式 + private String wldx; + private String hbbm; //客商 + private String bzbm; //币种 + private String szxmid;//收支项目 + private String lrr;//录入人 + private String shr;//审核人 + private String shrq;//审核日期 + private String veinvnumber; //发票号码 + + public String getDjlxbm() { + return djlxbm; + } + + public void setDjlxbm(String djlxbm) { + this.djlxbm = djlxbm; + } + + public String getDwbm() { + return dwbm; + } + + public void setDwbm(String dwbm) { + this.dwbm = dwbm; + } + + public String getDjbh() { + return djbh; + } + + public void setDjbh(String djbh) { + this.djbh = djbh; + } + + public String getDjrq() { + return djrq; + } + + public void setDjrq(String djrq) { + this.djrq = djrq; + } + + public String getPj_jsfs() { + return pj_jsfs; + } + + public void setPj_jsfs(String pj_jsfs) { + this.pj_jsfs = pj_jsfs; + } + + public String getWldx() { + return wldx; + } + + public void setWldx(String wldx) { + this.wldx = wldx; + } + + public String getHbbm() { + return hbbm; + } + + public void setHbbm(String hbbm) { + this.hbbm = hbbm; + } + + public String getBzbm() { + return bzbm; + } + + public void setBzbm(String bzbm) { + this.bzbm = bzbm; + } + + public String getSzxmid() { + return szxmid; + } + + public void setSzxmid(String szxmid) { + this.szxmid = szxmid; + } + + public String getLrr() { + return lrr; + } + + public void setLrr(String lrr) { + this.lrr = lrr; + } + + public String getShr() { + return shr; + } + + public void setShr(String shr) { + this.shr = shr; + } + + public String getShrq() { + return shrq; + } + + public void setShrq(String shrq) { + this.shrq = shrq; + } + + public String getVeinvnumber() { + return veinvnumber; + } + + public void setVeinvnumber(String veinvnumber) { + this.veinvnumber = veinvnumber; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/po/arap/U8CYsDanSaveAuditAddParam.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/arap/U8CYsDanSaveAuditAddParam.java new file mode 100644 index 0000000..8e7c4be --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/arap/U8CYsDanSaveAuditAddParam.java @@ -0,0 +1,16 @@ +package com.seeyon.apps.u8c.po.arap; + +import java.util.List; + +public class U8CYsDanSaveAuditAddParam { + + private List billvo; + + public List getBillvo() { + return billvo; + } + + public void setBillvo(List billvo) { + this.billvo = billvo; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/po/cus/AssignCustbasvo.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/cus/AssignCustbasvo.java new file mode 100644 index 0000000..78059ef --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/cus/AssignCustbasvo.java @@ -0,0 +1,32 @@ +package com.seeyon.apps.u8c.po.cus; + +public class AssignCustbasvo { + + private String pk_corp; //公司编码 + private String pk_cubasdoc; + private Integer custprop; // 客商属性 + + public String getPk_corp() { + return pk_corp; + } + + public void setPk_corp(String pk_corp) { + this.pk_corp = pk_corp; + } + + public String getPk_cubasdoc() { + return pk_cubasdoc; + } + + public void setPk_cubasdoc(String pk_cubasdoc) { + this.pk_cubasdoc = pk_cubasdoc; + } + + public Integer getCustprop() { + return custprop; + } + + public void setCustprop(Integer custprop) { + this.custprop = custprop; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/po/cus/CbdocVo.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/cus/CbdocVo.java new file mode 100644 index 0000000..5187ea7 --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/cus/CbdocVo.java @@ -0,0 +1,33 @@ +package com.seeyon.apps.u8c.po.cus; + +import java.util.List; + +public class CbdocVo { + private List addrs; + private List banks; + private DocParentvo parentvo; + + public List getAddrs() { + return addrs; + } + + public void setAddrs(List addrs) { + this.addrs = addrs; + } + + public List getBanks() { + return banks; + } + + public void setBanks(List banks) { + this.banks = banks; + } + + public DocParentvo getParentvo() { + return parentvo; + } + + public void setParentvo(DocParentvo parentvo) { + this.parentvo = parentvo; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/po/cus/DocAddrs.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/cus/DocAddrs.java new file mode 100644 index 0000000..34f3f17 --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/cus/DocAddrs.java @@ -0,0 +1,6 @@ +package com.seeyon.apps.u8c.po.cus; + +public class DocAddrs { + String pk_areacl; //所属地区编码 + +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/po/cus/DocBanks.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/cus/DocBanks.java new file mode 100644 index 0000000..457a07d --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/cus/DocBanks.java @@ -0,0 +1,100 @@ +package com.seeyon.apps.u8c.po.cus; + +public class DocBanks { + /** + * 银行账户 + */ + private String account; + /** + * 账户名称 + */ + private String accountname; + /** + * 账户编码 + */ + private String accname; + /** + * 银行类别 + */ + private String banktypename; + /** + * 是否默认 + */ + private String defflag; + /** + * 币种 + */ + private String pk_currtype; + /** + * 账户性质 + */ + private String accountproperty; + /** + * 开户日期 + */ + private String accopendate; + + public String getAccount() { + return account; + } + + public void setAccount(String account) { + this.account = account; + } + + public String getAccountname() { + return accountname; + } + + public void setAccountname(String accountname) { + this.accountname = accountname; + } + + public String getAccname() { + return accname; + } + + public void setAccname(String accname) { + this.accname = accname; + } + + public String getBanktypename() { + return banktypename; + } + + public void setBanktypename(String banktypename) { + this.banktypename = banktypename; + } + + public String getDefflag() { + return defflag; + } + + public void setDefflag(String defflag) { + this.defflag = defflag; + } + + public String getPk_currtype() { + return pk_currtype; + } + + public void setPk_currtype(String pk_currtype) { + this.pk_currtype = pk_currtype; + } + + public String getAccountproperty() { + return accountproperty; + } + + public void setAccountproperty(String accountproperty) { + this.accountproperty = accountproperty; + } + + public String getAccopendate() { + return accopendate; + } + + public void setAccopendate(String accopendate) { + this.accopendate = accopendate; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/po/cus/DocParentvo.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/cus/DocParentvo.java new file mode 100644 index 0000000..6d2ea53 --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/cus/DocParentvo.java @@ -0,0 +1,98 @@ +package com.seeyon.apps.u8c.po.cus; + +public class DocParentvo { + + /** + * 客商编码 + */ + private String custcode; + /** + * 客商名称 + */ + private String custname; + /** + * 客商简称 + */ + private String custshortname; + /** + * 客商类型 + */ + private Integer custprop; + /** + * 所属地区 + */ + private String pk_areacl; + /** + * 纳税人登记号 + */ + private String taxpayerid; + /** + * 创建人 + */ + private String creator; + private String pk_cubasdoc; + + public String getCustcode() { + return custcode; + } + + public void setCustcode(String custcode) { + this.custcode = custcode; + } + + public String getCustname() { + return custname; + } + + public void setCustname(String custname) { + this.custname = custname; + } + + public String getCustshortname() { + return custshortname; + } + + public void setCustshortname(String custshortname) { + this.custshortname = custshortname; + } + + public Integer getCustprop() { + return custprop; + } + + public void setCustprop(Integer custprop) { + this.custprop = custprop; + } + + public String getPk_areacl() { + return pk_areacl; + } + + public void setPk_areacl(String pk_areacl) { + this.pk_areacl = pk_areacl; + } + + public String getTaxpayerid() { + return taxpayerid; + } + + public void setTaxpayerid(String taxpayerid) { + this.taxpayerid = taxpayerid; + } + + public String getCreator() { + return creator; + } + + public void setCreator(String creator) { + this.creator = creator; + } + + public String getPk_cubasdoc() { + return pk_cubasdoc; + } + + public void setPk_cubasdoc(String pk_cubasdoc) { + this.pk_cubasdoc = pk_cubasdoc; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/po/cus/U8cBankAccountAddParam.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/cus/U8cBankAccountAddParam.java new file mode 100644 index 0000000..657904d --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/cus/U8cBankAccountAddParam.java @@ -0,0 +1,154 @@ +package com.seeyon.apps.u8c.po.cus; + +public class U8cBankAccountAddParam { + + /** + * 银行账号 + */ + private String account; + /** + * 账户编码 + */ + private String accountcode; + /** + * 账户类型 + */ + private String acctype; + /** + * 创建人 + */ + private String creator; + /** + * 开户公司 + */ + private String ownercorp; + /** + * 银行类型 + */ + private String pk_banktype; + /** + * 公司 + */ + private String pk_corp; + /** + * 币种 + */ + private String pk_currtype; + + /** + * 收付属性 + * + */ + private String arapprop; + + /** + * 账户性质 + */ + private String accountproperty; + + /** + * 开户日期 + * + */ + private String accopendate; + /** + * 总分属性 + */ + private String genebranprop; + + public String getGenebranprop() { + return genebranprop; + } + + public void setGenebranprop(String genebranprop) { + this.genebranprop = genebranprop; + } + + public String getAccopendate() { + return accopendate; + } + + public void setAccopendate(String accopendate) { + this.accopendate = accopendate; + } + + public String getAccountproperty() { + return accountproperty; + } + + public void setAccountproperty(String accountproperty) { + this.accountproperty = accountproperty; + } + + public String getArapprop() { + return arapprop; + } + + public void setArapprop(String arapprop) { + this.arapprop = arapprop; + } + + public String getAccount() { + return account; + } + + public void setAccount(String account) { + this.account = account; + } + + public String getAccountcode() { + return accountcode; + } + + public void setAccountcode(String accountcode) { + this.accountcode = accountcode; + } + + public String getAcctype() { + return acctype; + } + + public void setAcctype(String acctype) { + this.acctype = acctype; + } + + public String getCreator() { + return creator; + } + + public void setCreator(String creator) { + this.creator = creator; + } + + public String getOwnercorp() { + return ownercorp; + } + + public void setOwnercorp(String ownercorp) { + this.ownercorp = ownercorp; + } + + public String getPk_banktype() { + return pk_banktype; + } + + public void setPk_banktype(String pk_banktype) { + this.pk_banktype = pk_banktype; + } + + public String getPk_corp() { + return pk_corp; + } + + public void setPk_corp(String pk_corp) { + this.pk_corp = pk_corp; + } + + public String getPk_currtype() { + return pk_currtype; + } + + public void setPk_currtype(String pk_currtype) { + this.pk_currtype = pk_currtype; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/po/cus/U8cCusDocAddParam.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/cus/U8cCusDocAddParam.java new file mode 100644 index 0000000..511788f --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/cus/U8cCusDocAddParam.java @@ -0,0 +1,15 @@ +package com.seeyon.apps.u8c.po.cus; + +import java.util.List; + +public class U8cCusDocAddParam { + private List cbdocvo; + + public List getCbdocvo() { + return cbdocvo; + } + + public void setCbdocvo(List cbdocvo) { + this.cbdocvo = cbdocvo; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/po/cus/U8cCusDocUpdateParam.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/cus/U8cCusDocUpdateParam.java new file mode 100644 index 0000000..f6601cc --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/cus/U8cCusDocUpdateParam.java @@ -0,0 +1,16 @@ +package com.seeyon.apps.u8c.po.cus; + +import java.util.List; + +public class U8cCusDocUpdateParam { + + private List cbdocvo; + + public List getCbdocvo() { + return cbdocvo; + } + + public void setCbdocvo(List cbdocvo) { + this.cbdocvo = cbdocvo; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/po/fkd/U8CFkdSaveAuditAddParam.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/fkd/U8CFkdSaveAuditAddParam.java new file mode 100644 index 0000000..e50a0e7 --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/fkd/U8CFkdSaveAuditAddParam.java @@ -0,0 +1,15 @@ +package com.seeyon.apps.u8c.po.fkd; + +import java.util.List; + +public class U8CFkdSaveAuditAddParam { + private List billvo; + + public List getBillvo() { + return billvo; + } + + public void setBillvo(List billvo) { + this.billvo = billvo; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/po/fkd/U8CFkdSaveAuditBillVo.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/fkd/U8CFkdSaveAuditBillVo.java new file mode 100644 index 0000000..03010e8 --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/fkd/U8CFkdSaveAuditBillVo.java @@ -0,0 +1,25 @@ +package com.seeyon.apps.u8c.po.fkd; + +import java.util.List; + +public class U8CFkdSaveAuditBillVo { + + private List children; + private U8CFkdSaveAuditParentVo parentvo; + + public List getChildren() { + return children; + } + + public void setChildren(List children) { + this.children = children; + } + + public U8CFkdSaveAuditParentVo getParentvo() { + return parentvo; + } + + public void setParentvo(U8CFkdSaveAuditParentVo parentvo) { + this.parentvo = parentvo; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/po/fkd/U8CFkdSaveAuditChildren.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/fkd/U8CFkdSaveAuditChildren.java new file mode 100644 index 0000000..d394d99 --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/fkd/U8CFkdSaveAuditChildren.java @@ -0,0 +1,50 @@ +package com.seeyon.apps.u8c.po.fkd; + +public class U8CFkdSaveAuditChildren { + + private String zy;//摘要 + private String jfybje;//借方原币金额 + private String jfbbje;//借方本币金额 + private String szxmid;// 收支项目 + private String jobid;//专项 + + public String getZy() { + return zy; + } + + public void setZy(String zy) { + this.zy = zy; + } + + public String getJfybje() { + return jfybje; + } + + public void setJfybje(String jfybje) { + this.jfybje = jfybje; + } + + public String getJfbbje() { + return jfbbje; + } + + public void setJfbbje(String jfbbje) { + this.jfbbje = jfbbje; + } + + public String getSzxmid() { + return szxmid; + } + + public void setSzxmid(String szxmid) { + this.szxmid = szxmid; + } + + public String getJobid() { + return jobid; + } + + public void setJobid(String jobid) { + this.jobid = jobid; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/po/fkd/U8CFkdSaveAuditParentVo.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/fkd/U8CFkdSaveAuditParentVo.java new file mode 100644 index 0000000..2001521 --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/fkd/U8CFkdSaveAuditParentVo.java @@ -0,0 +1,122 @@ +package com.seeyon.apps.u8c.po.fkd; + +public class U8CFkdSaveAuditParentVo { + + private String djlxbm;//单据类型编码 + private String dwbm;//公司 + private String djbh;//单据号 + private String djrq;//单据日期 + private String pj_jsfs;//结算方式 + private String wldx; //往来对象 + private String hbbm;//客商 + private String bzbm;//币种 + private String szxmid;//收支项目 + private String bfyhzh; //本方银行账号 + private String lrr;//录入人 + private String shr;//审核人 + private String shrq;//审核日期 + + public String getDjlxbm() { + return djlxbm; + } + + public void setDjlxbm(String djlxbm) { + this.djlxbm = djlxbm; + } + + public String getDwbm() { + return dwbm; + } + + public void setDwbm(String dwbm) { + this.dwbm = dwbm; + } + + public String getDjbh() { + return djbh; + } + + public void setDjbh(String djbh) { + this.djbh = djbh; + } + + public String getDjrq() { + return djrq; + } + + public void setDjrq(String djrq) { + this.djrq = djrq; + } + + public String getPj_jsfs() { + return pj_jsfs; + } + + public void setPj_jsfs(String pj_jsfs) { + this.pj_jsfs = pj_jsfs; + } + + public String getWldx() { + return wldx; + } + + public void setWldx(String wldx) { + this.wldx = wldx; + } + + public String getHbbm() { + return hbbm; + } + + public void setHbbm(String hbbm) { + this.hbbm = hbbm; + } + + public String getBzbm() { + return bzbm; + } + + public void setBzbm(String bzbm) { + this.bzbm = bzbm; + } + + public String getSzxmid() { + return szxmid; + } + + public void setSzxmid(String szxmid) { + this.szxmid = szxmid; + } + + public String getBfyhzh() { + return bfyhzh; + } + + public void setBfyhzh(String bfyhzh) { + this.bfyhzh = bfyhzh; + } + + public String getLrr() { + return lrr; + } + + public void setLrr(String lrr) { + this.lrr = lrr; + } + + public String getShr() { + return shr; + } + + public void setShr(String shr) { + this.shr = shr; + } + + public String getShrq() { + return shrq; + } + + public void setShrq(String shrq) { + this.shrq = shrq; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/po/insertreturn/U8CInsertReturnChildrenVo.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/insertreturn/U8CInsertReturnChildrenVo.java new file mode 100644 index 0000000..0ba4e3a --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/insertreturn/U8CInsertReturnChildrenVo.java @@ -0,0 +1,4 @@ +package com.seeyon.apps.u8c.po.insertreturn; + +public class U8CInsertReturnChildrenVo { +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/po/insertreturn/U8CInsertReturnGeneralBillVo.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/insertreturn/U8CInsertReturnGeneralBillVo.java new file mode 100644 index 0000000..81ce750 --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/insertreturn/U8CInsertReturnGeneralBillVo.java @@ -0,0 +1,25 @@ +package com.seeyon.apps.u8c.po.insertreturn; + +import java.util.List; + +public class U8CInsertReturnGeneralBillVo { + + private List childrenvo; + private U8CInsertReturnParentVo parentvo; + + public List getChildrenvo() { + return childrenvo; + } + + public void setChildrenvo(List childrenvo) { + this.childrenvo = childrenvo; + } + + public U8CInsertReturnParentVo getParentvo() { + return parentvo; + } + + public void setParentvo(U8CInsertReturnParentVo parentvo) { + this.parentvo = parentvo; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/po/insertreturn/U8CInsertReturnParam.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/insertreturn/U8CInsertReturnParam.java new file mode 100644 index 0000000..e3ef55d --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/insertreturn/U8CInsertReturnParam.java @@ -0,0 +1,16 @@ +package com.seeyon.apps.u8c.po.insertreturn; + +import java.util.List; + +public class U8CInsertReturnParam { + + private List GeneralBillVO; + + public List getGeneralBillVO() { + return GeneralBillVO; + } + + public void setGeneralBillVO(List generalBillVO) { + GeneralBillVO = generalBillVO; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/po/insertreturn/U8CInsertReturnParentVo.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/insertreturn/U8CInsertReturnParentVo.java new file mode 100644 index 0000000..6038873 --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/insertreturn/U8CInsertReturnParentVo.java @@ -0,0 +1,4 @@ +package com.seeyon.apps.u8c.po.insertreturn; + +public class U8CInsertReturnParentVo { +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/po/inventory/InvBillvoInvbasVo.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/inventory/InvBillvoInvbasVo.java new file mode 100644 index 0000000..c49cf02 --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/inventory/InvBillvoInvbasVo.java @@ -0,0 +1,78 @@ +package com.seeyon.apps.u8c.po.inventory; + +public class InvBillvoInvbasVo { + + private String invcode; //存货编码 + private String invname; //存货名称 + private String invspec; //规格 + private String invtype; //型号 + private String pk_corp; //公司 + private String pk_invcl; //存货分类 + private String pk_measdoc; //主计量单位 + private String pk_taxitems; //税目 + + public String getInvcode() { + return invcode; + } + + public void setInvcode(String invcode) { + this.invcode = invcode; + } + + public String getInvname() { + return invname; + } + + public void setInvname(String invname) { + this.invname = invname; + } + + public String getInvspec() { + return invspec; + } + + public void setInvspec(String invspec) { + this.invspec = invspec; + } + + public String getInvtype() { + return invtype; + } + + public void setInvtype(String invtype) { + this.invtype = invtype; + } + + public String getPk_corp() { + return pk_corp; + } + + public void setPk_corp(String pk_corp) { + this.pk_corp = pk_corp; + } + + public String getPk_invcl() { + return pk_invcl; + } + + public void setPk_invcl(String pk_invcl) { + this.pk_invcl = pk_invcl; + } + + public String getPk_measdoc() { + return pk_measdoc; + } + + public void setPk_measdoc(String pk_measdoc) { + this.pk_measdoc = pk_measdoc; + } + + public String getPk_taxitems() { + return pk_taxitems; + } + + public void setPk_taxitems(String pk_taxitems) { + this.pk_taxitems = pk_taxitems; + } + +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/po/inventory/InvBillvoParentvo.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/inventory/InvBillvoParentvo.java new file mode 100644 index 0000000..1894f25 --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/inventory/InvBillvoParentvo.java @@ -0,0 +1,32 @@ +package com.seeyon.apps.u8c.po.inventory; + +public class InvBillvoParentvo { + + private String currentcorp; //当前公司 + private InvBillvoInvbasVo invbasVo; + private Invmandocvo invmanVo; + + public String getCurrentcorp() { + return currentcorp; + } + + public void setCurrentcorp(String currentcorp) { + this.currentcorp = currentcorp; + } + + public InvBillvoInvbasVo getInvbasVo() { + return invbasVo; + } + + public void setInvbasVo(InvBillvoInvbasVo invbasVo) { + this.invbasVo = invbasVo; + } + + public Invmandocvo getInvmanVo() { + return invmanVo; + } + + public void setInvmanVo(Invmandocvo invmanVo) { + this.invmanVo = invmanVo; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/po/inventory/Invbasdoc.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/inventory/Invbasdoc.java new file mode 100644 index 0000000..fc42fe2 --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/inventory/Invbasdoc.java @@ -0,0 +1,25 @@ +package com.seeyon.apps.u8c.po.inventory; + +import java.util.List; + +public class Invbasdoc { + + private List childrenvo; + private InventoryParentvo parentvo; + + public List getChildrenvo() { + return childrenvo; + } + + public void setChildrenvo(List childrenvo) { + this.childrenvo = childrenvo; + } + + public InventoryParentvo getParentvo() { + return parentvo; + } + + public void setParentvo(InventoryParentvo parentvo) { + this.parentvo = parentvo; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/po/inventory/InvbasdocAssignVo.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/inventory/InvbasdocAssignVo.java new file mode 100644 index 0000000..ff6bb7d --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/inventory/InvbasdocAssignVo.java @@ -0,0 +1,29 @@ +package com.seeyon.apps.u8c.po.inventory; + +public class InvbasdocAssignVo { + + /** + * 公司编码 + */ + private String pk_corp; + /** + * 存货档案编码 + */ + private String pk_invbasdoc; + + public String getPk_corp() { + return pk_corp; + } + + public void setPk_corp(String pk_corp) { + this.pk_corp = pk_corp; + } + + public String getPk_invbasdoc() { + return pk_invbasdoc; + } + + public void setPk_invbasdoc(String pk_invbasdoc) { + this.pk_invbasdoc = pk_invbasdoc; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/po/inventory/InventoryBillvo.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/inventory/InventoryBillvo.java new file mode 100644 index 0000000..96345b9 --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/inventory/InventoryBillvo.java @@ -0,0 +1,13 @@ +package com.seeyon.apps.u8c.po.inventory; + +public class InventoryBillvo { + private InvBillvoParentvo parentvo; + + public InvBillvoParentvo getParentvo() { + return parentvo; + } + + public void setParentvo(InvBillvoParentvo parentvo) { + this.parentvo = parentvo; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/po/inventory/InventoryChildrenvo.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/inventory/InventoryChildrenvo.java new file mode 100644 index 0000000..279bb56 --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/inventory/InventoryChildrenvo.java @@ -0,0 +1,65 @@ +package com.seeyon.apps.u8c.po.inventory; + +public class InventoryChildrenvo { + + /** + * 是否固定换算 + */ + private Boolean fixedflag; + /** + * 与主计量单位换算系数 + */ + private Double mainmeasrate; + /** + * 计量单位 + */ + private String pk_measdoc; + /** + * 拆解单位名称 + */ + private String pk_measdoc_sub; + /** + * 辅计量拆解显示顺序号 + */ + private Integer showorder; + + public Boolean getFixedflag() { + return fixedflag; + } + + public void setFixedflag(Boolean fixedflag) { + this.fixedflag = fixedflag; + } + + public Double getMainmeasrate() { + return mainmeasrate; + } + + public void setMainmeasrate(Double mainmeasrate) { + this.mainmeasrate = mainmeasrate; + } + + public String getPk_measdoc() { + return pk_measdoc; + } + + public void setPk_measdoc(String pk_measdoc) { + this.pk_measdoc = pk_measdoc; + } + + public String getPk_measdoc_sub() { + return pk_measdoc_sub; + } + + public void setPk_measdoc_sub(String pk_measdoc_sub) { + this.pk_measdoc_sub = pk_measdoc_sub; + } + + public Integer getShoworder() { + return showorder; + } + + public void setShoworder(Integer showorder) { + this.showorder = showorder; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/po/inventory/InventoryParentvo.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/inventory/InventoryParentvo.java new file mode 100644 index 0000000..a7454b5 --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/inventory/InventoryParentvo.java @@ -0,0 +1,131 @@ +package com.seeyon.apps.u8c.po.inventory; + +public class InventoryParentvo { + /** + * 存货编码 + */ + private String invcode; + /** + * 存货名称 + */ + private String invname; + /** + * 规格 + */ + private String invspec; + /** + * 型号 + */ + private String invtype; + /** + * 存货分类 + */ + private String pk_invcl; + /** + * 主计量单位 + */ + private String pk_measdoc; + + /** + * 图号 + */ + private String graphid; + + /** + * + * 公司编码 + */ + private String corpcode; + + /** + * + * 公司 + */ + private String pk_corp; + + /** + * 税目编号 + * + */ + private String pk_taxitems; + + public String getPk_taxitems() { + return pk_taxitems; + } + + public void setPk_taxitems(String pk_taxitems) { + this.pk_taxitems = pk_taxitems; + } + + public String getInvcode() { + return invcode; + } + + public void setInvcode(String invcode) { + this.invcode = invcode; + } + + public String getInvname() { + return invname; + } + + public void setInvname(String invname) { + this.invname = invname; + } + + public String getInvspec() { + return invspec; + } + + public void setInvspec(String invspec) { + this.invspec = invspec; + } + + public String getInvtype() { + return invtype; + } + + public void setInvtype(String invtype) { + this.invtype = invtype; + } + + public String getPk_invcl() { + return pk_invcl; + } + + public void setPk_invcl(String pk_invcl) { + this.pk_invcl = pk_invcl; + } + + public String getPk_measdoc() { + return pk_measdoc; + } + + public void setPk_measdoc(String pk_measdoc) { + this.pk_measdoc = pk_measdoc; + } + + public String getGraphid() { + return graphid; + } + + public void setGraphid(String graphid) { + this.graphid = graphid; + } + + public String getCorpcode() { + return corpcode; + } + + public void setCorpcode(String corpcode) { + this.corpcode = corpcode; + } + + public String getPk_corp() { + return pk_corp; + } + + public void setPk_corp(String pk_corp) { + this.pk_corp = pk_corp; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/po/inventory/Invmandocvo.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/inventory/Invmandocvo.java new file mode 100644 index 0000000..6428cd5 --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/inventory/Invmandocvo.java @@ -0,0 +1,50 @@ +package com.seeyon.apps.u8c.po.inventory; + +public class Invmandocvo { + + private String pk_calbody; //库存组织 + private String pk_corp; //公司 + private String pk_invmandoc; //存货编码 + private String billtempletid; //物料生产档案模板主键 + private String wholemanaflag;//是否批次管理 + + public String getPk_calbody() { + return pk_calbody; + } + + public void setPk_calbody(String pk_calbody) { + this.pk_calbody = pk_calbody; + } + + public String getPk_corp() { + return pk_corp; + } + + public void setPk_corp(String pk_corp) { + this.pk_corp = pk_corp; + } + + public String getPk_invmandoc() { + return pk_invmandoc; + } + + public void setPk_invmandoc(String pk_invmandoc) { + this.pk_invmandoc = pk_invmandoc; + } + + public String getBilltempletid() { + return billtempletid; + } + + public void setBilltempletid(String billtempletid) { + this.billtempletid = billtempletid; + } + + public String getWholemanaflag() { + return wholemanaflag; + } + + public void setWholemanaflag(String wholemanaflag) { + this.wholemanaflag = wholemanaflag; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/po/inventory/U8CInventoryManageDocAddParam.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/inventory/U8CInventoryManageDocAddParam.java new file mode 100644 index 0000000..e3b7469 --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/inventory/U8CInventoryManageDocAddParam.java @@ -0,0 +1,13 @@ +package com.seeyon.apps.u8c.po.inventory; + +public class U8CInventoryManageDocAddParam { + private InventoryBillvo billvo; + + public InventoryBillvo getBillvo() { + return billvo; + } + + public void setBillvo(InventoryBillvo billvo) { + this.billvo = billvo; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/po/inventory/U8CInventoryManageDocAssignParam.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/inventory/U8CInventoryManageDocAssignParam.java new file mode 100644 index 0000000..6f0a0c6 --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/inventory/U8CInventoryManageDocAssignParam.java @@ -0,0 +1,15 @@ +package com.seeyon.apps.u8c.po.inventory; + +import java.util.List; + +public class U8CInventoryManageDocAssignParam { + private List invmandocvo; + + public List getInvmandocvo() { + return invmandocvo; + } + + public void setInvmandocvo(List invmandocvo) { + this.invmandocvo = invmandocvo; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/po/inventory/U8CInventoryManageDocUpdateParam.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/inventory/U8CInventoryManageDocUpdateParam.java new file mode 100644 index 0000000..1d703cc --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/inventory/U8CInventoryManageDocUpdateParam.java @@ -0,0 +1,14 @@ +package com.seeyon.apps.u8c.po.inventory; + +public class U8CInventoryManageDocUpdateParam { + + private InventoryBillvo billvo; + + public InventoryBillvo getBillvo() { + return billvo; + } + + public void setBillvo(InventoryBillvo billvo) { + this.billvo = billvo; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/po/inventory/U8cInventoryAddParam.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/inventory/U8cInventoryAddParam.java new file mode 100644 index 0000000..43bce6e --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/inventory/U8cInventoryAddParam.java @@ -0,0 +1,16 @@ +package com.seeyon.apps.u8c.po.inventory; + +import java.util.List; + +public class U8cInventoryAddParam { + + private List invbasdoc; + + public List getInvbasdoc() { + return invbasdoc; + } + + public void setInvbasdoc(List invbasdoc) { + this.invbasdoc = invbasdoc; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/po/inventory/U8cInventoryAissgnParam.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/inventory/U8cInventoryAissgnParam.java new file mode 100644 index 0000000..974a362 --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/inventory/U8cInventoryAissgnParam.java @@ -0,0 +1,16 @@ +package com.seeyon.apps.u8c.po.inventory; + +import java.util.List; + +public class U8cInventoryAissgnParam { + + private List invbasdocvo; + + public List getInvbasdocvo() { + return invbasdocvo; + } + + public void setInvbasdocvo(List invbasdocvo) { + this.invbasdocvo = invbasdocvo; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/po/inventory/U8cInventoryUpdateParam.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/inventory/U8cInventoryUpdateParam.java new file mode 100644 index 0000000..36c2b45 --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/inventory/U8cInventoryUpdateParam.java @@ -0,0 +1,14 @@ +package com.seeyon.apps.u8c.po.inventory; + + +public class U8cInventoryUpdateParam { + private Invbasdoc invbasdoc; + + public Invbasdoc getInvbasdoc() { + return invbasdoc; + } + + public void setInvbasdoc(Invbasdoc invbasdoc) { + this.invbasdoc = invbasdoc; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/po/materialout/U8CMaterialoutChildrenVo.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/materialout/U8CMaterialoutChildrenVo.java new file mode 100644 index 0000000..2b469ec --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/materialout/U8CMaterialoutChildrenVo.java @@ -0,0 +1,51 @@ +package com.seeyon.apps.u8c.po.materialout; + +public class U8CMaterialoutChildrenVo { + + private String cinventoryid;//存货ID + private String cprojectid;//项目ID + private String vbatchcode;//批次号 + private String noutnum;//实出数量 + private String vnotebody;//备注 + + public String getCinventoryid() { + return cinventoryid; + } + + public void setCinventoryid(String cinventoryid) { + this.cinventoryid = cinventoryid; + } + + public String getCprojectid() { + return cprojectid; + } + + public void setCprojectid(String cprojectid) { + this.cprojectid = cprojectid; + } + + public String getVbatchcode() { + return vbatchcode; + } + + public void setVbatchcode(String vbatchcode) { + this.vbatchcode = vbatchcode; + } + + public String getVnotebody() { + return vnotebody; + } + + public void setVnotebody(String vnotebody) { + this.vnotebody = vnotebody; + } + + public String getNoutnum() { + return noutnum; + } + + public void setNoutnum(String noutnum) { + this.noutnum = noutnum; + } + +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/po/materialout/U8CMaterialoutGeneralBillVo.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/materialout/U8CMaterialoutGeneralBillVo.java new file mode 100644 index 0000000..5aa820f --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/materialout/U8CMaterialoutGeneralBillVo.java @@ -0,0 +1,25 @@ +package com.seeyon.apps.u8c.po.materialout; + +import java.util.List; + +public class U8CMaterialoutGeneralBillVo { + + private List childrenvo; + private U8CMaterialoutParentVo parentvo; + + public List getChildrenvo() { + return childrenvo; + } + + public void setChildrenvo(List childrenvo) { + this.childrenvo = childrenvo; + } + + public U8CMaterialoutParentVo getParentvo() { + return parentvo; + } + + public void setParentvo(U8CMaterialoutParentVo parentvo) { + this.parentvo = parentvo; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/po/materialout/U8CMaterialoutParentVo.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/materialout/U8CMaterialoutParentVo.java new file mode 100644 index 0000000..82b9139 --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/materialout/U8CMaterialoutParentVo.java @@ -0,0 +1,68 @@ +package com.seeyon.apps.u8c.po.materialout; + +public class U8CMaterialoutParentVo { + private String pk_corp;//公司 + private String vbillcode;//单据号 + private String dbilldate;//单据日期 + private String pk_calbody;//库存组织pk + private String cwarehouseid;//仓库ID + private String coperatorid;//操作员 + private String cdispatcherid;//收发类别ID + + + public String getPk_corp() { + return pk_corp; + } + + public void setPk_corp(String pk_corp) { + this.pk_corp = pk_corp; + } + + 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 getCoperatorid() { + return coperatorid; + } + + public void setCoperatorid(String coperatorid) { + this.coperatorid = coperatorid; + } + + public String getCdispatcherid() { + return cdispatcherid; + } + + public void setCdispatcherid(String cdispatcherid) { + this.cdispatcherid = cdispatcherid; + } + + public String getCwarehouseid() { + return cwarehouseid; + } + + public void setCwarehouseid(String cwarehouseid) { + this.cwarehouseid = cwarehouseid; + } + + public String getPk_calbody() { + return pk_calbody; + } + + public void setPk_calbody(String pk_calbody) { + this.pk_calbody = pk_calbody; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/po/materialout/U8CMaterialoutSaveSignParam.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/materialout/U8CMaterialoutSaveSignParam.java new file mode 100644 index 0000000..492f8b9 --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/materialout/U8CMaterialoutSaveSignParam.java @@ -0,0 +1,15 @@ +package com.seeyon.apps.u8c.po.materialout; + +import java.util.List; + +public class U8CMaterialoutSaveSignParam { + private U8CMaterialoutGeneralBillVo GeneralBillVO; + + public U8CMaterialoutGeneralBillVo getGeneralBillVO() { + return GeneralBillVO; + } + + public void setGeneralBillVO(U8CMaterialoutGeneralBillVo generalBillVO) { + GeneralBillVO = generalBillVO; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/po/otherin/U8COtherInSaveSignChildrenVo.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/otherin/U8COtherInSaveSignChildrenVo.java new file mode 100644 index 0000000..466299f --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/otherin/U8COtherInSaveSignChildrenVo.java @@ -0,0 +1,50 @@ +package com.seeyon.apps.u8c.po.otherin; + +public class U8COtherInSaveSignChildrenVo { + + private String cinventoryid; //存货ID + private String vbatchcode; //批次号 + private String cprojectid;//项目ID + private String vnotebody;//行备注 + private String ninnum;//实际入数量 + + 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; + } + + 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 getNinnum() { + return ninnum; + } + + public void setNinnum(String ninnum) { + this.ninnum = ninnum; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/po/otherin/U8COtherInSaveSignGeneralBillVO.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/otherin/U8COtherInSaveSignGeneralBillVO.java new file mode 100644 index 0000000..a3fb3f6 --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/otherin/U8COtherInSaveSignGeneralBillVO.java @@ -0,0 +1,25 @@ +package com.seeyon.apps.u8c.po.otherin; + +import java.util.List; + +public class U8COtherInSaveSignGeneralBillVO { + + private List childrenvo; + private U8COtherInSaveSignParentVo parentvo; + + public List getChildrenvo() { + return childrenvo; + } + + public void setChildrenvo(List childrenvo) { + this.childrenvo = childrenvo; + } + + public U8COtherInSaveSignParentVo getParentvo() { + return parentvo; + } + + public void setParentvo(U8COtherInSaveSignParentVo parentvo) { + this.parentvo = parentvo; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/po/otherin/U8COtherInSaveSignParam.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/otherin/U8COtherInSaveSignParam.java new file mode 100644 index 0000000..7237b19 --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/otherin/U8COtherInSaveSignParam.java @@ -0,0 +1,15 @@ +package com.seeyon.apps.u8c.po.otherin; + +import java.util.List; + +public class U8COtherInSaveSignParam { + private List GeneralBillVO_4A; + + public List getGeneralBillVO_4A() { + return GeneralBillVO_4A; + } + + public void setGeneralBillVO_4A(List generalBillVO_4A) { + GeneralBillVO_4A = generalBillVO_4A; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/po/otherin/U8COtherInSaveSignParentVo.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/otherin/U8COtherInSaveSignParentVo.java new file mode 100644 index 0000000..6eac4de --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/otherin/U8COtherInSaveSignParentVo.java @@ -0,0 +1,69 @@ +package com.seeyon.apps.u8c.po.otherin; + +public class U8COtherInSaveSignParentVo { + + private String pk_corp;//公司编码 + private String vbillcode; //单据号 + private String dbilldate;//单据日期 + private String pk_calbody;//库存组织PK + private String cwarehouseid;//仓库 + private String coperatorid;//制单人 + private String cdispatcherid;//收发类别ID + + public String getPk_corp() { + return pk_corp; + } + + public void setPk_corp(String pk_corp) { + this.pk_corp = pk_corp; + } + + 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 getPk_calbody() { + return pk_calbody; + } + + public void setPk_calbody(String pk_calbody) { + this.pk_calbody = pk_calbody; + } + + public String getCwarehouseid() { + return cwarehouseid; + } + + public void setCwarehouseid(String cwarehouseid) { + this.cwarehouseid = cwarehouseid; + } + + public String getCoperatorid() { + return coperatorid; + } + + public void setCoperatorid(String coperatorid) { + this.coperatorid = coperatorid; + } + + public String getCdispatcherid() { + return cdispatcherid; + } + + public void setCdispatcherid(String cdispatcherid) { + this.cdispatcherid = cdispatcherid; + } + +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/po/otherout/U8COtherOutSaveSignChildrenVo.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/otherout/U8COtherOutSaveSignChildrenVo.java new file mode 100644 index 0000000..524a6fe --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/otherout/U8COtherOutSaveSignChildrenVo.java @@ -0,0 +1,50 @@ +package com.seeyon.apps.u8c.po.otherout; + +public class U8COtherOutSaveSignChildrenVo { + + private String cinventoryid; //存货ID + private String vbatchcode; //批次号 + private String cprojectid;//项目ID + private String vnotebody;//行备注 + private String noutnum;//实出数量 + + 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; + } + + 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 getNoutnum() { + return noutnum; + } + + public void setNoutnum(String noutnum) { + this.noutnum = noutnum; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/po/otherout/U8COtherOutSaveSignGeneralBillVO.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/otherout/U8COtherOutSaveSignGeneralBillVO.java new file mode 100644 index 0000000..db99e75 --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/otherout/U8COtherOutSaveSignGeneralBillVO.java @@ -0,0 +1,25 @@ +package com.seeyon.apps.u8c.po.otherout; + +import java.util.List; + +public class U8COtherOutSaveSignGeneralBillVO { + + private List childrenvo; + private U8COtherOutSaveSignParentVo parentvo; + + public List getChildrenvo() { + return childrenvo; + } + + public void setChildrenvo(List childrenvo) { + this.childrenvo = childrenvo; + } + + public U8COtherOutSaveSignParentVo getParentvo() { + return parentvo; + } + + public void setParentvo(U8COtherOutSaveSignParentVo parentvo) { + this.parentvo = parentvo; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/po/otherout/U8COtherOutSaveSignParam.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/otherout/U8COtherOutSaveSignParam.java new file mode 100644 index 0000000..aedb71e --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/otherout/U8COtherOutSaveSignParam.java @@ -0,0 +1,15 @@ +package com.seeyon.apps.u8c.po.otherout; + +import java.util.List; + +public class U8COtherOutSaveSignParam { + private List GeneralBillVO_4I; + + public List getGeneralBillVO_4I() { + return GeneralBillVO_4I; + } + + public void setGeneralBillVO_4I(List generalBillVO_4I) { + GeneralBillVO_4I = generalBillVO_4I; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/po/otherout/U8COtherOutSaveSignParentVo.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/otherout/U8COtherOutSaveSignParentVo.java new file mode 100644 index 0000000..c1ffb56 --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/otherout/U8COtherOutSaveSignParentVo.java @@ -0,0 +1,69 @@ +package com.seeyon.apps.u8c.po.otherout; + +public class U8COtherOutSaveSignParentVo { + + private String pk_corp;//公司编码 + private String vbillcode; //单据号 + private String dbilldate;//单据日期 + private String pk_calbody;//库存组织PK + private String cwarehouseid;//仓库 + private String coperatorid;//制单人 + private String cdispatcherid;//收发类别ID + + public String getPk_corp() { + return pk_corp; + } + + public void setPk_corp(String pk_corp) { + this.pk_corp = pk_corp; + } + + 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 getPk_calbody() { + return pk_calbody; + } + + public void setPk_calbody(String pk_calbody) { + this.pk_calbody = pk_calbody; + } + + public String getCwarehouseid() { + return cwarehouseid; + } + + public void setCwarehouseid(String cwarehouseid) { + this.cwarehouseid = cwarehouseid; + } + + public String getCoperatorid() { + return coperatorid; + } + + public void setCoperatorid(String coperatorid) { + this.coperatorid = coperatorid; + } + + public String getCdispatcherid() { + return cdispatcherid; + } + + public void setCdispatcherid(String cdispatcherid) { + this.cdispatcherid = cdispatcherid; + } + +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/po/proj/JobBasicInfo.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/proj/JobBasicInfo.java new file mode 100644 index 0000000..af2b6fd --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/proj/JobBasicInfo.java @@ -0,0 +1,102 @@ +package com.seeyon.apps.u8c.po.proj; + +public class JobBasicInfo { + + /** + * 开始日期 + */ + private String begindate; + /** + * 项目编码 + */ + private String jobcode; + /** + * 项目名称 + */ + private String jobname; + /** + * 公司 + */ + private String pk_corp; + /** + * 项目类型 + */ + private String pk_jobtype; + + /** + * + * 预计完工日期 + */ + private String forecastenddate; + + /** + * + * 是否完工 + */ + private Boolean finishedflag; + private String pk_jobbasfil;//基本档案主键 + + public String getBegindate() { + return begindate; + } + + public void setBegindate(String begindate) { + this.begindate = begindate; + } + + public String getJobcode() { + return jobcode; + } + + public void setJobcode(String jobcode) { + this.jobcode = jobcode; + } + + public String getJobname() { + return jobname; + } + + public void setJobname(String jobname) { + this.jobname = jobname; + } + + public String getPk_corp() { + return pk_corp; + } + + public void setPk_corp(String pk_corp) { + this.pk_corp = pk_corp; + } + + public String getPk_jobtype() { + return pk_jobtype; + } + + public void setPk_jobtype(String pk_jobtype) { + this.pk_jobtype = pk_jobtype; + } + + public String getForecastenddate() { + return forecastenddate; + } + + public void setForecastenddate(String forecastenddate) { + this.forecastenddate = forecastenddate; + } + + public Boolean getFinishedflag() { + return finishedflag; + } + + public void setFinishedflag(Boolean finishedflag) { + this.finishedflag = finishedflag; + } + + public String getPk_jobbasfil() { + return pk_jobbasfil; + } + + public void setPk_jobbasfil(String pk_jobbasfil) { + this.pk_jobbasfil = pk_jobbasfil; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/po/proj/JobManageDocUpdateVo.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/proj/JobManageDocUpdateVo.java new file mode 100644 index 0000000..4b9a802 --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/proj/JobManageDocUpdateVo.java @@ -0,0 +1,32 @@ +package com.seeyon.apps.u8c.po.proj; + +public class JobManageDocUpdateVo { + + private JobBasicInfo jobBasicInfo; + private String pk_corp; + private String pk_jobmngfil; + + public JobBasicInfo getJobBasicInfo() { + return jobBasicInfo; + } + + public void setJobBasicInfo(JobBasicInfo jobBasicInfo) { + this.jobBasicInfo = jobBasicInfo; + } + + public String getPk_corp() { + return pk_corp; + } + + public void setPk_corp(String pk_corp) { + this.pk_corp = pk_corp; + } + + public String getPk_jobmngfil() { + return pk_jobmngfil; + } + + public void setPk_jobmngfil(String pk_jobmngfil) { + this.pk_jobmngfil = pk_jobmngfil; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/po/proj/ProjectDocVo.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/proj/ProjectDocVo.java new file mode 100644 index 0000000..b98089c --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/proj/ProjectDocVo.java @@ -0,0 +1,25 @@ +package com.seeyon.apps.u8c.po.proj; + +public class ProjectDocVo { + /** + * 公司主键 + */ + private String pk_corp; + private JobBasicInfo jobBasicInfo; + + public String getPk_corp() { + return pk_corp; + } + + public void setPk_corp(String pk_corp) { + this.pk_corp = pk_corp; + } + + public JobBasicInfo getJobBasicInfo() { + return jobBasicInfo; + } + + public void setJobBasicInfo(JobBasicInfo jobBasicInfo) { + this.jobBasicInfo = jobBasicInfo; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/po/proj/U8CProjectDocUpdateParam.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/proj/U8CProjectDocUpdateParam.java new file mode 100644 index 0000000..7845c83 --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/proj/U8CProjectDocUpdateParam.java @@ -0,0 +1,16 @@ +package com.seeyon.apps.u8c.po.proj; + +import java.util.List; + +public class U8CProjectDocUpdateParam { + + private List vos; + + public List getVos() { + return vos; + } + + public void setVos(List vos) { + this.vos = vos; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/po/proj/U8cProjectDocAddParam.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/proj/U8cProjectDocAddParam.java new file mode 100644 index 0000000..7635af1 --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/proj/U8cProjectDocAddParam.java @@ -0,0 +1,16 @@ +package com.seeyon.apps.u8c.po.proj; + +import java.util.List; + +public class U8cProjectDocAddParam { + + private List vos; + + public List getVos() { + return vos; + } + + public void setVos(List vos) { + this.vos = vos; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/po/purchasein/U8CPurchaseinChildrenVo.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/purchasein/U8CPurchaseinChildrenVo.java new file mode 100644 index 0000000..857b352 --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/purchasein/U8CPurchaseinChildrenVo.java @@ -0,0 +1,95 @@ +package com.seeyon.apps.u8c.po.purchasein; + +public class U8CPurchaseinChildrenVo { + + private String cinventoryid;//存货ID + private String cprojectid;//项目ID + private String vbatchcode;//批次号 + private String ninnum;//实入数量 + private String ntaxprice;//含税单价 + private String ntaxmny;//含税金额 + private String nictaxrate;//税率 + private String nprice;//单价 + private String nmny;//金额 + private String vnotebody;//备注 + + public String getCinventoryid() { + return cinventoryid; + } + + public void setCinventoryid(String cinventoryid) { + this.cinventoryid = cinventoryid; + } + + public String getCprojectid() { + return cprojectid; + } + + public void setCprojectid(String cprojectid) { + this.cprojectid = cprojectid; + } + + public String getVbatchcode() { + return vbatchcode; + } + + public void setVbatchcode(String vbatchcode) { + this.vbatchcode = vbatchcode; + } + + public String getNinnum() { + return ninnum; + } + + public void setNinnum(String ninnum) { + this.ninnum = ninnum; + } + + public String getNtaxprice() { + return ntaxprice; + } + + public void setNtaxprice(String ntaxprice) { + this.ntaxprice = ntaxprice; + } + + public String getNtaxmny() { + return ntaxmny; + } + + public void setNtaxmny(String ntaxmny) { + this.ntaxmny = ntaxmny; + } + + public String getNictaxrate() { + return nictaxrate; + } + + public void setNictaxrate(String nictaxrate) { + this.nictaxrate = nictaxrate; + } + + public String getNprice() { + return nprice; + } + + public void setNprice(String nprice) { + this.nprice = nprice; + } + + public String getNmny() { + return nmny; + } + + public void setNmny(String nmny) { + this.nmny = nmny; + } + + public String getVnotebody() { + return vnotebody; + } + + public void setVnotebody(String vnotebody) { + this.vnotebody = vnotebody; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/po/purchasein/U8CPurchaseinGeneralBillVo.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/purchasein/U8CPurchaseinGeneralBillVo.java new file mode 100644 index 0000000..3c04d8e --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/purchasein/U8CPurchaseinGeneralBillVo.java @@ -0,0 +1,25 @@ +package com.seeyon.apps.u8c.po.purchasein; + +import java.util.List; + +public class U8CPurchaseinGeneralBillVo { + + private List childrenvo; + private U8CPurchaseinParentVo parentvo; + + public List getChildrenvo() { + return childrenvo; + } + + public void setChildrenvo(List childrenvo) { + this.childrenvo = childrenvo; + } + + public U8CPurchaseinParentVo getParentvo() { + return parentvo; + } + + public void setParentvo(U8CPurchaseinParentVo parentvo) { + this.parentvo = parentvo; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/po/purchasein/U8CPurchaseinParentVo.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/purchasein/U8CPurchaseinParentVo.java new file mode 100644 index 0000000..3858438 --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/purchasein/U8CPurchaseinParentVo.java @@ -0,0 +1,85 @@ +package com.seeyon.apps.u8c.po.purchasein; + +public class U8CPurchaseinParentVo { + private String pk_corp;//公司 + private String vbillcode;//单据号 + private String dbilldate;//单据日期 + private String daccountdate;//审核日期 + private String coperatorid;//操作员 + private String cbiztype;//业务类型 + private String cdispatcherid;//收发类别 + private String cwarehouseid;//仓库ID + private String pk_calbody;//库存组织pk + + public String getPk_corp() { + return pk_corp; + } + + public void setPk_corp(String pk_corp) { + this.pk_corp = pk_corp; + } + + 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 getDaccountdate() { + return daccountdate; + } + + public void setDaccountdate(String daccountdate) { + this.daccountdate = daccountdate; + } + + public String getCoperatorid() { + return coperatorid; + } + + public void setCoperatorid(String coperatorid) { + this.coperatorid = coperatorid; + } + + public String getCbiztype() { + return cbiztype; + } + + public void setCbiztype(String cbiztype) { + this.cbiztype = cbiztype; + } + + public String getCdispatcherid() { + return cdispatcherid; + } + + public void setCdispatcherid(String cdispatcherid) { + this.cdispatcherid = cdispatcherid; + } + + public String getCwarehouseid() { + return cwarehouseid; + } + + public void setCwarehouseid(String cwarehouseid) { + this.cwarehouseid = cwarehouseid; + } + + public String getPk_calbody() { + return pk_calbody; + } + + public void setPk_calbody(String pk_calbody) { + this.pk_calbody = pk_calbody; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/po/purchasein/U8CPurchaseinSaveSignParam.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/purchasein/U8CPurchaseinSaveSignParam.java new file mode 100644 index 0000000..aa98cc9 --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/purchasein/U8CPurchaseinSaveSignParam.java @@ -0,0 +1,15 @@ +package com.seeyon.apps.u8c.po.purchasein; + +import java.util.List; + +public class U8CPurchaseinSaveSignParam { + private List GeneralBillVO; + + public List getGeneralBillVO() { + return GeneralBillVO; + } + + public void setGeneralBillVO(List generalBillVO) { + GeneralBillVO = generalBillVO; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/po/skd/U8CSkdBillVo.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/skd/U8CSkdBillVo.java new file mode 100644 index 0000000..092c7f0 --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/skd/U8CSkdBillVo.java @@ -0,0 +1,25 @@ +package com.seeyon.apps.u8c.po.skd; + +import java.util.List; + +public class U8CSkdBillVo { + + private List children; + private U8CSkdParentVo parentVo; + + public List getChildren() { + return children; + } + + public void setChildren(List children) { + this.children = children; + } + + public U8CSkdParentVo getParentVo() { + return parentVo; + } + + public void setParentVo(U8CSkdParentVo parentVo) { + this.parentVo = parentVo; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/po/skd/U8CSkdChildren.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/skd/U8CSkdChildren.java new file mode 100644 index 0000000..0c71617 --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/skd/U8CSkdChildren.java @@ -0,0 +1,68 @@ +package com.seeyon.apps.u8c.po.skd; + +public class U8CSkdChildren { + + private String zy; //摘要 + private String jobid; //专项 + private String dfybje;// 贷方原币金额 + private String dfbbje; //贷方本币金额 + private String hbbm; //客商 + private String szxmid;//收支项目 + private String bfyhzh;//收款银行账号 + + public String getZy() { + return zy; + } + + public void setZy(String zy) { + this.zy = zy; + } + + public String getJobid() { + return jobid; + } + + public void setJobid(String jobid) { + this.jobid = jobid; + } + + public String getDfybje() { + return dfybje; + } + + public void setDfybje(String dfybje) { + this.dfybje = dfybje; + } + + public String getDfbbje() { + return dfbbje; + } + + public void setDfbbje(String dfbbje) { + this.dfbbje = dfbbje; + } + + public String getHbbm() { + return hbbm; + } + + public void setHbbm(String hbbm) { + this.hbbm = hbbm; + } + + public String getSzxmid() { + return szxmid; + } + + public void setSzxmid(String szxmid) { + this.szxmid = szxmid; + } + + public String getBfyhzh() { + return bfyhzh; + } + + public void setBfyhzh(String bfyhzh) { + this.bfyhzh = bfyhzh; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/po/skd/U8CSkdParentVo.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/skd/U8CSkdParentVo.java new file mode 100644 index 0000000..81276ea --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/skd/U8CSkdParentVo.java @@ -0,0 +1,122 @@ +package com.seeyon.apps.u8c.po.skd; + +public class U8CSkdParentVo { + + private String hbbm; //客商 + private String djlxbm; //单据类型编码 + private String dwbm; //公司 + private String djbh; //单据号 + private String djrq; //单据日期 + private String pj_jsfs; //结算方式 + private String bzbm; //币种 + private String wldx; //往来对象标识 + private String szxmid;//收支项目 + private String lrr;//录入人 + private String shr;// 审核人(审批时必填) + private String shrq; //审核日期(审批时必填) + private String bfyhzh;// + + public String getHbbm() { + return hbbm; + } + + public void setHbbm(String hbbm) { + this.hbbm = hbbm; + } + + public String getDjlxbm() { + return djlxbm; + } + + public void setDjlxbm(String djlxbm) { + this.djlxbm = djlxbm; + } + + public String getDwbm() { + return dwbm; + } + + public void setDwbm(String dwbm) { + this.dwbm = dwbm; + } + + public String getDjbh() { + return djbh; + } + + public void setDjbh(String djbh) { + this.djbh = djbh; + } + + public String getDjrq() { + return djrq; + } + + public void setDjrq(String djrq) { + this.djrq = djrq; + } + + public String getPj_jsfs() { + return pj_jsfs; + } + + public void setPj_jsfs(String pj_jsfs) { + this.pj_jsfs = pj_jsfs; + } + + public String getBzbm() { + return bzbm; + } + + public void setBzbm(String bzbm) { + this.bzbm = bzbm; + } + + public String getWldx() { + return wldx; + } + + public void setWldx(String wldx) { + this.wldx = wldx; + } + + public String getLrr() { + return lrr; + } + + public void setLrr(String lrr) { + this.lrr = lrr; + } + + public String getShr() { + return shr; + } + + public void setShr(String shr) { + this.shr = shr; + } + + public String getShrq() { + return shrq; + } + + public void setShrq(String shrq) { + this.shrq = shrq; + } + + public String getSzxmid() { + return szxmid; + } + + public void setSzxmid(String szxmid) { + this.szxmid = szxmid; + } + + public String getBfyhzh() { + return bfyhzh; + } + + public void setBfyhzh(String bfyhzh) { + this.bfyhzh = bfyhzh; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/po/skd/U8CSkdSaveAuditAddParam.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/skd/U8CSkdSaveAuditAddParam.java new file mode 100644 index 0000000..69d747f --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/skd/U8CSkdSaveAuditAddParam.java @@ -0,0 +1,16 @@ +package com.seeyon.apps.u8c.po.skd; + +import java.util.List; + +public class U8CSkdSaveAuditAddParam { + + private List billvo; + + public List getBillvo() { + return billvo; + } + + public void setBillvo(List billvo) { + this.billvo = billvo; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/po/stordoc/Stordoc.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/stordoc/Stordoc.java new file mode 100644 index 0000000..975384a --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/stordoc/Stordoc.java @@ -0,0 +1,52 @@ +package com.seeyon.apps.u8c.po.stordoc; + +public class Stordoc { + /** + * 库存组织编码 + */ + private String pk_calbody; + /** + * 公司 + */ + private String pk_corp; + /** + * 仓库编码 + */ + private String storcode; + /** + * 仓库名称 + */ + private String storname; + + public String getPk_calbody() { + return pk_calbody; + } + + public void setPk_calbody(String pk_calbody) { + this.pk_calbody = pk_calbody; + } + + public String getPk_corp() { + return pk_corp; + } + + public void setPk_corp(String pk_corp) { + this.pk_corp = pk_corp; + } + + public String getStorcode() { + return storcode; + } + + public void setStorcode(String storcode) { + this.storcode = storcode; + } + + public String getStorname() { + return storname; + } + + public void setStorname(String storname) { + this.storname = storname; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/po/stordoc/U8cStordocAddParam.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/stordoc/U8cStordocAddParam.java new file mode 100644 index 0000000..2e66731 --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/stordoc/U8cStordocAddParam.java @@ -0,0 +1,15 @@ +package com.seeyon.apps.u8c.po.stordoc; + +import java.util.List; + +public class U8cStordocAddParam { + private List stordoc; + + public List getStordoc() { + return stordoc; + } + + public void setStordoc(List stordoc) { + this.stordoc = stordoc; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/po/yfd/U8CYfBillVo.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/yfd/U8CYfBillVo.java new file mode 100644 index 0000000..64dd4e6 --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/yfd/U8CYfBillVo.java @@ -0,0 +1,25 @@ +package com.seeyon.apps.u8c.po.yfd; + +import java.util.List; + +public class U8CYfBillVo { + + private List children; + private U8CYfDanParentVo parentvo; + + public List getChildren() { + return children; + } + + public void setChildren(List children) { + this.children = children; + } + + public U8CYfDanParentVo getParentvo() { + return parentvo; + } + + public void setParentvo(U8CYfDanParentVo parentvo) { + this.parentvo = parentvo; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/po/yfd/U8CYfChildren.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/yfd/U8CYfChildren.java new file mode 100644 index 0000000..e0a047b --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/yfd/U8CYfChildren.java @@ -0,0 +1,81 @@ +package com.seeyon.apps.u8c.po.yfd; + + +import com.fasterxml.jackson.annotation.JsonInclude; + +@JsonInclude(JsonInclude.Include.NON_NULL) +public class U8CYfChildren { + + private String zy; //摘要 + private String jobid; //专项 + private String dfybje; //贷方原币金额 + private String dfbbje; //贷方本币金额 + private String szxmid;//收支项目ID + private String sl;//税率 + private String dfybsj; //贷方原币税金 + private String dfybwsje; //贷方无税金额 + + public String getZy() { + return zy; + } + + public void setZy(String zy) { + this.zy = zy; + } + + public String getJobid() { + return jobid; + } + + public void setJobid(String jobid) { + this.jobid = jobid; + } + + public String getDfybje() { + return dfybje; + } + + public void setDfybje(String dfybje) { + this.dfybje = dfybje; + } + + public String getDfbbje() { + return dfbbje; + } + + public void setDfbbje(String dfbbje) { + this.dfbbje = dfbbje; + } + + public String getSzxmid() { + return szxmid; + } + + public void setSzxmid(String szxmid) { + this.szxmid = szxmid; + } + + public String getSl() { + return sl; + } + + public void setSl(String sl) { + this.sl = sl; + } + + public String getDfybsj() { + return dfybsj; + } + + public void setDfybsj(String dfybsj) { + this.dfybsj = dfybsj; + } + + public String getDfybwsje() { + return dfybwsje; + } + + public void setDfybwsje(String dfybwsje) { + this.dfybwsje = dfybwsje; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/po/yfd/U8CYfDanParentVo.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/yfd/U8CYfDanParentVo.java new file mode 100644 index 0000000..a69f7f1 --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/yfd/U8CYfDanParentVo.java @@ -0,0 +1,117 @@ +package com.seeyon.apps.u8c.po.yfd; + + +import com.fasterxml.jackson.annotation.JsonInclude; + +@JsonInclude(JsonInclude.Include.NON_NULL) +public class U8CYfDanParentVo { + + private String djlxbm; //单据类型编码 + private String dwbm; //公司 + private String djbh; //单据号 + private String djrq; //单据日期 + private String pj_jsfs;//结算方式 + private String wldx; //往来对象标识 + private String hbbm; //客商 + private String bzbm; //币种 + private String szxmid; //收支项目 + private String lrr; //录入人 + private String shr; //审核人 + private String shrq; //审核人 + + public String getDjlxbm() { + return djlxbm; + } + + public void setDjlxbm(String djlxbm) { + this.djlxbm = djlxbm; + } + + public String getDwbm() { + return dwbm; + } + + public void setDwbm(String dwbm) { + this.dwbm = dwbm; + } + + public String getDjbh() { + return djbh; + } + + public void setDjbh(String djbh) { + this.djbh = djbh; + } + + public String getDjrq() { + return djrq; + } + + public void setDjrq(String djrq) { + this.djrq = djrq; + } + + public String getPj_jsfs() { + return pj_jsfs; + } + + public void setPj_jsfs(String pj_jsfs) { + this.pj_jsfs = pj_jsfs; + } + + public String getWldx() { + return wldx; + } + + public void setWldx(String wldx) { + this.wldx = wldx; + } + + public String getHbbm() { + return hbbm; + } + + public void setHbbm(String hbbm) { + this.hbbm = hbbm; + } + + public String getBzbm() { + return bzbm; + } + + public void setBzbm(String bzbm) { + this.bzbm = bzbm; + } + + public String getSzxmid() { + return szxmid; + } + + public void setSzxmid(String szxmid) { + this.szxmid = szxmid; + } + + public String getLrr() { + return lrr; + } + + public void setLrr(String lrr) { + this.lrr = lrr; + } + + public String getShr() { + return shr; + } + + public void setShr(String shr) { + this.shr = shr; + } + + public String getShrq() { + return shrq; + } + + public void setShrq(String shrq) { + this.shrq = shrq; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/po/yfd/U8CYfDanSaveAuditAddParam.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/yfd/U8CYfDanSaveAuditAddParam.java new file mode 100644 index 0000000..0eddf7b --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/po/yfd/U8CYfDanSaveAuditAddParam.java @@ -0,0 +1,16 @@ +package com.seeyon.apps.u8c.po.yfd; + +import java.util.List; + +public class U8CYfDanSaveAuditAddParam { + + private List billvo; + + public List getBillvo() { + return billvo; + } + + public void setBillvo(List billvo) { + this.billvo = billvo; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/resp/U8cResponse.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/resp/U8cResponse.java new file mode 100644 index 0000000..cb65b32 --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/resp/U8cResponse.java @@ -0,0 +1,81 @@ +package com.seeyon.apps.u8c.resp; + +import com.alibaba.fastjson.JSONObject; + +public class U8cResponse { + + private boolean success; + private int status; + private String msg; + private String data; + private String raw; + + + public U8cResponse(JSONObject object) { + if(object.containsKey("Status")) { + this.status = object.getInteger("Status"); + } else { + this.status = object.getString("status").equals("success") ? 1 : 2; + } + this.success = (1 == status); + if(object.containsKey("Msg")) { + this.msg = object.getString("Msg"); + } else { + this.msg = object.getString("errormsg"); + } + if(object.containsKey("Data")) { + this.data = object.getString("Data"); + } else { + this.data = object.getString("data"); + } + } + + public boolean isSuccess() { + return success; + } + + public U8cResponse setSuccess(boolean success) { + this.success = success; + return this; + } + + public int getStatus() { + return status; + } + + public U8cResponse setStatus(int status) { + this.status = status; + return this; + } + + public String getMsg() { + return msg; + } + + public U8cResponse setMsg(String msg) { + this.msg = msg; + return this; + } + + public String getData() { + return data; + } + + public U8cResponse setData(String data) { + this.data = data; + return this; + } + + public String getRaw() { + return raw; + } + + public void setRaw(String raw) { + this.raw = raw; + } + + public U8cResponse raw(String respStr) { + this.raw = respStr; + return this; + } +} \ No newline at end of file diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/service/U8CInventoryQueryService.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/service/U8CInventoryQueryService.java new file mode 100644 index 0000000..d5eaf91 --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/service/U8CInventoryQueryService.java @@ -0,0 +1,20 @@ +package com.seeyon.apps.u8c.service; + +import com.seeyon.apps.u8c.config.ZqcU8cConfigProvider; +import com.seeyon.apps.u8c.constants.U8cConstants; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +@Component +public class U8CInventoryQueryService { + + @Autowired + private ZqcU8cConfigProvider zqcU8cConfigProvider; + @Autowired + private U8cHttpClient u8cHttpClient; + + public String getInventoryIdByName(String name) { + String url = zqcU8cConfigProvider.getBizConfigByKey(U8cConstants.u8cUrl) + "/u8cloud/api/uapbd/invmandoc/query"; + return ""; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/service/U8CKsService.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/service/U8CKsService.java new file mode 100644 index 0000000..9b5c1d5 --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/service/U8CKsService.java @@ -0,0 +1,78 @@ +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.Map; + +@Component +public class U8CKsService { + + private static final Log log = Log.get(U8CKsService.class); + + @Autowired + private ZqcU8cConfigProvider zqcU8cConfigProvider; + @Autowired + private U8cHttpClient u8cHttpClient; + + public String getKsCode(String ksName) { + try { + Map params = new HashMap<>(); + params.put("custnameis", ksName); + String url = zqcU8cConfigProvider.getBizConfigByKey(U8cConstants.u8cUrl) + "/u8cloud/api/uapbd/custdoc/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[] datas = (Object[]) dataMap.get("datas"); + if(datas == null || datas.length <= 0 ) { + throw new RuntimeException("未找到公司编码或客商编码"); + } + Map rowMap = (Map) datas[0]; + Map parentvo = (Map) rowMap.get("parentvo"); + return (String) parentvo.get("custcode"); + }catch (Exception e) { + log.error("客商编码查询失败: " + e.getMessage()); + } + return null; + } + + public String getKsPkByCode(String ksCode) { + try { + Map params = new HashMap<>(); + params.put("custcode", ksCode); + String url = zqcU8cConfigProvider.getBizConfigByKey(U8cConstants.u8cUrl) + "/u8cloud/api/uapbd/custdoc/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[] datas = (Object[]) dataMap.get("datas"); + if(datas == null || datas.length <= 0 ) { + throw new RuntimeException("未找对应客商信息"); + } + Map rowMap = (Map) datas[0]; + Map parentvo = (Map) rowMap.get("parentvo"); + return (String) parentvo.get("pk_cubasdoc"); + }catch (Exception e) { + log.error("客商PK值查询失败:" + e.getMessage()); + } + return null; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/service/U8CProjQueryService.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/service/U8CProjQueryService.java new file mode 100644 index 0000000..7af85e7 --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/service/U8CProjQueryService.java @@ -0,0 +1,72 @@ +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.Map; + +@Component +public class U8CProjQueryService { + + private static final Log log = Log.get(U8CProjQueryService.class); + + @Autowired + private ZqcU8cConfigProvider zqcU8cConfigProvider; + @Autowired + private U8cHttpClient u8cHttpClient; + + public boolean existedProj(String projCode) { + try { + Map params = new HashMap<>(); + params.put("jobcode", projCode); + 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("未找到项目信息"); + } + Integer count = Integer.parseInt((String)dataMap.get("allcount")); + return count > 0; + }catch (Exception e) { + log.error(e.getMessage()); + return false; + } + } + + public String getPkCode(String projCode,String corp) { + try { + Map params = new HashMap<>(); + params.put("jobcode", projCode); + params.put("corp",corp); + String url = zqcU8cConfigProvider.getBizConfigByKey(U8cConstants.u8cUrl) + "/u8cloud/api/uapbd/bdjobmngfil/query"; + String paramStr = JsonUtils.toJSONString(params); + log.info("查询项目信息的参数为: " + paramStr); + String response = u8cHttpClient.doPost(url, paramStr); + U8cResponse u8cResponse = u8cHttpClient.parseResponse(response); + String dataString = u8cResponse.getData(); + Map dataMap = JsonUtils.parseObject(dataString, Map.class); + if(dataMap == null || dataMap.size() <= 0 ) { + throw new RuntimeException("未找到项目信息"); + } + Object[] array = (Object[]) dataMap.get("datas"); + if(array.length == 0) { + return null; + } + Map map = (Map) array[0]; + return map.get("pk_jobmngfil") + "," + map.get("pk_jobbasfil"); + }catch (Exception e) { + log.error(e.getMessage()); + } + return null; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/service/U8cHttpClient.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/service/U8cHttpClient.java new file mode 100644 index 0000000..b973321 --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/service/U8cHttpClient.java @@ -0,0 +1,64 @@ +package com.seeyon.apps.u8c.service; + +import cn.hutool.http.HttpRequest; +import com.alibaba.fastjson.JSONObject; +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 com.seeyon.ctp.util.json.JSONUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import javax.annotation.PostConstruct; +import java.util.Map; + +/** + * 功能描述:
+ *
+ *
+ * 
+ * + * @Author: HuangZhengguo + * @Date: 2024/4/28 + */ + +@Component +public class U8cHttpClient { + + @Autowired + private ZqcU8cConfigProvider zqcU8cConfigProvider; + + private U8cHttpClient() { + + } + + public String doPost(String url, String body) throws Exception { + String connectionType = zqcU8cConfigProvider.getBizConfigByKey(U8cConstants.u8cConnection); + String contentType = zqcU8cConfigProvider.getBizConfigByKey(U8cConstants.u8cContentType); + String u8cSystem = zqcU8cConfigProvider.getBizConfigByKey(U8cConstants.u8cSystem); + String u8cUsercode = zqcU8cConfigProvider.getBizConfigByKey(U8cConstants.u8cUsercode); + String u8cPassword = zqcU8cConfigProvider.getBizConfigByKey(U8cConstants.u8cPassword); + return HttpRequest.post(url).header("accept", "*/*") + .header("connection", connectionType) + .header("Content-Type", contentType) + .header("system", u8cSystem) + .header("usercode", u8cUsercode) + .header("password", u8cPassword) + .body(body).execute().body(); + } + + public U8cResponse parseResponse(String response) throws Exception { + try { + JSONObject object = JSONUtil.parseJSONString(response, JSONObject.class); + return new U8cResponse(object).raw(response); + } catch (Exception e) { + JSONObject jsonObject = new JSONObject(); + jsonObject.put("Status", "0"); + jsonObject.put("Msg", "解析json异常"); + jsonObject.put("Data", response); + return new U8cResponse(jsonObject); + } + } + +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/service/U8cOrgService.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/service/U8cOrgService.java new file mode 100644 index 0000000..1a8350e --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/service/U8cOrgService.java @@ -0,0 +1,37 @@ +package com.seeyon.apps.u8c.service; + +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 U8cOrgService { + + @Autowired + private ZqcU8cConfigProvider zqcU8cConfigProvider; + @Autowired + private U8cHttpClient u8cHttpClient; + + public String getCorpCode(String corpName) throws Exception { + Map params = new HashMap<>(); + params.put("corpName", corpName); + String url = zqcU8cConfigProvider.getBizConfigByKey(U8cConstants.u8cUrl) + "/u8cloud/api/uapbd/bdcorp/query"; + String response = u8cHttpClient.doPost(url, JsonUtils.toJSONString(params)); + U8cResponse u8cResponse = u8cHttpClient.parseResponse(response); + Map dataMap = JsonUtils.parseObject(u8cResponse.getData(), Map.class); + List dataList = (List)dataMap.get("datas"); + if(dataList == null || dataList.size() <= 0 ) { + throw new RuntimeException("未找到对应客商"); + } + Map rowMap = (Map) dataList.get(0); + Map innerMap = (Map)rowMap.get("parentvo"); + return (String) innerMap.get("custcode"); + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/util/Cap4ReturnUtil.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/util/Cap4ReturnUtil.java new file mode 100644 index 0000000..bc49f6d --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/util/Cap4ReturnUtil.java @@ -0,0 +1,153 @@ +package com.seeyon.apps.u8c.util; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.seeyon.apps.ext.workflow.vo.FormDataVo; +import com.seeyon.ctp.common.exceptions.BusinessException; +import com.seeyon.apps.u8c.resp.U8cResponse; +import www.seeyon.com.utils.StringUtil; + +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +public class Cap4ReturnUtil { + + public void setParamReturn(String method, U8cResponse u8cResponse, FormDataVo formDataVo, String nodeId) throws BusinessException, NoSuchFieldException { + JSONObject root = getFirstJsonObject(u8cResponse); + JSONObject parentvo = root.getJSONObject("parentvo"); + + switch (method) { + case "/u8cloud/api/uapbd/custdoc/insert": + handleCustomerInsert(root, formDataVo); + break; + case "/u8cloud/api/uapbd/custdoc/update": + handleCustomerUpdate(root, formDataVo); + break; + case "/u8cloud/api/cmp/fj/insert": + handlePaymentInsert(root, formDataVo, nodeId); + break; + case "/u8cloud/api/cmp/sj/insert": + handleCollectionInsert(root, formDataVo, nodeId); + break; + case "/u8cloud/api/cmp/hj/insert": + formDataVo.getNewFieldDataMap().put("U8C-单据号付", parentvo.getString("djbh")); + break; + case "/u8cloud/api/uapbd/custmandoc/insert": + break; + case "/u8cloud/api/uapbd/bankaccount/insert": + break; + case "/u8cloud/api/arap/yf/insert": + break; + case "/u8cloud/api/uapbd/custdoc/assign": + break; + case "/u8cloud/api/uapbd/invbasdoc/insert": + break; + case "/u8cloud/api/uapbd/invbasdoc/update": + break; + case "/u8cloud/api/uapbd/stordoc/insert": + break; + default: + throw new BusinessException("Unsupported method: " + method); + } + } + + private void handleCustomerInsert(JSONObject root, FormDataVo formDataVo) { + JSONObject parentvo = root.getJSONObject("parentvo"); + formDataVo.getNewFieldDataMap().put("U8C-客商主键", parentvo.getString("pk_cubasdoc")); + handleBankList(root, formDataVo); + } + + private void handleCustomerUpdate(JSONObject root, FormDataVo formDataVo) { + handleBankList(root, formDataVo); + } + + private void handleBankList(JSONObject root, FormDataVo formDataVo) { + JSONArray banks = root.getJSONArray("BANK"); + if (banks != null && !banks.isEmpty()) { + String bankIds = banks.stream() + .map(obj -> { + Map bank = (Map) obj; + return bank.get("account") + ":" + bank.get("pk_custbank"); + }) + .collect(Collectors.joining(";")); + formDataVo.getNewFieldDataMap().put("U8C-返回客商银行对照", bankIds); + } + } + + private void handlePaymentInsert(JSONObject root, FormDataVo formDataVo, String nodeId) throws NoSuchFieldException { + JSONObject parentvo = root.getJSONObject("parentvo"); + JSONArray childrenvos = root.getJSONArray("childrenvo"); + + if ("DiaoBoYdctPaymentNode".equals(nodeId)) { + formDataVo.getNewFieldDataMap().put("U8C-单据号付", parentvo.getString("djbh")); + handleSubFormTax(formDataVo.getSubFormMap().get("U8C-结算明细付"), childrenvos, "U8C-明细表编号付", "U8C-本币税金付", "U8C-本币无税金额付"); + } else if ("TongYongzhifuYdctPaymentNode".equals(nodeId)) { + JSONObject child = childrenvos.getJSONObject(0); + putMainFormTax(formDataVo, child, "主表-U8C本币税金", "主表-U8C本币无税金额"); + formDataVo.getNewFieldDataMap().put("U8C-单据号", parentvo.getString("djbh")); + } else { + handleAllSubForms(formDataVo, childrenvos, "U8C-本币税金", "U8C-本币无税金额", "U8C-明细表编号"); + formDataVo.getNewFieldDataMap().put("U8C-单据号", parentvo.getString("djbh")); + } + } + + private void handleCollectionInsert(JSONObject root, FormDataVo formDataVo, String nodeId) throws NoSuchFieldException { + JSONObject parentvo = root.getJSONObject("parentvo"); + JSONArray childrenvos = root.getJSONArray("childrenvo"); + + if ("DiaoBoYdctCollectionNode".equals(nodeId)) { + formDataVo.getNewFieldDataMap().put("U8C-单据号收", parentvo.getString("djbh")); + handleSubFormTax(formDataVo.getSubFormMap().get("U8C-结算明细收"), childrenvos, "U8C-明细表编号收", "U8C-本币税金收", "U8C-本币无税金额收"); + } else { + formDataVo.getNewFieldDataMap().put("U8C-单据号", parentvo.getString("djbh")); + handleAllSubForms(formDataVo, childrenvos, "U8C-本币税金", "U8C-本币无税金额", "U8C-明细表编号"); + } + } + + private void handleSubFormTax(List subForms, JSONArray childrenvos, String subNoField, String taxField, String amountField) throws NoSuchFieldException { + if (subForms == null) return; + for (FormDataVo sub : subForms) { + String subNo = sub.getFieldData(subNoField).getStringValue(); + for (int i = 0; i < childrenvos.size(); i++) { + JSONObject child = childrenvos.getJSONObject(i); + if (subNo.equals(child.getString("zyx20"))) { + putTaxFields(sub, child, taxField, amountField, "jfybsj", "jfybwsje"); + } + } + } + } + + private void handleAllSubForms(FormDataVo formDataVo, JSONArray childrenvos, String taxField, String amountField, String subNoField) { + formDataVo.getSubFormMap().forEach((key, list) -> { + if (key.startsWith("U8C-")) { + try { + handleSubFormTax(list, childrenvos, subNoField, taxField, amountField); + } catch (NoSuchFieldException e) { + throw new RuntimeException(e); + } + } + }); + } + + private void putMainFormTax(FormDataVo formDataVo, JSONObject child, String taxField, String amountField) { + putTaxFields(formDataVo, child, taxField, amountField, "jfybsj", "jfybwsje"); + } + + private void putTaxFields(FormDataVo form, JSONObject child, String taxField, String amountField, String taxJsonKey, String amtJsonKey) { + double tax = parseDouble(child.getString(taxJsonKey)); + double amt = parseDouble(child.getString(amtJsonKey)); + form.getNewFieldDataMap().put(taxField, tax); + form.getNewFieldDataMap().put(amountField, amt); + } + + private JSONObject getFirstJsonObject(U8cResponse u8cResponse) { + JSONArray jsonArray = (JSONArray) JSON.parse(u8cResponse.getData()); + return jsonArray.getJSONObject(0); + } + + private double parseDouble(String value) { + return StringUtil.isEmpty(value) ? 0 : Double.parseDouble(value); + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/util/EnumMapUtils.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/util/EnumMapUtils.java new file mode 100644 index 0000000..6d0807e --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/util/EnumMapUtils.java @@ -0,0 +1,124 @@ +package com.seeyon.apps.u8c.util; + +import com.seeyon.cap4.form.api.FormApi4Cap4; +import com.seeyon.cap4.form.bean.FormBean; +import com.seeyon.cap4.form.bean.FormFieldBean; +import com.seeyon.cap4.form.bean.FormTableBean; +import com.seeyon.ctp.common.AppContext; +import com.seeyon.ctp.common.ctpenumnew.manager.EnumManager; +import com.seeyon.ctp.common.exceptions.BusinessException; +import com.seeyon.ctp.common.po.ctpenumnew.CtpEnumBean; +import com.seeyon.ctp.common.po.ctpenumnew.CtpEnumItem; +import com.seeyon.ctp.util.JDBCAgent; + +import java.util.Arrays; +import java.util.List; +import java.util.Map; + +public class EnumMapUtils { + + public static String getMasterTableEnumItemValue(String formNo,String fieldDisplay, String targetValue) { + if(targetValue == null || "null".equals(targetValue) || "".equals(targetValue)){ + return ""; + } + try { + FormApi4Cap4 formApi4Cap4 = (FormApi4Cap4) AppContext.getBean("formApi4Cap4"); + FormBean cap4FormBean = formApi4Cap4.getFormByFormCode(formNo); + FormTableBean masterTableBean = cap4FormBean.getMasterTableBean(); + FormFieldBean beanByDisplay = masterTableBean.getFieldBeanByDisplay(fieldDisplay); + if(beanByDisplay == null || beanByDisplay.getEnumId() == 0l) { + return ""; + } + return getEnumItemValueByEnumId(targetValue, beanByDisplay.getEnumId()); + } catch (Exception e) { + return ""; + } + } + + public static String getEnumItemValue(String rootPCode, String groupValue, String targetValue) { + if(targetValue == null || "null".equals(targetValue) || "".equals(targetValue)){ + return ""; + } + String queryIdSql = "SELECT ce.ID FROM ctp_enum ce inner join ctp_enum cei on ce.`PARENT_ID` = cei.ID where CEI.`PROGRAM_CODE` = ? and ce.`ENUMNAME` = ?"; + Long enumId = null; + JDBCAgent agent = new JDBCAgent(); + try { + agent.execute(queryIdSql, Arrays.asList(rootPCode,groupValue)); + List> list = (List>) agent.resultSetToList(); + if(list == null || list.size() == 0) { + return ""; + } + Map map = list.get(0); + enumId = (Long)map.get("ID"); + } catch (Exception e) { + return ""; + }finally { + agent.close(); + } + EnumManager enumManagerNew = (EnumManager) AppContext.getBean("enumManagerNew"); + CtpEnumBean ctpEnumBean = enumManagerNew.getEnum(enumId); + if(ctpEnumBean == null) { + return ""; + } + List ctpEnumItems = ctpEnumBean.getItems(); + if(ctpEnumBean.getItems() == null) { + return ""; + } + for (CtpEnumItem enumItem : ctpEnumItems) { + if(enumItem.getShowvalue().equals(targetValue)) { + return enumItem.getId() + ""; + } + } + return ""; + } + + public static String getEnumItemValueByEnumId(String showValue,long enumId) { + EnumManager enumManagerNew = (EnumManager) AppContext.getBean("enumManagerNew"); + CtpEnumBean ctpEnumBean = enumManagerNew.getEnum(enumId); + if(ctpEnumBean == null) { + return ""; + } + List ctpEnumItems = ctpEnumBean.getItems(); + if(ctpEnumBean.getItems() == null) { + return ""; + } + for (CtpEnumItem enumItem : ctpEnumItems) { + if(enumItem.getShowvalue().equals(showValue)) { + return enumItem.getId() + ""; + } + } + return ""; + } + + public static String getEnumShowValue(Object enumItemId) throws BusinessException { + if(enumItemId == null) { + return ""; + } + Long temp = enumItemId instanceof Long ? (Long)enumItemId : (enumItemId instanceof String ? Long.parseLong((String)enumItemId) : null); + if(temp == null) { + return ""; + } + EnumManager enumManagerNew = (EnumManager) AppContext.getBean("enumManagerNew"); + CtpEnumItem ctpEnumItem = enumManagerNew.getCtpEnumItem(temp); + if(ctpEnumItem == null) { + return ""; + } + return ctpEnumItem.getShowvalue(); + } + + public static String getEnumItemCode(Object enumItemId) throws BusinessException { + if(enumItemId == null) { + return ""; + } + Long temp = enumItemId instanceof Long ? (Long)enumItemId : (enumItemId instanceof String ? Long.parseLong((String)enumItemId) : null); + if(temp == null) { + return ""; + } + EnumManager enumManagerNew = (EnumManager) AppContext.getBean("enumManagerNew"); + CtpEnumItem ctpEnumItem = enumManagerNew.getCtpEnumItem(temp); + if(ctpEnumItem == null) { + return ""; + } + return ctpEnumItem.getEnumItemCode(); + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/util/FormQueryUtils.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/util/FormQueryUtils.java new file mode 100644 index 0000000..3eb9965 --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/util/FormQueryUtils.java @@ -0,0 +1,29 @@ +package com.seeyon.apps.u8c.util; + +import com.seeyon.ctp.util.JDBCAgent; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +public class FormQueryUtils { + + public static Map queryOneRowById(String tableName,String id) { + String sql = "select * from " + tableName + " where id = ? "; + try (JDBCAgent jdbcAgent = new JDBCAgent()){ + List params = new ArrayList<>(); + params.add(id); + jdbcAgent.execute(sql, params); + List list = jdbcAgent.resultSetToList(); + if(list != null && list.size() > 0) { + Map map = (Map) list.get(0); + return map; + }else { + return null; + } + }catch (Exception e) { + + } + return null; + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/util/FormViewUtils.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/util/FormViewUtils.java new file mode 100644 index 0000000..d28c24a --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/util/FormViewUtils.java @@ -0,0 +1,93 @@ +package com.seeyon.apps.u8c.util; + +import com.seeyon.aicloud.common.JsonUtils; +import com.seeyon.ctp.util.JDBCAgent; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class FormViewUtils { + + public static Map getFormView(String templateId) throws Exception { + String sql = "select NAME,FIELD_INFO from cap_form_definition where ID = ?"; + try (JDBCAgent agent = new JDBCAgent()){ + List params = new ArrayList(); + params.add(templateId); + agent.execute(sql,params); + List list = agent.resultSetToList(); + Object o = list.get(0); + Map formViewMap = new HashMap(); + Map map = (Map) o; + String title = (String)map.get("name"); + String fieldInfo = (String)map.get("field_info"); + Map fieldInfoMap = JsonUtils.parseObject(fieldInfo, Map.class); + Map mainFormInfo = (Map) fieldInfoMap.get("front_formmain"); + String tableName = (String)mainFormInfo.get("tableName"); + formViewMap.put("title",title); + Object[] mainFieldInfos = (Object[]) mainFormInfo.get("fieldInfo"); + Map mainFormFieldViews = new HashMap<>(); + for (Object mainFieldInfo : mainFieldInfos) { + Map mainFieldInfoMap = (Map) mainFieldInfo; + String display = (String) mainFieldInfoMap.get("display"); + String fieldName = (String) mainFieldInfoMap.get("columnName"); + if(display.equals("ID") && display == null) { + fieldName = "ID"; + } + FormFieldView formFieldView = new FormFieldView(); + if(fieldName != null) { + formFieldView.setFieldName(fieldName); + formFieldView.setDisplayName(display); + mainFormFieldViews.put(display,formFieldView); + } + } + formViewMap.put(tableName, mainFormFieldViews); + Object[] formsonInfos = (Object[]) fieldInfoMap.get("formsons"); + if(formsonInfos != null && formsonInfos.length > 0) { + for (Object formsonInfo : formsonInfos) { + Map formsonInfoMap = (Map) formsonInfo; + String subTableName = (String) formsonInfoMap.get("tableName"); + Map subFormFieldViews = new HashMap<>(); + Object[] subFieldInfos = (Object[]) formsonInfoMap.get("fieldInfo"); + for (Object subFieldInfo : subFieldInfos) { + Map subFieldInfoMap = (Map) subFieldInfo; + String display = (String) subFieldInfoMap.get("display"); + String fieldName = (String) subFieldInfoMap.get("columnName"); + FormFieldView formFieldView = new FormFieldView(); + if(fieldName != null) { + formFieldView.setFieldName(fieldName); + formFieldView.setDisplayName(display); + subFormFieldViews.put(display,formFieldView); + } + } + if(subFormFieldViews.size() > 0) { + formViewMap.put(subTableName,subFormFieldViews); + } + } + } + return formViewMap; + } + } + + public static class FormFieldView { + private String displayName; + private String fieldName; + + public String getDisplayName() { + return displayName; + } + + public void setDisplayName(String displayName) { + this.displayName = displayName; + } + + public String getFieldName() { + return fieldName; + } + + public void setFieldName(String fieldName) { + this.fieldName = fieldName; + } + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/util/JsonUtils.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/util/JsonUtils.java new file mode 100644 index 0000000..6e0811c --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/util/JsonUtils.java @@ -0,0 +1,52 @@ +package com.seeyon.apps.u8c.util; + +import com.fasterxml.jackson.annotation.JsonAutoDetect; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.DeserializationFeature; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.module.SimpleModule; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; + +import java.io.IOException; + +public class JsonUtils { + + private static ObjectMapper mapper = new ObjectMapper(); + static{ + mapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES); + mapper.enable(DeserializationFeature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT); + mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); + //根据属性序列化 + mapper.setVisibility( + mapper.getSerializationConfig(). + getDefaultVisibilityChecker(). + withFieldVisibility(JsonAutoDetect.Visibility.ANY). + withGetterVisibility(JsonAutoDetect.Visibility.NONE)); + + SimpleModule module = new SimpleModule(); + module.addSerializer(Long.class, new ToStringSerializer()); + mapper.registerModule(module); + } + + public static String toJson(Object object) throws IOException { + return mapper.writeValueAsString(object); + } + + public static String toJsonPretty(Object object) throws IOException { + return mapper.writerWithDefaultPrettyPrinter().writeValueAsString(object); + } + + public static T parseObject(String text, Class clazz) throws IOException { + return mapper.readValue(text, clazz); + } + + public static byte[] toJsonBytes(Object object) throws IOException { + return mapper.writeValueAsBytes(object); + } + + public static T parseArray(String text, TypeReference typeReference) throws IOException { + return mapper.readValue(text,typeReference); + } + +} \ No newline at end of file diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/util/ParamUtil.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/util/ParamUtil.java new file mode 100644 index 0000000..ebd6281 --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/util/ParamUtil.java @@ -0,0 +1,333 @@ +package com.seeyon.apps.u8c.util; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.seeyon.aicloud.common.JsonUtils; +import com.seeyon.apps.ext.workflow.vo.FieldDataVo; +import com.seeyon.apps.ext.workflow.vo.FormDataVo; +import com.seeyon.apps.u8c.po.cus.AssignCustbasvo; +import com.seeyon.apps.u8c.po.inventory.Invbasdoc; +import com.seeyon.apps.u8c.po.inventory.InventoryChildrenvo; +import com.seeyon.apps.u8c.po.inventory.InventoryParentvo; +import com.seeyon.apps.u8c.po.cus.CbdocVo; +import com.seeyon.apps.u8c.po.cus.DocBanks; +import com.seeyon.apps.u8c.po.cus.DocParentvo; +import com.seeyon.apps.u8c.po.stordoc.Stordoc; +import com.seeyon.apps.u8c.po.cus.U8cBankAccountAddParam; +import com.seeyon.apps.u8c.po.cus.U8cCusDocAddParam; +import com.seeyon.apps.u8c.po.cus.U8cCusDocUpdateParam; +import com.seeyon.apps.u8c.po.inventory.U8cInventoryAddParam; +import com.seeyon.apps.u8c.po.inventory.U8cInventoryUpdateParam; +import com.seeyon.apps.u8c.po.U8cParamsPreHandler; +import com.seeyon.apps.u8c.po.stordoc.U8cStordocAddParam; +import org.apache.commons.lang.StringUtils; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class ParamUtil { + + public String param(String request, String method , FormDataVo formDataVo) throws Exception { + String param = ""; + switch(method){ + case "/u8cloud/api/uapbd/custmandoc/insert": + param = insertCustmandocParam(request,formDataVo); + break; + case "/u8cloud/api/uapbd/custdoc/insert": + param = increaseCusDoc(request,formDataVo); + break; + case "/u8cloud/api/uapbd/bankaccount/insert": + param = increaseBankAccount(request,formDataVo); + break; + case "/u8cloud/api/cmp/fj/insert": + param = request; + break; + case "/u8cloud/api/cmp/sj/insert": + param = request; + break; + case "/u8cloud/api/cmp/hj/insert": + param = insertRemittanceParam(request,formDataVo); + break; + case "/u8cloud/api/arap/yf/insert": + param = request; + break; + case "/u8cloud/api/uapbd/custdoc/assign": + param = assignCustdocParam (request,formDataVo); + break; + case "/u8cloud/api/uapbd/custdoc/update": + param = updateCusDoc(request,formDataVo); + break; + case "/u8cloud/api/cmp/sj/audit": + param = request; + break; + case "/u8cloud/api/cmp/fj/audit": + param = request; + break; + case "/u8cloud/api/cmp/hj/audit": + param = request; + break; + case "/u8cloud/api/uapbd/invbasdoc/insert": + param = insertInvbasdocParam(request,formDataVo); + break; + case "/u8cloud/api/uapbd/invbasdoc/update": + param = updateInvbasdocParam(request,formDataVo); + break; + case "/u8cloud/api/uapbd/stordoc/insert": + param = stordocAddParamBuild(request,formDataVo); + break; + } + return param; + } + + public String increaseCusDoc(String request,FormDataVo formDataVo) throws Exception {; + List cbdocvo = new ArrayList<>(); + U8cCusDocAddParam docAddParam = new U8cCusDocAddParam(); + docAddParam.setCbdocvo(cbdocvo); + CbdocVo cbdoc = new CbdocVo(); + cbdocvo.add(cbdoc); + DocParentvo docParentvo = new DocParentvo(); + cbdoc.setParentvo(docParentvo); + List banks = new ArrayList<>(); + Map> subFormMap = formDataVo.getSubFormMap(); + List subDataList = subFormMap.get("银行账号"); + for (FormDataVo dataVo : subDataList) { + DocBanks docBank = new DocBanks(); + docBank.setAccount(getStringValue(dataVo, "银行账号")); + docBank.setAccountname(getStringValue(dataVo, "账户名称")); + docBank.setBanktypename(getStringValue(dataVo, "银行类别")); + U8cParamsPreHandler.preHandleCusInfoBankAdd(docBank); + if (StringUtils.isBlank(docBank.getAccountname()) || StringUtils.isBlank(docBank.getAccount())) { + break; + } + banks.add(docBank); + } + if (banks.size() > 0) { + cbdoc.setBanks(banks); + } + U8cParamsPreHandler.preHandleCusInfoKsAdd(docParentvo); + docParentvo.setPk_areacl(getStringValue(formDataVo, "客商地区分类")); + docParentvo.setCustcode(getStringValue(formDataVo, "客商编号")); + docParentvo.setCustname(getStringValue(formDataVo, "客商名称")); + docParentvo.setCustshortname(getStringValue(formDataVo, "客商简称")); + docParentvo.setTaxpayerid(getStringValue(formDataVo, "统一社会信用代码")); + return JsonUtils.toJSONString(docAddParam); + } + + public String updateCusDoc(String request,FormDataVo formDataVo) throws Exception { + U8cCusDocUpdateParam param = new U8cCusDocUpdateParam(); + List cbdocvos = new ArrayList<>(); + param.setCbdocvo(cbdocvos); + CbdocVo cbdocVo = new CbdocVo(); + cbdocvos.add(cbdocVo); + DocParentvo docParentvo = new DocParentvo(); + docParentvo.setCustcode(getStringValue(formDataVo,"客商编号")); + docParentvo.setCustname(getStringValue(formDataVo,"客商名称")); + docParentvo.setCustshortname(getStringValue(formDataVo,"客商名称")); + docParentvo.setPk_areacl(getStringValue(formDataVo,"客商地区分类")); + docParentvo.setTaxpayerid(getStringValue(formDataVo,"统一社会信用代码")); + U8cParamsPreHandler.preHandleCusInfoKsUpdate(docParentvo); + List banks = new ArrayList<>(); + Map> subFormMap = formDataVo.getSubFormMap(); + List subDataList = subFormMap.get("银行账号"); + for (FormDataVo dataVo : subDataList) { + DocBanks docBank = new DocBanks(); + docBank.setAccount(getStringValue(dataVo,"银行账号")); + docBank.setAccountname(getStringValue(dataVo,"账户名称")); + docBank.setBanktypename(getStringValue(dataVo,"银行类别")); + U8cParamsPreHandler.preHandleCusInfoBankUpdate(docBank); + if(StringUtils.isBlank(docBank.getAccountname()) || StringUtils.isBlank(docBank.getAccount())){ + break; + } + banks.add(docBank); + } + if(banks.size() > 0) { + cbdocVo.setBanks(banks); + } + return JsonUtils.toJSONString(param); + } + + private String getStringValue(FormDataVo formDataVo,String key) throws Exception { + FieldDataVo fieldData = formDataVo.getFieldData(key); + if(fieldData == null) { + return null; + } + return fieldData.getStringValue(); + } + + public String increaseBankAccount(String request,FormDataVo formDataVo) throws NoSuchFieldException { + JSONObject jsonObject = JSON.parseObject(request); + U8cBankAccountAddParam param = new U8cBankAccountAddParam(); + param.setAccount(jsonObject.getString("bankaccount")); + param.setAccountcode(jsonObject.getString("bankaccountcode")); + param.setPk_banktype(jsonObject.getString("banktype")); + param.setOwnercorp(jsonObject.getString("ownercorp")); + U8cParamsPreHandler.preHandleBankAccountAdd(param); + Map map = new HashMap<>(); + List list = new ArrayList<>(); + list.add(param); + map.put("bankaccbasvo",list); + return JsonUtils.toJSONString(map); + } + + /** + *客商分配 + * @return + */ + public String assignCustdocParam (String request,FormDataVo formDataVo) throws NoSuchFieldException { + // 获取指定的json格式 + AssignCustbasvo assignCustbasvo = new AssignCustbasvo(); + //调用接口获取u8c公司编码 + //assignCustbasvo.setPk_corp(); + assignCustbasvo.setPk_cubasdoc(formDataVo.getFieldData("客商编码").toString()); + U8cParamsPreHandler.preHandleCustAssignParam(assignCustbasvo); + List custbasvo = new ArrayList<>(); + custbasvo.add(assignCustbasvo); + return JsonUtils.toJSONString(custbasvo); + } + + /** + * 客商管理档案新增,接口参数调整 + * @param request 自动获取接口原参数 + * @param formDataVo 表单字段对象 + * @return + * @throws NoSuchFieldException + */ + public String insertCustmandocParam(String request, FormDataVo formDataVo) throws NoSuchFieldException { +// 获取指定的json格式 + JSONObject jsonObject = JSON.parseObject(request); + JSONArray billvos = jsonObject.getJSONArray("billvo"); + JSONObject billvo = billvos.getJSONObject(0); + FieldDataVo custmandocType = formDataVo.getFieldData("客商类型"); + String custmandocTypeValue = custmandocType.getStringValue(); + JSONArray childrenvos = new JSONArray(); + JSONObject childrenvo1 = new JSONObject(); + JSONObject childrenvo2 = new JSONObject(); + if("客户".equals(custmandocTypeValue)){ + childrenvo1.put("custflag","0"); + childrenvo2.put("custflag","4"); + childrenvos.add(childrenvo1); + childrenvos.add(childrenvo2); + billvo.put("childrenvo",childrenvos); + }else if ("供应商".equals(custmandocTypeValue)){ + childrenvo1.put("custflag","1"); + childrenvo2.put("custflag",""); + childrenvos.add(childrenvo1); + childrenvos.add(childrenvo2); + billvo.put("childrenvo",childrenvos); + }else if ("客商".equals(custmandocTypeValue)){ + childrenvo1.put("custflag","2"); + childrenvo2.put("custflag","3"); + childrenvos.add(childrenvo1); + childrenvos.add(childrenvo2); + billvo.put("childrenvo",childrenvos); + } + System.out.println(jsonObject); + return jsonObject.toString(); + } + + public String stordocAddParamBuild(String request, FormDataVo formDataVo) throws Exception { + U8cStordocAddParam u8cStordocAddParam = new U8cStordocAddParam(); + List stordocs = new ArrayList<>(); + Stordoc stordoc = new Stordoc(); + stordoc.setPk_calbody("ZQC001"); + stordoc.setStorcode(getStringValue(formDataVo, "项目编号_合约填写")); + stordoc.setStorname(getStringValue(formDataVo, "财务系统仓库名称")); + stordoc.setPk_corp("10"); + stordocs.add(stordoc); + u8cStordocAddParam.setStordoc(stordocs); + return JsonUtils.toJSONString(u8cStordocAddParam); + } + + /** + * 客商管理档案新增,接口参数调整 + * @param request 自动获取接口原参数 + * @param formDataVo 表单字段对象 + * @return + * @throws NoSuchFieldException + */ + public String insertRemittanceParam(String request, FormDataVo formDataVo) throws NoSuchFieldException { +// 获取指定的json格式 + JSONObject jsonObject = JSON.parseObject(request); + JSONObject billvo = jsonObject.getJSONObject("billvo"); + JSONArray childrens = new JSONArray(); + Map> map = formDataVo.getSubFormMap(); + List formDataVos = map.get("U8C-结算明细付"); + for(int i = 0 ; i < formDataVos.size() ; i++){ + FormDataVo subformDataVo = formDataVos.get(i); + FieldDataVo zy = subformDataVo.getFieldData("U8C-摘要明细表付"); + String zyValue = zy.getStringValue(); + FieldDataVo fkybje = subformDataVo.getFieldData("U8C-付款原币金额明细表付"); + String fkybjeValue = fkybje.getStringValue(); + JSONObject children1 = new JSONObject(); + children1.put("dfybje",fkybjeValue); + children1.put("zy",zyValue); + JSONObject children2 = new JSONObject(); + children2.put("jfybje",fkybjeValue); + children2.put("zy",zyValue); + childrens.add(children1); + childrens.add(children2); + } + billvo.put("children",childrens); +// jsonObject.put("billvo",billvo); + System.out.println(jsonObject); + return jsonObject.toString(); + } + + public String insertInvbasdocParam(String request,FormDataVo formDataVo) throws Exception{ + U8cInventoryAddParam param = new U8cInventoryAddParam(); + List invbasdocs = new ArrayList<>(); + param.setInvbasdoc(invbasdocs); + Map> subFormMap = formDataVo.getSubFormMap(); + List subDataList = subFormMap.get("明细表1"); + for (FormDataVo dataVo : subDataList) { + Invbasdoc invbasdoc = new Invbasdoc(); + InventoryParentvo inventoryParentvo = new InventoryParentvo(); + invbasdoc.setParentvo(inventoryParentvo); + inventoryParentvo.setInvcode(getStringValue(dataVo,"材料系统编码")); + inventoryParentvo.setInvname(getStringValue(dataVo,"材料名称")); + inventoryParentvo.setInvspec(getStringValue(dataVo,"规格型号")); +// inventoryParentvo.setInvtype(getStringValue(formDataVo,"材料类型")); + String lv1 = getStringValue(dataVo,"一级材料分类") == null ? "" : getStringValue(dataVo,"一级材料分类"); + String lv2 = getStringValue(dataVo,"二级材料分类") == null ? "" : getStringValue(dataVo,"二级材料分类"); + String lv3 = getStringValue(dataVo,"三级材料分类") == null ? "" : getStringValue(dataVo,"三级材料分类"); + inventoryParentvo.setPk_invcl(lv1 + lv2 + lv3); + inventoryParentvo.setPk_measdoc(getStringValue(dataVo,"计量单位")); + inventoryParentvo.setGraphid(getStringValue(dataVo,"材料内部编码")); + List inventoryChildrenvos = new ArrayList<>(); + InventoryChildrenvo inventoryChildrenvo = new InventoryChildrenvo(); + inventoryChildrenvos.add(inventoryChildrenvo); + invbasdoc.setChildrenvo(inventoryChildrenvos); + inventoryChildrenvo.setPk_measdoc(getStringValue(dataVo,"计量单位")); + invbasdocs.add(invbasdoc); + } +// inventoryChildrenvo.setMainmeasrate(Double.valueOf(getStringValue(formDataVo,"与主计量单位换算系数"))); + //材料编码 + //材料是否批量管理 + return JsonUtils.toJSONString(param); + } + + public String updateInvbasdocParam(String request,FormDataVo formDataVo) throws Exception { + U8cInventoryUpdateParam param = new U8cInventoryUpdateParam(); + Invbasdoc invbasdoc = new Invbasdoc(); + param.setInvbasdoc(invbasdoc); + InventoryParentvo inventoryParentvo = new InventoryParentvo(); + invbasdoc.setParentvo(inventoryParentvo); + inventoryParentvo.setInvcode(getStringValue(formDataVo,"材料系统编号")); + inventoryParentvo.setInvname(getStringValue(formDataVo,"材料名称")); + inventoryParentvo.setInvspec(getStringValue(formDataVo,"规格型号")); +// inventoryParentvo.setInvtype(getStringValue(formDataVo,"材料类型")); + inventoryParentvo.setPk_invcl(getStringValue(formDataVo,"材料分类")); + inventoryParentvo.setPk_measdoc(getStringValue(formDataVo,"计量单位")); + inventoryParentvo.setGraphid(getStringValue(formDataVo,"材料编码")); + List inventoryChildrenvos = new ArrayList<>(); + InventoryChildrenvo inventoryChildrenvo = new InventoryChildrenvo(); + inventoryChildrenvos.add(inventoryChildrenvo); + invbasdoc.setChildrenvo(inventoryChildrenvos); + inventoryChildrenvo.setPk_measdoc(getStringValue(formDataVo,"计量单位")); +// inventoryChildrenvo.setMainmeasrate(Double.valueOf(getStringValue(formDataVo,"与主计量单位换算系数"))); + return JsonUtils.toJSONString(param); + } +} diff --git a/apps-customize/src/main/java/com/seeyon/apps/u8c/util/TimeUtils.java b/apps-customize/src/main/java/com/seeyon/apps/u8c/util/TimeUtils.java new file mode 100644 index 0000000..c1268b3 --- /dev/null +++ b/apps-customize/src/main/java/com/seeyon/apps/u8c/util/TimeUtils.java @@ -0,0 +1,569 @@ +package com.seeyon.apps.u8c.util; + +import java.text.DateFormat; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.time.LocalDateTime; +import java.time.ZoneId; +import java.util.Calendar; +import java.util.Date; +import java.util.TimeZone; + +public class TimeUtils { + public static final String DEFAULT_PATTERN = "yyyy-MM-dd"; + + public static String format(Date date) { + return format(date, DEFAULT_PATTERN); + } + + public static String format(Date date, String pattern) { + if (date == null) { + return ""; + } + DateFormat dateFormat = new SimpleDateFormat(pattern); + return dateFormat.format(date); + } + + /** + * UTC时间转换为本地时间;待解析的字符串必须以yyyy-MM-dd格式开头 + */ + public static Date utcParse(String utcTimeStr) throws ParseException { + String utcTimePattern = "yyyy-MM-dd"; + String subTime = utcTimeStr.substring(10);// UTC时间格式以 yyyy-MM-dd 开头,将utc时间的前10位截取掉,之后是含有多时区时间格式信息的数据 + // 处理当后缀为:+8:00时,转换为:+08:00 或 -8:00转换为-08:00 + if (subTime.indexOf("+") != -1) { + subTime = changeUtcSuffix(subTime, "+"); + } + if (subTime.indexOf("-") != -1) { + subTime = changeUtcSuffix(subTime, "-"); + } + utcTimeStr = utcTimeStr.substring(0, 10) + subTime; + // 依据传入函数的utc时间,得到对应的utc时间格式 + // 步骤一:处理 T + if (utcTimeStr.indexOf("T") != -1) { + utcTimePattern = utcTimePattern + "'T'"; + } + // 兼容yyyy-MM-dd的格式,这种格式不需要加空格 + if(utcTimeStr.indexOf("T") == -1 && subTime.length() > 0) { + utcTimePattern = utcTimePattern + " "; + } + // 步骤二:处理毫秒SSS + if (utcTimeStr.indexOf(".") != -1) { + utcTimePattern = utcTimePattern + "HH:mm:ss.SSS"; + } else if (utcTimeStr.indexOf(":") != -1) { + utcTimePattern = utcTimePattern + "HH:mm:ss"; + } + // 步骤三:处理时区问题 + if (subTime.indexOf("+") != -1 || subTime.indexOf("-") != -1) { + utcTimePattern = utcTimePattern + "XXX"; + } else if (subTime.indexOf("Z") != -1) { + utcTimePattern = utcTimePattern + "'Z'"; + } + DateFormat dateFormat = new SimpleDateFormat(utcTimePattern); + if (subTime.indexOf("Z") != -1) { + dateFormat.setTimeZone(TimeZone.getTimeZone("UTC")); + } + return dateFormat.parse(utcTimeStr); + } + + private static String changeUtcSuffix(String subTime, String sign) { + String timeSuffix = null; + String[] splitTimeArrayOne = subTime.split("\\\\" + sign); + String[] splitTimeArrayTwo = splitTimeArrayOne[1].split(":"); + if (splitTimeArrayTwo[0].length() < 2) { + timeSuffix = "+" + "0" + splitTimeArrayTwo[0] + ":" + splitTimeArrayTwo[1]; + subTime = splitTimeArrayOne[0] + timeSuffix; + return subTime; + } + return subTime; + } + + /** + * 所在周的开始 + * @param date + * @return + */ + public static Date startOfWeek(Date date) { + if (date == null) { + return null; + } + Calendar c = Calendar.getInstance(); + c.setTime(date); + c.setFirstDayOfWeek(Calendar.MONDAY); + c.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY); + c.set(Calendar.HOUR_OF_DAY, 0); + c.set(Calendar.MINUTE, 0); + c.set(Calendar.SECOND, 0); + return c.getTime(); + } + + /** + * 所在周的结束 + * @param date + * @return + */ + public static Date endOfWeek(Date date) { + if (date == null) { + return null; + } + Calendar c = Calendar.getInstance(); + c.setTime(date); + c.setFirstDayOfWeek(Calendar.MONDAY); + c.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY); + c.set(Calendar.HOUR_OF_DAY, 23); + c.set(Calendar.MINUTE, 59); + c.set(Calendar.SECOND, 59); + return c.getTime(); + } + + /** + * 所在月的开始 + * @param date + * @return + */ + public static Date startOfMonth(Date date) { + if (date == null) { + return null; + } + Calendar c = Calendar.getInstance(); + c.setTime(date); + c.set(Calendar.DAY_OF_MONTH, 1); + c.set(Calendar.HOUR_OF_DAY, 0); + c.set(Calendar.MINUTE, 0); + c.set(Calendar.SECOND, 0); + c.set(Calendar.MILLISECOND, c.getMinimum(Calendar.MILLISECOND)); + return c.getTime(); + } + + public static Date convertLocalDateTime2Date(Object date) { + if(date == null) { + return null; + } + if(date instanceof Date) { + return (Date)date; + }else if(date instanceof LocalDateTime) { + LocalDateTime time = (LocalDateTime) date; + // 将LocalDateTime转换为Instant + ZoneId zoneId = ZoneId.systemDefault(); // 获取系统默认时区 + return Date.from(time.atZone(zoneId).toInstant()); + } + return null; + } + + /** + * 所在月的结束 + * @param date + * @return + */ + public static Date endOfMonth(Date date) { + if (date == null) { + return null; + } + Calendar c = Calendar.getInstance(); + c.setTime(date); + c.set(Calendar.DAY_OF_MONTH, c.getActualMaximum(Calendar.DAY_OF_MONTH)); + c.set(Calendar.HOUR_OF_DAY, 23); + c.set(Calendar.MINUTE, 59); + c.set(Calendar.SECOND, 59); + return c.getTime(); + } + + /** + * 本月开始 + * @return + */ + public static Date startOfCurMonth() { + return startOfMonth(new Date()); + } + + /** + * 本月结束 + * @return + */ + public static Date endOfCurMonth() { + return endOfMonth(new Date()); + } + + /** + * 上月开始 + * @return + */ + public static Date startOfPreMonth() { + Calendar calendar = Calendar.getInstance(); + calendar.setTime(startOfCurMonth()); + calendar.add(Calendar.MONTH, -1); + return calendar.getTime(); + } + + /** + * 上月结束 + * @return + */ + public static Date endOfPreMonth() { + Calendar calendar = Calendar.getInstance(); + calendar.add(Calendar.MONTH, -1); + calendar.setTime(endOfMonth(calendar.getTime())); + return calendar.getTime(); + } + + /** + * 本周开始 + * @return + */ + public static Date startOfCurWeek() { + return startOfWeek(new Date()); + } + + /** + * 本周结束 + * @return + */ + public static Date endOfCurWeek() { + return endOfWeek(new Date()); + } + + /** + * 上周开始 + * @return + */ + public static Date startOfPreWeek() { + Date curMon = startOfCurWeek(); + Calendar c = Calendar.getInstance(); + c.setTime(curMon); + c.add(Calendar.DAY_OF_WEEK, -7); + return c.getTime(); + } + + /** + * 上周结束 + * @return + */ + public static Date endOfPreWeek() { + Date curSun = endOfCurWeek(); + Calendar c = Calendar.getInstance(); + c.setTime(curSun); + c.add(Calendar.DAY_OF_WEEK, -7); + return c.getTime(); + } + + /** + * 一天的结束 + * @param date + * @return + */ + public static Date endOf(Date date) { + if (date == null) { + return null; + } + Calendar calendar = Calendar.getInstance(); + calendar.setTime(date); + calendar.set(Calendar.HOUR_OF_DAY, 23); + calendar.set(Calendar.MINUTE, 59); + calendar.set(Calendar.SECOND, 59); + return calendar.getTime(); + } + + /** + * 一天的开始 + * @param date + * @return + */ + public static Date startOf(Date date) { + if (date == null) { + return null; + } + Calendar calendar = Calendar.getInstance(); + calendar.setTime(date); + calendar.set(Calendar.HOUR_OF_DAY, 0); + calendar.set(Calendar.MINUTE, 0); + calendar.set(Calendar.SECOND, 0); + calendar.set(Calendar.MILLISECOND,0); + return calendar.getTime(); + } + + /** + * 昨天的开始 + * @return + */ + public static Date startOfYesterday() { + Calendar calendar = Calendar.getInstance(); + calendar.add(Calendar.DAY_OF_MONTH, -1); + return startOf(calendar.getTime()); + } + + /** + * 昨天的结束 + * @return + */ + public static Date endOfYesterday() { + Calendar calendar = Calendar.getInstance(); + calendar.add(Calendar.DAY_OF_MONTH, -1); + return endOf(calendar.getTime()); + } + + /** + * 获取几天之后的日期 + * + * @param date + * @param after + * @return + */ + public static Date after(Date date, int after) { + if (date == null) { + return null; + } + if (after <= 0) { + return date; + } + Calendar calendar = Calendar.getInstance(); + calendar.setTime(date); + calendar.add(Calendar.DATE, after); + return calendar.getTime(); + } + + /** + * 获取几年后的日期 + * @param date + * @param year + * @return + */ + public static Date afterYear(Date date, int year) { + if(date == null) { + return null; + } + if(year <= 0) { + return date; + } + Calendar calendar = Calendar.getInstance(); + calendar.setTime(date); + calendar.add(Calendar.YEAR, year); + return calendar.getTime(); + } + + + /** + * 获取几天之前的日期 + * + * @param date + * @param before + * @return + */ + public static Date before(Date date, int before) { + if (date == null) { + return null; + } + if (before <= 0) { + return date; + } + Calendar calendar = Calendar.getInstance(); + calendar.setTime(date); + calendar.add(Calendar.DATE, -1 * before); + return calendar.getTime(); + } + + public static Date monthsAgo(Date date, int months) { + Calendar ca = Calendar.getInstance(); + ca.setTime(date); + ca.add(Calendar.MONTH, -months); + return ca.getTime(); + } + + /** + * 获取几分钟之前的时间 + * @return + */ + public static Date minsAgo(Date date, int mins){ + Calendar ca = Calendar.getInstance(); + ca.setTime(date); + ca.add(Calendar.MINUTE,-mins); + return ca.getTime(); + } + + public static Date startOfHour(Date date) { + if (date == null) { + return null; + } + Calendar calendar = Calendar.getInstance(); + calendar.setTime(date); + calendar.set(Calendar.MINUTE, 0); + calendar.set(Calendar.SECOND, 0); + return calendar.getTime(); + } + + public static Date endOfHour(Date date) { + if (date == null) { + return null; + } + Calendar calendar = Calendar.getInstance(); + calendar.setTime(date); + calendar.set(Calendar.MINUTE, 59); + calendar.set(Calendar.SECOND, 59); + return calendar.getTime(); + } + + /** + * 获取两个时间相差的月数 + * @param date1 + * @param date2 + * @return + */ + public static int getMonthSpace(Date date1,Date date2) + { + int iMonth = 0; + int flag = 0; + try{ + Calendar objCalendarDate1 = Calendar.getInstance(); + objCalendarDate1.setTime(date1); + + Calendar objCalendarDate2 = Calendar.getInstance(); + objCalendarDate2.setTime(date2); + + if (objCalendarDate2.equals(objCalendarDate1)) { + return 0; + } + if (objCalendarDate1.after(objCalendarDate2)){ + Calendar temp = objCalendarDate1; + objCalendarDate1 = objCalendarDate2; + objCalendarDate2 = temp; + } + if (objCalendarDate2.get(Calendar.DAY_OF_MONTH) < objCalendarDate1.get(Calendar.DAY_OF_MONTH)) { + flag = 1; + } + + if (objCalendarDate2.get(Calendar.YEAR) > objCalendarDate1.get(Calendar.YEAR)) { + iMonth = ((objCalendarDate2.get(Calendar.YEAR) - objCalendarDate1.get(Calendar.YEAR)) + * 12 + objCalendarDate2.get(Calendar.MONTH) - flag) + - objCalendarDate1.get(Calendar.MONTH); + } else { + iMonth = objCalendarDate2.get(Calendar.MONTH) + - objCalendarDate1.get(Calendar.MONTH) - flag; + } + + } catch (Exception e){ + e.printStackTrace(); + } + return iMonth; + } + + /** + * 得到日期num个月时的日期 + * num为正数 为date后num个月 + * num为负数 为date前num个月 + * @param date + * @param num + * @return + */ + public static Date getDateOfMonth(Date date,int num){ + if(date == null){ + return null; + } + Calendar calendar = Calendar.getInstance(); //得到日历 + calendar.setTime(date); //把当前时间赋给日历 + calendar.add(Calendar.MONTH, num); //设置为前num月 + return calendar.getTime(); + } + + /** + * 获得两个时间相差的天数 + * @param minDate + * @param maxDate + * @return + */ + public static int getDaySpace(Date minDate,Date maxDate){ + int days = (int) ((maxDate.getTime() - minDate.getTime()) / (1000*3600*24)); + return Math.abs(days); + } + + /** + * 判断两个时间是否是同一天 + * + * @param d1 + * @param d2 + * @return + */ + public static boolean sameDay(Date d1, Date d2) { + if (d1 == null || d2 == null) { + return false; + } + Calendar calendar = Calendar.getInstance(); + calendar.setTime(d1); + int yearOfDate1 = calendar.get(Calendar.YEAR); + int dayOfDate1 = calendar.get(Calendar.DAY_OF_YEAR); + calendar.setTime(d2); + int yearOfDate2 = calendar.get(Calendar.YEAR); + int dayOfDate2 = calendar.get(Calendar.DAY_OF_YEAR); + + return yearOfDate1 == yearOfDate2 && dayOfDate1 == dayOfDate2; // 年份和一年当中的天数相同 + } + + public static Date preYear(Date date) { + if (date == null) { + return null; + } + Calendar calendar = Calendar.getInstance(); + calendar.setTime(date); + calendar.add(Calendar.YEAR, -1); + return calendar.getTime(); + } + + public static Date endOfPreYear(Date date) { + if (date == null) { + return null; + } + Calendar calendar = Calendar.getInstance(); + calendar.setTime(date); + calendar.add(Calendar.YEAR, -1); + calendar.set(Calendar.MONTH, calendar.getActualMaximum(Calendar.MONTH)); + return endOfMonth(calendar.getTime()); + } + + + public static Date endOfYear(Date date) { + if (date == null) { + return null; + } + Calendar calendar = Calendar.getInstance(); + calendar.setTime(date); + calendar.set(Calendar.MONTH, calendar.getActualMaximum(Calendar.MONTH)); + return endOfMonth(calendar.getTime()); + } + + public static Date startOfYear(Date date) { + if (date == null) { + return null; + } + Calendar calendar = Calendar.getInstance(); + calendar.setTime(date); + calendar.set(Calendar.MONTH, calendar.getMinimum(Calendar.MONTH)); + return startOfMonth(calendar.getTime()); + } + + public static Date nextMonth(Date date) { + if (date == null) { + return null; + } + Calendar calendar = Calendar.getInstance(); + calendar.setTime(date); + calendar.add(Calendar.MONTH, +1); + return calendar.getTime(); + } + + public static String formatExcludeNull(Date date,DateFormat formater) { + if(date == null) { + return null; + } + return formater.format(date); + } + + public static Date parseExcludeNull(Object date, DateFormat formater) { + if(date == null) { + return null; + } + try { + return formater.parse((String)date); + } catch (ParseException e) { + return null; + } + } + +} diff --git a/apps-customize/src/main/resources/needless_check_login.xml b/apps-customize/src/main/resources/needless_check_login.xml new file mode 100644 index 0000000..9933d37 --- /dev/null +++ b/apps-customize/src/main/resources/needless_check_login.xml @@ -0,0 +1,334 @@ + + + + /queryCategory.do + + queryCategory + + + + /queryInventory.do + + queryInventory + + + + /qrCodeForm.do + + index + newMain + + + + /sc.do + + qr + + + + /elearning.do + + error + m3Redirect + message + pcRedirect + + + + /phoneLogin/phoneLogin.do + + getMessageCode + validateMessageCode + + + + /wechat/miniprogram.do + + a8home + bind + bindMemberPhone + login + unbind + + + + /portal/spaceController.do + + showThemSpace + + + + /identification.do + + getSessionId + + + + /fileUpload.do + + showRTE + + + + /fileDownload.do + + showRTE + + + + /form/formUpgrade.do + + toUpgrade + upgrade + viewUpgrade + + + + formtalkFormMapperController.do + + importFormtalkData + + + + /thirdpartyController.do + + access + index + logoutNotify + show + mailAuth + + + + /main.do + + changeLocale + hangup + headerjs + index + login + login4Ucpc + login4Ucpc3 + login4Vjoin + logout + logout4Session + logout4Vjoin + logout4ZX + main + login4QrCode + qrCodeHelp + updateLoginSeed + + + + /trustdo/A8/XRD.do + + getLoginAccount + getLoginAcctoken + webLogin + + + + /share.do + + index + + + + /genericController.do + + index + + + + /edoc/edocUpgradeControllor.do + + upgrade + download + + + + /uploadService.do + + processUploadService + + + + /autoinstall.do + + ieSetDown + regInstallDown + regInstallDown64 + downloadAssistant + + + + /personalBind.do + + getBindTypeByLoginName + isCanUse + retrievePassword + sendVerificationCodeToBindEmail + sendVerificationCodeToBindNum + validateVerificationCode + + + + + + + + + + + /commonimage.do + + showImage + + + + /individualManager.do + + resetPassword + + + + /wechat/dingding.do + + binding + index + main + newIndex + newMain + viewh5Message + + + + /uc/rest.do + + commonPierce + downloadImage + getBgTimeStamp + getLoginsecurityMsg + sendsms + smsrequired + testIp + isQrLogin + getDigitalCodeInfo + + + + portalManager + + sendSMSLoginCode + smsLoginEnabled + + + + loginUserManager + + getLockTime + + + + qrCodeLoginManager + + isLogin + + + + meetingAjaxManager + + meetingPanelData + meetingPanelDisplay + + + + /m3/loginController.do + + transLogin + transLogout + getProfile + + + + /m3/mClientBindController.do + + bindApply + + + + m3ProductManager + + productInfo + productStatus + + + + /m3/homeSkinController.do + + downloadImage + getSkinImageUrl + + + + /m3/transModeController.do + + getTransModeForMobile + + + + /media/media.do + + mediaShow + + + + /ocipEdoc.do + + index + + + + /colView.do + + index + + + + /caAccountManagerController.do + + findKeyNumByLoginName + + + + /fddCallbackController.do + + asynch + synch + + + + /seeyonReport/seeyonReportController.do + + redirectSeeyonReport + + + + /imc.do + + index + logout + + + + + /cloudbuild.do + + download + getDownloadPageInfo + getLatestVersionInfo + getDownloadQrUrl + + + \ No newline at end of file diff --git a/apps-customize/src/main/resources/needless_check_login_recheck.xml b/apps-customize/src/main/resources/needless_check_login_recheck.xml new file mode 100644 index 0000000..6966199 --- /dev/null +++ b/apps-customize/src/main/resources/needless_check_login_recheck.xml @@ -0,0 +1,440 @@ + + + + + + /queryCategory.do + com.seeyon.apps.u8c.controller.U8CInventoryCategoryQueryController + + queryCategory + + + + /queryInventory.do + com.seeyon.apps.u8c.controller.U8CInventoryNumQueryController + + queryInventory + + + + /qrCodeForm.do + com.seeyon.apps.qrCodeForm.controller.QrCodeFormController + + index + newMain + + + + + /sc.do + com.seeyon.cap4.form.modules.smartCode.controller.SmartCodeController + + qr + + + + /media/media.do + com.seeyon.ctp.common.media.controller.MediaController + + mediaShow + + + + /phoneLogin/phoneLogin.do + com.seeyon.ctp.login.controller.PhoneLoginController + + getMessageCode + validateMessageCode + + + + portalManager + com.seeyon.ctp.portal.manager.PortalManagerImpl + + sendSMSLoginCode + smsLoginEnabled + + + + /fileDownload.do + com.seeyon.ctp.common.fileupload.FileUploadController + + showRTE + + + + loginUserManager + com.seeyon.ctp.login.LoginUserManagerImpl + + getLockTime + + + + /main.do + com.seeyon.ctp.login.controller.MainController + + changeLocale + hangup + headerjs + index + login + login4Ucpc + login4Ucpc3 + login4Vjoin + logout + logout4Session + logout4Vjoin + logout4ZX + main + login4QrCode + qrCodeHelp + updateLoginSeed + + + + /trustdo/A8/XRD.do + com.seeyon.apps.trustdo.controller.XRDController + + getLoginAccount + getLoginAcctoken + webLogin + + + + /share.do + com.seeyon.v3x.system.share.controller.ShareController + + index + + + + /edoc/edocUpgradeControllor.do + com.seeyon.v3x.edoc.controller.EdocUpgradeControllor + + upgrade + download + + + + /m3/mClientBindController.do + com.seeyon.apps.m3.bind.controller.M3ClientBindController + + bindApply + + + + /uploadService.do + com.seeyon.ctp.services.FileUploadService + + processUploadService + + + + /uc/rest.do + com.seeyon.apps.zx.controller.ZxRestController + + commonPierce + downloadImage + getBgTimeStamp + getLoginsecurityMsg + sendsms + smsrequired + testIp + isQrLogin + getDigitalCodeInfo + + + + /m3/homeSkinController.do + com.seeyon.apps.m3.skin.controller.M3HomeSkinController + + downloadImage + getSkinImageUrl + + + + /colView.do + com.seeyon.apps.ocip.exchange.collaboration.controller.CollViewController + + index + + + + /autoinstall.do + com.seeyon.apps.autoinstall.controller.AutoInstallController + + ieSetDown + regInstallDown + regInstallDown64 + downloadAssistant + + + + + + + + + + + + /caAccountManagerController.do + com.seeyon.v3x.ca.caaccount.controller.CAAccountManagerController + + findKeyNumByLoginName + + + + /elearning.do + com.seeyon.apps.elearning.controller.ElearningController + + error + m3Redirect + message + pcRedirect + + + + /wechat/miniprogram.do + com.seeyon.apps.weixin.controller.MiniProgramController + + a8home + bind + bindMemberPhone + login + unbind + + + + /portal/spaceController.do + com.seeyon.ctp.portal.space.controller.SpaceController + + showThemSpace + + + + /identification.do + com.seeyon.v3x.identification.controller.IdentificationController + + getSessionId + + + + /fddCallbackController.do + com.seeyon.apps.econtract.fdd.controller.FddCallbackController + + asynch + synch + + + + m3ProductManager + com.seeyon.apps.m3.product.manager.impl.M3ProductManagerImpl + + productInfo + productStatus + + + + /ocipEdoc.do + com.seeyon.apps.ocip.exchange.edoc.OCIPEdocController + + index + + + + /m3/loginController.do + + transLogin + transLogout + getProfile + + + + /fileUpload.do + com.seeyon.ctp.common.fileupload.FileUploadController + + showRTE + processUpload + + + + qrCodeLoginManager + com.seeyon.ctp.login.manager.QrCodeLoginManagerImpl + + isLogin + + + + /form/formUpgrade.do + com.seeyon.ctp.form.service.FormUpgradeController + + toUpgrade + upgrade + viewUpgrade + + + + /seeyonReport/seeyonReportController.do + com.seeyon.apps.seeyonreport.controller.SeeyonReportController + + redirectSeeyonReport + + + + formtalkFormMapperController.do + com.seeyon.apps.formtalk.controller.FormtalkImportController + + importFormtalkData + + + + /thirdpartyController.do + com.seeyon.ctp.portal.sso.thirdpartyintegration.controller.ThirdpartyController + + access + index + logoutNotify + show + mailAuth + + + + /m3/transModeController.do + com.seeyon.apps.m3.transmissionmode.controller.M3TransModeController + + getTransModeForMobile + + + + /genericController.do + com.seeyon.v3x.common.controller.GenericController + + index + + + + /personalBind.do + com.seeyon.v3x.personalaffair.controller.PersonalBindController + + getBindTypeByLoginName + isCanUse + retrievePassword + sendVerificationCodeToBindEmail + sendVerificationCodeToBindNum + validateVerificationCode + + + + /commonimage.do + com.seeyon.apps.common.image.controller.ImageController + + showImage + + + + /individualManager.do + com.seeyon.v3x.personalaffair.controller.IndividualManagerController + + resetPassword + + + + meetingAjaxManager + com.seeyon.apps.meeting.manager.MeetingAjaxManagerImpl + + meetingPanelData + meetingPanelDisplay + + + + /wechat/dingding.do + com.seeyon.apps.weixin.controller.DingDingController + + binding + index + main + newIndex + newMain + viewh5Message + + + + /imc.do + com.seeyon.apps.imc.controller.ImcLoginController + + index + logout + + + + /wechat/feishu.do + com.seeyon.apps.weixin.controller.FeishuController + + newMain + viewh5Message + + + + + + + + + + + + + + + /wechat/pcapp.do + com.seeyon.apps.weixin.controller.PcAppController + + transferPageFromWxCoreServer + gotoPcApp + checkCodeTurnToRightPage + transfer + transferMsg + + + + /wechat/feishu/approvalData.do + com.seeyon.apps.zhifei.feishu.approval.controller.ApprovalDataController + + index + + + + /zhifei/feishu.do + com.seeyon.apps.zhifei.controller.FeishuController + + newMain + viewh5Message + + + + /zhifei/pcapp.do + com.seeyon.apps.zhifei.controller.ZhifeiPcAppController + + transferPageFromWxCoreServer + gotoPcApp + + + + /zhifei/feishu/approvalData.do + com.seeyon.apps.zhifei.feishu.approval.controller.ApprovalDataController + + index + + + + /cloudbuild.do + com.seeyon.apps.cloudbuild.controller.CloudBuildController + + download + getDownloadPageInfo + getLatestVersionInfo + getDownloadQrUrl + + + diff --git a/apps-customize/src/test/TestOne.java b/apps-customize/src/test/TestOne.java new file mode 100644 index 0000000..279ef18 --- /dev/null +++ b/apps-customize/src/test/TestOne.java @@ -0,0 +1,7 @@ +import com.seeyon.apps.u8c.po.U8cParamsPreHandler; + +public class TestOne { + public static void main(String[] args) { + U8cParamsPreHandler handler = new U8cParamsPreHandler(); + } +} diff --git a/seeyon/WEB-INF/cfgHome/component/src_zqcu8c/pluginCfg.xml b/seeyon/WEB-INF/cfgHome/component/src_zqcu8c/pluginCfg.xml new file mode 100644 index 0000000..bfb0179 --- /dev/null +++ b/seeyon/WEB-INF/cfgHome/component/src_zqcu8c/pluginCfg.xml @@ -0,0 +1,6 @@ + + + src_zqcu8c + 智谦成U8C财务集成 + 20250722 + diff --git a/seeyon/WEB-INF/cfgHome/component/src_zqcu8c/spring/spring-bean.xml b/seeyon/WEB-INF/cfgHome/component/src_zqcu8c/spring/spring-bean.xml new file mode 100644 index 0000000..a67ba48 --- /dev/null +++ b/seeyon/WEB-INF/cfgHome/component/src_zqcu8c/spring/spring-bean.xml @@ -0,0 +1,12 @@ + + + + + \ No newline at end of file diff --git a/seeyon/WEB-INF/cfgHome/component/src_zqcu8c/spring/spring-controller.xml b/seeyon/WEB-INF/cfgHome/component/src_zqcu8c/spring/spring-controller.xml new file mode 100644 index 0000000..014bdfd --- /dev/null +++ b/seeyon/WEB-INF/cfgHome/component/src_zqcu8c/spring/spring-controller.xml @@ -0,0 +1,7 @@ + + + + + + +