Commit d9ac5f17 authored by wanghang's avatar wanghang

订单采购

parent 9b922301
...@@ -68,9 +68,9 @@ function getExtendedData(processAction) { ...@@ -68,9 +68,9 @@ function getExtendedData(processAction) {
$('#submitForm').attr('check', false); $('#submitForm').attr('check', false);
} }
if($("#proofingApplySampleCnName").prop("readonly")){ if($("#proofingApplySampleCnName").prop("readonly")){
let technologyResult =getTableDateAll(technologyObj)[0]; let technologyResult =getTableDataAll(technologyObj)[0];
let processResult = getTableDateAll(processObj); let processResult = getTableDataAll(processObj);
let processMaterialResult = getTableDateAll(processBomObj); let processMaterialResult = getTableDataAll(processBomObj);
let extendedData = {}; let extendedData = {};
extendedData.technology = Public.encodeJSONURI(technologyResult); extendedData.technology = Public.encodeJSONURI(technologyResult);
extendedData.process = Public.encodeJSONURI(processResult); extendedData.process = Public.encodeJSONURI(processResult);
......
...@@ -384,7 +384,7 @@ function getTableResult() { ...@@ -384,7 +384,7 @@ function getTableResult() {
return extendedData; return extendedData;
} }
function getTableDateAll(obj) { function getTableDataAll(obj) {
let result = DataUtil.getGridData({ let result = DataUtil.getGridData({
gridManager: obj.gridManager, gridManager: obj.gridManager,
isAllData: true isAllData: true
......
...@@ -477,7 +477,7 @@ function getExtendedData(processAction) { ...@@ -477,7 +477,7 @@ function getExtendedData(processAction) {
//不验证 //不验证
$('#submitForm').attr('check', false); $('#submitForm').attr('check', false);
} }
let resultArray = useArrayTable(getTableDateAll); let resultArray = useArrayTable(getTableDataAll);
//根据zepItemno将各列表属性合并为一个完整实体 //根据zepItemno将各列表属性合并为一个完整实体
const result = resultArray[0].map((obj1) => { const result = resultArray[0].map((obj1) => {
...@@ -498,7 +498,7 @@ function getExtendedData(processAction) { ...@@ -498,7 +498,7 @@ function getExtendedData(processAction) {
} }
function getTableDateAll(obj) { function getTableDataAll(obj) {
let result = DataUtil.getGridData({ let result = DataUtil.getGridData({
gridManager: obj.gridManager, gridManager: obj.gridManager,
isAllData: true isAllData: true
...@@ -516,7 +516,7 @@ function useArrayTable(func, ...data) { ...@@ -516,7 +516,7 @@ function useArrayTable(func, ...data) {
//获取最新子序号(维护实体的标识) //获取最新子序号(维护实体的标识)
function getZepItemNo(){ function getZepItemNo(){
let result =getTableDateAll(tableArray[tableArray.length-1]); let result =getTableDataAll(tableArray[tableArray.length-1]);
let zepItemNo="001"; let zepItemNo="001";
if(result.length>0){ if(result.length>0){
//获取上一个节点的子序值 //获取上一个节点的子序值
......
...@@ -3,7 +3,6 @@ $(function () { ...@@ -3,7 +3,6 @@ $(function () {
}); });
function getId() { function getId() {
return $('#id').val(); return $('#id').val();
} }
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
</head> </head>
<body> <body>
<div class="container-fluid"> <div class="container-fluid">
<x:billTitle title="采购申请" needStatus="true" needPerson="true"/> <x:billTitle title="采购订单" needStatus="true" needPerson="true"/>
<form class="hg-form" method="post" action="" id="submitForm"> <form class="hg-form" method="post" action="" id="submitForm">
<x:hidden name="id"/> <x:hidden name="id"/>
<x:hidden name="version"/> <x:hidden name="version"/>
...@@ -31,8 +31,6 @@ ...@@ -31,8 +31,6 @@
<x:inputC name="ebeln" label="采购订单号码" readonly="false" labelCol="1" fieldCol="2" required="true"/> <x:inputC name="ebeln" label="采购订单号码" readonly="false" labelCol="1" fieldCol="2" required="true"/>
<x:inputC name="bsart" label="采购订单类型" readonly="false" labelCol="1" fieldCol="2" required="true"/> <x:inputC name="bsart" label="采购订单类型" readonly="false" labelCol="1" fieldCol="2" required="true"/>
<x:inputC name="batxt" label="采购订单类型描述" readonly="false" labelCol="1" fieldCol="2" required="true"/> <x:inputC name="batxt" label="采购订单类型描述" readonly="false" labelCol="1" fieldCol="2" required="true"/>
<x:inputC name="purchaseOrderId" label="id" readonly="false" labelCol="1" fieldCol="2" required="true"/> <x:inputC name="purchaseOrderId" label="id" readonly="false" labelCol="1" fieldCol="2" required="true"/>
<x:inputC name="ebelp" label="项目编号" readonly="false" labelCol="1" fieldCol="2" required="true"/> <x:inputC name="ebelp" label="项目编号" readonly="false" labelCol="1" fieldCol="2" required="true"/>
<x:inputC name="pstyp" label="项目类别" readonly="false" labelCol="1" fieldCol="2" required="true"/> <x:inputC name="pstyp" label="项目类别" readonly="false" labelCol="1" fieldCol="2" required="true"/>
...@@ -45,7 +43,7 @@ ...@@ -45,7 +43,7 @@
<x:inputC name="menge" label="采购订单数量" readonly="false" labelCol="1" fieldCol="2" required="true"/> <x:inputC name="menge" label="采购订单数量" readonly="false" labelCol="1" fieldCol="2" required="true"/>
<x:inputC name="meins" label="采购订单计量单位" readonly="false" labelCol="1" fieldCol="2" required="true"/> <x:inputC name="meins" label="采购订单计量单位" readonly="false" labelCol="1" fieldCol="2" required="true"/>
<x:inputC name="msehl" label="单位描述" readonly="false" labelCol="1" fieldCol="2" required="true"/> <x:inputC name="msehl" label="单位描述" readonly="false" labelCol="1" fieldCol="2" required="true"/>
<x:inputC name="eindt" label="要求交货日期" readonly="false" labelCol="1" fieldCol="2" required="true"/> <x:inputC name="eindt" label="要求交货日期" readonly="false" wrapper="date" labelCol="1" fieldCol="2" required="true"/>
<x:inputC name="werks" label="工厂" readonly="false" labelCol="1" fieldCol="2" required="true"/> <x:inputC name="werks" label="工厂" readonly="false" labelCol="1" fieldCol="2" required="true"/>
<x:inputC name="name1" label="名称" readonly="false" labelCol="1" fieldCol="2" required="true"/> <x:inputC name="name1" label="名称" readonly="false" labelCol="1" fieldCol="2" required="true"/>
<x:inputC name="lgort" label="库存地点" readonly="false" labelCol="1" fieldCol="2" required="true"/> <x:inputC name="lgort" label="库存地点" readonly="false" labelCol="1" fieldCol="2" required="true"/>
......
var purchaseOrderGridManager = null; var purchaseOrderGridManager = null;
$(document).ready(function () { $(document).ready(function () {
initUI(); initUI();
initPurchaseListGrid(); loadGrid();
} }
); );
...@@ -9,28 +9,28 @@ function initUI() { ...@@ -9,28 +9,28 @@ function initUI() {
UICtrl.initDefaultLayout(); UICtrl.initDefaultLayout();
} }
function initPurchaseListGrid() { function loadGrid() {
// var toolbarOptions = UICtrl.getDefaultToolbarOptions({ // var toolbarOptions = UICtrl.getDefaultToolbarOptions({
// addHandler: addHandler, // addHandler: addHandler,
// }); // });
debugger
purchaseOrderGridManager = UICtrl.grid('#purchaseOrderGrid', { purchaseOrderGridManager = UICtrl.grid('#purchaseOrderGrid', {
columns: [ columns: [
{display: "状态", name: "statusTextView", width: "100", align: "left", type: "string"} {display: "状态", name: "statusTextView", width: "100", align: "left", type: "string"}
, {display: "id", name: "id", width: "140", align: "left", type: "string", hide: true} , {display: "id", name: "id", width: "140", align: "left", type: "string", hide: true}
, {display: "需求跟踪编号", name: "billCode", width: 150, minWidth: 60, type: "string", align: "center"} , {display: "需求跟踪编号", name: "billCode", width: 150, minWidth: 60, type: "string", align: "center"}
, {display: "采购申请类型描述", name: "batxt", width: 150, minWidth: 60, type: "string", align: "center"} , {display: "采购订单号码", name: "ebeln", width: 150, minWidth: 60, type: "string", align: "center"}
, {display: "采购申请编号", name: "banfn", width: 150, minWidth: 60, type: "string", align: "center"} , {display: "采购订单类型", name: "bsart", width: 150, minWidth: 60, type: "string", align: "center"}
, {display: "采购订单类型描述", name: "batxt", width: 150, minWidth: 60, type: "string", align: "center"}
], ],
dataAction: 'server', dataAction: 'server',
url: web_app.name + '/sapPurchaseOrder/slicedSapPurchaseOrderList.ajax?', url: web_app.name + '/sapPurchaseOrder/slicedSapPurchaseOrderList.ajax?',
//parms: {requireItemId: $("#prepareItemId").val()}, //parms: {requireItemId: $("#prepareItemId").val()},
toolbar: toolbarOptions, // toolbar: toolbarOptions,
width: '99.8%', width: '99.8%',
height: '100%', height: '100%',
pageSize: 100, pageSize: 100,
heightDiff: -4, heightDiff: -4,
//sortName: 'lastModifiedDate',
//sortOrder: 'desc',
checkbox: true, checkbox: true,
usePager: true, usePager: true,
rownumbers: true, rownumbers: true,
...@@ -46,9 +46,6 @@ function initPurchaseListGrid() { ...@@ -46,9 +46,6 @@ function initPurchaseListGrid() {
, ,
onDblClickRow: function (data, rowindex, rowobj) { onDblClickRow: function (data, rowindex, rowobj) {
viewHandler(data.id); viewHandler(data.id);
},
onAfterShowData: function (currentData) {
} }
} }
); );
...@@ -75,14 +72,6 @@ function viewHandler(id) { ...@@ -75,14 +72,6 @@ function viewHandler(id) {
}); });
} }
//
// function addHandler() {
// UICtrl.addTabItem({
// tabid: 'addPurchase',
// text: '新增采购审批',
// url: web_app.name + '/sapPurchaseOrder/forwardSapPurchaseOrderDetail.job'
// });
// }
function reloadPurchaseGrid() { function reloadPurchaseGrid() {
......
...@@ -14,11 +14,10 @@ function initialize(){ ...@@ -14,11 +14,10 @@ function initialize(){
function loadStatsIndicatorsDetailListGrid() { function loadStatsIndicatorsDetailListGrid() {
var toolbarOptions = UICtrl.getDefaultToolbarOptions({ var toolbarOptions = UICtrl.getDefaultToolbarOptions({
addHandler: function () { addHandler: function () {
UICtrl.addGridRow(gridManager,{ zlenr: gridManager.getData().length + 1 }); UICtrl.addGridRow(gridManager,{ zlenr: getZlenr() });
}, },
deleteHandler: function () { deleteHandler: function () {
var _grid = UICtrl.getGridManager('#statsIndicatorsDetailGrid'); gridManager.deleteSelectedRow();
_grid.deleteSelectedRow();//删除fieldCol="2"节点
} }
}); });
gridManager = UICtrl.grid("#statsIndicatorsDetailGrid", { gridManager = UICtrl.grid("#statsIndicatorsDetailGrid", {
...@@ -146,3 +145,15 @@ function getExtendedData(processAction) { ...@@ -146,3 +145,15 @@ function getExtendedData(processAction) {
} }
return extendedData; return extendedData;
} }
//获取最新子序号(维护实体的标识)
function getZlenr(){
let result =gridManager.getData();
let zlenr="001";
if(result.length>0){
//获取上一个节点的子序值
let wornNo= parseInt(result[result.length-1]["zlenr"], 10);
zlenr=("00" + (wornNo + 1)).slice(-3);
}
return zlenr;
}
\ No newline at end of file
...@@ -30,25 +30,14 @@ public class DefinitionHomepageTaskData extends BaseApplication { ...@@ -30,25 +30,14 @@ public class DefinitionHomepageTaskData extends BaseApplication {
public Map<String, Object> replaceQueryTrackingTasks(){ public Map<String, Object> replaceQueryTrackingTasks(){
// 当前登录用户是否以任务发起人的身份发起过任务 // 当前登录用户是否以任务发起人的身份发起过任务
List<BsnMessageSponsor> messageSponsors = bsnMessageApplication.queryFinishBsnMessageSponsor(); List<BsnMessageSponsor> messageSponsors = bsnMessageApplication.queryFinishBsnMessageSponsor();
if (messageSponsors!=null&&!messageSponsors.isEmpty()) {
// 若有发起过任务且所有的执行人执行完毕,则由系统创建一份审批任务给当前用户 // 若有发起过任务且所有的执行人执行完毕,则由系统创建一份审批任务给当前用户
for (BsnMessageSponsor sponsor : messageSponsors) { for (BsnMessageSponsor sponsor : messageSponsors) {
List<BsnMessageExecute> executes = new ArrayList<>(); //该流程下是否所有单位已就绪
//验证状态防止多次创建任务 BsnMessageExecute systemExecute = bsnMessageApplication.isExecutesReady(sponsor.getId());
if (sponsor.getStatus() == 0) { //更新其中审批任务的状态
// 封装审批任务 if(systemExecute!=null){
BsnMessageExecute execute = new BsnMessageExecute(); systemExecute.setActive(ActiveStatus.UNFINISHED.getValue());
execute.setUpdateDate(new Date()); bsnMessageApplication.saveBsnMessageExecute(systemExecute);
execute.setTaskExecute(this.getOperator().getUserId());
execute.setTaskDescribe("各单位已完成[发起人审核]");
execute.setBusinessCode("system");
execute.setActive(ActiveStatus.UNFINISHED.getValue());
executes.add(execute);
sponsor.setStatus(1);// 发起人审核
sponsor.setExecutes(executes);
// 在同一个任务流程下创建一份发起人自己的审批任务
bsnMessageApplication.saveBsnMessageSponsor(sponsor);
}
} }
} }
//获取任务执行人为当前用户的任务 //获取任务执行人为当前用户的任务
......
...@@ -3,6 +3,7 @@ package com.huigou.topsun.base.bsnMessage.appliction; ...@@ -3,6 +3,7 @@ package com.huigou.topsun.base.bsnMessage.appliction;
import com.huigou.topsun.base.bsnMessage.domain.BsnMessageExecute; import com.huigou.topsun.base.bsnMessage.domain.BsnMessageExecute;
import com.huigou.topsun.base.bsnMessage.domain.BsnMessageReject; 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.uasp.bmp.bizconfig.model.ObjectKindEnum;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -11,6 +12,42 @@ public interface BsnMessageApplication { ...@@ -11,6 +12,42 @@ public interface BsnMessageApplication {
String QUERY_XML_FILE_PATH = "config/topsun/base/bsnMessage.xml"; String QUERY_XML_FILE_PATH = "config/topsun/base/bsnMessage.xml";
/**
* 保存任务
* @param bsnMessageSponsor
*/
String keepTasks(BsnMessageSponsor bsnMessageSponsor);
/**
* 发布任务
* @param bId 表单单号
*/
void publishTasks(String bId);
/**
* 保存任务并发布
*/
void keepAndPublishTasks(BsnMessageSponsor bsnMessageSponsor);
// /**
// * 驳回任务
// */
// void rejectTasks();
/**
* 批准
*/
// void authorizeTasks();
/**
* 任务流转
*/
Map<String, Object> circulate(String meId);
/** /**
* 获取当前登录用户未完成或被驳回的任务 * 获取当前登录用户未完成或被驳回的任务
* @return 任务执行的详细信息集合 * @return 任务执行的详细信息集合
...@@ -24,6 +61,13 @@ public interface BsnMessageApplication { ...@@ -24,6 +61,13 @@ public interface BsnMessageApplication {
*/ */
List<BsnMessageSponsor> queryFinishBsnMessageSponsor(); List<BsnMessageSponsor> queryFinishBsnMessageSponsor();
/**
* 根据任务发布Id,获取该流程下是否所有执行单位已就绪
* @param msId
* @return
*/
BsnMessageExecute isExecutesReady(String msId);
public void saveBsnMessageSponsor(List<BsnMessageSponsor> all); public void saveBsnMessageSponsor(List<BsnMessageSponsor> all);
public String saveBsnMessageSponsor(BsnMessageSponsor entity); public String saveBsnMessageSponsor(BsnMessageSponsor entity);
......
...@@ -7,14 +7,18 @@ import com.huigou.topsun.base.bsnMessage.domain.*; ...@@ -7,14 +7,18 @@ import com.huigou.topsun.base.bsnMessage.domain.*;
import com.huigou.topsun.base.bsnMessage.repository.BsnMessageExecuteRepository; import com.huigou.topsun.base.bsnMessage.repository.BsnMessageExecuteRepository;
import com.huigou.topsun.base.bsnMessage.repository.BsnMessageRejectRepository; import com.huigou.topsun.base.bsnMessage.repository.BsnMessageRejectRepository;
import com.huigou.topsun.base.bsnMessage.repository.BsnMessageSponsorRepository; import com.huigou.topsun.base.bsnMessage.repository.BsnMessageSponsorRepository;
import com.huigou.topsun.sap.nonProdApply.domain.SapNonProdApplyDept;
import com.huigou.uasp.bmp.bizconfig.model.ObjectKindEnum;
import com.huigou.uasp.bmp.common.application.BaseApplication; import com.huigou.uasp.bmp.common.application.BaseApplication;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.data.domain.Sort; import org.springframework.data.domain.Sort;
import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.stream.Collectors;
/** /**
* 专项任务整合及输出 * 专项任务整合及输出
...@@ -30,6 +34,80 @@ public class BsnMessageApplicationImpl extends BaseApplication implements BsnMes ...@@ -30,6 +34,80 @@ public class BsnMessageApplicationImpl extends BaseApplication implements BsnMes
BsnMessageSponsorRepository messageSponsorRepository; BsnMessageSponsorRepository messageSponsorRepository;
@Override
public String keepTasks(BsnMessageSponsor bsnMessageSponsor) {
//删除对应表单已有的任务
BsnMessageSponsor sponsor = this.getSponsorByBId(bsnMessageSponsor.getBusinessId());
if(sponsor!=null){
this.deleteBsnMessageSponsor(sponsor);
}
//封装任务发布人自己的审批任务
BsnMessageExecute execute = new BsnMessageExecute();
execute.setUpdateDate(new Date());
execute.setTaskExecute(this.getOperator().getUserId());
execute.setTaskDescribe("各单位已完成[发起人审核]");
execute.setBusinessCode("system");
execute.setActive(ActiveStatus.SAVED.getValue());
bsnMessageSponsor.addExecute(execute);
return this.saveBsnMessageSponsor(bsnMessageSponsor);
}
@Override
public void publishTasks(String bId) {
BsnMessageSponsor sponsor = messageSponsorRepository.findByBusinessId(bId);
if(sponsor==null){
throw new RuntimeException("不存在该业务");
}
List<BsnMessageExecute> executes = this.getExecuteByMsId(sponsor.getId());
this.updateActiveStatus(executes);
this.saveBsnMessageExecute(executes);
}
@Override
public void keepAndPublishTasks(BsnMessageSponsor bsnMessageSponsor) {
this.updateActiveStatus(bsnMessageSponsor.getExecutes());
this.keepTasks(bsnMessageSponsor);
}
// @Override
// public void authorizeTasks(String bId) {
// BsnMessageSponsor sponsor = messageSponsorRepository.findByBusinessId(bId);
// }
// @Override
// public void rejectTasks(BsnMessageExecute execute) {
// //更改驳回状态
// execute.setActive(ActiveStatus.REJECTED.getValue());
// //更新时间
// execute.setUpdateDate(new Date());
// //封装驳回详细
// BsnMessageReject reject = new BsnMessageReject();
// reject.setRejectMsg(sdo.getString(key));
// reject.setRejectDate(new Date());
// reject.setBsnExecuteId(execute.getId());
// execute.addReject(reject);
// this.saveBsnMessageExecute(execute);
// }
@Override
public Map<String, Object> circulate(String meId) {
BsnMessageExecute execute = this.getExecuteByMeId(meId);
Map<String,Object> paramMap = new HashMap<>();
paramMap.put("deptCode", execute.getBusinessCode());
paramMap.put("active",execute.getActive());
paramMap.put("meId",execute.getId());
paramMap.put("isReadOnly","false");
//获取该业务流程下其他执行部门
List<BsnMessageExecute> executeAll = this.getBrotherExecuteByMeId(meId);
Map<String, String> map = executeAll.stream()
.collect(Collectors.toMap(BsnMessageExecute::getTaskExecute, BsnMessageExecute::getBusinessCode));
paramMap.put("auditDeptMap", map);
return paramMap;
}
@Override @Override
public Map<String, Object> queryExecuteBsnMessage() { public Map<String, Object> queryExecuteBsnMessage() {
QueryDescriptor queryDescriptor = this.sqlExecutorDao.getQuery(QUERY_XML_FILE_PATH, "queryExecuteBsnMessage"); QueryDescriptor queryDescriptor = this.sqlExecutorDao.getQuery(QUERY_XML_FILE_PATH, "queryExecuteBsnMessage");
...@@ -51,6 +129,11 @@ public class BsnMessageApplicationImpl extends BaseApplication implements BsnMes ...@@ -51,6 +129,11 @@ public class BsnMessageApplicationImpl extends BaseApplication implements BsnMes
} }
@Override
public BsnMessageExecute isExecutesReady(String msId) {
QueryDescriptor queryDescriptor = this.sqlExecutorDao.getQuery(QUERY_XML_FILE_PATH, "queryIsExecutesReady");
return this.sqlExecutorDao.queryToObject(queryDescriptor.getSql(),BsnMessageExecute.class,msId,msId);
}
public void saveBsnMessageSponsor(List<BsnMessageSponsor> all){ public void saveBsnMessageSponsor(List<BsnMessageSponsor> all){
messageSponsorRepository.save(all); messageSponsorRepository.save(all);
...@@ -129,4 +212,14 @@ public class BsnMessageApplicationImpl extends BaseApplication implements BsnMes ...@@ -129,4 +212,14 @@ public class BsnMessageApplicationImpl extends BaseApplication implements BsnMes
public boolean isNotEmpty(List<?> list) { public boolean isNotEmpty(List<?> list) {
return list != null && !list.isEmpty(); return list != null && !list.isEmpty();
} }
public void updateActiveStatus( List<BsnMessageExecute> executes) {
//将除审批任务外状态为保存未分发的全部修改为分发未完成
for (BsnMessageExecute execute : executes) {
if(!"system".equals(execute.getBusinessCode())){
execute.setActive(ActiveStatus.UNFINISHED.getValue());
}
}
}
} }
...@@ -46,13 +46,6 @@ public class NonProdApplyDeptApplicationImpl extends BaseApplication implements ...@@ -46,13 +46,6 @@ public class NonProdApplyDeptApplicationImpl extends BaseApplication implements
throw new RuntimeException("JSON转换失败:"+e); throw new RuntimeException("JSON转换失败:"+e);
} }
/**
* 删除表单对应已存在任务
*/
BsnMessageSponsor sponsor = bsnMessageApplication.getSponsorByBId(nonProdApplyDept.getApplyDeptId());
if(sponsor!=null){
bsnMessageApplication.deleteBsnMessageSponsor(sponsor);
}
//封装分发数据 //封装分发数据
BsnMessageSponsor bsnMessageSponsor = new BsnMessageSponsor(); BsnMessageSponsor bsnMessageSponsor = new BsnMessageSponsor();
...@@ -76,20 +69,21 @@ public class NonProdApplyDeptApplicationImpl extends BaseApplication implements ...@@ -76,20 +69,21 @@ public class NonProdApplyDeptApplicationImpl extends BaseApplication implements
messageExecute.setTaskDescribe(deptName+"部门数据维护"); messageExecute.setTaskDescribe(deptName+"部门数据维护");
bsnMessageSponsor.addExecute(messageExecute); bsnMessageSponsor.addExecute(messageExecute);
} }
//保存任务
String keyId = bsnMessageApplication.saveBsnMessageSponsor(bsnMessageSponsor); bsnMessageApplication.keepTasks(bsnMessageSponsor);
map.put("applyDeptId",nonProdApplyDept.getApplyDeptId()); map.put("applyDeptId",nonProdApplyDept.getApplyDeptId());
map.put("keyId",keyId);
return map; return map;
} }
/**
* 发布任务
* @param sdo
*/
@Override @Override
public void distributeSapNonProdApplyDept(SDO sdo) { public void distributeSapNonProdApplyDept(SDO sdo) {
//将状态为保存分发的全部修改为分发未完成 //将状态为保存分发的全部修改为分发未完成
Map<String, Object> map = this.saveSapNonProdApplyDept(sdo); Map<String, Object> map = this.saveSapNonProdApplyDept(sdo);
List<BsnMessageExecute> executes = bsnMessageApplication.getExecuteByMsId((String) map.get("keyId")); bsnMessageApplication.publishTasks((String) map.get("applyDeptId"));
executes.forEach(item->item.setActive(ActiveStatus.UNFINISHED.getValue()));
bsnMessageApplication.saveBsnMessageExecute(executes);
} }
@Override @Override
......
...@@ -93,20 +93,9 @@ public class NonProdApplyNextController extends CommonController { ...@@ -93,20 +93,9 @@ public class NonProdApplyNextController extends CommonController {
SDO sdo = this.getSDO(); SDO sdo = this.getSDO();
String bizId = sdo.getBizId(); String bizId = sdo.getBizId();
String meId = sdo.getString("taskId"); String meId = sdo.getString("taskId");
BsnMessageExecute execute = bsnMessageApplication.getExecuteByMeId(meId); Map<String, Object> circulate = bsnMessageApplication.circulate(meId);
this.putAttribute("deptCode", execute.getBusinessCode()); this.putAttribute(circulate);
this.putAttribute("active", execute.getActive());
this.putAttribute("meId", execute.getId());
this.putAttribute("isReadOnly", "false");
SapNonProdApplyDept nonProdApplyDept = nonProdApplyDeptApplication.getNonProdApplyDeptById(bizId); SapNonProdApplyDept nonProdApplyDept = nonProdApplyDeptApplication.getNonProdApplyDeptById(bizId);
//测试数据
// Map<String, String> map = new HashMap<>();
//获取该业务流程下其他执行部门
List<BsnMessageExecute> executeAll = bsnMessageApplication.getBrotherExecuteByMeId(meId);
Map<String, String> map = executeAll.stream()
.collect(Collectors.toMap(BsnMessageExecute::getTaskExecute, BsnMessageExecute::getBusinessCode));
this.putAttribute("auditDeptMap", map);
return forward("nonProdApplyNext", nonProdApplyDept); return forward("nonProdApplyNext", nonProdApplyDept);
} }
......
...@@ -21,4 +21,6 @@ public interface SapPurchaseOrderApplication { ...@@ -21,4 +21,6 @@ public interface SapPurchaseOrderApplication {
SapPurchaseOrder loadSapPurchaseOrder(String id); SapPurchaseOrder loadSapPurchaseOrder(String id);
void saveSapPurchaseOrderVo(SapPurchaseOrderVo sapPurchaseOrderVo); void saveSapPurchaseOrderVo(SapPurchaseOrderVo sapPurchaseOrderVo);
void sendSapDate(SapPurchaseOrder sapPurchaseOrder,String flag);
} }
...@@ -13,9 +13,10 @@ import java.util.Map; ...@@ -13,9 +13,10 @@ import java.util.Map;
*/ */
public interface SapPurchaseOrderItemApplication { public interface SapPurchaseOrderItemApplication {
public static final String QUERY_XML_FILE_PATH = "config/topsun/sap/sapPurchaseOrder/sapPurchaseOrderItem.xml"; public static final String QUERY_XML_FILE_PATH = "config/topsun/sap/sapPurchaseOrder/sapPurchaseOrderItem.xml";
void saveSapPurchaseOrderItems(String sapPurchaseOrderId, List<SapPurchaseOrderItem> sapPurchaseOrderItems); void saveSapPurchaseOrderItem(SapPurchaseOrderItem sapPurchaseOrderItem);
void deleteByIds(List<String> ids); void deleteByIds(List<String> ids);
Map<String, Object> querySapPurchaseOrderItems(SapPurchaseOrderItemQueryRequest queryRequest);
SapPurchaseOrderItem getPurchaseOrderItem(String purchaseOrderId);
} }
package com.huigou.topsun.sap.purchaseOrder.application.impl; package com.huigou.topsun.sap.purchaseOrder.application.impl;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.huigou.context.Operator; import com.huigou.context.Operator;
import com.huigou.context.OrgUnit; import com.huigou.context.OrgUnit;
import com.huigou.context.ThreadLocalUtil; import com.huigou.context.ThreadLocalUtil;
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.purchaseApproval.application.SapPurchaseApprovalApplication;
import com.huigou.topsun.sap.purchaseApproval.application.impl.SapPurchaseApprovalApplicationImpl;
import com.huigou.topsun.sap.purchaseApproval.domain.SapPurchaseApproval;
import com.huigou.topsun.sap.purchaseOrder.application.SapPurchaseOrderApplication; import com.huigou.topsun.sap.purchaseOrder.application.SapPurchaseOrderApplication;
import com.huigou.topsun.sap.purchaseOrder.application.SapPurchaseOrderItemApplication; import com.huigou.topsun.sap.purchaseOrder.application.SapPurchaseOrderItemApplication;
import com.huigou.topsun.sap.purchaseOrder.domain.SapPurchaseOrder; import com.huigou.topsun.sap.purchaseOrder.domain.SapPurchaseOrder;
...@@ -14,6 +20,10 @@ import com.huigou.topsun.sap.purchaseOrder.domain.query.SapPurchaseOrderQueryReq ...@@ -14,6 +20,10 @@ import com.huigou.topsun.sap.purchaseOrder.domain.query.SapPurchaseOrderQueryReq
import com.huigou.topsun.sap.purchaseOrder.domain.vo.SapPurchaseOrderItemVo; import com.huigou.topsun.sap.purchaseOrder.domain.vo.SapPurchaseOrderItemVo;
import com.huigou.topsun.sap.purchaseOrder.domain.vo.SapPurchaseOrderVo; import com.huigou.topsun.sap.purchaseOrder.domain.vo.SapPurchaseOrderVo;
import com.huigou.topsun.sap.purchaseOrder.repository.SapPurchaseOrderRepository; import com.huigou.topsun.sap.purchaseOrder.repository.SapPurchaseOrderRepository;
import com.huigou.topsun.sap.statsIndicators.domain.SapStatsIndicators;
import com.huigou.topsun.sap.statsIndicators.domain.SapStatsIndicatorsDetail;
import com.huigou.topsun.sap.statsIndicators.domain.SapStatsIndicatorsResult;
import com.huigou.topsun.util.MyBaseUtil;
import com.huigou.uasp.bmp.common.BizBillStatus; import com.huigou.uasp.bmp.common.BizBillStatus;
import com.huigou.uasp.bmp.operator.OperatorApplication; import com.huigou.uasp.bmp.operator.OperatorApplication;
import com.huigou.uasp.bpm.FlowBroker; import com.huigou.uasp.bpm.FlowBroker;
...@@ -26,10 +36,12 @@ import com.huigou.util.SDO; ...@@ -26,10 +36,12 @@ import com.huigou.util.SDO;
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.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.runtime.ProcessInstance;
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 javax.annotation.Resource; import javax.annotation.Resource;
import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
...@@ -47,13 +59,16 @@ public class SapPurchaseOrderApplicationImpl extends FlowBroker implements SapPu ...@@ -47,13 +59,16 @@ public class SapPurchaseOrderApplicationImpl extends FlowBroker implements SapPu
@Resource @Resource
private SapPurchaseOrderItemApplication sapPurchaseOrderItemApplication; private SapPurchaseOrderItemApplication sapPurchaseOrderItemApplication;
@Resource @Resource
private WorkflowApplication workflowApplication;
@Resource
private OperatorApplication operatorApplication; private OperatorApplication operatorApplication;
@Autowired
DefaultHttpClient defaultHttpClient;
@Autowired
SapPurchaseApprovalApplicationImpl sapPurchaseApprovalApplication;
// @Override @Override
protected String saveBizAndOrderData() { protected String saveBizAndApprovalData() {
// super.saveBizAndOrderData(); super.saveBizAndApprovalData();
SDO sdo = this.getBizAndApprovalData();
SapPurchaseOrder sapPurchaseOrder = getBizEntity(SapPurchaseOrder.class); SapPurchaseOrder sapPurchaseOrder = getBizEntity(SapPurchaseOrder.class);
if (sapPurchaseOrder.isNew()) { if (sapPurchaseOrder.isNew()) {
sapPurchaseOrder.setStatusId(BizBillStatus.APPLYING.getId()); sapPurchaseOrder.setStatusId(BizBillStatus.APPLYING.getId());
...@@ -61,10 +76,11 @@ public class SapPurchaseOrderApplicationImpl extends FlowBroker implements SapPu ...@@ -61,10 +76,11 @@ public class SapPurchaseOrderApplicationImpl extends FlowBroker implements SapPu
sapPurchaseOrder = (SapPurchaseOrder) commonDomainService.loadAndFillinProperties(sapPurchaseOrder); sapPurchaseOrder = (SapPurchaseOrder) commonDomainService.loadAndFillinProperties(sapPurchaseOrder);
} }
sapPurchaseOrder = sapPurchaseOrderRepository.save(sapPurchaseOrder); sapPurchaseOrder = sapPurchaseOrderRepository.save(sapPurchaseOrder);
List<SapPurchaseOrderItem> sapPurchaseOrderItems = getBizEntities(SapPurchaseOrderItem.class, "sapPurchaseItems"); // SapPurchaseOrderItem sapPurchaseOrderItem = getBizEntity(SapPurchaseOrderItem.class);
sapPurchaseOrderItemApplication.saveSapPurchaseOrderItems(sapPurchaseOrder.getId(),sapPurchaseOrderItems); // if(sapPurchaseOrderItem!=null){
// sapPurchaseOrderItem.setPurchaseOrderId(sapPurchaseOrder.getId());
//String sapPurchaseVoJson = this.getSapPurchaseVoJson(sapPurchaseOrder); // sapPurchaseOrderItemApplication.saveSapPurchaseOrderItem(sapPurchaseOrderItem);
// }
return sapPurchaseOrder.getId(); return sapPurchaseOrder.getId();
} }
...@@ -83,7 +99,8 @@ public class SapPurchaseOrderApplicationImpl extends FlowBroker implements SapPu ...@@ -83,7 +99,8 @@ public class SapPurchaseOrderApplicationImpl extends FlowBroker implements SapPu
BizBillStatus status = approvePassed() ? BizBillStatus.COMPLETED : BizBillStatus.ABORTED; BizBillStatus status = approvePassed() ? BizBillStatus.COMPLETED : BizBillStatus.ABORTED;
SapPurchaseOrder sapPurchaseOrder = sapPurchaseOrderRepository.findOne(bizId); SapPurchaseOrder sapPurchaseOrder = sapPurchaseOrderRepository.findOne(bizId);
sapPurchaseOrder.setStatusId(status.getId()); sapPurchaseOrder.setStatusId(status.getId());
sapPurchaseOrderRepository.save(sapPurchaseOrder); SapPurchaseOrder save = sapPurchaseOrderRepository.save(sapPurchaseOrder);
this.sendSapDate(save,"");
} }
...@@ -107,7 +124,8 @@ public class SapPurchaseOrderApplicationImpl extends FlowBroker implements SapPu ...@@ -107,7 +124,8 @@ public class SapPurchaseOrderApplicationImpl extends FlowBroker implements SapPu
String bizId = delegateTask.getExecution().getProcessBusinessKey(); String bizId = delegateTask.getExecution().getProcessBusinessKey();
SapPurchaseOrder sapPurchaseOrder = sapPurchaseOrderRepository.findOne(bizId); SapPurchaseOrder sapPurchaseOrder = sapPurchaseOrderRepository.findOne(bizId);
sapPurchaseOrder.setStatusId(BizBillStatus.APPLYING.getId()); sapPurchaseOrder.setStatusId(BizBillStatus.APPLYING.getId());
sapPurchaseOrderRepository.save(sapPurchaseOrder); SapPurchaseOrder save = sapPurchaseOrderRepository.save(sapPurchaseOrder);
this.sendSapDate(save,"X");
} }
} }
...@@ -135,47 +153,43 @@ public class SapPurchaseOrderApplicationImpl extends FlowBroker implements SapPu ...@@ -135,47 +153,43 @@ public class SapPurchaseOrderApplicationImpl extends FlowBroker implements SapPu
sapPurchaseOrder.setDefaultValues(new OrgUnit(operator.getFullId(), operator.getFullName())); sapPurchaseOrder.setDefaultValues(new OrgUnit(operator.getFullId(), operator.getFullName()));
Map<String, Object> formData = BeanUtil.beanToMap(sapPurchaseOrder); Map<String, Object> formData = BeanUtil.beanToMap(sapPurchaseOrder);
String bizId = this.startProcessInstance(SapPurchaseOrderApplication.PROCESS_DEFINITION_KEY, formData); String bizId = sapPurchaseApprovalApplication.startProcessInstance(SapPurchaseOrderApplication.PROCESS_DEFINITION_KEY, formData);
sapPurchaseOrder.setId(bizId); sapPurchaseOrder.setId(bizId);
sapPurchaseOrder = this.sapPurchaseOrderRepository.save(sapPurchaseOrder); sapPurchaseOrder = this.sapPurchaseOrderRepository.save(sapPurchaseOrder);
List<SapPurchaseOrderItemVo> OrderItemVoList = sapPurchaseOrderVo.getItemVos(); SapPurchaseOrderItemVo OrderItemVo = sapPurchaseOrderVo.getItemVo();
List<SapPurchaseOrderItem> sapPurchaseOrderItems = new ArrayList<>();
OrderItemVoList.forEach(OrderItemVo->{
SapPurchaseOrderItem sapPurchaseOrderItem = new SapPurchaseOrderItem(); SapPurchaseOrderItem sapPurchaseOrderItem = new SapPurchaseOrderItem();
BeanUtil.copyProperties(OrderItemVo,sapPurchaseOrderItem); BeanUtil.copyProperties(OrderItemVo,sapPurchaseOrderItem);
sapPurchaseOrderItems.add(sapPurchaseOrderItem); sapPurchaseOrderItem.setPurchaseOrderId(sapPurchaseOrder.getId());
}); sapPurchaseOrderItemApplication.saveSapPurchaseOrderItem(sapPurchaseOrderItem);
sapPurchaseOrderItemApplication.saveSapPurchaseOrderItems(sapPurchaseOrder.getId(),sapPurchaseOrderItems);
} }
/**
* 远程调用sap接口,传递数据
public String startProcessInstance(String processDefinitionKey,Map<String, Object> formData){ */
Map<String, Object> variables = new HashMap(); public void sendSapDate(SapPurchaseOrder sapPurchaseOrder,String flag) {
SDO localSdo = this.buildSDO(formData); Map<String,Object> paramItem = new HashMap<>();
ThreadLocalUtil.putVariable(Constants.SDO, localSdo); paramItem.put("ebeln",sapPurchaseOrder.getEbeln());
variables.put("startModel", ProcessStartModel.MANUAL.getId()); paramItem.put("BEDNR",sapPurchaseOrder.getBillCode());
Operator operator = localSdo.getOperator(); paramItem.put("frgkz","10");
variables.put("executorFullId", operator.getFullId()); paramItem.put("flag",flag);
variables.put("executorFullName", operator.getFullName()); List<Map<String,Object>> paramList= new ArrayList<>();
ThreadLocalUtil.putOperator(operator); paramList.add(paramItem);
ThreadLocalUtil.putVariable("client.ip", "127.0.0.1"); Map<String,Object> param = new HashMap<>();
ProcessInstance processInstance = this.workflowApplication.startProcessInstanceByKey(processDefinitionKey, variables); param.put("MODE","PO");
String businessKey = processInstance.getBusinessKey(); param.put("DATA",paramList);
return businessKey;
ObjectMapper objectMapper = new ObjectMapper();
String url = "pass_approval/approval";
try {
String result = defaultHttpClient.execute(param, url);
List<Map<String, Object>> resultList = objectMapper.readValue(result, new TypeReference<List<Map<String, Object>>>() {});
Map<String, Object> resultMap = resultList.get(0);
if (!"S".equals(resultMap.get("TYPE"))) {
throw new RuntimeException("数据传输失败,请稍后手动重试!"+resultMap.get("MESSAGE"));
}
} catch (Exception e) {
throw new RuntimeException("数据传输失败请检查数据后重试!"+e.getMessage());
} }
private SDO buildSDO(Map<String, Object> formData) {
//String createdById = (String) formData.get("createdById");
//暂定管理员id
String createdById = "5EEB2DC861694A65933CB4CE9A8D870A@C18E23AAAA6940E09DF7C122332C51E0";
Operator operator = operatorApplication.createOperatorByPersonMemberId(createdById);
SDO localSdo = new SDO();
// 将业务数据传递给工作流
formData.forEach(localSdo::putProperty);
// 将业务流程信息传递给工作流
localSdo.putProperty("processAction", ProcessAction.SAVE);
localSdo.putProperty("procUnitId", "Apply");
localSdo.setOperator(operator);
return localSdo;
} }
} }
...@@ -25,11 +25,8 @@ public class SapPurchaseOrderItemApplicationImpl extends BaseApplication impleme ...@@ -25,11 +25,8 @@ public class SapPurchaseOrderItemApplicationImpl extends BaseApplication impleme
@Resource @Resource
private SapPurchaseOrderItemRepository sapPurchaseOrderItemRepository; private SapPurchaseOrderItemRepository sapPurchaseOrderItemRepository;
@Override @Override
public void saveSapPurchaseOrderItems(String sapPurchaseOrderId, List<SapPurchaseOrderItem> sapPurchaseOrderItems) { public void saveSapPurchaseOrderItem(SapPurchaseOrderItem sapPurchaseOrderItem) {
sapPurchaseOrderItems.forEach(sapPurchaseOrderItem -> {
sapPurchaseOrderItem.setPurchaseOrderId(sapPurchaseOrderId);
sapPurchaseOrderItemRepository.save(sapPurchaseOrderItem); sapPurchaseOrderItemRepository.save(sapPurchaseOrderItem);
});
} }
@Override @Override
...@@ -40,13 +37,17 @@ public class SapPurchaseOrderItemApplicationImpl extends BaseApplication impleme ...@@ -40,13 +37,17 @@ public class SapPurchaseOrderItemApplicationImpl extends BaseApplication impleme
} }
@Override @Override
public Map<String, Object> querySapPurchaseOrderItems(SapPurchaseOrderItemQueryRequest queryRequest) { public SapPurchaseOrderItem getPurchaseOrderItem(String purchaseOrderId) {
Map<String, Object> map = new HashMap<>(); return sapPurchaseOrderItemRepository.findSapPurchaseOrderItemByPurchaseOrderId(purchaseOrderId);
if (StringUtil.isNotBlank(queryRequest.getSapPurchaseOrderId())){
QueryDescriptor queryDescriptor = this.sqlExecutorDao.getQuery(QUERY_XML_FILE_PATH, "sapPurchaseOrderItems");
QueryModel queryModel = this.sqlExecutorDao.getQueryModel(queryDescriptor, queryRequest);
map = this.sqlExecutorDao.executeSlicedQuery(queryModel);
}
return map;
} }
// @Override
// public Map<String, Object> querySapPurchaseOrderItems(SapPurchaseOrderItemQueryRequest queryRequest) {
// Map<String, Object> map = new HashMap<>();
// if (StringUtil.isNotBlank(queryRequest.getSapPurchaseOrderId())){
// QueryDescriptor queryDescriptor = this.sqlExecutorDao.getQuery(QUERY_XML_FILE_PATH, "sapPurchaseOrderItems");
// QueryModel queryModel = this.sqlExecutorDao.getQueryModel(queryDescriptor, queryRequest);
// map = this.sqlExecutorDao.executeSlicedQuery(queryModel);
// }
// return map;
// }
} }
package com.huigou.topsun.sap.purchaseOrder.controller; package com.huigou.topsun.sap.purchaseOrder.controller;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
import com.huigou.context.Operator; import com.huigou.context.Operator;
import com.huigou.context.OrgUnit; import com.huigou.context.OrgUnit;
import com.huigou.topsun.sap.purchaseOrder.application.SapPurchaseOrderApplication; import com.huigou.topsun.sap.purchaseOrder.application.SapPurchaseOrderApplication;
import com.huigou.topsun.sap.purchaseOrder.application.SapPurchaseOrderItemApplication;
import com.huigou.topsun.sap.purchaseOrder.domain.SapPurchaseOrder; import com.huigou.topsun.sap.purchaseOrder.domain.SapPurchaseOrder;
import com.huigou.topsun.sap.purchaseOrder.domain.SapPurchaseOrderItem;
import com.huigou.topsun.sap.purchaseOrder.domain.query.SapPurchaseOrderQueryRequest; import com.huigou.topsun.sap.purchaseOrder.domain.query.SapPurchaseOrderQueryRequest;
import com.huigou.topsun.sap.purchaseOrder.domain.vo.SapPurchaseOrderVo; import com.huigou.topsun.sap.purchaseOrder.domain.vo.SapPurchaseOrderVo;
import com.huigou.topsun.util.MyBaseUtil;
import com.huigou.uasp.annotation.ControllerMapping; import com.huigou.uasp.annotation.ControllerMapping;
import com.huigou.uasp.annotation.SkipAuth; import com.huigou.uasp.annotation.SkipAuth;
import com.huigou.uasp.bmp.common.BizBillStatus; import com.huigou.uasp.bmp.common.BizBillStatus;
...@@ -17,6 +22,7 @@ import org.springframework.web.bind.annotation.RequestMapping; ...@@ -17,6 +22,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.ResponseBody;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.text.SimpleDateFormat;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
...@@ -28,6 +34,8 @@ import java.util.Map; ...@@ -28,6 +34,8 @@ import java.util.Map;
@Controller @Controller
@ControllerMapping("/sapPurchaseOrder") @ControllerMapping("/sapPurchaseOrder")
public class SapPurchaseOrderController extends CommonController { public class SapPurchaseOrderController extends CommonController {
@Resource
private SapPurchaseOrderItemApplication sapPurchaseOrderItemApplication;
@Resource @Resource
private SapPurchaseOrderApplication sapPurchaseOrderApplication; private SapPurchaseOrderApplication sapPurchaseOrderApplication;
@Override @Override
...@@ -39,7 +47,6 @@ public class SapPurchaseOrderController extends CommonController { ...@@ -39,7 +47,6 @@ public class SapPurchaseOrderController extends CommonController {
@RequestMapping( value = "/getSapPurchaseOrder") @RequestMapping( value = "/getSapPurchaseOrder")
@ResponseBody @ResponseBody
public HashMap<String, Object> getSapPurchaseOrder(@RequestBody SapPurchaseOrderVo sapPurchaseOrderVo){ public HashMap<String, Object> getSapPurchaseOrder(@RequestBody SapPurchaseOrderVo sapPurchaseOrderVo){
//SDO sdo = this.getSDO();
this.sapPurchaseOrderApplication.saveSapPurchaseOrderVo(sapPurchaseOrderVo); this.sapPurchaseOrderApplication.saveSapPurchaseOrderVo(sapPurchaseOrderVo);
HashMap<String, Object> messageMap = new HashMap<>(); HashMap<String, Object> messageMap = new HashMap<>();
messageMap.put("Message_Status","S"); messageMap.put("Message_Status","S");
...@@ -58,24 +65,30 @@ public class SapPurchaseOrderController extends CommonController { ...@@ -58,24 +65,30 @@ public class SapPurchaseOrderController extends CommonController {
return toResult(map); return toResult(map);
} }
public String forwardSapPurchaseOrderDetail(){ // public String forwardSapPurchaseOrderDetail(){
this.putAttribute("processDefinitionKey", SapPurchaseOrderApplication.PROCESS_DEFINITION_KEY); // this.putAttribute("processDefinitionKey", SapPurchaseOrderApplication.PROCESS_DEFINITION_KEY);
// 新增的时候procUnitId一定要设置成Apply,不然jsp页面的所有表单元素是readonly状态 // // 新增的时候procUnitId一定要设置成Apply,不然jsp页面的所有表单元素是readonly状态
this.putAttribute("procUnitId", "Apply"); // this.putAttribute("procUnitId", "Apply");
SapPurchaseOrder sapPurchase = new SapPurchaseOrder(); // SapPurchaseOrder sapPurchase = new SapPurchaseOrder();
sapPurchase.setStatusId(BizBillStatus.APPLYING.getId()); // sapPurchase.setStatusId(BizBillStatus.APPLYING.getId());
/** // /**
* 设置jsp页面初始化填充数据,如果不设置, 那么在jsp页面上填写完表单之后立即提交申请TaskDescription获取不到时间和相关人员信息 // * 设置jsp页面初始化填充数据,如果不设置, 那么在jsp页面上填写完表单之后立即提交申请TaskDescription获取不到时间和相关人员信息
*/ // */
Operator operator = getOperator(); // Operator operator = getOperator();
sapPurchase.setDefaultValues(new OrgUnit(operator.getFullId(), operator.getFullName())); // sapPurchase.setDefaultValues(new OrgUnit(operator.getFullId(), operator.getFullName()));
return forward("sapPurchaseOrderDetail",sapPurchase); // return forward("sapPurchaseOrderDetail",sapPurchase);
} // }
public String showSapPurchaseOrderDetail(){ public String showSapPurchaseOrderDetail(){
SDO sdo = this.getSDO(); SDO sdo = this.getSDO();
String id = sdo.getBizId(); String id = sdo.getBizId();
SapPurchaseOrder sapPurchaseOrder = sapPurchaseOrderApplication.loadSapPurchaseOrder(id); SapPurchaseOrder sapPurchaseOrder = sapPurchaseOrderApplication.loadSapPurchaseOrder(id);
return forward("sapPurchaseOrderDetail",sapPurchaseOrder); SapPurchaseOrderItem purchaseOrderItem = sapPurchaseOrderItemApplication.getPurchaseOrderItem(sapPurchaseOrder.getId());
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
objectMapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS"));
Map<String, Object> map = objectMapper.convertValue(sapPurchaseOrder, Map.class);
map.putAll(MyBaseUtil.convertToMap(purchaseOrderItem,false));
return forward("sapPurchaseOrderDetail",map);
} }
} }
package com.huigou.topsun.sap.purchaseOrder.controller;
import com.huigou.topsun.sap.purchaseOrder.application.SapPurchaseOrderItemApplication;
import com.huigou.topsun.sap.purchaseOrder.domain.query.SapPurchaseOrderItemQueryRequest;
import com.huigou.topsun.sap.purchaseOrder.repository.SapPurchaseOrderItemRepository;
import com.huigou.uasp.annotation.ControllerMapping;
import com.huigou.uasp.client.CommonController;
import com.huigou.util.SDO;
import org.springframework.stereotype.Controller;
import javax.annotation.Resource;
import java.util.List;
import java.util.Map;
/**
* @Auther: xin.lu
* @Date: 2023/12/27/17:24
* @Description:
*/
@Controller
@ControllerMapping("/sapPurchaseOrderItem")
public class SapPurchaseOrderItemController extends CommonController {
@Resource
private SapPurchaseOrderItemApplication sapPurchaseOrderItemApplication;
@Resource
private SapPurchaseOrderItemRepository sapPurchaseOrderItemRepository;
public String querySapPurchaseOrderItems(){
SDO sdo = this.getSDO();
SapPurchaseOrderItemQueryRequest queryRequest = sdo.toQueryRequest(SapPurchaseOrderItemQueryRequest.class);
Map<String, Object> map = sapPurchaseOrderItemApplication.querySapPurchaseOrderItems(queryRequest);
return toResult(map);
}
public String deleteSapPurchaseOrderItem(){
SDO sdo = this.getSDO();
List<String> ids = sdo.getIds();
sapPurchaseOrderItemApplication.deleteByIds(ids);
return success();
}
}
package com.huigou.topsun.sap.purchaseOrder.domain; package com.huigou.topsun.sap.purchaseOrder.domain;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnoreType;
import com.huigou.data.domain.model.AbstractEntity; import com.huigou.data.domain.model.AbstractEntity;
import lombok.Data; import lombok.Data;
...@@ -18,6 +20,7 @@ import java.util.Date; ...@@ -18,6 +20,7 @@ import java.util.Date;
@Table(name="sap_purchase_order_item") @Table(name="sap_purchase_order_item")
@Entity @Entity
@Data @Data
@JsonIgnoreType
public class SapPurchaseOrderItem extends AbstractEntity { public class SapPurchaseOrderItem extends AbstractEntity {
......
...@@ -29,5 +29,5 @@ public class SapPurchaseOrderVo implements Serializable { ...@@ -29,5 +29,5 @@ public class SapPurchaseOrderVo implements Serializable {
*/ */
private String batxt; private String batxt;
private List<SapPurchaseOrderItemVo> itemVos; private SapPurchaseOrderItemVo itemVo;
} }
...@@ -9,4 +9,6 @@ import org.springframework.data.jpa.repository.JpaRepository; ...@@ -9,4 +9,6 @@ import org.springframework.data.jpa.repository.JpaRepository;
* @Description: * @Description:
*/ */
public interface SapPurchaseOrderItemRepository extends JpaRepository<SapPurchaseOrderItem,String> { public interface SapPurchaseOrderItemRepository extends JpaRepository<SapPurchaseOrderItem,String> {
SapPurchaseOrderItem findSapPurchaseOrderItemByPurchaseOrderId(String POId);
} }
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:activiti="http://activiti.org/bpmn" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC" xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI" xmlns:xsd="http://www.w3.org/2001/XMLSchema" typeLanguage="http://www.w3.org/2001/XMLSchema" expressionLanguage="http://www.w3.org/1999/XPath" targetNamespace="http://www.activiti.org/test"> <definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:activiti="http://activiti.org/bpmn" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC" xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI" xmlns:xsd="http://www.w3.org/2001/XMLSchema" typeLanguage="http://www.w3.org/2001/XMLSchema" expressionLanguage="http://www.w3.org/1999/XPath" targetNamespace="http://www.activiti.org/test">
<process id="sapPurchaseOrderProc" name="采购审批" isExecutable="true"> <process id="sapPurchaseOrderProc" name="采购订单审批" isExecutable="true">
<extensionElements> <extensionElements>
<activiti:executionListener event="start" delegateExpression="#{sapPurchaseOrderApplication}"></activiti:executionListener> <activiti:executionListener event="start" delegateExpression="#{sapPurchaseOrderApplication}"></activiti:executionListener>
<activiti:executionListener event="end" delegateExpression="#{sapPurchaseOrderApplication}"></activiti:executionListener> <activiti:executionListener event="end" delegateExpression="#{sapPurchaseOrderApplication}"></activiti:executionListener>
......
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<query-mappings> <query-mappings>
<query name="queryExecuteBsnMessage" label="bsn业务人员表" table="bsn_message_execute"> <query name="queryExecuteBsnMessage" label="未完成任务" table="bsn_message_execute">
<sql-query> <sql-query>
SELECT t.id,t.message_sponsor_id,t.task_execute,t.business_code,t.update_date,t.finished_date,t.active, SELECT t.id,t.message_sponsor_id,t.task_execute,t.business_code,t.update_date,t.finished_date,t.active,
CASE WHEN t.active = 3 THEN CONCAT(t.task_describe, :addText) ELSE t.task_describe END AS task_describe, CASE WHEN t.active = 3 THEN CONCAT(t.task_describe, :addText) ELSE t.task_describe END AS task_describe,
...@@ -14,17 +14,11 @@ ...@@ -14,17 +14,11 @@
</sql-query> </sql-query>
</query> </query>
<query name="queryFinishBsnMessageSponsor" label="bsn业务人员表" table="bsn_message_sponsor"> <query name="queryFinishBsnMessageSponsor" label="获取流程中的任务发布信息" table="bsn_message_sponsor">
<sql-query> <sql-query>
SELECT t.* SELECT t.*
FROM bsn_message_sponsor t FROM bsn_message_sponsor t
WHERE t.task_sponsor = ? WHERE t.status=0 and t.task_sponsor = ?
AND NOT EXISTS (
SELECT 1
FROM bsn_message_execute t2
WHERE t2.message_sponsor_id = t.id
AND t2.active != 1
)
</sql-query> </sql-query>
</query> </query>
...@@ -39,4 +33,21 @@ ...@@ -39,4 +33,21 @@
) AND id != :meId ) AND id != :meId
</sql-query> </sql-query>
</query> </query>
<query name="queryIsExecutesReady" label="bsn业务人员表" table="bsn_message">
<sql-query>
SELECT *
FROM `bsn_message_execute`
WHERE message_sponsor_id = ?
AND business_code = 'system'
AND NOT EXISTS (
SELECT 1
FROM `bsn_message_execute`
WHERE message_sponsor_id = ?
AND business_code != 'system'
AND active != 1
);
</sql-query>
</query>
</query-mappings> </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