Commit 92d656fc authored by 刘学辉's avatar 刘学辉

采购信息记录 调整, 物料主数据的销售视图的品牌改为从EP获取

parent f753bcb6
...@@ -66,7 +66,7 @@ ...@@ -66,7 +66,7 @@
<x:inputC name="material" label="材质" labelCol="1" fieldCol="2"/> <x:inputC name="material" label="材质" labelCol="1" fieldCol="2"/>
<x:inputC name="design" label="版式" labelCol="1" fieldCol="2"/> <x:inputC name="design" label="版式" labelCol="1" fieldCol="2"/>
<x:inputC name="size" label="尺码" labelCol="1" fieldCol="2"/> <x:inputC name="size" label="尺码" labelCol="1" fieldCol="2"/>
<x:inputC name="brand" label="品牌" labelCol="1" fieldCol="2"/> <x:inputC name="brand" label="品牌" labelCol="1" fieldCol="2" />
<x:selectC name="itemAttributes" label="物品属性" labelCol="1" fieldCol="2" dictionary="suppliesType"/> <x:selectC name="itemAttributes" label="物品属性" labelCol="1" fieldCol="2" dictionary="suppliesType"/>
<x:inputC name="materialUsage" label="用途" labelCol="1" fieldCol="8"/> <x:inputC name="materialUsage" label="用途" labelCol="1" fieldCol="8"/>
...@@ -98,7 +98,7 @@ ...@@ -98,7 +98,7 @@
<%--<x:selectC name="prodh" label="产品层级" labelCol="1" fieldCol="2" dictionary="productLevels"/>--%> <%--<x:selectC name="prodh" label="产品层级" labelCol="1" fieldCol="2" dictionary="productLevels"/>--%>
<x:inputC name="prodh" label="产品层级" labelCol="1" fieldCol="2"/> <x:inputC name="prodh" label="产品层级" labelCol="1" fieldCol="2"/>
<x:inputC name="mvgr1" label="版式" labelCol="1" fieldCol="2"/> <x:inputC name="mvgr1" label="版式" labelCol="1" fieldCol="2"/>
<x:inputC name="mvgr2" label="品牌" labelCol="1" fieldCol="2"/> <x:inputC name="mvgr2" label="品牌" labelCol="1" fieldCol="2" disabled="true"/>
<x:inputC name="mvgr3" label="用途" labelCol="1" fieldCol="2"/> <x:inputC name="mvgr3" label="用途" labelCol="1" fieldCol="2"/>
<x:inputC name="mvgr4" label="备用" labelCol="1" fieldCol="2"/> <x:inputC name="mvgr4" label="备用" labelCol="1" fieldCol="2"/>
<x:inputC name="mvgr5" label="备用" labelCol="1" fieldCol="2"/> <x:inputC name="mvgr5" label="备用" labelCol="1" fieldCol="2"/>
......
...@@ -207,7 +207,7 @@ function getGridColumns() { ...@@ -207,7 +207,7 @@ function getGridColumns() {
// editor: {required: false, type: "text"} // editor: {required: false, type: "text"}
// }, // },
{display: "净价", name: "netpr", width: "100", align: "left", type: "string", {display: "净价", name: "netpr", width: "100", align: "left", type: "string",
editor: {type: 'text', mask: '9999999.99'} editor: {required: true,type: 'text', mask: '9999999.99'}
}, },
{display: "货币码", name: "waersTextView", width: "100", align: "left", type: "string", {display: "货币码", name: "waersTextView", width: "100", align: "left", type: "string",
editor: { editor: {
...@@ -245,7 +245,7 @@ function getGridColumns() { ...@@ -245,7 +245,7 @@ function getGridColumns() {
}, },
{display: "基本计量单位", name: "meinsName", width: "100", align: "left", type: "string", {display: "基本计量单位", name: "meinsName", width: "100", align: "left", type: "string",
editor: { editor: {
required: true, type: "select", required: false, type: "select",
data: { data: {
type: 'system', type: 'system',
name: "dictionary", name: "dictionary",
...@@ -271,7 +271,7 @@ function getGridColumns() { ...@@ -271,7 +271,7 @@ function getGridColumns() {
data: {name: 'mwskz'}, data: {name: 'mwskz'},
textField: 'mwskzTextView', textField: 'mwskzTextView',
valueField: 'mwskz', valueField: 'mwskz',
required: false, required: true,
render: function (item) { render: function (item) {
return item.mwskzTextView; return item.mwskzTextView;
} }
...@@ -344,10 +344,10 @@ function getGridColumns() { ...@@ -344,10 +344,10 @@ function getGridColumns() {
editor: {required: false, type: "text"} editor: {required: false, type: "text"}
}, },
{display: "最小采购订单数量", name: "minbm", width: "120", align: "left", type: "string", {display: "最小采购订单数量", name: "minbm", width: "120", align: "left", type: "string",
editor: {type: 'text', mask: '9999999.99'} editor: { required: true,type: 'text', mask: '9999999.99'}
}, },
{display: "计划交货时间(天)", name: "aplfz", width: "150", align: "left", type: "string", {display: "计划交货时间(天)", name: "aplfz", width: "150", align: "left", type: "string",
editor: {type: 'text', mask: '9999999.99'} editor: {required: true,type: 'text', mask: '9999999.99'}
}, },
// {display: "业务标识", name: "zflag", width: 150, minWidth: 60, type: "string", align: "center", // {display: "业务标识", name: "zflag", width: 150, minWidth: 60, type: "string", align: "center",
...@@ -359,7 +359,7 @@ function getGridColumns() { ...@@ -359,7 +359,7 @@ function getGridColumns() {
data: {name: 'webre'}, data: {name: 'webre'},
textField: 'webreTextView', textField: 'webreTextView',
valueField: 'webre', valueField: 'webre',
required: false, required: true,
render: function (item) { render: function (item) {
return item.webreTextView; return item.webreTextView;
} }
......
...@@ -13,4 +13,5 @@ import java.io.Serializable; ...@@ -13,4 +13,5 @@ import java.io.Serializable;
public class EpResult implements Serializable { public class EpResult implements Serializable {
private String code; private String code;
private String msg; private String msg;
private EpResultValue data;
} }
package com.huigou.topsun.sap.common.domain;
import lombok.Data;
@Data
public class EpResultValue {
private String code;
private String name;
}
...@@ -17,7 +17,7 @@ import com.huigou.topsun.base.bsnMessage.domain.BsnMessageExecute; ...@@ -17,7 +17,7 @@ import com.huigou.topsun.base.bsnMessage.domain.BsnMessageExecute;
import com.huigou.topsun.base.bsnMessage.domain.BsnMessageSponsor; import com.huigou.topsun.base.bsnMessage.domain.BsnMessageSponsor;
import com.huigou.topsun.base.bsnMessage.repository.BsnMessageExecuteRepository; import com.huigou.topsun.base.bsnMessage.repository.BsnMessageExecuteRepository;
import com.huigou.topsun.base.bsnMessage.repository.BsnMessageSponsorRepository; import com.huigou.topsun.base.bsnMessage.repository.BsnMessageSponsorRepository;
import com.huigou.topsun.sap.common.DefaultHttpClient;
import com.huigou.topsun.sap.common.application.SapMutualEpLogApplication; import com.huigou.topsun.sap.common.application.SapMutualEpLogApplication;
import com.huigou.topsun.sap.costReimbursement.domain.SapCostReimbursement; import com.huigou.topsun.sap.costReimbursement.domain.SapCostReimbursement;
import com.huigou.topsun.sap.nonProdApply.application.NonProdApplyApplication; import com.huigou.topsun.sap.nonProdApply.application.NonProdApplyApplication;
...@@ -63,8 +63,7 @@ public class NonProdApplyApplicationImpl extends FlowBroker implements NonProdA ...@@ -63,8 +63,7 @@ public class NonProdApplyApplicationImpl extends FlowBroker implements NonProdA
BsnMessageSponsorRepository bsnMessageSponsorRepository; BsnMessageSponsorRepository bsnMessageSponsorRepository;
@Autowired @Autowired
com.huigou.topsun.base.bsnMessage.repository.BsnMessageExecuteRepository bsnMessageExecuteRepository; com.huigou.topsun.base.bsnMessage.repository.BsnMessageExecuteRepository bsnMessageExecuteRepository;
@Autowired
DefaultHttpClient defaultHttpClient;
@Autowired @Autowired
SapMutualEpLogApplication sapMutualEpLogApplication; SapMutualEpLogApplication sapMutualEpLogApplication;
@Resource @Resource
...@@ -462,6 +461,7 @@ public class NonProdApplyApplicationImpl extends FlowBroker implements NonProdA ...@@ -462,6 +461,7 @@ public class NonProdApplyApplicationImpl extends FlowBroker implements NonProdA
SapNonProdApplyDept sapNonProdApplyDept = new SapNonProdApplyDept(); SapNonProdApplyDept sapNonProdApplyDept = new SapNonProdApplyDept();
ClassHelper.copyProperties(prodApplyFromSapVO, nonProdApplyBaseInfo); ClassHelper.copyProperties(prodApplyFromSapVO, nonProdApplyBaseInfo);
nonProdApplyBaseInfo.setCreatedDate(new Date());
nonProdApplyBaseInfo.setStatusId(BizBillStatus.COMPLETED.getId()); nonProdApplyBaseInfo.setStatusId(BizBillStatus.COMPLETED.getId());
nonProdApplyBaseInfo.setApprover(operator.getPersonMemberName()); nonProdApplyBaseInfo.setApprover(operator.getPersonMemberName());
nonProdApplyBaseInfo.setDefaultValues(new OrgUnit(operator.getFullId(), operator.getFullName())); nonProdApplyBaseInfo.setDefaultValues(new OrgUnit(operator.getFullId(), operator.getFullName()));
......
...@@ -79,10 +79,14 @@ public class NonProdApplyDeptApplicationImpl extends BaseApplication implements ...@@ -79,10 +79,14 @@ public class NonProdApplyDeptApplicationImpl extends BaseApplication implements
nonProdApplyBaseInfo.setDesign(sdo.getString("design")); nonProdApplyBaseInfo.setDesign(sdo.getString("design"));
nonProdApplyBaseInfo.setSize(sdo.getString("size")); nonProdApplyBaseInfo.setSize(sdo.getString("size"));
// nonProdApplyBaseInfo.setGenericName(sdo.getString("brand")); // nonProdApplyBaseInfo.setGenericName(sdo.getString("brand"));
nonProdApplyBaseInfo.setBrand(sdo.getString("brand"));
nonProdApplyBaseInfo.setMaterialUsage(sdo.getString("materialUsage")); nonProdApplyBaseInfo.setMaterialUsage(sdo.getString("materialUsage"));
nonProdApplyBaseInfo.setItemAttributes(sdo.getString("itemAttributes")); nonProdApplyBaseInfo.setItemAttributes(sdo.getString("itemAttributes"));
} }
if ("V".equals(businessCode)) { //销售视图
nonProdApplyBaseInfo.setBrand(sdo.getString("brand"));
nonProdApplyBaseInfo.setBrand(sdo.getString("brandName"));
}
nonProdApplyBaseInfoRepository.save(nonProdApplyBaseInfo); nonProdApplyBaseInfoRepository.save(nonProdApplyBaseInfo);
NonProdApplyDeptVo deptVo=null; NonProdApplyDeptVo deptVo=null;
......
package com.huigou.topsun.sap.nonProdApply.controller; package com.huigou.topsun.sap.nonProdApply.controller;
import com.alibaba.fastjson.JSONObject;
import com.huigou.cache.DictUtil; import com.huigou.cache.DictUtil;
import com.huigou.topsun.base.bsnMessage.appliction.BsnMessageApplication; import com.huigou.topsun.base.bsnMessage.appliction.BsnMessageApplication;
import com.huigou.topsun.base.bsnMessage.domain.ActiveStatus; import com.huigou.topsun.base.bsnMessage.domain.ActiveStatus;
...@@ -9,6 +10,9 @@ import com.huigou.topsun.base.bsnMessage.domain.BsnMessageReject; ...@@ -9,6 +10,9 @@ import com.huigou.topsun.base.bsnMessage.domain.BsnMessageReject;
import com.huigou.topsun.base.bsnMessage.domain.BsnMessageSponsor; import com.huigou.topsun.base.bsnMessage.domain.BsnMessageSponsor;
import com.huigou.topsun.base.bsnMessage.repository.BsnMessageExecuteRepository; import com.huigou.topsun.base.bsnMessage.repository.BsnMessageExecuteRepository;
import com.huigou.topsun.base.bsnMessage.repository.BsnMessageSponsorRepository; import com.huigou.topsun.base.bsnMessage.repository.BsnMessageSponsorRepository;
import com.huigou.topsun.sap.common.DefaultHttpClient;
import com.huigou.topsun.sap.common.domain.EpResult;
import com.huigou.topsun.sap.common.domain.SapResult;
import com.huigou.topsun.sap.nonProdApply.application.NonProdApplyApplication; import com.huigou.topsun.sap.nonProdApply.application.NonProdApplyApplication;
import com.huigou.topsun.sap.nonProdApply.application.NonProdApplyDeptApplication; import com.huigou.topsun.sap.nonProdApply.application.NonProdApplyDeptApplication;
import com.huigou.topsun.sap.nonProdApply.domain.NonProdApplyBaseInfo; import com.huigou.topsun.sap.nonProdApply.domain.NonProdApplyBaseInfo;
...@@ -20,10 +24,13 @@ import com.huigou.uasp.bmp.opm.domain.model.org.Org; ...@@ -20,10 +24,13 @@ import com.huigou.uasp.bmp.opm.domain.model.org.Org;
import com.huigou.uasp.client.CommonController; import com.huigou.uasp.client.CommonController;
import com.huigou.util.SDO; import com.huigou.util.SDO;
import com.huigou.util.StringUtil; import com.huigou.util.StringUtil;
import lombok.Data;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import javax.persistence.Transient; import javax.persistence.Transient;
import java.io.IOException;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
...@@ -47,6 +54,8 @@ public class NonProdApplyNextController extends CommonController { ...@@ -47,6 +54,8 @@ public class NonProdApplyNextController extends CommonController {
BsnMessageExecuteRepository bsnMessageExecuteRepository; BsnMessageExecuteRepository bsnMessageExecuteRepository;
@Autowired @Autowired
OrgApplication orgApplication; OrgApplication orgApplication;
@Autowired
DefaultHttpClient defaultHttpClient;
public String forwardNonProdApplyNext() { public String forwardNonProdApplyNext() {
SDO sdo = this.getSDO(); SDO sdo = this.getSDO();
...@@ -283,6 +292,24 @@ public class NonProdApplyNextController extends CommonController { ...@@ -283,6 +292,24 @@ public class NonProdApplyNextController extends CommonController {
case "C": case "C":
return forward("nonProdApplyClass", nonProdApplyDept); return forward("nonProdApplyClass", nonProdApplyDept);
case "V": //销售 case "V": //销售
if (StringUtils.isNotBlank(nonProdApplyDept.getMatnr())) {
String url = "/md/mditem/queryBrandByItemCode?sapItemcode=" + nonProdApplyDept.getMatnr();
Map map = new HashMap();
try {
//{msg:"","code":"",data:{"code":"","name":}}
String result = defaultHttpClient.executeForEp(map, url);
EpResult epResult = JSONObject.parseObject(result, EpResult.class);
if ("".equals(epResult.getMsg())) {
nonProdApplyDept.setBrand(epResult.getData().getCode());
nonProdApplyDept.setBrandName(epResult.getData().getName());
nonProdApplyDept.setMvgr2(epResult.getData().getCode());
} else {
throw new RuntimeException("从EP查询品牌错误:" + epResult.getMsg());
}
} catch (IOException e) {
throw new RuntimeException("EP服务器无响应请稍后手动重试!error:" + e.getMessage());
}
}
return forward("nonProdApplySale", nonProdApplyDept); return forward("nonProdApplySale", nonProdApplyDept);
case "E": case "E":
return forward("nonProdApplyPurchase", nonProdApplyDept); return forward("nonProdApplyPurchase", nonProdApplyDept);
...@@ -330,6 +357,8 @@ public void getBaseInfoAttrs(NonProdApplyBaseInfo baseInfo,SapNonProdApplyDept n ...@@ -330,6 +357,8 @@ public void getBaseInfoAttrs(NonProdApplyBaseInfo baseInfo,SapNonProdApplyDept n
nonProdApplyDept.setDesign(baseInfo.getDesign()); nonProdApplyDept.setDesign(baseInfo.getDesign());
nonProdApplyDept.setSize(baseInfo.getSize()); nonProdApplyDept.setSize(baseInfo.getSize());
nonProdApplyDept.setBrand(baseInfo.getBrand()); nonProdApplyDept.setBrand(baseInfo.getBrand());
nonProdApplyDept.setBrandName(baseInfo.getBrandName());
nonProdApplyDept.setMaterialUsage(baseInfo.getMaterialUsage()); nonProdApplyDept.setMaterialUsage(baseInfo.getMaterialUsage());
nonProdApplyDept.setItemAttributes(baseInfo.getItemAttributes()); nonProdApplyDept.setItemAttributes(baseInfo.getItemAttributes());
nonProdApplyDept.setDistribute(baseInfo.getDistribute()); nonProdApplyDept.setDistribute(baseInfo.getDistribute());
......
...@@ -83,7 +83,11 @@ public class NonProdApplyBaseInfo extends FlowBillAbstractEntity { ...@@ -83,7 +83,11 @@ public class NonProdApplyBaseInfo extends FlowBillAbstractEntity {
* 品牌 * 品牌
*/ */
private String brand; private String brand;
/**
* 品牌名称
*/
@Column(name = "brand_name")
private String brandName;
/** /**
* 用途 * 用途
*/ */
......
...@@ -885,6 +885,8 @@ public class SapNonProdApplyDept implements Serializable { ...@@ -885,6 +885,8 @@ public class SapNonProdApplyDept implements Serializable {
@Transient @Transient
private String brand; private String brand;
@Transient @Transient
private String brandName;
@Transient
private String materialUsage; private String materialUsage;
@Transient @Transient
private String itemAttributes; private String itemAttributes;
......
package com.huigou.topsun.sap.purchase.application.impl; package com.huigou.topsun.sap.purchase.application.impl;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.huigou.cache.SystemCache; import com.huigou.cache.SystemCache;
import com.huigou.data.domain.model.CommonDomainConstants; import com.huigou.data.domain.model.CommonDomainConstants;
import com.huigou.data.query.model.QueryDescriptor; import com.huigou.data.query.model.QueryDescriptor;
import com.huigou.data.query.model.QueryModel; import com.huigou.data.query.model.QueryModel;
import com.huigou.topsun.sap.common.HttpClient; import com.huigou.topsun.sap.common.HttpClient;
import com.huigou.topsun.sap.common.application.SapMutualEpLogApplication;
import com.huigou.topsun.sap.costReimbursement.domain.SapCostReimbursement; import com.huigou.topsun.sap.costReimbursement.domain.SapCostReimbursement;
import com.huigou.topsun.sap.purchase.application.SapPurchaseApplication; import com.huigou.topsun.sap.purchase.application.SapPurchaseApplication;
import com.huigou.topsun.sap.purchase.application.SapPurchaseItemApplication; import com.huigou.topsun.sap.purchase.application.SapPurchaseItemApplication;
...@@ -22,6 +24,7 @@ import com.huigou.uasp.bpm.FlowBroker; ...@@ -22,6 +24,7 @@ import com.huigou.uasp.bpm.FlowBroker;
import com.huigou.util.ClassHelper; import com.huigou.util.ClassHelper;
import org.activiti.engine.delegate.DelegateExecution; import org.activiti.engine.delegate.DelegateExecution;
import org.activiti.engine.delegate.DelegateTask; import org.activiti.engine.delegate.DelegateTask;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.Assert; import org.springframework.util.Assert;
...@@ -29,10 +32,7 @@ import org.springframework.util.Assert; ...@@ -29,10 +32,7 @@ import org.springframework.util.Assert;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.io.IOException; import java.io.IOException;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.*;
import java.util.Date;
import java.util.List;
import java.util.Map;
/** /**
* @Auther: xin.lu * @Auther: xin.lu
...@@ -47,6 +47,8 @@ public class SapPurchaseApplicationImpl extends FlowBroker implements SapPurchas ...@@ -47,6 +47,8 @@ public class SapPurchaseApplicationImpl extends FlowBroker implements SapPurchas
private SapPurchaseItemApplication sapPurchaseItemApplication; private SapPurchaseItemApplication sapPurchaseItemApplication;
@Resource @Resource
private HttpClient httpClient; private HttpClient httpClient;
@Autowired
SapMutualEpLogApplication sapMutualEpLogApplication;
@Override @Override
protected String saveBizAndApprovalData() { protected String saveBizAndApprovalData() {
super.saveBizAndApprovalData(); super.saveBizAndApprovalData();
...@@ -128,8 +130,11 @@ public class SapPurchaseApplicationImpl extends FlowBroker implements SapPurchas ...@@ -128,8 +130,11 @@ public class SapPurchaseApplicationImpl extends FlowBroker implements SapPurchas
SapPurchase sapPurchase = sapPurchaseRepository.findOne(bizId); SapPurchase sapPurchase = sapPurchaseRepository.findOne(bizId);
sapPurchase.setStatusId(status.getId()); sapPurchase.setStatusId(status.getId());
sapPurchase.setFrgdt(new Date()); sapPurchase.setFrgdt(new Date());
SapPurchaseVo sapPurchaseVo = this.getSapPurchaseVoJson(sapPurchase); SapPurchaseVo sapPurchaseVo = this.getSapPurchaseVoJson(sapPurchase);
Map<String, Object> resultMap = new HashMap<>();
resultMap.put("businessType", "采购申请创建");
resultMap.put("businessId", bizId);
resultMap.put("parameter", JSON.toJSONString(sapPurchaseVo));
try { try {
String url = SystemCache.getParameter("sap.purchase.url", String.class); String url = SystemCache.getParameter("sap.purchase.url", String.class);
String execute = httpClient.execute(sapPurchaseVo, url); String execute = httpClient.execute(sapPurchaseVo, url);
...@@ -137,11 +142,18 @@ public class SapPurchaseApplicationImpl extends FlowBroker implements SapPurchas ...@@ -137,11 +142,18 @@ public class SapPurchaseApplicationImpl extends FlowBroker implements SapPurchas
SapResult sapResult = resultList.get(0); SapResult sapResult = resultList.get(0);
if (!"S".equals(sapResult.getTYPE())){ if (!"S".equals(sapResult.getTYPE())){
throw new RuntimeException("数据传输失败,"+ sapResult.getMESSAGE()); throw new RuntimeException("数据传输失败,"+ sapResult.getMESSAGE());
} else {
resultMap.put("type", sapResult.getTYPE());
resultMap.put("MESSAGE", sapResult.getMESSAGE());
} }
sapPurchase.setBanfn(sapResult.getMESSAGE_V1());//SAP采购申请编号 sapPurchase.setBanfn(sapResult.getMESSAGE_V1());//SAP采购申请编号
sapPurchaseRepository.save(sapPurchase); sapPurchaseRepository.save(sapPurchase);
} catch (IOException e) { } catch (IOException e) {
resultMap.put("type", "E");
resultMap.put("MESSAGE", e.getMessage());
throw new RuntimeException(e); throw new RuntimeException(e);
}finally {
sapMutualEpLogApplication.saveSapMutualEpLog(resultMap);
} }
} }
......
package com.huigou.topsun.sap.purchaseApproval.application.impl; package com.huigou.topsun.sap.purchaseApproval.application.impl;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import com.alibaba.fastjson.JSON;
import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import com.huigou.context.Operator; import com.huigou.context.Operator;
...@@ -10,6 +11,7 @@ import com.huigou.data.domain.model.CommonDomainConstants; ...@@ -10,6 +11,7 @@ import com.huigou.data.domain.model.CommonDomainConstants;
import com.huigou.data.query.model.QueryDescriptor; import com.huigou.data.query.model.QueryDescriptor;
import com.huigou.data.query.model.QueryModel; import com.huigou.data.query.model.QueryModel;
import com.huigou.topsun.sap.common.DefaultHttpClient; import com.huigou.topsun.sap.common.DefaultHttpClient;
import com.huigou.topsun.sap.common.application.SapMutualEpLogApplication;
import com.huigou.topsun.sap.costReimbursement.domain.SapCostReimbursement; import com.huigou.topsun.sap.costReimbursement.domain.SapCostReimbursement;
import com.huigou.topsun.sap.purchaseApproval.application.SapPurchaseApprovalApplication; import com.huigou.topsun.sap.purchaseApproval.application.SapPurchaseApprovalApplication;
import com.huigou.topsun.sap.purchaseApproval.application.SapPurchaseApprovalItemApplication; import com.huigou.topsun.sap.purchaseApproval.application.SapPurchaseApprovalItemApplication;
...@@ -58,7 +60,8 @@ public class SapPurchaseApprovalApplicationImpl extends FlowBroker implements Sa ...@@ -58,7 +60,8 @@ public class SapPurchaseApprovalApplicationImpl extends FlowBroker implements Sa
private OperatorApplication operatorApplication; private OperatorApplication operatorApplication;
@Autowired @Autowired
DefaultHttpClient defaultHttpClient; DefaultHttpClient defaultHttpClient;
@Autowired
SapMutualEpLogApplication sapMutualEpLogApplication;
@Override @Override
protected String saveBizAndApprovalData() { protected String saveBizAndApprovalData() {
super.saveBizAndApprovalData(); super.saveBizAndApprovalData();
...@@ -132,7 +135,7 @@ public class SapPurchaseApprovalApplicationImpl extends FlowBroker implements Sa ...@@ -132,7 +135,7 @@ public class SapPurchaseApprovalApplicationImpl extends FlowBroker implements Sa
SapPurchaseApproval sapPurchaseApproval = sapPurchaseApprovalRepository.findOne(bizId); SapPurchaseApproval sapPurchaseApproval = sapPurchaseApprovalRepository.findOne(bizId);
sapPurchaseApproval.setStatusId(status.getId()); sapPurchaseApproval.setStatusId(status.getId());
sapPurchaseApprovalRepository.save(sapPurchaseApproval); sapPurchaseApprovalRepository.save(sapPurchaseApproval);
sendSapDate(sapPurchaseApproval,"Y"); sendSapData(sapPurchaseApproval,"Y");
} }
/** /**
...@@ -180,7 +183,7 @@ public class SapPurchaseApprovalApplicationImpl extends FlowBroker implements Sa ...@@ -180,7 +183,7 @@ public class SapPurchaseApprovalApplicationImpl extends FlowBroker implements Sa
SapPurchaseApproval sapPurchaseApproval = sapPurchaseApprovalRepository.findOne(bizId); SapPurchaseApproval sapPurchaseApproval = sapPurchaseApprovalRepository.findOne(bizId);
sapPurchaseApproval.setStatusId(BizBillStatus.APPLYING.getId()); sapPurchaseApproval.setStatusId(BizBillStatus.APPLYING.getId());
sapPurchaseApprovalRepository.save(sapPurchaseApproval); sapPurchaseApprovalRepository.save(sapPurchaseApproval);
sendSapDate(sapPurchaseApproval,"N"); sendSapData(sapPurchaseApproval,"N");
//终止 //终止
//workflowApplication.abortProcessInstance(delegateTask.getProcessInstanceId()); //workflowApplication.abortProcessInstance(delegateTask.getProcessInstanceId());
} }
...@@ -274,7 +277,7 @@ public class SapPurchaseApprovalApplicationImpl extends FlowBroker implements Sa ...@@ -274,7 +277,7 @@ public class SapPurchaseApprovalApplicationImpl extends FlowBroker implements Sa
/** /**
* 远程调用sap接口,传递数据 * 远程调用sap接口,传递数据
*/ */
public void sendSapDate(SapPurchaseApproval sapPurchaseApproval, String flag) { public void sendSapData(SapPurchaseApproval sapPurchaseApproval, String flag) {
List<SapPurchaseApprovalItem> approvalItemList = sapPurchaseApprovalItemApplication.querySapPurchaseApprovalItems(sapPurchaseApproval.getId()); List<SapPurchaseApprovalItem> approvalItemList = sapPurchaseApprovalItemApplication.querySapPurchaseApprovalItems(sapPurchaseApproval.getId());
List<Map<String,Object>> paramList= new ArrayList<>(); List<Map<String,Object>> paramList= new ArrayList<>();
for (SapPurchaseApprovalItem sapPurchaseApprovalItem : approvalItemList) { for (SapPurchaseApprovalItem sapPurchaseApprovalItem : approvalItemList) {
...@@ -293,18 +296,29 @@ public class SapPurchaseApprovalApplicationImpl extends FlowBroker implements Sa ...@@ -293,18 +296,29 @@ public class SapPurchaseApprovalApplicationImpl extends FlowBroker implements Sa
ObjectMapper objectMapper = new ObjectMapper(); ObjectMapper objectMapper = new ObjectMapper();
String url = "pass_approval/approval"; String url = "pass_approval/approval";
Map<String, Object> resultMap = new HashMap<>();
resultMap.put("businessType", "采购审批");
resultMap.put("businessId", sapPurchaseApproval.getId());
resultMap.put("parameter", JSON.toJSONString(param));
try { try {
String result = defaultHttpClient.execute(param, url); String result = defaultHttpClient.execute(param, url);
List<Map<String, Object>> resultList = objectMapper.readValue(result, new TypeReference<List<Map<String, Object>>>() {}); List<Map<String, Object>> resultList = objectMapper.readValue(result, new TypeReference<List<Map<String, Object>>>() {});
Map<String, Object> resultMap = resultList.get(0); Map<String, Object> backMap = resultList.get(0);
if (!"S".equals(resultMap.get("TYPE"))) { if (!"S".equals(backMap.get("TYPE"))) {
throw new RuntimeException("数据传输失败,请稍后手动重试!"+resultMap.get("MESSAGE")); throw new RuntimeException("数据传输失败,请稍后手动重试!"+backMap.get("MESSAGE"));
} else {
resultMap.put("type", backMap.get("TYPE"));
resultMap.put("MESSAGE", backMap.get("MESSAGE"));
} }
sapPurchaseApproval.setType((String) resultMap.get("TYPE")); sapPurchaseApproval.setType((String) backMap.get("TYPE"));
sapPurchaseApproval.setMessage((String) resultMap.get("MESSAGE")); sapPurchaseApproval.setMessage((String) backMap.get("MESSAGE"));
sapPurchaseApprovalRepository.save(sapPurchaseApproval); sapPurchaseApprovalRepository.save(sapPurchaseApproval);
} catch (Exception e) { } catch (Exception e) {
resultMap.put("type", "E");
resultMap.put("MESSAGE", e.getMessage());
throw new RuntimeException("数据传输失败请检查数据后重试!"+e.getMessage()); throw new RuntimeException("数据传输失败请检查数据后重试!"+e.getMessage());
}finally {
sapMutualEpLogApplication.saveSapMutualEpLog(resultMap);
} }
} }
} }
package com.huigou.topsun.sap.purchaseInfoRecord.application.impl; package com.huigou.topsun.sap.purchaseInfoRecord.application.impl;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.huigou.cache.DictUtil; import com.huigou.cache.DictUtil;
import com.huigou.cache.SystemCache; import com.huigou.cache.SystemCache;
...@@ -8,6 +9,7 @@ import com.huigou.data.domain.model.CommonDomainConstants; ...@@ -8,6 +9,7 @@ import com.huigou.data.domain.model.CommonDomainConstants;
import com.huigou.data.query.model.QueryDescriptor; import com.huigou.data.query.model.QueryDescriptor;
import com.huigou.data.query.model.QueryModel; import com.huigou.data.query.model.QueryModel;
import com.huigou.topsun.sap.common.HttpClient; import com.huigou.topsun.sap.common.HttpClient;
import com.huigou.topsun.sap.common.application.SapMutualEpLogApplication;
import com.huigou.topsun.sap.costReimbursement.domain.SapCostReimbursement; import com.huigou.topsun.sap.costReimbursement.domain.SapCostReimbursement;
import com.huigou.topsun.sap.purchaseInfoRecord.application.SapPurchaseInfoRecordApplication; import com.huigou.topsun.sap.purchaseInfoRecord.application.SapPurchaseInfoRecordApplication;
import com.huigou.topsun.sap.purchaseInfoRecord.application.SapPurchaseInfoRecordItemApplication; import com.huigou.topsun.sap.purchaseInfoRecord.application.SapPurchaseInfoRecordItemApplication;
...@@ -30,6 +32,7 @@ import org.springframework.util.Assert; ...@@ -30,6 +32,7 @@ import org.springframework.util.Assert;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.io.IOException; import java.io.IOException;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -47,6 +50,8 @@ public class SapPurchaseInfoRecordApplicationImpl extends FlowBroker implements ...@@ -47,6 +50,8 @@ public class SapPurchaseInfoRecordApplicationImpl extends FlowBroker implements
private SapPurchaseInfoRecordItemApplication sapPurchaseInfoRecordItemApplication; private SapPurchaseInfoRecordItemApplication sapPurchaseInfoRecordItemApplication;
@Resource @Resource
private HttpClient httpClient; private HttpClient httpClient;
@Autowired
SapMutualEpLogApplication sapMutualEpLogApplication;
@Transactional @Transactional
@Override @Override
...@@ -143,6 +148,10 @@ public class SapPurchaseInfoRecordApplicationImpl extends FlowBroker implements ...@@ -143,6 +148,10 @@ public class SapPurchaseInfoRecordApplicationImpl extends FlowBroker implements
if ("0".equals(sapPurchaseInfoRecordItemVo.getLoekz())){ if ("0".equals(sapPurchaseInfoRecordItemVo.getLoekz())){
sapPurchaseInfoRecordItemVo.setLoekz(""); sapPurchaseInfoRecordItemVo.setLoekz("");
} }
Map<String, Object> resultMap = new HashMap<>();
resultMap.put("businessType", "采购信息记录维护");
resultMap.put("businessId", sapPurchaseInfoRecord.getId());
resultMap.put("parameter", JSON.toJSONString(sapPurchaseInfoRecordItemVo));
try { try {
String url = SystemCache.getParameter("sap.PurchaseInfoRecord.url", String.class); String url = SystemCache.getParameter("sap.PurchaseInfoRecord.url", String.class);
String execute = httpClient.execute(sapPurchaseInfoRecordItemVo, url); String execute = httpClient.execute(sapPurchaseInfoRecordItemVo, url);
...@@ -150,12 +159,19 @@ public class SapPurchaseInfoRecordApplicationImpl extends FlowBroker implements ...@@ -150,12 +159,19 @@ public class SapPurchaseInfoRecordApplicationImpl extends FlowBroker implements
SapResult sapResult = resultList.get(0); SapResult sapResult = resultList.get(0);
if (!"S".equals(sapResult.getTYPE())){ if (!"S".equals(sapResult.getTYPE())){
throw new RuntimeException("数据传输失败,"+ sapResult.getMESSAGE()); throw new RuntimeException("数据传输失败,"+ sapResult.getMESSAGE());
} else {
resultMap.put("type", sapResult.getTYPE());
resultMap.put("MESSAGE", sapResult.getMESSAGE());
} }
sapPurchaseInfoRecordItem.setTYPE(sapResult.getTYPE()); sapPurchaseInfoRecordItem.setTYPE(sapResult.getTYPE());
sapPurchaseInfoRecordItem.setMESSAGE(sapResult.getMESSAGE()); sapPurchaseInfoRecordItem.setMESSAGE(sapResult.getMESSAGE());
sapPurchaseInfoRecordItemApplication.save(sapPurchaseInfoRecordItem); sapPurchaseInfoRecordItemApplication.save(sapPurchaseInfoRecordItem);
} catch (IOException e) { } catch (IOException e) {
resultMap.put("type", "E");
resultMap.put("MESSAGE", e.getMessage());
throw new RuntimeException(e); throw new RuntimeException(e);
}finally {
sapMutualEpLogApplication.saveSapMutualEpLog(resultMap);
} }
}); });
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment