diff --git a/op-api/op-api-system/src/main/java/com/op/system/api/RemotePlanService.java b/op-api/op-api-system/src/main/java/com/op/system/api/RemotePlanService.java index 86b6262c..b5814d40 100644 --- a/op-api/op-api-system/src/main/java/com/op/system/api/RemotePlanService.java +++ b/op-api/op-api-system/src/main/java/com/op/system/api/RemotePlanService.java @@ -8,6 +8,7 @@ import com.op.system.api.model.SapProOrder; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestParam; import java.util.List; @@ -27,4 +28,7 @@ public interface RemotePlanService { */ @PostMapping("/order/shopOrderSync") public R shopOrderSync(List proOrderList); + + @PostMapping("/order/syncSAPOrders") + public R syncSAPOrders(); } diff --git a/op-api/op-api-system/src/main/java/com/op/system/api/RemoteSapService.java b/op-api/op-api-system/src/main/java/com/op/system/api/RemoteSapService.java index 501d8878..3b421369 100644 --- a/op-api/op-api-system/src/main/java/com/op/system/api/RemoteSapService.java +++ b/op-api/op-api-system/src/main/java/com/op/system/api/RemoteSapService.java @@ -4,6 +4,7 @@ import com.op.common.core.constant.ServiceNameConstants; import com.op.common.core.domain.R; import com.op.system.api.domain.sap.SapCreateOrder; import com.op.system.api.domain.sap.SapMaterialPreparation; +import com.op.system.api.domain.sap.SapRFW; import com.op.system.api.factory.RemoteSapFallbackFactory; import com.op.system.api.model.SapProOrder; import org.springframework.cloud.openfeign.FeignClient; @@ -34,5 +35,13 @@ public interface RemoteSapService { /**回传sap母工单**/ @PostMapping("/sap/SapCreateOrder") - public R SapCreateOrder(@RequestBody List sapCreateOrderList); + public R> SapCreateOrder(@RequestBody List sapCreateOrderList); + + /**关闭订单**/ + @PostMapping("/sap/sapCloseOrder") + public R sapCloseOrder(@RequestParam("shopOrder") String shopOrder); + + /**报工**/ + @PostMapping("/sap/sapRFWOrder") + public R sapRFWOrder(@RequestBody SapRFW sapRFW); } diff --git a/op-api/op-api-system/src/main/java/com/op/system/api/domain/sap/SapRFW.java b/op-api/op-api-system/src/main/java/com/op/system/api/domain/sap/SapRFW.java new file mode 100644 index 00000000..8d6eb22b --- /dev/null +++ b/op-api/op-api-system/src/main/java/com/op/system/api/domain/sap/SapRFW.java @@ -0,0 +1,145 @@ +package com.op.system.api.domain.sap; + +/** + * 报工 + */ +public class SapRFW { + private String aufnr; + private String gamng; + + private lt_gs lt_gs; + private lt_hw lt_hw; + + public SapRFW.lt_hw getLt_hw() { + return lt_hw; + } + + public void setLt_hw(SapRFW.lt_hw lt_hw) { + this.lt_hw = lt_hw; + } + + public SapRFW.lt_gs getLt_gs() { + return lt_gs; + } + + public void setLt_gs(SapRFW.lt_gs lt_gs) { + this.lt_gs = lt_gs; + } + + public String getAufnr() { + return aufnr; + } + + public void setAufnr(String aufnr) { + this.aufnr = aufnr; + } + + public String getGamng() { + return gamng; + } + + public void setGamng(String gamng) { + this.gamng = gamng; + } + + + public class lt_gs + { + String conf_activity1; + String conf_activity2; + String conf_activity3; + String conf_activity4; + String conf_activity5; + String conf_activity6; + + public String getConf_activity1() { + return conf_activity1; + } + + public void setConf_activity1(String conf_activity1) { + this.conf_activity1 = conf_activity1; + } + + public String getConf_activity2() { + return conf_activity2; + } + + public void setConf_activity2(String conf_activity2) { + this.conf_activity2 = conf_activity2; + } + + public String getConf_activity3() { + return conf_activity3; + } + + public void setConf_activity3(String conf_activity3) { + this.conf_activity3 = conf_activity3; + } + + public String getConf_activity4() { + return conf_activity4; + } + + public void setConf_activity4(String conf_activity4) { + this.conf_activity4 = conf_activity4; + } + + public String getConf_activity5() { + return conf_activity5; + } + + public void setConf_activity5(String conf_activity5) { + this.conf_activity5 = conf_activity5; + } + + public String getConf_activity6() { + return conf_activity6; + } + + public void setConf_activity6(String conf_activity6) { + this.conf_activity6 = conf_activity6; + } + + @Override + public String toString() { + return "lt_gs{" + + "conf_activity1='" + conf_activity1 + '\'' + + ", conf_activity2='" + conf_activity2 + '\'' + + ", conf_activity3='" + conf_activity3 + '\'' + + ", conf_activity4='" + conf_activity4 + '\'' + + ", conf_activity5='" + conf_activity5 + '\'' + + ", conf_activity6='" + conf_activity6 + '\'' + + '}'; + } + + } + public class lt_hw{ + String material; + String entry_qnt; + + + + public String getMaterial() { + return material; + } + + public void setMaterial(String material) { + this.material = material; + } + + public String getEntry_qnt() { + return entry_qnt; + } + + public void setEntry_qnt(String entry_qnt) { + this.entry_qnt = entry_qnt; + } + @Override + public String toString() { + return "lt_hw{" + + "material='" + material + '\'' + + ", entry_qnt='" + entry_qnt + '\'' + + '}'; + } + } +} diff --git a/op-api/op-api-system/src/main/java/com/op/system/api/factory/RemotePlanFallbackFactory.java b/op-api/op-api-system/src/main/java/com/op/system/api/factory/RemotePlanFallbackFactory.java index fccac185..c559d0d7 100644 --- a/op-api/op-api-system/src/main/java/com/op/system/api/factory/RemotePlanFallbackFactory.java +++ b/op-api/op-api-system/src/main/java/com/op/system/api/factory/RemotePlanFallbackFactory.java @@ -28,6 +28,11 @@ public class RemotePlanFallbackFactory implements FallbackFactory shopOrderSync(List proOrderList) { return R.fail("PLAN服务新增SAP订单失败:" + throwable.getMessage()); } + + @Override + public R syncSAPOrders() { + return R.fail("定时任务更新订单失败:" + throwable.getMessage()); + } }; } } diff --git a/op-api/op-api-system/src/main/java/com/op/system/api/factory/RemoteSapFallbackFactory.java b/op-api/op-api-system/src/main/java/com/op/system/api/factory/RemoteSapFallbackFactory.java index 5afe485e..ff08195d 100644 --- a/op-api/op-api-system/src/main/java/com/op/system/api/factory/RemoteSapFallbackFactory.java +++ b/op-api/op-api-system/src/main/java/com/op/system/api/factory/RemoteSapFallbackFactory.java @@ -4,6 +4,7 @@ import com.op.common.core.domain.R; import com.op.system.api.RemoteSapService; import com.op.system.api.domain.sap.SapCreateOrder; import com.op.system.api.domain.sap.SapMaterialPreparation; +import com.op.system.api.domain.sap.SapRFW; import com.op.system.api.model.SapProOrder; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -39,9 +40,19 @@ public class RemoteSapFallbackFactory implements FallbackFactory sapCreateOrderList) { + public R> SapCreateOrder(List sapCreateOrderList) { return R.fail("回传sap工单失败:" + throwable.getMessage()); } + + @Override + public R sapCloseOrder(String shopOrder) { + return R.fail("关闭订单失败:" + throwable.getMessage()); + } + + @Override + public R sapRFWOrder(SapRFW sapRFW) { + return R.fail("sap报工失败" + throwable.getMessage()); + } }; } } diff --git a/op-modules/op-job/src/main/java/com/op/job/task/RyTask.java b/op-modules/op-job/src/main/java/com/op/job/task/RyTask.java index 7b9eeae7..9f0a30e3 100644 --- a/op-modules/op-job/src/main/java/com/op/job/task/RyTask.java +++ b/op-modules/op-job/src/main/java/com/op/job/task/RyTask.java @@ -4,6 +4,7 @@ import com.op.common.core.domain.R; import com.op.common.core.utils.DateUtils; import com.op.common.core.web.domain.AjaxResult; import com.op.system.api.RemoteMesService; +import com.op.system.api.RemotePlanService; import com.op.system.api.RemoteSapService; import com.op.system.api.model.SapProOrder; import org.springframework.beans.factory.annotation.Autowired; @@ -24,6 +25,9 @@ public class RyTask { @Autowired private RemoteSapService remoteSapService; + @Autowired + private RemotePlanService remotePlanService; + public void ryMultipleParams(String s, Boolean b, Long l, Double d, Integer i) { System.out.println(StringUtils.format("执行多参方法: 字符串类型{},布尔类型{},长整型{},浮点型{},整形{}", s, b, l, d, i)); } @@ -58,4 +62,11 @@ public class RyTask { remoteSapService.sapProRouteProcess(); } + /**每天30点23更新明日订单执行 + * 0 30 23 * * ? + */ + public void getTOrderTask(){ + System.out.println("++同步今日订单+开始++getTOrderTask+++++"); + remotePlanService.syncSAPOrders(); + } } diff --git a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesPrepareServiceImpl.java b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesPrepareServiceImpl.java index b463a6dd..84834e57 100644 --- a/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesPrepareServiceImpl.java +++ b/op-modules/op-mes/src/main/java/com/op/mes/service/impl/MesPrepareServiceImpl.java @@ -151,7 +151,7 @@ public class MesPrepareServiceImpl implements IMesPrepareService { } public void getMesPrepareByFactory(String poolName) { - DynamicDataSourceContextHolder.push("ds_"+poolName);// 这是数据源的key + DynamicDataSourceContextHolder.push(poolName);// 这是数据源的key // List list = sapMaterialPreparationList.stream() // .filter(a->a.getWERKS().equals(poolName)) // .collect(Collectors.toList()); @@ -159,7 +159,7 @@ public class MesPrepareServiceImpl implements IMesPrepareService { //获取T+1天的所有母工单 MesPrepare qo = new MesPrepare(); Calendar cal = Calendar.getInstance(); - cal.add(Calendar.DATE, 1);//这里改为1 + cal.add(Calendar.DATE, -1);//这里改为1 Date time = cal.getTime(); qo.setDayStr(new SimpleDateFormat("yyyy-MM-dd").format(time)); List parents = mesPrepareMapper.getParentWorkOrderT1(qo); diff --git a/op-modules/op-plan/src/main/java/com/op/plan/controller/ProOrderController.java b/op-modules/op-plan/src/main/java/com/op/plan/controller/ProOrderController.java index 38dd3a58..4907a411 100644 --- a/op-modules/op-plan/src/main/java/com/op/plan/controller/ProOrderController.java +++ b/op-modules/op-plan/src/main/java/com/op/plan/controller/ProOrderController.java @@ -231,5 +231,9 @@ public class ProOrderController extends BaseController { public AjaxResult syncSAP() { return proOrderService.syncSAP(); } - + @Log(title = "自动同步SAP订单", businessType = BusinessType.INSERT) + @PostMapping("/syncSAPOrders") + public R syncSAPOrders() { + return proOrderService.syncSAPOrders(); + } } diff --git a/op-modules/op-plan/src/main/java/com/op/plan/service/IProOrderService.java b/op-modules/op-plan/src/main/java/com/op/plan/service/IProOrderService.java index f55046c4..ef5d9475 100644 --- a/op-modules/op-plan/src/main/java/com/op/plan/service/IProOrderService.java +++ b/op-modules/op-plan/src/main/java/com/op/plan/service/IProOrderService.java @@ -2,6 +2,7 @@ package com.op.plan.service; import java.util.List; +import com.op.common.core.domain.R; import com.op.common.core.web.domain.AjaxResult; import com.op.plan.domain.Convert; import com.op.plan.domain.ProOrder; @@ -119,4 +120,6 @@ public interface IProOrderService { * @return */ AjaxResult importOrder(List orderList); + + R syncSAPOrders(); } diff --git a/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderServiceImpl.java b/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderServiceImpl.java index c19f9da0..7655bc86 100644 --- a/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderServiceImpl.java +++ b/op-modules/op-plan/src/main/java/com/op/plan/service/impl/ProOrderServiceImpl.java @@ -1,6 +1,10 @@ package com.op.plan.service.impl; import java.util.*; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.LinkedBlockingQueue; +import java.util.concurrent.ThreadPoolExecutor; +import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; import com.alibaba.csp.sentinel.util.StringUtil; @@ -21,7 +25,11 @@ import com.op.plan.domain.dto.SplitOrderDTO; import com.op.plan.domain.vo.LineAndShiftVo; import com.op.plan.mapper.*; import com.op.system.api.RemoteSapService; +import com.op.system.api.RemoteUserService; +import com.op.system.api.domain.SysUser; import com.op.system.api.model.SapProOrder; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -44,6 +52,7 @@ import static com.op.common.core.web.domain.AjaxResult.success; */ @Service public class ProOrderServiceImpl implements IProOrderService { + protected Logger logger = LoggerFactory.getLogger(getClass()); @Autowired private ProOrderMapper proOrderMapper; @Autowired @@ -57,7 +66,8 @@ public class ProOrderServiceImpl implements IProOrderService { @Autowired private RemoteSapService remoteSapService; - + @Autowired + private RemoteUserService remoteUserService; /** * 获取换算值 * @@ -239,17 +249,10 @@ public class ProOrderServiceImpl implements IProOrderService { * 手动同步sap订单 */ @Override - @Transactional(rollbackFor = Exception.class) @DS("#header.poolName") public AjaxResult syncSAP() { - SapProOrder sapqo = new SapProOrder();//proOrderMapper.getMaxCreatetime(); - //if (sapqo == null) { - // sapqo.setCreateTime(DateUtils.getNowDate()); - //} - - Calendar calendar = Calendar.getInstance(); //创建Calendar 的实例 - calendar.add(Calendar.DAY_OF_MONTH,-1); //当前时间减去一天,即一天前的时间 - sapqo.setCreateTime(calendar.getTime()); + SapProOrder sapqo = new SapProOrder(); + sapqo.setCreateTime(DateUtils.getNowDate()); //获取当前所选工厂 HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); String key = "#header.poolName"; @@ -260,8 +263,16 @@ public class ProOrderServiceImpl implements IProOrderService { if(CollectionUtils.isEmpty(newOrders)){ return AjaxResult.error("无"+sapqo.getCreateTime()+"之后的最新订单"); } + + syncSAPFunc(newOrders); + + return success(); + } + + @Transactional(rollbackFor = Exception.class) + public void syncSAPFunc(List newOrders){ ProOrder proOrder = null; - for (SapProOrder sapProOrder : newOrders) { + for (SapProOrder sapProOrder:newOrders) { //工单下达后整个订单就被锁定//订单存在就更新,不存在就插入 proOrder = new ProOrder(); BeanUtils.copyProperties(sapProOrder, proOrder); @@ -289,17 +300,16 @@ public class ProOrderServiceImpl implements IProOrderService { if (!CollectionUtils.isEmpty(orderCodes)) { List idstr = orderCodes.stream().map(order -> order.getId()).collect(Collectors.toList()); String[] ids = idstr.stream().toArray(String[]::new); - //删除工单pro_order_workorder - proOrderWorkorderMapper.deleteProOrderWorkorderByWorkorderIds(ids); //删除批次pro_order_workorder_batch proOrderWorkorderBatchMapper.deleteProOrderWorkorderBatchByWorkorderIds(ids); + //删除工单pro_order_workorder + proOrderWorkorderMapper.deleteProOrderWorkorderByWorkorderIds(ids); } } else {//关闭订单 - //TODO;不更新 + remoteSapService.sapCloseOrder(proOrder.getOrderCode()); } } } - return success(); } //父查子递归 @@ -418,6 +428,50 @@ public class ProOrderServiceImpl implements IProOrderService { return checkResult; } + @Override + public R syncSAPOrders() { + // 加载sf-cloud库的sys_datasource + SysUser sysUser = new SysUser(); + sysUser.setUserId(1L); + R>> dateSources0 = remoteUserService.getPoolNameList(sysUser); + List> dateSources = dateSources0.getData(); + ExecutorService executorService = new ThreadPoolExecutor( + dateSources.size(), + dateSources.size(), + 0L, TimeUnit.MILLISECONDS, + new LinkedBlockingQueue()); + try { + dateSources.forEach(dateSource -> { + logger.info("++++++++++++" + dateSource.get("poolName") + "++++开始++++++++++"); + Runnable run = () -> getSAPOrderByFactory(dateSource.get("poolName")); + executorService.execute(run); + }); + } catch (Exception e) { + logger.error("service == deviceOfflineTimingTask == exception", e); + return R.fail("service == deviceOfflineTimingTask == exception"); + } finally { + executorService.shutdown(); + } + return R.ok(true); + } + + public void getSAPOrderByFactory(String poolName) { + DynamicDataSourceContextHolder.push(poolName);// 这是数据源的key + SapProOrder sapqo = new SapProOrder();//proOrderMapper.getMaxCreatetime(); + Calendar calendar = Calendar.getInstance(); + calendar.add(Calendar.DAY_OF_MONTH,-1); + sapqo.setCreateTime(calendar.getTime()); + + sapqo.setFactoryCode(poolName.replace("ds_","")); + + R> rSapProOrder = remoteSapService.shopOrderSync(sapqo); + List newOrders = rSapProOrder.getData(); + if(CollectionUtils.isEmpty(newOrders)){ + logger.error("无"+sapqo.getCreateTime()+"之后的最新订单"); + } + syncSAPFunc(newOrders); + } + /** * 查询订单方法(递归) * diff --git a/op-modules/op-sap/src/main/java/com/op/sap/controller/SapController.java b/op-modules/op-sap/src/main/java/com/op/sap/controller/SapController.java index 3f0224d2..1df0d234 100644 --- a/op-modules/op-sap/src/main/java/com/op/sap/controller/SapController.java +++ b/op-modules/op-sap/src/main/java/com/op/sap/controller/SapController.java @@ -14,6 +14,7 @@ import com.op.sap.service.SapOrderService; import com.op.sap.service.SapService; import com.op.system.api.domain.sap.SapCreateOrder; import com.op.system.api.domain.sap.SapMaterialPreparation; +import com.op.system.api.domain.sap.SapRFW; import com.op.system.api.model.SapProOrder; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -35,6 +36,7 @@ public class SapController extends BaseController { @Autowired private SapMaterialPreparationService sapMaterialPreparationService; + /** * 订单同步接口 * @return @@ -83,8 +85,24 @@ public class SapController extends BaseController { @PostMapping("/SapCreateOrder") @Log(title = "生产订单创建接口", businessType = BusinessType.SAP) - public R SapCreateOrder(@RequestBody List sapCreateOrderList){ + public R> SapCreateOrder(@RequestBody List sapCreateOrderList){ return sapOrderService.SapCreateOrder(sapCreateOrderList); } + /** + * 生产订单关闭接口 + * @param shopOrder + * @return + */ + @PostMapping("/sapCloseOrder") + @Log(title = "生产订单关闭接口", businessType = BusinessType.SAP) + public R sapCloseOrder(@RequestParam("shopOrder") String shopOrder){ + return sapOrderService.sapCloseOrder(shopOrder); + } + + @PostMapping("/sapRFWOrder") + @Log(title = "生产订单报工接口", businessType = BusinessType.SAP) + public R sapRFWOrder(@RequestBody SapRFW sapRFW){ + return sapOrderService.sapRFWOrder(sapRFW); + } } diff --git a/op-modules/op-sap/src/main/java/com/op/sap/service/SapOrderService.java b/op-modules/op-sap/src/main/java/com/op/sap/service/SapOrderService.java index 14aa8a54..fadf4f79 100644 --- a/op-modules/op-sap/src/main/java/com/op/sap/service/SapOrderService.java +++ b/op-modules/op-sap/src/main/java/com/op/sap/service/SapOrderService.java @@ -1,8 +1,8 @@ package com.op.sap.service; import com.op.common.core.domain.R; -import com.op.common.core.web.domain.AjaxResult; import com.op.system.api.domain.sap.SapCreateOrder; +import com.op.system.api.domain.sap.SapRFW; import com.op.system.api.model.SapProOrder; import java.util.List; @@ -11,5 +11,9 @@ public interface SapOrderService { R> shopOrderSync(SapProOrder sapProOrder); - R SapCreateOrder(List sapCreateOrderList); + R> SapCreateOrder(List sapCreateOrderList); + + R sapCloseOrder(String shopOrder); + + R sapRFWOrder(SapRFW sapRFW); } diff --git a/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapOrderServiceImpl.java b/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapOrderServiceImpl.java index 9f17929e..79f9bee9 100644 --- a/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapOrderServiceImpl.java +++ b/op-modules/op-sap/src/main/java/com/op/sap/service/impl/SapOrderServiceImpl.java @@ -2,11 +2,13 @@ package com.op.sap.service.impl; import com.op.common.core.domain.R; import com.op.common.core.utils.DateUtils; +import com.op.common.core.utils.StringUtils; import com.op.common.core.utils.uuid.IdUtils; -import com.op.common.core.web.domain.AjaxResult; + import com.op.sap.service.SapOrderService; import com.op.sap.util.SAPConnUtils; import com.op.system.api.domain.sap.SapCreateOrder; +import com.op.system.api.domain.sap.SapRFW; import com.op.system.api.model.SapProOrder; import com.sap.conn.jco.*; import org.springframework.stereotype.Service; @@ -92,8 +94,8 @@ public class SapOrderServiceImpl implements SapOrderService { } @Override - public R SapCreateOrder(List sapCreateOrderList) { - + public R> SapCreateOrder(List sapCreateOrderList) { + String L_MSG=null; try { //获取连接 JCoDestination dest = SAPConnUtils.connect(); @@ -102,27 +104,137 @@ public class SapOrderServiceImpl implements SapOrderService { if (func == null) { throw new RuntimeException("Function does not exist in SAP"); } + // 配置传入参数 JCoParameterList jCoParameterList = func.getImportParameterList(); - if (sapCreateOrderList != null && sapCreateOrderList.size() > 0) { - for (SapCreateOrder sapCreateOrder : sapCreateOrderList) { - jCoParameterList.setValue("P_WERKS", sapCreateOrder.getWerks()); - jCoParameterList.setValue("P_AUFPAR", sapCreateOrder.getAufpar()); - jCoParameterList.setValue("P_MATNR", sapCreateOrder.getMatnr()); - jCoParameterList.setValue("P_QUANTITY", sapCreateOrder.getQuantity()); - jCoParameterList.setValue("P_DATES", sapCreateOrder.getDates()); - jCoParameterList.setValue("P_DATEE", sapCreateOrder.getDatee()); + List LV_ORDER_NUM_List=new ArrayList<>(); + + if (sapCreateOrderList!=null && sapCreateOrderList.size()>0){ + for (SapCreateOrder sapCreateOrder:sapCreateOrderList){ + jCoParameterList.setValue("P_WERKS",sapCreateOrder.getWerks()); + jCoParameterList.setValue("P_AUFPAR",sapCreateOrder.getAufpar()); + jCoParameterList.setValue("P_MATNR",sapCreateOrder.getMatnr()); + jCoParameterList.setValue("P_QUANTITY",sapCreateOrder.getQuantity()); + jCoParameterList.setValue("P_DATES",sapCreateOrder.getDates()); + jCoParameterList.setValue("P_DATEE",sapCreateOrder.getDatee()); func.execute(dest);//执行调用函数 - JCoParameterList RES = func.getExportParameterList(); - System.out.println(RES); + JCoParameterList J= func.getExportParameterList(); + System.out.println(J); + L_MSG= func.getExportParameterList().getString("L_MSG"); + String LV_ORDER_NUMBER= func.getExportParameterList().getString("LV_ORDER_NUMBER"); + if (!StringUtils.isEmpty(LV_ORDER_NUMBER)){ + LV_ORDER_NUM_List.add(LV_ORDER_NUMBER); + }else { + return R.fail(L_MSG); + } } + return R.ok(LV_ORDER_NUM_List,L_MSG); + }else { + return R.fail("接收的数据为空"); } - return R.ok(); - } catch (Exception e) { - return R.fail(); + + }catch (Exception e){ + return R.fail(L_MSG); } } + + @Override + public R sapCloseOrder(String shopOrder) { + String L_MSG=null; + try { + //获取连接 + JCoDestination dest = SAPConnUtils.connect(); + JCoRepository repository = dest.getRepository(); + JCoFunction func = repository.getFunction("ZPPR_MES_PRODORD_CLOSE"); + if (func == null) { + throw new RuntimeException("Function does not exist in SAP"); + } + + // 配置传入参数 + JCoParameterList jCoParameterList = func.getImportParameterList(); + if (StringUtils.isEmpty(shopOrder)){ + return R.fail("订单号为空"); + } + jCoParameterList.setValue("P_AUFNR",shopOrder); + func.execute(dest);//执行调用函数 + JCoParameterList J= func.getExportParameterList(); + System.out.println(J); + L_MSG= func.getExportParameterList().getString("L_MSG"); + if (StringUtils.isEmpty(L_MSG)){ + return R.fail("订单关闭失败"); + } + return R.ok(L_MSG); + + }catch (Exception e){ + return R.fail(e.getMessage()); + } + } + + @Override + public R sapRFWOrder(SapRFW sapRFW) { + String MESSAGE=null; + try { + //获取连接 + JCoDestination dest = SAPConnUtils.connect(); + JCoRepository repository = dest.getRepository(); + JCoFunction func = repository.getFunction("ZPPR_MES_PRODORDCONF_CREATE_TT"); + if (func == null) { + throw new RuntimeException("Function does not exist in SAP"); + } + + // 配置传入参数 + JCoParameterList jCoParameterList = func.getImportParameterList(); + if (StringUtils.isEmpty(sapRFW.getAufnr())){ + return R.fail("订单号为空"); + } + if (StringUtils.isEmpty(sapRFW.getGamng())){ + return R.fail("报工数量为空"); + } + //订单号 + jCoParameterList.setValue("P_AUFNR",sapRFW.getAufnr()); + //报工数量 + jCoParameterList.setValue("P_GAMNG",sapRFW.getGamng()); + if (sapRFW.getLt_gs()==null){ + return R.fail("生产订单报工工时为空"); + } + if (sapRFW.getLt_hw()==null){ + return R.fail("生产订单报工货物移动为空"); + } + /** + * 生产订单报工工时 LT_GS + */ + JCoTable LT_GS_jCoTable = func.getTableParameterList().getTable("LT_GS"); + System.out.println("LT_GS_jCoTable"+LT_GS_jCoTable); + LT_GS_jCoTable.appendRow(); + LT_GS_jCoTable.setValue("CONF_ACTIVITY1", sapRFW.getLt_gs().getConf_activity1()); + LT_GS_jCoTable.setValue("CONF_ACTIVITY2", sapRFW.getLt_gs().getConf_activity2()); + LT_GS_jCoTable.setValue("CONF_ACTIVITY3", sapRFW.getLt_gs().getConf_activity3()); + LT_GS_jCoTable.setValue("CONF_ACTIVITY4", sapRFW.getLt_gs().getConf_activity4()); + LT_GS_jCoTable.setValue("CONF_ACTIVITY5", sapRFW.getLt_gs().getConf_activity5()); + LT_GS_jCoTable.setValue("CONF_ACTIVITY6", sapRFW.getLt_gs().getConf_activity6()); + /** + * MES生产订单报工货物移动修改 LT_HW + */ + JCoTable LT_HW_jCoTable = func.getTableParameterList().getTable("LT_HW"); + System.out.println("LT_HW_jCoTable"+LT_HW_jCoTable); + LT_HW_jCoTable.appendRow(); + LT_HW_jCoTable.setValue("MATERIAL", sapRFW.getLt_hw().getMaterial()); + LT_HW_jCoTable.setValue("ENTRY_QNT", sapRFW.getLt_hw().getEntry_qnt()); + + func.execute(dest);//执行调用函数 + JCoParameterList J= func.getExportParameterList(); + System.out.println(J); + MESSAGE= func.getExportParameterList().getString("MESSAGE"); + if (StringUtils.isEmpty(MESSAGE)){ + return R.fail("订单关闭失败"); + } + return R.ok(MESSAGE); + + }catch (Exception e){ + return R.fail(e.getMessage()); + } + } }