Commit c4ca1cc0 authored by 刘学辉's avatar 刘学辉

非产品物料主数据扩展功能

parent 60a4d0de
......@@ -42,7 +42,7 @@ function loadNonProdApplyListGrid() {
Public.tip("请选择一条已审核后数据!")
return false;
}
modifyHandler(result.id);
modifyHandler(result.id,result.matnr);
//publishDatas('确实要发布数据吗?', result.id);
}
},
......@@ -54,7 +54,7 @@ function loadNonProdApplyListGrid() {
Public.tip("请选择一条已审核后数据!")
return false;
}
extendedHandler(result.id);
extendedHandler(result.id,result.matnr);;
}
},
publishHandler: {id: 'publishData', text: '数据发布', img: 'fa-map', className: 'btn-gray',
......@@ -166,7 +166,11 @@ function doView(id,maintenanceType) {
});
}
//变更
function modifyHandler(id) {
function modifyHandler(id,matnr) {
if (matnr==""){
Public.tip('当前数据没有物料编码,不能变更!');
return false;
}
UICtrl.addTabItem({
tabid: 'nonProdApplyChange',
text: "非产品/非本成品类物料主数据变更申请",
......@@ -174,7 +178,11 @@ function modifyHandler(id) {
});
}
//扩展
function extendedHandler(id) {
function extendedHandler(id,matnr) {
if (matnr==""){
Public.tip('当前数据没有物料编码,不能扩展!');
return false;
}
UICtrl.addTabItem({
tabid: 'nonProdApplyExtended',
text: "非产品/非本成品类物料主数据扩展申请",
......
......@@ -26,4 +26,9 @@ public interface NonProdApplyApplication{
String publishDataToSap(String id);
Map<String, Object> slicedNonApplyBaseInfoByMatnr(NonProdApplyBaseInfoQueryRequest query);
//获取变更或扩展前的业务部门
String getChangeBusinessUsage(String bizId,String type);
}
\ No newline at end of file
......@@ -85,7 +85,11 @@ public class NonProdApplyApplicationImpl extends FlowBroker implements NonProdA
//是变更或扩展的
if (isNew&&StringUtil.isNotBlank(nonProdApplyBaseInfo.getSourceId())) {
SapNonProdApplyDept newSapNonProdApplyDept=new SapNonProdApplyDept();
ClassHelper.copyProperties(sapNonProdApplyDept,newSapNonProdApplyDept);
if ("modify".equals(nonProdApplyBaseInfo.getMaintenanceType())) {
ClassHelper.copyProperties(sapNonProdApplyDept, newSapNonProdApplyDept);
} else { //扩展的
newSapNonProdApplyDept.setMatnr(sapNonProdApplyDept.getMatnr());
}
newSapNonProdApplyDept.setId("");
newSapNonProdApplyDept.setBaseInfoId(nonProdApplyBaseInfo.getId());
nonProdApplyDeptApplication.save(newSapNonProdApplyDept);
......@@ -99,7 +103,34 @@ public class NonProdApplyApplicationImpl extends FlowBroker implements NonProdA
// 返回业务数据给流程实例,
return ClassHelper.toMap(nonProdApplyBaseInfoRepository.getOne(bizId));
}
/*
* 任务完成前执行
*/
@Override
protected void onBeforeComplete(DelegateTask delegateTask) {
super.onBeforeComplete(delegateTask);
String bizId = delegateTask.getExecution().getProcessBusinessKey();
if (this.isApplyProcUnit(delegateTask) && this.getApprovalParameter().isAdvanceProcessAction()) {
NonProdApplyBaseInfo nonProdApplyBaseInfo = nonProdApplyBaseInfoRepository.findOne(bizId);
// BizBillStatus status = approvePassed() ? BizBillStatus.COMPLETED : BizBillStatus.ABORTED;
nonProdApplyBaseInfo.setStatusId(BizBillStatus.APPROVING.getId());
nonProdApplyBaseInfo.setApprover(getOperator().getPersonMemberName());
// nonProdApplyBaseInfo.setApprovalDate(new Date());
nonProdApplyBaseInfoRepository.save(nonProdApplyBaseInfo);
}
}
@Override
public void onComplete(DelegateTask delegateTask) {
super.onComplete(delegateTask);
String bizId = delegateTask.getExecution().getProcessBusinessKey();
//审批不通过
ApprovalParameter parameter = getApprovalParameter();
// if (ObjectUtils.equals(parameter.getHandleResult(), HandleResult.DISAGREE.id)) { //审批不通过 或者退回
// }
if (this.isApplyProcUnit(delegateTask)) { //申请后直接提交
}
}
/**
* 流程实例结束
......@@ -110,10 +141,12 @@ public class NonProdApplyApplicationImpl extends FlowBroker implements NonProdA
protected void onEnd(DelegateExecution delegateExecution) {
super.onEnd(delegateExecution);
String bizId = delegateExecution.getProcessBusinessKey();
ApprovalParameter parameter = getApprovalParameter();
BizBillStatus status = approvePassed() ? BizBillStatus.COMPLETED : BizBillStatus.ABORTED;
NonProdApplyBaseInfo nonProdApplyBaseInfo = nonProdApplyBaseInfoRepository.findOne(bizId);
if(nonProdApplyBaseInfo.getMaintenanceType().equals("modify")){ //变更的发布 分发信息
ApprovalParameter parameter = getApprovalParameter();
//审批通过
if (ObjectUtils.equals(parameter.getHandleResult(), 1)) { //同意
SapNonProdApplyDept nonProdApplyDept=nonProdApplyDeptApplication.getNonProdApplyDeptByBaseInfoId(nonProdApplyBaseInfo.getSourceId());
......@@ -220,6 +253,8 @@ public class NonProdApplyApplicationImpl extends FlowBroker implements NonProdA
model.putDictionary("itemAttributes", DictUtil.getDictionary("suppliesType"));
model.putDictionary("businessUsage", DictUtil.getDictionary("serviceusage"));
model.putDictionary("status", DictUtil.getDictionary("bizBillStatus"));
model.setSortFieldName("billCode");
model.setSortOrder("desc");
return this.sqlExecutorDao.executeSlicedQuery(model);
}
......@@ -251,9 +286,24 @@ public class NonProdApplyApplicationImpl extends FlowBroker implements NonProdA
*/
public void sendSapData(NonProdApplyBaseInfo prodApplyBaseInfo,SapNonProdApplyDept applyDept) {
Map<String, Object> map = new HashMap<>();
BsnMessageSponsor bsnMessageSponsor=bsnMessageSponsorRepository.findByBusinessId(applyDept.getApplyDeptId());
boolean canSended=true;
if (bsnMessageSponsor!=null){
List<BsnMessageExecute> bsnMsgList = bsnMessageExecuteRepository.findAllByMessageSponsorId(bsnMessageSponsor.getId());
for (BsnMessageExecute bsnMessageExecute : bsnMsgList) {
if (bsnMessageExecute.getActive() == 0) {
canSended=false;
break;
}
}
}
if (!canSended){
throw new RuntimeException("业务部门数据没有处理完,暂时不能传输!");
}
ProdApplyToSapVO sapVO=new ProdApplyToSapVO();
ClassHelper.copyProperties(prodApplyBaseInfo,sapVO);
ClassHelper.copyProperties(applyDept,sapVO);
sapVO.setUpdkz("I");
Map<String,Object> unitsaleMap = new HashMap<>();
List<Map<String,Object>> unitMapList = new ArrayList<>();
......@@ -296,4 +346,50 @@ public class NonProdApplyApplicationImpl extends FlowBroker implements NonProdA
sapMutualEpLogApplication.saveSapMutualEpLog(resultMap);
}
}
public Map<String, Object> slicedNonApplyBaseInfoByMatnr(NonProdApplyBaseInfoQueryRequest query){
QueryDescriptor queryDescriptor = this.sqlExecutorDao.getQuery(QUERY_XML_FILE_PATH, "slicedNonApplyBaseInfoByMatnr");
QueryModel model = this.sqlExecutorDao.getQueryModel(queryDescriptor, query);
model.setPageIndex(1);
model.setPageSize(100);
// if (StringUtil.isNotBlank(query.getMatnr())) {
// model.addCriteria(" and ad.matnr =:matnr");
// model.putParam("matnr", query.getMatnr());
// }
return this.sqlExecutorDao.executeSlicedQuery(model);
}
@Override
//获取变更或扩展前的业务部门
public String getChangeBusinessUsage(String bizId,String type){
//查询扩展前所有的 业务部门
SapNonProdApplyDept nonProdApplyDept = nonProdApplyDeptApplication.getNonProdApplyDeptByBaseInfoId(bizId);
NonProdApplyBaseInfoQueryRequest queryRequest=new NonProdApplyBaseInfoQueryRequest();
queryRequest.setMatnr(nonProdApplyDept.getMatnr());
Map exmap=this.slicedNonApplyBaseInfoByMatnr(queryRequest);
boolean isExistApplyStatus=false; //是否存在未完成的扩展数据
List <Map <String,Object>>extendedList=(List)exmap.get("Rows");
String usedBusiness="";
String maintenanceType="变更";
for (Map <String,Object>mapExd:extendedList) {
if (!"modify".equals(maintenanceType)) {
usedBusiness += mapExd.get("businessUsage").toString() + ",";
}
if (!"3".equals(mapExd.get("status").toString())){
isExistApplyStatus=true;
maintenanceType=mapExd.get("maintenanceType").toString().equals("extend")?"扩展":"变更";
break;
}
}
if (isExistApplyStatus&&maintenanceType.equals(type)){
throw new RuntimeException("当前物料编码"+nonProdApplyDept.getMatnr()+"已经存在"+maintenanceType+"申请中的数据!");
}
if (usedBusiness.length()>1){
usedBusiness=usedBusiness.substring(0,usedBusiness.length()-1);
}
return usedBusiness;
}
}
\ No newline at end of file
......@@ -5,7 +5,9 @@ import com.huigou.cache.DictUtil;
import com.huigou.context.Operator;
import com.huigou.context.OrgUnit;
import com.huigou.topsun.sap.nonProdApply.application.NonProdApplyApplication;
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.query.NonProdApplyBaseInfoQueryRequest;
import com.huigou.topsun.sap.suppliers.application.SuppliersDataApplication;
import com.huigou.uasp.annotation.ControllerMapping;
......@@ -28,7 +30,8 @@ public class NonProdApplyController extends CommonController {
}
@Autowired
NonProdApplyApplication nonProdApplyApplication;
@Autowired
NonProdApplyDeptApplication nonProdApplyDeptApplication;
public String forwardNonProdApplyList(){
return forward("nonProdApplyList");
......@@ -60,7 +63,9 @@ public class NonProdApplyController extends CommonController {
Map <String,String>dictMapUsage=DictUtil.getDictionary("serviceusage");
List <Map<String,String>> list=new ArrayList<>();
//for (Map maps:mapUsage){
String []usages=nonProdApplyBaseInfo.getBusinessUsage().split(",");
//查询扩展前所有的 业务部门
String usedBusiness=nonProdApplyApplication.getChangeBusinessUsage(bizId,"扩展");
String []usages=usedBusiness.split(",");//nonProdApplyBaseInfo.getBusinessUsage().split(",");
Map <String, String>mapTmp=new HashMap();
Map <String, String>unMapTmp=new HashMap();
for (Map.Entry<String, String> entry : dictMapUsage.entrySet()) {
......@@ -88,12 +93,13 @@ public class NonProdApplyController extends CommonController {
this.putAttribute("businessUsageSeledList",mapTmp);
this.putAttribute("businessUsageUnSeledList",unMapTmp);
nonProdApplyBaseInfo.setBusinessUsageSeled(nonProdApplyBaseInfo.getBusinessUsage());
// nonProdApplyBaseInfo.setBusinessUsageSeled(nonProdApplyBaseInfo.getBusinessUsage());
nonProdApplyBaseInfo.setBusinessUsageSeled(usedBusiness);
nonProdApplyBaseInfo.setApplyType("2");
this.putAttribute("bizId", "");
this.putAttribute("sourceId", bizId);
this.putAttribute("id", "");
} else {
} else { //变更
if (StringUtil.isNotBlank(bizId)) {
nonProdApplyBaseInfo = nonProdApplyApplication.loadNonProdApplyBaseInfoById(bizId);
......@@ -104,6 +110,8 @@ public class NonProdApplyController extends CommonController {
nonProdApplyBaseInfo.setId("");
nonProdApplyBaseInfo.setApplyType("1");
// suppliersInfo.setSId(bizId);
//获取变更前的业务状态
String usedBusiness=nonProdApplyApplication.getChangeBusinessUsage(bizId,"变更");
Map<String, Object> map = new HashMap();
map.put("bizId", "");
sdo.setProperties(map);
......@@ -121,6 +129,8 @@ public class NonProdApplyController extends CommonController {
return forward("nonProdApplyDetail",nonProdApplyBaseInfo);
}
public String slicedNonProdApplyList(){
SDO sdo = this.getSDO();
NonProdApplyBaseInfoQueryRequest queryRequest = sdo.toQueryRequest(NonProdApplyBaseInfoQueryRequest.class);
......@@ -148,9 +158,27 @@ public class NonProdApplyController extends CommonController {
this.putAttribute("applyType", "2");
Map <String,String>dictMapUsage=DictUtil.getDictionary("serviceusage");
NonProdApplyBaseInfo sourceNonProdApplyBaseInfo=nonProdApplyApplication.loadNonProdApplyBaseInfoById(nonProdApplyBaseInfo.getSourceId());
String []usages=sourceNonProdApplyBaseInfo.getBusinessUsage().split(",");
nonProdApplyBaseInfo.setBusinessUsageSeled(sourceNonProdApplyBaseInfo.getBusinessUsage());
// String []usages=sourceNonProdApplyBaseInfo.getBusinessUsage().split(",");
//String []exdusages=nonProdApplyBaseInfo.getBusinessUsage().split(",");
//查询扩展前所有的 业务部门
SapNonProdApplyDept nonProdApplyDept = nonProdApplyDeptApplication.getNonProdApplyDeptByBaseInfoId(id);
NonProdApplyBaseInfoQueryRequest queryRequest=new NonProdApplyBaseInfoQueryRequest();
queryRequest.setMatnr(nonProdApplyDept.getMatnr());
Map exmap=nonProdApplyApplication.slicedNonApplyBaseInfoByMatnr(queryRequest);
List <Map <String,Object>>extendedList=(List)exmap.get("Rows");
String usedBusiness="";
for (Map <String,Object>mapExd:extendedList) {
usedBusiness+=mapExd.get("businessUsage").toString()+",";
}
if (usedBusiness.length()>1){
usedBusiness=usedBusiness.substring(0,usedBusiness.length()-1);
}
usedBusiness=usedBusiness.replaceAll(nonProdApplyBaseInfo.getBusinessUsage(),"");//去掉本次的
nonProdApplyBaseInfo.setBusinessUsageSeled(usedBusiness);
String []usages=usedBusiness.split(",");
Map <String, String>mapTmp=new HashMap();
Map <String, String>unMapTmp=new HashMap();
for (Map.Entry<String, String> entry: dictMapUsage.entrySet()) {
......@@ -192,7 +220,7 @@ public class NonProdApplyController extends CommonController {
public String publishDataToSap(){
SDO sdo = this.getSDO();
System.out.println("id============"+sdo.getString("id"));
// System.out.println("id============"+sdo.getString("id"));
nonProdApplyApplication.publishDataToSap(sdo.getString("id"));
return success();
}
......
......@@ -13,6 +13,7 @@ import com.huigou.topsun.sap.nonProdApply.application.NonProdApplyApplication;
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.query.NonProdApplyBaseInfoQueryRequest;
import com.huigou.uasp.annotation.ControllerMapping;
import com.huigou.uasp.bmp.opm.application.OrgApplication;
import com.huigou.uasp.bmp.opm.domain.model.org.Org;
......@@ -63,8 +64,12 @@ public class NonProdApplyNextController extends CommonController {
this.putAttribute("applyType", "2");
Map <String,String>dictMapUsage=DictUtil.getDictionary("serviceusage");
NonProdApplyBaseInfo sourceNonProdApplyBaseInfo=nonProdApplyApplication.loadNonProdApplyBaseInfoById(nonProdApplyBaseInfo.getSourceId());
String []usages=sourceNonProdApplyBaseInfo.getBusinessUsage().split(",");
nonProdApplyBaseInfo.setBusinessUsageSeled(sourceNonProdApplyBaseInfo.getBusinessUsage());
String usedBusiness=nonProdApplyApplication.getChangeBusinessUsage(id,"扩展");
//去掉当前的
usedBusiness=usedBusiness.replaceAll(nonProdApplyBaseInfo.getBusinessUsage(),"");
String []usages=usedBusiness.split(",");//sourceNonProdApplyBaseInfo.getBusinessUsage().split(",");
nonProdApplyBaseInfo.setBusinessUsageSeled(usedBusiness);
//String []exdusages=nonProdApplyBaseInfo.getBusinessUsage().split(",");
Map <String, String>mapTmp=new HashMap();
Map <String, String>unMapTmp=new HashMap();
......
......@@ -2,8 +2,10 @@ package com.huigou.topsun.sap.nonProdApply.repository;
import com.huigou.topsun.sap.nonProdApply.domain.NonProdApplyBaseInfo;
import com.huigou.topsun.sap.nonProdApply.domain.SapNonProdApplyDept;
import org.springframework.data.jpa.repository.JpaRepository;
public interface NonProdApplyBaseInfoRepository extends JpaRepository<NonProdApplyBaseInfo,String> {
}
......@@ -6,5 +6,11 @@
</sql-query>
<!-- <condition column="stats_indicators_id" name="statsIndicatorsId" type="java.lang.String" symbol="=" alias="t"/>-->
</query>
<query name="slicedNonApplyBaseInfoByMatnr" label="按物料编号查询扩展前数据" table="sap_non_prod_apply_base_info">
<sql-query>
select business_usage,status,maintenance_type from sap_non_prod_apply_base_info t where t.id in (
select base_info_id from sap_non_prod_apply_dept where MATNR=:matnr)
</sql-query>
<!--condition column="matnr" name="matnr" type="java.lang.String" symbol="=" alias="t"/-->
</query>
</query-mappings>
\ No newline at end of file
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