From a619f68db7dbd4a059e3abfdf4a0de57c06be6d6 Mon Sep 17 00:00:00 2001 From: xiang2lin <251481237@qq.com> Date: Mon, 9 Jun 2025 13:19:03 +0800 Subject: [PATCH] =?UTF-8?q?OA=E8=AF=B7=E8=B4=AD=E5=8D=95=E6=B5=81=E7=A8=8B?= =?UTF-8?q?=E7=BB=93=E6=9D=9F=E4=BC=A0NCC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../oa/praybill/dao/IRequisitionOrderDao.java | 12 ++ .../dao/impl/RequisitionOrderDaoImpl.java | 15 ++ .../entity/RequisitionOrderEntity.java | 31 +++ .../entity/RequisitionOrderEntity.xml | 8 + .../RequisitionOrderPluginInitializer.java | 8 +- .../service/IRequisitionOrderService.java | 19 ++ .../RequisitionOrderPluginServiceImpl.java | 193 ++++++++++++++++-- .../impl/RequisitionOrderServiceImpl.java | 42 ++++ 8 files changed, 312 insertions(+), 16 deletions(-) create mode 100644 base-buildpackage/src/main/java/com/hzya/frame/plugin/oa/praybill/dao/IRequisitionOrderDao.java create mode 100644 base-buildpackage/src/main/java/com/hzya/frame/plugin/oa/praybill/dao/impl/RequisitionOrderDaoImpl.java create mode 100644 base-buildpackage/src/main/java/com/hzya/frame/plugin/oa/praybill/entity/RequisitionOrderEntity.java create mode 100644 base-buildpackage/src/main/java/com/hzya/frame/plugin/oa/praybill/entity/RequisitionOrderEntity.xml create mode 100644 base-buildpackage/src/main/java/com/hzya/frame/plugin/oa/praybill/service/IRequisitionOrderService.java create mode 100644 base-buildpackage/src/main/java/com/hzya/frame/plugin/oa/praybill/service/impl/RequisitionOrderServiceImpl.java diff --git a/base-buildpackage/src/main/java/com/hzya/frame/plugin/oa/praybill/dao/IRequisitionOrderDao.java b/base-buildpackage/src/main/java/com/hzya/frame/plugin/oa/praybill/dao/IRequisitionOrderDao.java new file mode 100644 index 00000000..a347bea7 --- /dev/null +++ b/base-buildpackage/src/main/java/com/hzya/frame/plugin/oa/praybill/dao/IRequisitionOrderDao.java @@ -0,0 +1,12 @@ +package com.hzya.frame.plugin.oa.praybill.dao; + +import com.hzya.frame.basedao.dao.IBaseDao; +import com.hzya.frame.plugin.oa.praybill.entity.RequisitionOrderEntity; + +/** + * @Description OA请购单 + * @Author xiangerlin + * @Date 2025/6/8 17:06 + **/ +public interface IRequisitionOrderDao extends IBaseDao { +} diff --git a/base-buildpackage/src/main/java/com/hzya/frame/plugin/oa/praybill/dao/impl/RequisitionOrderDaoImpl.java b/base-buildpackage/src/main/java/com/hzya/frame/plugin/oa/praybill/dao/impl/RequisitionOrderDaoImpl.java new file mode 100644 index 00000000..dfa2a381 --- /dev/null +++ b/base-buildpackage/src/main/java/com/hzya/frame/plugin/oa/praybill/dao/impl/RequisitionOrderDaoImpl.java @@ -0,0 +1,15 @@ +package com.hzya.frame.plugin.oa.praybill.dao.impl; + +import com.hzya.frame.basedao.dao.MybatisGenericDao; +import com.hzya.frame.plugin.oa.praybill.dao.IRequisitionOrderDao; +import com.hzya.frame.plugin.oa.praybill.entity.RequisitionOrderEntity; +import org.springframework.stereotype.Repository; + +/** + * @Description OA请购单 + * @Author xiangerlin + * @Date 2025/6/8 17:08 + **/ +@Repository("requisitionOrderDaoImpl") +public class RequisitionOrderDaoImpl extends MybatisGenericDao implements IRequisitionOrderDao { +} diff --git a/base-buildpackage/src/main/java/com/hzya/frame/plugin/oa/praybill/entity/RequisitionOrderEntity.java b/base-buildpackage/src/main/java/com/hzya/frame/plugin/oa/praybill/entity/RequisitionOrderEntity.java new file mode 100644 index 00000000..6d6beb5a --- /dev/null +++ b/base-buildpackage/src/main/java/com/hzya/frame/plugin/oa/praybill/entity/RequisitionOrderEntity.java @@ -0,0 +1,31 @@ +package com.hzya.frame.plugin.oa.praybill.entity; + +import com.hzya.frame.web.entity.BaseEntity; + +/** + * @Description OA请购单 + * + * @Author xiangerlin + * @Date 2025/6/8 17:04 + **/ +public class RequisitionOrderEntity extends BaseEntity { + + private String field0001;//单据号 + private String field0059;//NCC + + public String getField0001() { + return field0001; + } + + public void setField0001(String field0001) { + this.field0001 = field0001; + } + + public String getField0059() { + return field0059; + } + + public void setField0059(String field0059) { + this.field0059 = field0059; + } +} diff --git a/base-buildpackage/src/main/java/com/hzya/frame/plugin/oa/praybill/entity/RequisitionOrderEntity.xml b/base-buildpackage/src/main/java/com/hzya/frame/plugin/oa/praybill/entity/RequisitionOrderEntity.xml new file mode 100644 index 00000000..88f2528f --- /dev/null +++ b/base-buildpackage/src/main/java/com/hzya/frame/plugin/oa/praybill/entity/RequisitionOrderEntity.xml @@ -0,0 +1,8 @@ + + + + + + update formmain_0254 set field0059 = #{field0059} where id = #{id} + + diff --git a/base-buildpackage/src/main/java/com/hzya/frame/plugin/oa/praybill/plugin/RequisitionOrderPluginInitializer.java b/base-buildpackage/src/main/java/com/hzya/frame/plugin/oa/praybill/plugin/RequisitionOrderPluginInitializer.java index 2f97b802..480b81ba 100644 --- a/base-buildpackage/src/main/java/com/hzya/frame/plugin/oa/praybill/plugin/RequisitionOrderPluginInitializer.java +++ b/base-buildpackage/src/main/java/com/hzya/frame/plugin/oa/praybill/plugin/RequisitionOrderPluginInitializer.java @@ -2,10 +2,12 @@ package com.hzya.frame.plugin.oa.praybill.plugin; import com.alibaba.fastjson.JSONObject; import com.hzya.frame.base.PluginBaseEntity; +import com.hzya.frame.plugin.oa.praybill.service.IRequisitionOrderPluginService; import com.hzya.frame.web.entity.BaseResult; import com.hzya.frame.web.entity.JsonResultEntity; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; /** * @Description 请购单传NCC @@ -14,6 +16,8 @@ import org.slf4j.LoggerFactory; **/ public class RequisitionOrderPluginInitializer extends PluginBaseEntity { Logger logger = LoggerFactory.getLogger(RequisitionOrderPluginInitializer.class); + @Autowired + private IRequisitionOrderPluginService requisitionOrderPluginService; /*** * 插件初始化方法 * @Author 👻👻👻👻👻👻👻👻 gjh @@ -92,8 +96,10 @@ public class RequisitionOrderPluginInitializer extends PluginBaseEntity { @Override public JsonResultEntity executeBusiness(JSONObject requestJson) throws Exception { try { - logger.info("======开始执行请购单传NCC插件======"); + logger.info("======开始执行请购单传NCC插件======{}",JSONObject.toJSONString(requestJson)); + requisitionOrderPluginService.sync2ncc(requestJson); }catch (Exception e){ + e.printStackTrace(); logger.info("======执行请购单传NCC插件出错======{}",e.getMessage()); return BaseResult.getFailureMessageEntity("请购单传NCC插件执行失败",e.getMessage()); } diff --git a/base-buildpackage/src/main/java/com/hzya/frame/plugin/oa/praybill/service/IRequisitionOrderService.java b/base-buildpackage/src/main/java/com/hzya/frame/plugin/oa/praybill/service/IRequisitionOrderService.java new file mode 100644 index 00000000..3a09ff4c --- /dev/null +++ b/base-buildpackage/src/main/java/com/hzya/frame/plugin/oa/praybill/service/IRequisitionOrderService.java @@ -0,0 +1,19 @@ +package com.hzya.frame.plugin.oa.praybill.service; + +import com.hzya.frame.basedao.service.IBaseService; +import com.hzya.frame.plugin.oa.praybill.entity.RequisitionOrderEntity; + +/** + * @Description OA 请购单 + * @Author xiangerlin + * @Date 2025/6/8 17:10 + **/ +public interface IRequisitionOrderService extends IBaseService { + + /** + * 更新OA单据 + * @param entity + * @return + */ + int updateOrder(RequisitionOrderEntity entity); +} diff --git a/base-buildpackage/src/main/java/com/hzya/frame/plugin/oa/praybill/service/impl/RequisitionOrderPluginServiceImpl.java b/base-buildpackage/src/main/java/com/hzya/frame/plugin/oa/praybill/service/impl/RequisitionOrderPluginServiceImpl.java index 15822c6e..49b42f3f 100644 --- a/base-buildpackage/src/main/java/com/hzya/frame/plugin/oa/praybill/service/impl/RequisitionOrderPluginServiceImpl.java +++ b/base-buildpackage/src/main/java/com/hzya/frame/plugin/oa/praybill/service/impl/RequisitionOrderPluginServiceImpl.java @@ -1,15 +1,25 @@ package com.hzya.frame.plugin.oa.praybill.service.impl; import cn.hutool.core.lang.Assert; +import cn.hutool.core.util.StrUtil; +import cn.hutool.http.HttpRequest; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import com.hzya.frame.plugin.oa.praybill.entity.RequisitionOrderEntity; import com.hzya.frame.plugin.oa.praybill.service.IRequisitionOrderPluginService; +import com.hzya.frame.plugin.oa.praybill.service.IRequisitionOrderService; import com.hzya.frame.seeyon.enums.ColEventTypeEnum; +import com.hzya.frame.sysnew.integtationTaskLivingDetails.entity.IntegrationTaskLivingDetailsEntity; +import com.hzya.frame.sysnew.integtationTaskLivingDetails.service.IIntegrationTaskLivingDetailsService; +import com.hzya.frame.uuid.UUIDUtils; import com.hzya.frame.web.entity.BaseResult; import com.hzya.frame.web.entity.JsonResultEntity; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import java.util.Date; import java.util.LinkedList; import java.util.List; @@ -19,6 +29,12 @@ import java.util.List; * @Date 2025/5/21 17:44 **/ public class RequisitionOrderPluginServiceImpl implements IRequisitionOrderPluginService { + @Value("${zt.url}") + private String baseUrl; + @Autowired + private IIntegrationTaskLivingDetailsService taskLivingDetailsService; + @Autowired + private IRequisitionOrderService requisitionOrderService; Logger logger = LoggerFactory.getLogger(IRequisitionOrderPluginService.class); /** * 请购单同步到ncc @@ -30,32 +46,179 @@ public class RequisitionOrderPluginServiceImpl implements IRequisitionOrderPlugi public JsonResultEntity sync2ncc(JSONObject requestJson) { //数据源编码 String datasourceCode = requestJson.getString("sourceCode"); + String task_living_details_id = requestJson.getString("integration_task_living_details_id"); String headersStr = requestJson.getString("headers");//请求头 - String formAppId = requestJson.getString("formApp"); + //String formAppId = requestJson.getString("formApp"); String eventType = requestJson.getString("eventType"); - JSONObject formmainData = requestJson.getJSONObject("formmainTableName"); - JSONArray forsonData = requestJson.getJSONArray("forsonTableName"); - Assert.notEmpty(formAppId,"formAppId不能为空"); + JSONObject headers = requestJson.getJSONObject("headers"); + // Assert.notEmpty(formAppId,"formAppId不能为空"); Assert.notEmpty(eventType,"eventType不能为空"); Assert.notEmpty(headersStr,"headers不能为空"); + String formmainTableName = headers.getString("formmainTableName"); + String forsonTableName = headers.getString("forsonTableName"); + JSONObject jsonStrObj = requestJson.getJSONObject("jsonStr"); + JSONObject businessData = jsonStrObj.getJSONObject("businessDataStr"); + JSONObject formmainData = businessData.getJSONObject(formmainTableName); + JSONArray forsonData = businessData.getJSONArray(forsonTableName); //流程结束 if (ColEventTypeEnum.ONPROCESSFINISHED.getType().equals(eventType)){ + JSONObject paramObj = new JSONObject(); JSONObject praybill = new JSONObject(); - praybill.put("pk_org",formmainData.getString("field0005"));//库存组织 - praybill.put("vbillcode",formmainData.getString("field0001"));//请购单号 + paramObj.put("head", praybill); + praybill.put("pk_group",formmainData.getString("field0058"));//集团 + praybill.put("pk_org",formmainData.getString("field0027"));//库存组织 + praybill.put("pk_org_v",formmainData.getString("field0051"));//库存组织v + //praybill.put("vbillcode",formmainData.getString("field0001"));//请购单号 praybill.put("dbilldate",formmainData.getString("field0004"));//请购日期 - praybill.put("bsctype",formmainData.getString("field0009"));//委外 - praybill.put("pk_planpsn",formmainData.getString("field0010"));//计划员 - praybill.put("pk_plandept_v",formmainData.getString("field0011"));//计划部门 + boolean bsctype = false; + if ("1".equals(formmainData.getString("field0009"))){ + bsctype = true; + } + praybill.put("bsctype",bsctype);//委外 + praybill.put("pk_planpsn",formmainData.getString("field0030"));//计划员 + praybill.put("pk_plandept",formmainData.getString("field0052"));//计划部门 + praybill.put("pk_plandept_v",formmainData.getString("field0053"));//计划部门v praybill.put("vmemo",formmainData.getString("field0013"));//备注 - praybill.put("fbillstatus",formmainData.getString("field0012"));//单据状态 - praybill.put("billmaker", formmainData.getString("field0002"));//制单人 - praybill.put("dmakedate", formmainData.getString(""));//制单日期 - praybill.put("ctrantypeid", formmainData.getString("field0006"));//请购类型 + praybill.put("fbillstatus",headers.getString("fbillstatus"));//单据状态 + praybill.put("bdirecttransit",false);//zhiyun + praybill.put("billmaker", headers.getString("billmaker"));//制单人 yonyou99 + praybill.put("dmakedate", formmainData.getString("field0004"));//制单日期 + praybill.put("ctrantypeid", formmainData.getString("field0039"));//请购类型 + praybill.put("bislatest", true);//最新版本 + praybill.put("vdef1",formmainData.getString("field0002")); + praybill.put("creator",headers.getString("creator"));// + praybill.put("fpraysource",headers.getString("fpraysource"));// + praybill.put("ccurrencyid",headers.getString("ccurrencyid"));// + praybill.put("nversion",headers.getString("nversion"));// + praybill.put("nversion",headers.getString("nversion"));// List parybillList = new LinkedList<>(); - praybill.put("pk_praybill_b",parybillList); - + paramObj.put("body",parybillList); + String pk_org = formmainData.getString("field0027"); + String pk_org_v = formmainData.getString("field0051"); + for(int i=0; i implements IRequisitionOrderService { + + private IRequisitionOrderDao requisitionOrderDao; + + @Autowired + public void setRequisitionOrderDao(IRequisitionOrderDao dao) { + this.requisitionOrderDao = dao; + this.dao = dao; + } + + /** + * 更新OA单据 + * + * @param entity + * @return + */ + @DS(value = "#entity.dataSourceCode") + @Override + public int updateOrder(RequisitionOrderEntity entity) { + if (null != entity && StrUtil.isNotEmpty(entity.getId())){ + requisitionOrderDao.update(entity); + } + return 0; + } +}