Commit 80fd740c authored by 鲁鑫's avatar 鲁鑫

费用报销接收到SAP付款回执后更新待办任务;验证发票号是否提交过

parent 74aaad13
......@@ -643,7 +643,51 @@ function getExtendedData(processAction) {
}
return mergedObj;
});
var subProcUnitId = getSubProcUnitId();
//如果没有收到SAP消息回执,不能提交归档
if ("file" === subProcUnitId){
var _financialGrid = UICtrl.getGridManager('#financialAuditGrid');
var financialDatas = DataUtil.getGridData({
gridManager: _financialGrid,
isAllData: isAllData,
onCheck: function () {
return true;
}
});
if (!financialDatas) {
return false;
}
var checked7 = false
var num = 0;
$.each(financialDatas, function (i, o) {
if (o.zepPay == "Y"){
checked7 = true
}
});
var _grid = UICtrl.getGridManager('#paymentAccomplish_sapReturnGrid');
var datas = DataUtil.getGridData({
gridManager: _grid,
isAllData: isAllData,
onCheck: function () {
return true;
}
});
if (!datas) {
return false;
}
var checked6 = false
if (checked7){
$.each(datas, function (i, o) {
if (Public.isBlank(o.belnr1) || Public.isBlank(o.gjahr1)){
checked6 = true;
}
})
}
if (checked6){
Public.tip("请收到'付款完成、sap回执'消息后才归档");
return false;
}
}
let extendedData = {};
extendedData.CRDetail = Public.encodeJSONURI(result);
return extendedData;
......
......@@ -674,7 +674,7 @@ function loadGrid(obj) {
check = false;
Public.tip("含税金额(审批)不能大于含税金额")
$.each(_secondGrid.currentData.Rows, function (i, row) {
if (data.zepItemno = row.zepItemno){
if (data.zepItemno == row.zepItemno){
_secondGrid.updateRow(row,{
zepPtdamount1:data.kzwi1,
})
......@@ -761,6 +761,24 @@ function loadGrid(obj) {
})
UICtrl.setGridColumns(obj.gridManager,columns);
}
//费用报销单据发票号码栏,校验发票号码是否重复,重复(状态是已完成,申请,审批中)则提示该发票已经提交过,发票无效
if (item.column.name == "zyl06"){
Public.ajax(web_app.name+"/sapCostReimbursement/checkzyl06.ajax",{zyl06:item.record.zyl06},function (data) {
if (data > 0){
Public.tip("该发票 '"+item.value+"' 已经提交过,发票无效");
var _grid = UICtrl.getGridManager('#reimbursementApplierGrid');
var zepItemno = item.record.zepItemno;
$.each(_grid.currentData.Rows, function (i, row) {
if (zepItemno == row.zepItemno){
_grid.updateRow(row,{
zyl06:"",
})
}
})
}
})
}
return item;
},
onAfterShowData:function (){
......@@ -900,6 +918,7 @@ function getExtendedData(processAction) {
}
var checked4 = false
var checked5 = false
var checked7 = false
var num = 0;
$.each(datas, function (i, o) {
//判断不含税金额(审批)=含税金额(审批)- 税额(审批)
......@@ -914,6 +933,9 @@ function getExtendedData(processAction) {
checked5 = true;
num = i + 1
}
if (o.zepPay == "N"){
checked7 = true
}
});
if (checked4) {
Public.tip("行项目:" + num + "中,不含税金额(审批)+ 税额(审批)不等于 含税金额(审批)请检查")
......@@ -925,6 +947,51 @@ function getExtendedData(processAction) {
}
}
//如果没有收到SAP消息回执,不能提交归档
if ("file" === subProcUnitId){
var _financialGrid = UICtrl.getGridManager('#financialAuditGrid');
var financialDatas = DataUtil.getGridData({
gridManager: _financialGrid,
isAllData: isAllData,
onCheck: function () {
return true;
}
});
if (!financialDatas) {
return false;
}
var checked7 = false
var num = 0;
$.each(financialDatas, function (i, o) {
if (o.zepPay == "Y"){
checked7 = true
}
});
var _grid = UICtrl.getGridManager('#paymentAccomplish_sapReturnGrid');
var datas = DataUtil.getGridData({
gridManager: _grid,
isAllData: isAllData,
onCheck: function () {
return true;
}
});
if (!datas) {
return false;
}
var checked6 = false
if (checked7){
$.each(datas, function (i, o) {
if (Public.isBlank(o.belnr1) || Public.isBlank(o.gjahr1)){
checked6 = true;
}
})
}
if (checked6){
Public.tip("请收到'付款完成、sap回执'消息后才归档");
return false;
}
}
let extendedData = {};
extendedData.CRDetail = Public.encodeJSONURI(result);
return extendedData;
......
......@@ -673,7 +673,51 @@ function getExtendedData(processAction) {
}
return mergedObj;
});
var subProcUnitId = getSubProcUnitId();
//如果没有收到SAP消息回执,不能提交归档
if ("file" === subProcUnitId){
var _financialGrid = UICtrl.getGridManager('#financialAuditGrid');
var financialDatas = DataUtil.getGridData({
gridManager: _financialGrid,
isAllData: isAllData,
onCheck: function () {
return true;
}
});
if (!financialDatas) {
return false;
}
var checked7 = false
var num = 0;
$.each(financialDatas, function (i, o) {
if (o.zepPay == "Y"){
checked7 = true
}
});
var _grid = UICtrl.getGridManager('#paymentAccomplish_sapReturnGrid');
var datas = DataUtil.getGridData({
gridManager: _grid,
isAllData: isAllData,
onCheck: function () {
return true;
}
});
if (!datas) {
return false;
}
var checked6 = false
if (checked7){
$.each(datas, function (i, o) {
if (Public.isBlank(o.belnr1) || Public.isBlank(o.gjahr1)){
checked6 = true;
}
})
}
if (checked6){
Public.tip("请收到'付款完成、sap回执'消息后才归档");
return false;
}
}
let extendedData = {};
extendedData.CRDetail = Public.encodeJSONURI(result);
return extendedData;
......
......@@ -679,7 +679,51 @@ function getExtendedData(processAction) {
}
return mergedObj;
});
var subProcUnitId = getSubProcUnitId();
//如果没有收到SAP消息回执,不能提交归档
if ("file" === subProcUnitId){
var _financialGrid = UICtrl.getGridManager('#financialAuditGrid');
var financialDatas = DataUtil.getGridData({
gridManager: _financialGrid,
isAllData: isAllData,
onCheck: function () {
return true;
}
});
if (!financialDatas) {
return false;
}
var checked7 = false
var num = 0;
$.each(financialDatas, function (i, o) {
if (o.zepPay == "Y"){
checked7 = true
}
});
var _grid = UICtrl.getGridManager('#paymentAccomplish_sapReturnGrid');
var datas = DataUtil.getGridData({
gridManager: _grid,
isAllData: isAllData,
onCheck: function () {
return true;
}
});
if (!datas) {
return false;
}
var checked6 = false
if (checked7){
$.each(datas, function (i, o) {
if (Public.isBlank(o.belnr1) || Public.isBlank(o.gjahr1)){
checked6 = true;
}
})
}
if (checked6){
Public.tip("请收到'付款完成、sap回执'消息后才归档");
return false;
}
}
let extendedData = {};
extendedData.CRDetail = Public.encodeJSONURI(result);
return extendedData;
......
......@@ -759,6 +759,23 @@ function loadGrid(obj) {
})
UICtrl.setGridColumns(obj.gridManager,columns);
}
//费用报销单据发票号码栏,校验发票号码是否重复,重复(状态是已完成,申请,审批中)则提示该发票已经提交过,发票无效
if (item.column.name == "zyl06"){
Public.ajax(web_app.name+"/sapCostReimbursement/checkzyl06.ajax",{zyl06:item.record.zyl06},function (data) {
if (data > 0){
Public.tip("该发票 '"+item.value+"' 已经提交过,发票无效");
var _grid = UICtrl.getGridManager('#reimbursementApplierGrid');
var zepItemno = item.record.zepItemno;
$.each(_grid.currentData.Rows, function (i, row) {
if (zepItemno == row.zepItemno){
_grid.updateRow(row,{
zyl06:"",
})
}
})
}
})
}
return item;
},
onAfterShowData:function (){
......@@ -879,7 +896,51 @@ function getExtendedData(processAction) {
}
return mergedObj;
});
var subProcUnitId = getSubProcUnitId();
//如果没有收到SAP消息回执,不能提交归档
if ("file" === subProcUnitId){
var _financialGrid = UICtrl.getGridManager('#financialAuditGrid');
var financialDatas = DataUtil.getGridData({
gridManager: _financialGrid,
isAllData: isAllData,
onCheck: function () {
return true;
}
});
if (!financialDatas) {
return false;
}
var checked7 = false
var num = 0;
$.each(financialDatas, function (i, o) {
if (o.zepPay == "Y"){
checked7 = true
}
});
var _grid = UICtrl.getGridManager('#paymentAccomplish_sapReturnGrid');
var datas = DataUtil.getGridData({
gridManager: _grid,
isAllData: isAllData,
onCheck: function () {
return true;
}
});
if (!datas) {
return false;
}
var checked6 = false
if (checked7){
$.each(datas, function (i, o) {
if (Public.isBlank(o.belnr1) || Public.isBlank(o.gjahr1)){
checked6 = true;
}
})
}
if (checked6){
Public.tip("请收到'付款完成、sap回执'消息后才归档");
return false;
}
}
let extendedData = {};
extendedData.CRDetail = Public.encodeJSONURI(result);
return extendedData;
......
......@@ -579,7 +579,51 @@ function getExtendedData(processAction) {
}
return mergedObj;
});
var subProcUnitId = getSubProcUnitId();
//如果没有收到SAP消息回执,不能提交归档
if ("file" === subProcUnitId){
var _financialGrid = UICtrl.getGridManager('#financialAuditGrid');
var financialDatas = DataUtil.getGridData({
gridManager: _financialGrid,
isAllData: isAllData,
onCheck: function () {
return true;
}
});
if (!financialDatas) {
return false;
}
var checked7 = false
var num = 0;
$.each(financialDatas, function (i, o) {
if (o.zepPay == "Y"){
checked7 = true
}
});
var _grid = UICtrl.getGridManager('#paymentAccomplish_sapReturnGrid');
var datas = DataUtil.getGridData({
gridManager: _grid,
isAllData: isAllData,
onCheck: function () {
return true;
}
});
if (!datas) {
return false;
}
var checked6 = false
if (checked7){
$.each(datas, function (i, o) {
if (Public.isBlank(o.belnr1) || Public.isBlank(o.gjahr1)){
checked6 = true;
}
})
}
if (checked6){
Public.tip("请收到'付款完成、sap回执'消息后才归档");
return false;
}
}
let extendedData = {};
extendedData.CRDetail = Public.encodeJSONURI(result);
return extendedData;
......
......@@ -99,4 +99,15 @@ public class Function extends AbstractDaoFunction {
sql = sql.replace("%s",tableName);
return this.sqlExecutorDao.queryToList(sql, OrgUnit.class,bizId);
}
/**
* 根据业务主表id查询申请人
* @param bizId
* @return
*/
public List<OrgUnit> findPersonMember(String bizId){
Assert.hasText(bizId, "参数id不能为空。");
String sql = this.getSqlByname("findPersonMember");
return this.sqlExecutorDao.queryToList(sql, OrgUnit.class,bizId);
}
}
......@@ -30,4 +30,6 @@ public interface SapCostReimbursementApplication {
void savePaymentReceiptVo(PaymentReceiptVo paymentReceiptVo);
String queryTaskByBizId(String bizId);
Integer checkzyl06(String zyl06);
}
\ No newline at end of file
......@@ -24,6 +24,8 @@ import com.huigou.topsun.util.MyBaseUtil;
import com.huigou.uasp.bmp.common.BizBillStatus;
import com.huigou.uasp.bmp.operator.OperatorApplication;
import com.huigou.uasp.bpm.FlowBroker;
import com.huigou.uasp.bpm.engine.domain.model.ProcUnitHandler;
import com.huigou.uasp.bpm.engine.domain.model.TaskExtension;
import com.huigou.util.*;
import lombok.SneakyThrows;
import org.activiti.engine.delegate.DelegateExecution;
......@@ -141,6 +143,17 @@ public class SapCostReimbursementApplicationImpl extends FlowBroker implements S
if (this.isApplyProcUnit(delegateTask) && this.getApprovalParameter().isAdvanceProcessAction()) {
updateStatus(bizId, BizBillStatus.APPROVING);
}
if (this.isApprovalProcUnit(delegateTask) && this.getApprovalParameter().isAdvanceProcessAction()) {
TaskExtension te = actApplication.loadRuntimeTaskExtension(delegateTask.getId());
cn.hutool.core.lang.Assert.notNull(te, String.format("未查询到流程任务【%s】的扩展信息", delegateTask.getId()));
// 获取流程任务对应的审批环节信息
ProcUnitHandler procUnitHandler = procUnitHandlerApplication.loadProcUnitHandler(te.getProcUnitHandlerId());
String subProcUnitId = procUnitHandler.getSubProcUnitId();
if ("fundNode".equals(subProcUnitId)){
//在资产节点传到SAP
this.sendSapDate(this.costReimbursementRepository.findOne(bizId));
}
}
}
/**
......@@ -174,7 +187,7 @@ public class SapCostReimbursementApplicationImpl extends FlowBroker implements S
sapCostReimbursement.setStatusId(status.getId());
costReimbursementRepository.save(sapCostReimbursement);
//审核完成、远程调用sap接口
sendSapDate(sapCostReimbursement);
//sendSapDate(sapCostReimbursement);
}
@Override
......@@ -319,7 +332,9 @@ public class SapCostReimbursementApplicationImpl extends FlowBroker implements S
sapCostReimbursementDetail.setGjahr1(paymentReceiptVo.getGjahr1());
costReimbursementDetailRepository.save(sapCostReimbursementDetail);
}
this.makeACopyFor(reimbursement);
//在接收到SAP回执消息后,修改任务标题和当前时间,让申请人能看到该任务
this.updateActRuTaskExtension(reimbursement.getId());
//this.makeACopyFor(reimbursement);
}
@Override
......@@ -330,6 +345,14 @@ public class SapCostReimbursementApplicationImpl extends FlowBroker implements S
return taskId;
}
@Override
public Integer checkzyl06(String zyl06) {
QueryDescriptor queryDescriptor = this.sqlExecutorDao.getQuery(QUERY_XML_FILE_PATH, "checkzyl06");
String sql = queryDescriptor.getSql();
int i = this.sqlExecutorDao.queryToInt(sql, zyl06);
return i;
}
public void makeACopyFor(SapCostReimbursement reimbursement) {
// 流程结束给申请人发送抄送
List<String> executorIds = new ArrayList<>(1);
......@@ -340,6 +363,12 @@ public class SapCostReimbursementApplicationImpl extends FlowBroker implements S
this.workflowService.makeACopyFor(taskId, executorIds,"付款完成、sap回执:"+reimbursement.getZepFtypename()+"-"+reimbursement.getBillCode());
}
public void updateActRuTaskExtension(String bizId){
QueryDescriptor queryDescriptor = this.sqlExecutorDao.getQuery(QUERY_XML_FILE_PATH, "updateActRuTaskExtension");
String sql = queryDescriptor.getSql();
this.sqlExecutorDao.executeUpdate(sql, "付款完成、sap回执:",new Date(),bizId);
}
public static void main(String[] args) throws JsonProcessingException {
// post.setHeader("Content-type", "application/json;charset=utf-8");
......
......@@ -195,4 +195,15 @@ public class SapCostReimbursementController extends CommonController {
}
return messageMap;
}
/**
* 根据发票号校验是否已经提交过该发票号
* @return
*/
public String checkzyl06(){
SDO sdo = this.getSDO();
String zyl06 = sdo.getString("zyl06");
Integer count = costReimbursementApplication.checkzyl06(zyl06);
return success(count);
}
}
\ No newline at end of file
......@@ -60,6 +60,11 @@
o.id IN ( SELECT o.PARENT_ID FROM sa_oporg o LEFT JOIN %s pro ON o.id = pro.person_member_id WHERE pro.id = ? ) ) ) )
AND o.CODE IN ( 'JL', 'ZZ' ,'ZJ'));
</sql>
<sql name="findPersonMember">
SELECT o.FULL_ID, o.FULL_NAME
FROM sa_oporg o LEFT JOIN sap_cost_reimbursement_base_info t ON t.person_member_id = o.id WHERE t.id = ?
</sql>
</query>
</query-mappings>
\ No newline at end of file
......@@ -29,4 +29,20 @@
AND t.TASK_DEF_KEY_ = 'Apply' ORDER BY t.START_TIME_ desc LIMIT 1
</sql-query>
</query>
<query name="updateActRuTaskExtension">
<sql-query>
UPDATE act_ru_task_extension t
SET t.DESCRIPTION_ = CONCAT( ?, t.DESCRIPTION_ ),
t.START_TIME_ = ? WHERE t.BUSINESS_KEY_ = ?
</sql-query>
</query>
<query name="checkzyl06">
<sql-query>
SELECT COUNT( d.reimbursement_detail_id ) AS num FROM sap_cost_reimbursement_detail d
LEFT JOIN sap_cost_reimbursement_base_info t ON t.id = d.reimbursement_base_info_id
WHERE t.STATUS IN ( 1, 3 ) AND d.ZYL06 = ?
</sql-query>
</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