Commit 036cb5be authored by 刘学辉's avatar 刘学辉

接收SAP产品主数据接口以及分发的调整

parent 46755e1e
......@@ -77,6 +77,15 @@ function loadNonProdApplyListGrid() {
{display: "申请人", name: "personMemberName", width: 100, minWidth: 60, type: "string", align: "left"},
{display: "申请部门", name: "deptName", width: 120, minWidth: 60, type: "string", align: "left"},
{display: "申请日期", name: "fillinDate", width: 120, minWidth: 60, type: "date", align: "left"},
{display: "类型", name: "kind", width: 80, minWidth: 60, type: "string", align: "left",
render:function(item){
var type = "物料";
if (item.kind === "product"){
type="产品";
}
return type;
}
},
{display: "维护类型", name: "maintenanceTypeTextView", width: 100, minWidth: 60, type: "string", align: "left"},
{display: "批准人", name: "approver", width: 100, minWidth: 60, type: "string", align: "left"},
{display: "批准日期", name: "approvalDate", width: 140, minWidth: 60, type: "date", align: "left"},
......
......@@ -250,13 +250,14 @@ function bindEvent() {
$('#spartName').val(data.VTEXT);
}
});
$('#meins').searchbox({
$('#meinsName').searchbox({
type: "system", name: "dictionary",
getParam: function (item) {
return {fieldName: "MEINS"}
},
onChange: function (value, data) {
$('#meins').val(data.MSEH3);
$('#meinsName').val(data.MSEH3);
}
});
$('#werksName').searchbox({
......
......@@ -19,6 +19,7 @@ public interface BsnMessageApplication {
*/
String keepTasks(BsnMessageSponsor bsnMessageSponsor);
void saveBsnMessageExecute(List<BsnMessageExecute> all);
/**
* 发布任务
* @param bId 表单单号
......
......@@ -43,7 +43,7 @@ public class BsnMessageApplicationImpl extends BaseApplication implements BsnMes
//封装任务发布人自己的审批任务
BsnMessageExecute execute = new BsnMessageExecute();
execute.setUpdateDate(new Date());
execute.setTaskExecute(this.getOperator().getUserId());
// execute.setTaskExecute(this.getOperator().getUserId());
execute.setTaskDescribe("各单位已完成[发起人审核]");
execute.setBusinessCode("system");
execute.setActive(ActiveStatus.SAVED.getValue());
......@@ -195,7 +195,7 @@ public class BsnMessageApplicationImpl extends BaseApplication implements BsnMes
return keyId;
}
@Override
public void saveBsnMessageExecute(List<BsnMessageExecute> all) {
messageExecuteRepository.save(all);
}
......
......@@ -2,6 +2,8 @@ package com.huigou.topsun.sap.nonProdApply.application;
import com.huigou.topsun.sap.nonProdApply.domain.NonProdApplyBaseInfo;
import com.huigou.topsun.sap.nonProdApply.domain.query.NonProdApplyBaseInfoQueryRequest;
import com.huigou.topsun.sap.nonProdApply.domain.vo.ProdApplyFromSapVO;
import java.util.List;
import java.util.Map;
......@@ -31,4 +33,6 @@ public interface NonProdApplyApplication{
//获取变更或扩展前的业务部门
String getChangeBusinessUsage(String bizId,String type);
//保存来自SAP的产品申请
void saveProdApplyFromSapVO(ProdApplyFromSapVO prodApplyFromSapVO);
}
\ No newline at end of file
......@@ -33,6 +33,10 @@ public interface NonProdApplyDeptApplication {
SapNonProdApplyDept getNonProdApplyDeptById(String id);
SapNonProdApplyDept getNonProdApplyDeptByBaseInfoId(String id);
SapNonProdApplyDept getNonProdApplyDeptByMatnr(String matnr);
void deleteSapNonProdApplyDept(SapNonProdApplyDept sapNonProdApplyDept);
/**
* 驳回相关的部门
* @param sdo
......
......@@ -6,6 +6,8 @@ import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.gson.Gson;
import com.huigou.cache.DictUtil;
import com.huigou.context.Operator;
import com.huigou.context.OrgUnit;
import com.huigou.data.query.model.QueryDescriptor;
import com.huigou.data.query.model.QueryModel;
import com.huigou.topsun.base.bsnMessage.appliction.BsnMessageApplication;
......@@ -21,15 +23,12 @@ import com.huigou.topsun.sap.nonProdApply.application.NonProdApplyDeptApplicatio
import com.huigou.topsun.sap.nonProdApply.domain.NonProdApplyBaseInfo;
import com.huigou.topsun.sap.nonProdApply.domain.SapNonProdApplyDept;
import com.huigou.topsun.sap.nonProdApply.domain.query.NonProdApplyBaseInfoQueryRequest;
import com.huigou.topsun.sap.nonProdApply.domain.vo.ProdApplyFromSapVO;
import com.huigou.topsun.sap.nonProdApply.domain.vo.ProdApplyToSapVO;
import com.huigou.topsun.sap.nonProdApply.repository.NonProdApplyBaseInfoRepository;
import com.huigou.topsun.sap.nonProdApply.repository.NonProdApplyDeptRepository;
import com.huigou.topsun.sap.suppliers.domain.SuppliersBank;
import com.huigou.topsun.sap.suppliers.domain.SuppliersBuyer;
import com.huigou.topsun.sap.suppliers.domain.SuppliersInfo;
import com.huigou.topsun.sap.suppliers.domain.SuppliersPay;
import com.huigou.topsun.util.CommonUtil;
import com.huigou.uasp.bmp.common.BizBillStatus;
import com.huigou.uasp.bmp.operator.OperatorApplication;
import com.huigou.uasp.bpm.ApprovalParameter;
import com.huigou.uasp.bpm.FlowBroker;
import com.huigou.uasp.bpm.HandleResult;
......@@ -45,6 +44,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.*;
@Service("nonProdApplyApplication")
......@@ -63,6 +63,8 @@ public class NonProdApplyApplicationImpl extends FlowBroker implements NonProdA
DefaultHttpClient defaultHttpClient;
@Autowired
SapMutualEpLogApplication sapMutualEpLogApplication;
@Resource
private OperatorApplication operatorApplication;
@SneakyThrows
@Transactional(propagation = Propagation.REQUIRES_NEW)
......@@ -81,6 +83,7 @@ public class NonProdApplyApplicationImpl extends FlowBroker implements NonProdA
} else {
nonProdApplyBaseInfo = (NonProdApplyBaseInfo) commonDomainService.loadAndFillinProperties(nonProdApplyBaseInfo);
}
nonProdApplyBaseInfo.setKind("materiel");
nonProdApplyBaseInfo = nonProdApplyBaseInfoRepository.save(nonProdApplyBaseInfo);
//是变更或扩展的
if (isNew&&StringUtil.isNotBlank(nonProdApplyBaseInfo.getSourceId())) {
......@@ -271,6 +274,10 @@ public class NonProdApplyApplicationImpl extends FlowBroker implements NonProdA
@Transactional
public void deleteNonProdApplyBaseInfoByIds(List<String> ids) {
ids.forEach(this::deleteNonProdApplyBaseInfoById);
for (String id:ids) {
nonProdApplyDeptApplication.deleteSapNonProdApplyDept(nonProdApplyDeptApplication.getNonProdApplyDeptByBaseInfoId(id));
}
}
@Override
......@@ -392,4 +399,74 @@ public class NonProdApplyApplicationImpl extends FlowBroker implements NonProdA
}
return usedBusiness;
}
@Override
@Transactional
public void saveProdApplyFromSapVO(ProdApplyFromSapVO prodApplyFromSapVO) {
//初始化用户信息
String createdById = "5EEB2DC861694A65933CB4CE9A8D870A@C18E23AAAA6940E09DF7C122332C51E0";
Operator operator = operatorApplication.createOperatorByPersonMemberId(createdById);
try {
NonProdApplyBaseInfo nonProdApplyBaseInfo = new NonProdApplyBaseInfo();
SapNonProdApplyDept sapNonProdApplyDept = new SapNonProdApplyDept();
ClassHelper.copyProperties(prodApplyFromSapVO, nonProdApplyBaseInfo);
nonProdApplyBaseInfo.setStatusId(BizBillStatus.COMPLETED.getId());
nonProdApplyBaseInfo.setApprover(operator.getPersonMemberName());
nonProdApplyBaseInfo.setDefaultValues(new OrgUnit(operator.getFullId(), operator.getFullName()));
nonProdApplyBaseInfo.setMaintenanceType("new");
nonProdApplyBaseInfo.setApprovalDate(new Date());
nonProdApplyBaseInfo.setKind("product");
nonProdApplyBaseInfo = nonProdApplyBaseInfoRepository.save(nonProdApplyBaseInfo);
ClassHelper.copyProperties(prodApplyFromSapVO,sapNonProdApplyDept);
sapNonProdApplyDept.setBaseInfoId(nonProdApplyBaseInfo.getId());
nonProdApplyDeptApplication.save(sapNonProdApplyDept);
//保存基本信息的维护的待办
// saveDeptStaff(deptStaffList, nonProdApplyDept.getApplyDeptId(),genericName);
BsnMessageSponsor bsnMessageSponsor = new BsnMessageSponsor();
bsnMessageSponsor.setTaskSponsor(operator.getLoginUser().getId());
bsnMessageSponsor.setTitle(nonProdApplyBaseInfo.getGenericName());//通用品名
bsnMessageSponsor.setExecutorUrl("sapNonProdApplyNext/forwardNonProdApplyNext.do?prod=1");
bsnMessageSponsor.setBusinessId(sapNonProdApplyDept.getApplyDeptId());
bsnMessageSponsor.setCreateDate(new Date());
bsnMessageSponsor.setStatus(0);
//List<Map<String, String>> deptStaffList=new ArrayList<>();
//Map <String,String>map=new HashMap<String, String>();
// map.put("");
//deptStaffList.add(map);
// for (Map<String, String> stringMap : deptStaffList) {
BsnMessageExecute messageExecute = new BsnMessageExecute();
String userCode = operator.getPersonMemberId();//stringMap.get("userCode");
String deptName = operator.getDeptName();//stringMap.get("deptName");
String deptCode = operator.getDeptCode();//stringMap.get("deptCode");
String[] split = userCode.split("@");
messageExecute.setTaskExecute(split[0]);
messageExecute.setBusinessCode(deptCode);
messageExecute.setActive(ActiveStatus.UNFINISHED.getValue());
messageExecute.setUpdateDate(new Date());
messageExecute.setTaskDescribe(deptName+"产品数据维护");
//保存任务
// bsnMessageApplication.keepTasks(bsnMessageSponsor);
bsnMessageApplication.saveBsnMessageSponsor(bsnMessageSponsor);
messageExecute.setMessageSponsorId(bsnMessageSponsor.getId());
List<BsnMessageExecute> executes =new ArrayList<>();
executes.add(messageExecute);
bsnMessageApplication.saveBsnMessageExecute(executes);
// bsnMessageApplication.publishTasks(sapNonProdApplyDept.getApplyDeptId());
}catch(Exception ex){
ex.printStackTrace();
}
}
}
\ No newline at end of file
......@@ -8,8 +8,10 @@ import com.huigou.topsun.base.bsnMessage.appliction.BsnMessageApplication;
import com.huigou.topsun.base.bsnMessage.domain.*;
import com.huigou.topsun.sap.nonProdApply.application.NonProdApplyDeptApplication;
import com.huigou.topsun.sap.nonProdApply.domain.NonProdApplyBaseInfo;
import com.huigou.topsun.sap.nonProdApply.domain.SapNonProdApplyDept;
import com.huigou.topsun.sap.nonProdApply.domain.vo.*;
import com.huigou.topsun.sap.nonProdApply.repository.NonProdApplyBaseInfoRepository;
import com.huigou.topsun.sap.nonProdApply.repository.NonProdApplyDeptRepository;
import com.huigou.uasp.bmp.common.application.BaseApplication;
......@@ -28,14 +30,22 @@ public class NonProdApplyDeptApplicationImpl extends BaseApplication implements
NonProdApplyDeptRepository nonProdApplyDeptRepository;
@Autowired
BsnMessageApplication bsnMessageApplication;
@Autowired
NonProdApplyBaseInfoRepository nonProdApplyBaseInfoRepository;
@Override
public Map<String,Object> saveSapNonProdApplyDept(SDO sdo){
Map<String,Object> map = new HashMap<>();
String businessCode=sdo.getString("businessCode");
String baseId=sdo.getString("id");
String genericName=sdo.getString("genericName");
Integer active=sdo.getInteger("active");
String meId=sdo.getString("meId");
NonProdApplyBaseInfo nonProdApplyBaseInfo=nonProdApplyBaseInfoRepository.findOne(sdo.getString("id"));
nonProdApplyBaseInfo.setBusinessUsage(sdo.getString("businessUsage"));
nonProdApplyBaseInfoRepository.save(nonProdApplyBaseInfo);
NonProdApplyDeptVo deptVo=null;
switch (businessCode) {
case "K":
......@@ -172,6 +182,14 @@ public class NonProdApplyDeptApplicationImpl extends BaseApplication implements
public SapNonProdApplyDept getNonProdApplyDeptByBaseInfoId(String baseInfoId) {
return nonProdApplyDeptRepository.findByBaseInfoId(baseInfoId);
}
@Override
public SapNonProdApplyDept getNonProdApplyDeptByMatnr(String matnr){
return nonProdApplyDeptRepository.findByMatnr(matnr);
}
@Override
public void deleteSapNonProdApplyDept(SapNonProdApplyDept sapNonProdApplyDept){
nonProdApplyDeptRepository.delete(sapNonProdApplyDept);
}
@Override
public void rejectNonProdApplyDept(SDO sdo) {
......
......@@ -9,14 +9,21 @@ import com.huigou.topsun.sap.nonProdApply.application.NonProdApplyDeptApplicatio
import com.huigou.topsun.sap.nonProdApply.domain.NonProdApplyBaseInfo;
import com.huigou.topsun.sap.nonProdApply.domain.SapNonProdApplyDept;
import com.huigou.topsun.sap.nonProdApply.domain.query.NonProdApplyBaseInfoQueryRequest;
import com.huigou.topsun.sap.nonProdApply.domain.vo.ProdApplyFromSapVO;
import com.huigou.topsun.sap.purchaseApproval.controller.SapPurchaseApprovalController;
import com.huigou.topsun.sap.purchaseApproval.domain.vo.SapPurchaseApprovalDto;
import com.huigou.topsun.sap.suppliers.application.SuppliersDataApplication;
import com.huigou.uasp.annotation.ControllerMapping;
import com.huigou.uasp.annotation.SkipAuth;
import com.huigou.uasp.bmp.common.BizBillStatus;
import com.huigou.uasp.client.CommonController;
import com.huigou.util.SDO;
import com.huigou.util.StringUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import java.text.SimpleDateFormat;
import java.util.*;
......@@ -33,6 +40,8 @@ public class NonProdApplyController extends CommonController {
@Autowired
NonProdApplyDeptApplication nonProdApplyDeptApplication;
private final static Logger LOG = LoggerFactory.getLogger(NonProdApplyController.class);
public String forwardNonProdApplyList(){
return forward("nonProdApplyList");
}
......@@ -47,6 +56,7 @@ public class NonProdApplyController extends CommonController {
NonProdApplyBaseInfo nonProdApplyBaseInfo = new NonProdApplyBaseInfo();
nonProdApplyBaseInfo.setMaintenanceType("new");
nonProdApplyBaseInfo.setApplyType("0");
nonProdApplyBaseInfo.setKind("materiel");
if (StringUtil.isNotBlank(extended)){ //扩展流程
nonProdApplyBaseInfo = nonProdApplyApplication.loadNonProdApplyBaseInfoById(bizId);
this.putAttribute("processDefinitionKey", NonProdApplyApplication.PROCESS_DEFINITION_KEY_EXD);
......@@ -224,6 +234,30 @@ public class NonProdApplyController extends CommonController {
nonProdApplyApplication.publishDataToSap(sdo.getString("id"));
return success();
}
@SkipAuth
@RequestMapping( value = "/getSapProductApply")
@ResponseBody
public HashMap<String, Object> getSapProductApply(@RequestBody ProdApplyFromSapVO prodApplyFromSapVO){
//SDO sdo = this.getSDO();
HashMap<String, Object> messageMap = new HashMap<>();
messageMap.put("Message_Status","S");
messageMap.put("Message_Text","成功");
LOG.info("接收SAP产品申请数据=={}",prodApplyFromSapVO);
try {
SapNonProdApplyDept sapNonProdApplyDept=nonProdApplyDeptApplication.getNonProdApplyDeptByMatnr(prodApplyFromSapVO.getMatnr());
if (sapNonProdApplyDept!=null){
messageMap.put("Message_Status","E");
messageMap.put("Message_Text","物料编号"+prodApplyFromSapVO.getMatnr()+"已经存在!");
} else {
nonProdApplyApplication.saveProdApplyFromSapVO(prodApplyFromSapVO);
}
}catch (RuntimeException e){
messageMap.put("Message_Status","E");
messageMap.put("Message_Text",e);
}
return messageMap;
}
}
......@@ -52,6 +52,10 @@ public class NonProdApplyNextController extends CommonController {
SDO sdo = this.getSDO();
String id = sdo.getBizId();
// this.putAttribute("active", ActiveStatus.UNFINISHED.getValue() );//定义流程环节的id
if (StringUtil.isNotBlank(sdo.getString("prod"))){
SapNonProdApplyDept applyDept=nonProdApplyDeptApplication.getNonProdApplyDeptById(id);
id=applyDept.getBaseInfoId();
}
NonProdApplyBaseInfo nonProdApplyBaseInfo = nonProdApplyApplication.loadNonProdApplyBaseInfoById(id);
nonProdApplyBaseInfo.setApplyType("0");
this.putAttribute("applyType", "0");
......@@ -119,8 +123,11 @@ public class NonProdApplyNextController extends CommonController {
}
// String applyDeptId = sdo.getString("applyDeptId");
// List<BsnMessage> bsnMessageAll = bsnMessageApplication.getBsnMessageByBusinessId(applyDeptId);
List<String> deptList = Arrays.asList(septString.split(","));
Map<String, String> serviceusage = DictUtil.getDictionary("serviceusage");
List<String> deptList =new ArrayList<>();
if (StringUtil.isNotBlank(septString)){
deptList=Arrays.asList(septString.split(","));
}
Map<String, String> serviceusage = DictUtil.getDictionary("serviceusage");
String deptId=sdo.getString("deptId");
BsnMessageSponsor sponsor = bsnMessageSponsorRepository.findByBusinessId(deptId);
List<HashMap<String, String>> list = new ArrayList<>();
......
......@@ -116,6 +116,11 @@ public class NonProdApplyBaseInfo extends FlowBillAbstractEntity {
@Column(name = "source_id")
private String sourceId;
//materiel表示物料 /product 产品
@Column(name = "kind")
private String kind;
@Transient
private String applyType;
......
......@@ -11,4 +11,5 @@ public interface NonProdApplyDeptRepository extends JpaRepository<SapNonProdAppl
SapNonProdApplyDept findByBaseInfoId(String baseInfoId);
SapNonProdApplyDept findByApplyDeptId(String applyDeptId);
SapNonProdApplyDept findByMatnr(String matnr);
}
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