Commit 77dd1fb4 authored by wanghang's avatar wanghang

费用报销 流程

parent f94403b2
<%@ page language="java" contentType="text/html; charset=utf-8" %>
<%@taglib uri="/WEB-INF/taglib.tld" prefix="x" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head>
<x:base include="layout,dialog,grid,tree,combox,commonTree,date"/>
<x:script src='/biz/topsun/sap/costReimbursement/costReimbursement.js'/>
</head>
<body>
<div class="container-fluid" style="padding: 10px;">
<x:billTitle title="费用报销申请" needStatus="false" needPerson="true"/>
<form class="hg-form" method="post" action="" id="submitForm">
<x:hidden name="id"/>
<x:hidden name="billCode"/>
<x:hidden name="fillinDate" type="datetime"/>
<x:hidden name="fullId"/>
<x:hidden name="organId"/>
<x:hidden name="organName"/>
<x:hidden name="deptId"/>
<x:hidden name="deptName"/>
<x:hidden name="positionId"/>
<x:hidden name="positionName"/>
<x:hidden name="personMemberId"/>
<x:hidden name="personMemberName"/>
<div class="hg-form-cols">
<div class="hg-form-row">
<x:inputC name="kokrs" required="false" label="EP流程单号" labelCol="2" maxLength="64" fieldCol="2"/>
<x:inputC name="usnam" required="false" label="付款申请创建日期" labelCol="2" fieldCol="2"/>
<x:inputC name="zepFtype" required="false" label="EP付款申请类别" labelCol="2" maxLength="64"
fieldCol="2"
wrapper="date"/>
<x:inputC name="zepFtypename" required="false" label="EP付款申请类别名称" labelCol="2" maxLength="64"
fieldCol="2"
wrapper="date"/>
<x:inputC name="bukrs" required="false" label="公司代码" labelCol="2" fieldCol="2"/>
<x:inputC name="butxt" required="false" label="公司代码名称" labelCol="2" fieldCol="2"/>
<x:inputC name="zepDepart" required="false" label="EP部门代码" labelCol="2" fieldCol="2"/>
<x:inputC name="zepDepartname" required="false" label="EP部门名称" labelCol="2" fieldCol="2"/>
<x:inputC name="zepAppli" required="false" label="EP流程申请人代码" labelCol="2" fieldCol="2"/>
<x:inputC name="zepAppliname" required="false" label="EP流程申请人" labelCol="2" fieldCol="2"/>
<x:inputC name="zepFcrdate" required="false" label="付款申请创建日期" labelCol="2" fieldCol="2"/>
<x:inputC name="zepNo" required="false" label="EP流程单号" labelCol="2" fieldCol="2"/>
<x:inputC name="zepTxt" required="false" label="付款申请内容" labelCol="2" fieldCol="2"/>
<x:inputC name="zepFtamount" required="false" label="申请总金额(本位币)" labelCol="2" fieldCol="2"/>
<x:inputC name="zepFttax" required="false" label="申请总税额(本位币)" labelCol="2" fieldCol="2"/>
<x:inputC name="zepFtamount1" required="false" label="申请总金额" labelCol="2" fieldCol="2"/>
<x:inputC name="zepFttax1" required="false" label="申请总税额" labelCol="2" fieldCol="2"/>
<x:inputC name="zepPtamount" required="false" label="审批总金额(本位币)" labelCol="2" fieldCol="2"/>
<x:inputC name="zepPttax" required="false" label=" 审批总税额(本位币)" labelCol="2" fieldCol="2"/>
<x:inputC name="zepPtamount1" required="false" label="审批总金额" labelCol="2" fieldCol="2"/>
<x:inputC name="zepPttax1" required="false" label="审批总税额" labelCol="2" fieldCol="2"/>
</div>
</div>
<div class="blank_div clearfix"></div>
<div id="reimbursementApplierGrid" style="margin: 2px;">
</div>
<div class="blank_div clearfix"></div>
<div id="financialAuditGrid" style="margin: 2px;">
</div>
<div class="blank_div clearfix"></div>
<div id="capitalPostGrid" style="margin: 2px;">
</div>
</div>
</form>
</body>
</html>
var gridManager = null;
$(document).ready(function () {
initializateUI();
loadGrid();
})
function initializateUI() {
UICtrl.layout("#layout", {leftWidth: 3});
}
function loadGrid() {
var toolbarOptions = UICtrl.getDefaultToolbarOptions({
addHandler: function (){
addHandler()
},
deleteHandler: deleteHandler,
});
gridManager = UICtrl.grid("#costReimbursementListGrid", {
columns: [
{display: "EP付款申请类别", name: "zepFtype", width: 60, minWidth: 60, type: "string", align: "left"},
{display: "EP付款申请类别名称", name: "zepFtypename", width: 120, minWidth: 60, type: "string", align: "left"},
{display: "公司代码", name: "bukrs", width: 120, minWidth: 60, type: "string", align: "left"},
{display: "公司代码名称", name: "butxt", width: 120, minWidth: 60, type: "string", align: "left"},
{display: "EP部门代码", name: "zepDepart", width: 140, minWidth: 60, type: "string", align: "left"},
{display: "EP部门名称", name: "zepDepartname", width: 140, minWidth: 60, type: "string", align: "left"},
{display: "EP流程申请人代码", name: "zepAppli", width: 140, minWidth: 60, type: "string", align: "left"},
{display: "EP流程申请人", name: "zepAppliname", width: 140, minWidth: 60, type: "string", align: "left"},
{display: "付款申请创建日期", name: "zepFcrdate", width: 140, minWidth: 60, type: "string", align: "left"},
{display: "EP流程单号", name: "zepNo", width: 140, minWidth: 60, type: "string", align: "left"},
{display: "付款申请内容", name: "zepTxt", width: 140, minWidth: 60, type: "string", align: "left"},
{display: "填报日期", name: "fillinDate", width: 140, minWidth: 60, type: "string", align: "left"},
],
dataAction: "server",
url: web_app.name + '/sapCostReimbursement/slicedSapCostReimbursementList.ajax',
pageSize: 20,
usePager: true,
toolbar: toolbarOptions,
width: "100%",
height: "100%",
heightDiff: -8,
checkbox: true,
fixedCellHeight: true,
selectRowButtonOnly: true,
onDblClickRow: function (data, rowindex, rowobj) {
doView(data.id);
}
});
UICtrl.setSearchAreaToggle(gridManager);
}
function query(obj) {
var param = $(obj).formToJSON();
UICtrl.gridSearch(gridManager, param);
}
function reloadGrid() {
gridManager.loadData();
}
function resetForm(obj) {
$(obj).formClean();
}
//重写DataUtil的getUpdateRowId函数、它默认取行的id列
DataUtil.getUpdateRowId = function (gridManager) {
var result = DataUtil.getUpdateRow(gridManager);
if (result) {
return result.proofingMakeId;
}
return result;
}
//删除按钮
function deleteHandler() {
DataUtil.del({
action: 'sapCostReimbursement/deleteStatsIndicators.ajax',
gridManager: gridManager, idFieldName: 'id',
onSuccess: function () {
reloadGrid();
}
});
}
function addHandler() {
UICtrl.addTabItem({
tabid: 'costReimbursement',
text: "费用报销申请单",
url: web_app.name + '/sapCostReimbursement/forwardCostReimbursement.job'
});
}
function doView(id) {
UICtrl.addTabItem({
tabid: 'showCostReimbursement'+id,
text: "费用报销详情",
url: web_app.name + '/sapCostReimbursement/showSapCostReimbursement.do?bizId='+id+"&isDetailPage=true"
});
}
// function sendSapData(bizId){
// Public.ajax(web_app.name + '/sapStatsIndicators/againSendSapDate.ajax',{bizId:bizId},function (data){
// reloadGrid();
// })
// }
\ No newline at end of file
<%@ page contentType="text/html; charset=utf-8" language="java" %>
<%@ taglib uri="/WEB-INF/taglib.tld" prefix="x" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head>
<x:base include="layout,dialog,grid,tree,combox,commonTree"/>
<x:script src='/biz/topsun/sap/costReimbursement/costReimbursementList.js'/>
</head>
<body>
<div class="container-fluid">
<div class="ui-hide">
<x:select name="processType" dictionary="processType"/>
<x:select name="yesorno" dictionary="yesorno"/>
</div>
<div id="layout">
<div position="center" title="费用报销申请查询">
<x:title title="common.button.search" hideTable="queryMainForm" isHide="true"/>
<form class="hg-form ui-hide" method="post" action="" id="queryMainForm">
<x:inputC name="proofingApplyNo" required="false" label="申请单号" labelCol="1"/>
<x:searchButtons/>
</form>
<div class="blank_div clearfix"></div>
<div id="costReimbursementListGrid" style="margin: 2px;"></div>
</div>
</div>
</div>
</body>
</html>
\ No newline at end of file
......@@ -80,8 +80,14 @@ function loadGrid() {
display: "部门人员", name: "userName", width: 200, minWidth: 60, type: "string", align: "left",
editor: {
type: 'tree',
data: {name: 'org', filter: 'psm', minWidth: 250},
textField: 'handlerName', valueField: 'handlerId'
required: true,
data: {
name: 'org',
filter: 'psm',
minWidth: 250
},
textField: 'userName',
valueField: 'userCode'
}
// editor: {
// required: true, type: "select",
......@@ -105,29 +111,6 @@ function loadGrid() {
required: true
}
},
// { display: "审批人", name: "handlerName", width: 250, minWidth: 60, type: "string", align: "left",
// editor: { type: "dynamic", getEditor: function (row) {
// var dataSourceConfig = row['dataSourceConfig'] || {};
// if (typeof dataSourceConfig == "string"){
// dataSourceConfig = (new Function("return " + dataSourceConfig))();
// }
// return dataSourceConfig;
// }}
// },
// { display: "属性值", name: "propertyDisplay", width: 150, minWidth: 60, type: "string", align: "left",
// editor: {
// type: "dynamic", getEditor: function (row) {
// var dataSource = row['dataSource'] || "";
// if (dataSource) {
// if (typeof dataSource == "string"){
// dataSource = (new Function("return " + dataSource))();
// }
// return dataSource;
// }
// return {};
// }
// }
// }
],
dataAction: "server",
url: web_app.name + '/sapNonProdApplyNext/slicedDeptList.ajax',
......@@ -144,95 +127,13 @@ function loadGrid() {
UICtrl.setSearchAreaToggle(gridManager);
}
//
// function initAssistantGrid() {
// var toolbarOptions = UICtrl.getDefaultToolbarOptions({
// addHandler: function () {
// UICtrl.addGridRow(assistantGrid, {sequence: assistantGrid.getData().length + 1});
// },
// deleteHandler: function () {
// assistantGrid.deleteSelectedRow();
// }
// });
// var param = {}
// assistantGrid = UICtrl.grid('#businessPersonnelListGrid', {
// columns: [
// {
// display: "描述",
// name: "description",
// width: 150,
// minWidth: 60,
// type: "string",
// align: "left",
// frozen: true,
// editor: {type: 'text', required: true}
// },
// {
// display: "审批人类别",
// name: "handlerKindName",
// width: 100,
// minWidth: 60,
// type: "string",
// align: "left",
// frozen: true,
// editor: {
// type: 'select',
// data: {
// type: "bpm",
// name: "approvalHandlerKind",
// back: {code: "handlerKindCode", name: "handlerKindName", dataSourceConfig: "dataSourceConfig"}
// },
// required: true
// }
// },
// {
// display: "审批人",
// name: "handlerName",
// width: 150,
// minWidth: 60,
// type: "string",
// align: "left",
// frozen: true,
// editor: {
// type: 'tree',
// data: {name: 'org', filter: 'psm', minWidth: 250},
// textField: 'handlerName', valueField: 'handlerId'
// }
// },
// {
// display: "排序号", name: "sequence", width: 100, minWidth: 60, type: "string", align: "left",
// editor: {type: 'spinner', required: true}
// }
// ],
// dataAction: 'server',
// url: web_app.name + '/approvalRule/queryAssistantHandlers.ajax',
// parms: param,
// height: 200,
// sortName: 'sequence',
// sortOrder: 'asc',
// toolbar: toolbarOptions,
// enabledEdit: true,
// usePager: false,
// checkbox: true,
// fixedCellHeight: true,
// selectRowButtonOnly: true,
// autoAddRow: {kindId: "assistant", dataSourceConfig: "", /*, chiefId: $("#id").val()*/},
// onBeforeEdit: function (editParm) {
// var c = editParm.column;
// if (c.name == 'value') {//启用的数据value 不能编辑
// return editParm.record['status'] === 0;
// }
// return true;
// }
// });
// }
/**
* 表单提交
* @returns {boolean}
*/
function saveForm() {
debugger
let extendedData = getExtendedData();
if (!extendedData) return false;
var _self = this;
......@@ -270,9 +171,13 @@ function distributeForm() {
function getExtendedData() {
debugger
let msg = "[";
let isUndefined = false
const deptStaffResult = DataUtil.getGridData({
let deptStaffResult = DataUtil.getGridData({
gridManager: gridManager,
isAllData: true,
onCheck: function (data) {
......@@ -280,6 +185,7 @@ function getExtendedData() {
msg += `${data.deptName}、`;
isUndefined = true;
}
return true;
}
});
......@@ -288,7 +194,8 @@ function getExtendedData() {
return false
}
let extendedData = {};
return extendedData.deptStaff = Public.encodeJSONURI(deptStaffResult);
extendedData.deptStaff = Public.encodeJSONURI(deptStaffResult);
return extendedData;
}
......
......@@ -3,13 +3,13 @@ var gridManager = null;
$(document).ready(function () {
initializateUI();
loadStatsIndicatorsListGridGrid();
loadStatsIndicatorsListGrid();
})
function initializateUI() {
UICtrl.layout("#layout", {leftWidth: 3});
}
function loadStatsIndicatorsListGridGrid() {
function loadStatsIndicatorsListGrid() {
var toolbarOptions = UICtrl.getDefaultToolbarOptions({
addHandler: function (){
......
......@@ -2,8 +2,6 @@ package com.huigou.topsun.base;
import com.huigou.context.Operator;
import com.huigou.topsun.base.bsnMessage.appliction.BsnMessageApplication;
import com.huigou.topsun.base.bsnMessage.domain.query.BsnMessageQueryRequest;
import com.huigou.topsun.sap.statsIndicators.domain.query.SapStatsIndicatorsQueryRequest;
import com.huigou.uasp.bmp.opm.application.OrgApplication;
import com.huigou.uasp.bpm.BatchAdvanceParameter;
import com.huigou.uasp.bpm.TaskStatus;
......
package com.huigou.topsun.base.bsnMessage.domain;
public enum ActiveStatus {
UNFINISHED(0), // 未完成
FINISHED(1), // 完成
SAVED(2), // 保存未分发
REJECTED(3); // 驳回
private int value;
private ActiveStatus(int value) {
this.value = value;
}
public int getValue() {
return value;
}
}
package com.huigou.topsun.base.bsnMessage.domain;
import lombok.Data;
import org.hibernate.annotations.GenericGenerator;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.*;
import java.io.Serializable;
import java.util.Date;
......@@ -21,6 +19,13 @@ public class BsnMessage implements Serializable {
* id
*/
@Id
@GeneratedValue(
generator = "system-uuid"
)
@GenericGenerator(
name = "system-uuid",
strategy = "guid"
)
private String id;
/**
......@@ -58,18 +63,12 @@ public class BsnMessage implements Serializable {
private Date finishedDate;
/**
* 驳回信息
*/
@Column(name = "reject_msg")
private String rejectMsg;
/**
*任务执行地址
*/
@Column(name = "executor_url")
private Date executorUrl;
private String executorUrl;
/**
* 完成状态(默认为未完成:0,完成为:1,保存未分发:2)
......
package com.huigou.topsun.sap.costReimbursement.application;
import com.huigou.topsun.sap.costReimbursement.domain.SapCostReimbursement;
import com.huigou.topsun.sap.costReimbursement.domain.query.SapCostReimbursementQueryRequest;
import com.huigou.topsun.sap.statsIndicators.domain.SapStatsIndicators;
import com.huigou.topsun.sap.statsIndicators.domain.query.SapStatsIndicatorsQueryRequest;
import java.util.List;
import java.util.Map;
public interface SapCostReimbursementApplication {
String PROCESS_DEFINITION_KEY = "sapCostReimbursementProc";
String QUERY_XML_FILE_PATH="config/topsun/sap/costReimbursement/costReimbursement.xml";
SapCostReimbursement loadSapCostReimbursementById(String id);
Map<String, Object> slicedSapCostReimbursementQuery(SapCostReimbursementQueryRequest query);
void deleteSapCostReimbursementById(String id);
void deleteSapCostReimbursementByIds(List<String> ids);
// void sendSapDate(String bizId);
}
\ No newline at end of file
package com.huigou.topsun.sap.costReimbursement.application;
import com.huigou.topsun.sap.costReimbursement.domain.SapCostReimbursementDetail;
import java.util.List;
public interface SapCostReimbursementDetailApplication {
// String QUERY_XML_FILE_PATH="config/topsun/sap/statsIndicators/statsIndicators.xml";
// Map<String, Object> slicedStatsIndicatorsDetailQuery(SapStatsIndicatorsDetailQueryRequest query);
List<SapCostReimbursementDetail> getAllByCRId(String CRId);
}
package com.huigou.topsun.sap.costReimbursement.application.impl;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.huigou.data.query.model.QueryDescriptor;
import com.huigou.topsun.sap.common.DefaultHttpClient;
import com.huigou.topsun.sap.common.serializer.MessageCodec;
import com.huigou.topsun.sap.costReimbursement.application.SapCostReimbursementApplication;
import com.huigou.topsun.sap.costReimbursement.domain.SapCostReimbursement;
import com.huigou.topsun.sap.costReimbursement.domain.SapCostReimbursementDetail;
import com.huigou.topsun.sap.costReimbursement.domain.query.SapCostReimbursementQueryRequest;
import com.huigou.topsun.sap.costReimbursement.repostiory.SapCostReimbursementDetailRepository;
import com.huigou.topsun.sap.costReimbursement.repostiory.SapCostReimbursementRepository;
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.sap.statsIndicators.domain.query.SapStatsIndicatorsQueryRequest;
import com.huigou.topsun.util.MyBaseUtil;
import com.huigou.uasp.bmp.common.BizBillStatus;
import com.huigou.uasp.bpm.FlowBroker;
import com.huigou.util.ClassHelper;
import com.huigou.util.SDO;
import lombok.SneakyThrows;
import org.activiti.engine.delegate.DelegateExecution;
import org.activiti.engine.delegate.DelegateTask;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import java.util.Map;
@Service("sapCostReimbursementApplication")
public class SapCostReimbursementApplicationImpl extends FlowBroker implements SapCostReimbursementApplication {
@Autowired
private SapCostReimbursementDetailRepository costReimbursementDetailRepository;
@Autowired
private SapCostReimbursementRepository costReimbursementRepository;
// @Autowired
// DefaultHttpClient defaultHttpClient;
// @Autowired
// MessageCodec messageCodec;
@SneakyThrows
@Transactional(propagation = Propagation.REQUIRES_NEW)
@Override
protected String saveBizAndApprovalData() {
super.saveBizAndApprovalData();
SDO sdo = this.getBizAndApprovalData();
SapCostReimbursement sapCostReimbursement = getBizEntity(SapCostReimbursement.class);
if (sapCostReimbursement.isNew()) {
sapCostReimbursement.setStatusId(BizBillStatus.APPLYING.getId());
} else {
sapCostReimbursement = (SapCostReimbursement) commonDomainService.loadAndFillinProperties(sapCostReimbursement);
}
sapCostReimbursement = costReimbursementRepository.save(sapCostReimbursement);
String CRDetailJSON = sdo.getString("CRDetail");
ObjectMapper objectMapper = new ObjectMapper();
List<SapCostReimbursementDetail> CRDetailAll = costReimbursementDetailRepository.findAllByReimbursementBaseInfoId(sapCostReimbursement.getId());
if (!CRDetailAll.isEmpty()) {
costReimbursementDetailRepository.delete(CRDetailAll);
}
List<SapCostReimbursementDetail> CRDetailList = objectMapper.readValue(CRDetailJSON, new TypeReference<List<SapCostReimbursementDetail>>() {});
for (SapCostReimbursementDetail item : CRDetailList) {
item.setReimbursementBaseInfoId(sapCostReimbursement.getId());
}
costReimbursementDetailRepository.save(CRDetailList);
return sapCostReimbursement.getId();
}
@Override
protected Map<String, Object> getProcessBizParams(String bizId) {
// 返回业务数据给流程实例,
return ClassHelper.toMap(costReimbursementRepository.getOne(bizId));
}
/**
* 流程实例结束
*
* @param delegateExecution
*/
@Override
protected void onEnd(DelegateExecution delegateExecution) {
super.onEnd(delegateExecution);
String bizId = delegateExecution.getProcessBusinessKey();
BizBillStatus status = approvePassed() ? BizBillStatus.COMPLETED : BizBillStatus.ABORTED;
SapCostReimbursement sapCostReimbursement = costReimbursementRepository.findOne(bizId);
sapCostReimbursement.setStatusId(status.getId());
costReimbursementRepository.save(sapCostReimbursement);
//审核完成、远程调用sap接口
// sendSapDate(bizId);
}
@Override
protected void onAbortProcessInstance(DelegateExecution delegateExecution) {
super.onAbortProcessInstance(delegateExecution);
String bizId = delegateExecution.getProcessBusinessKey();
SapCostReimbursement sapCostReimbursement = costReimbursementRepository.findOne(bizId);
sapCostReimbursement.setStatusId(BizBillStatus.ABORTED.getId());
costReimbursementRepository.save(sapCostReimbursement);
}
/**
* @param delegateTask
* @param destActivityId 回退到的目标节点id
*/
@Override
protected void onBack(DelegateTask delegateTask, String destActivityId) {
super.onBack(delegateTask, destActivityId);
if ("Apply".equalsIgnoreCase(destActivityId)) {
String bizId = delegateTask.getExecution().getProcessBusinessKey();
SapCostReimbursement sapCostReimbursement = costReimbursementRepository.findOne(bizId);
sapCostReimbursement.setStatusId(BizBillStatus.APPLYING.getId());
costReimbursementRepository.save(sapCostReimbursement);
}
}
@Override
public SapCostReimbursement loadSapCostReimbursementById(String id) {
return costReimbursementRepository.findOne(id);
}
@Override
public Map<String, Object> slicedSapCostReimbursementQuery(SapCostReimbursementQueryRequest query) {
QueryDescriptor queryDescriptor = this.sqlExecutorDao.getQuery(QUERY_XML_FILE_PATH, "slicedSapCostReimbursementQuery");
return this.sqlExecutorDao.executeSlicedQuery(queryDescriptor, query);
}
@Override
@Transactional(propagation = Propagation.REQUIRES_NEW)
public void deleteSapCostReimbursementById(String id) {
SapCostReimbursement costReimbursement = costReimbursementRepository.findOne(id);
List<SapCostReimbursementDetail> all = costReimbursementDetailRepository.findAllByReimbursementBaseInfoId(id);
costReimbursementDetailRepository.delete(all);
costReimbursementRepository.delete(costReimbursement);
}
@Override
@Transactional
public void deleteSapCostReimbursementByIds(List<String> ids) {
ids.forEach(this::deleteSapCostReimbursementById);
}
// /**
// * 远程调用sap接口,传递数据
// *
// * @param bizId
// */
// public void sendSapDate(String bizId) {
// SapStatsIndicators sapStatsIndicators = sapStatsIndicatorsRepository.findOne(bizId);
// if (sapStatsIndicators.getStatusId() == BizBillStatus.APPLYING.getId()) {
// throw new RuntimeException("本数据未经审批完成!");
// }
// List<SapStatsIndicatorsDetail> all = sapStatsIndicatorsDetailRepository.findAllByStatsIndicatorsId(bizId);
// List<Map<String, Object>> list = new ArrayList<>();
// ObjectMapper objectMapper = new ObjectMapper();
// Map<String, Object> map = MyBaseUtil.convertToMap(sapStatsIndicators);
// //封装参数
// for (SapStatsIndicatorsDetail sapStatsIndicatorsDetail : all) {
// Map<String, Object> detailMap = objectMapper.convertValue(sapStatsIndicatorsDetail, Map.class);
// map.put("ITEM", detailMap);
// list.add(map);
// }
// String url = "cud_kb31n/kb31n";
// SapStatsIndicatorsResult sapStatsIndicatorsResult = null;
// try {
// String result = defaultHttpClient.execute(list, url);
// List<SapStatsIndicatorsResult> resultList = objectMapper.readValue(result, new TypeReference<List<SapStatsIndicatorsResult>>() {
// });
//
// sapStatsIndicatorsResult = resultList.get(0);
//
// if (!"s".equals(sapStatsIndicatorsResult.getType())) {
// throw new RuntimeException("数据传输失败,请稍后手动重试!");
// }
// } catch (IOException e) {
// if (sapStatsIndicatorsResult == null) {
// sapStatsIndicatorsResult = new SapStatsIndicatorsResult();
// }
// sapStatsIndicatorsResult.setType("A");
// throw new RuntimeException("sap服务器无响应请稍后手动重试!");
// } finally {
// SapStatsIndicatorsResult statsIndicatorsId = sapStatsIndicatorsResultRepository.findByStatsIndicatorsId(bizId);
// if(statsIndicatorsId!=null)sapStatsIndicatorsResultRepository.delete(statsIndicatorsId);
// sapStatsIndicatorsResult.setStatsIndicatorsId(bizId);
// sapStatsIndicatorsResultRepository.save(sapStatsIndicatorsResult);
// }
// }
}
\ No newline at end of file
package com.huigou.topsun.sap.costReimbursement.application.impl;
import com.huigou.data.query.model.QueryDescriptor;
import com.huigou.topsun.sap.costReimbursement.application.SapCostReimbursementDetailApplication;
import com.huigou.topsun.sap.costReimbursement.domain.SapCostReimbursementDetail;
import com.huigou.topsun.sap.costReimbursement.repostiory.SapCostReimbursementDetailRepository;
import com.huigou.topsun.sap.statsIndicators.application.SapStatsIndicatorsDetailApplication;
import com.huigou.topsun.sap.statsIndicators.domain.query.SapStatsIndicatorsDetailQueryRequest;
import com.huigou.uasp.bmp.common.application.BaseApplication;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
@Service
public class SapCostReimbursementDetailApplicationImpl extends BaseApplication implements SapCostReimbursementDetailApplication {
// @Override
// public Map<String, Object> slicedStatsIndicatorsDetailQuery(SapStatsIndicatorsDetailQueryRequest query) {
// QueryDescriptor queryDescriptor = this.sqlExecutorDao.getQuery(QUERY_XML_FILE_PATH, "slicedStatsIndicatorsDetailQuery");
// return this.sqlExecutorDao.executeSlicedQuery(queryDescriptor,query);
// }
@Autowired
SapCostReimbursementDetailRepository costReimbursementDetailRepository;
@Override
public List<SapCostReimbursementDetail> getAllByCRId(String CRId) {
return costReimbursementDetailRepository.findAllByReimbursementBaseInfoId(CRId);
}
}
package com.huigou.topsun.sap.costReimbursement.controller;
import com.huigou.context.Operator;
import com.huigou.context.OrgUnit;
import com.huigou.topsun.sap.costReimbursement.application.SapCostReimbursementApplication;
import com.huigou.topsun.sap.costReimbursement.application.SapCostReimbursementDetailApplication;
import com.huigou.topsun.sap.costReimbursement.domain.SapCostReimbursement;
import com.huigou.topsun.sap.costReimbursement.domain.SapCostReimbursementDetail;
import com.huigou.topsun.sap.costReimbursement.domain.query.SapCostReimbursementQueryRequest;
import com.huigou.topsun.sap.statsIndicators.application.SapStatsIndicatorsApplication;
import com.huigou.topsun.sap.statsIndicators.application.SapStatsIndicatorsDetailApplication;
import com.huigou.topsun.sap.statsIndicators.domain.SapStatsIndicators;
import com.huigou.topsun.sap.statsIndicators.domain.query.SapStatsIndicatorsDetailQueryRequest;
import com.huigou.topsun.sap.statsIndicators.domain.query.SapStatsIndicatorsQueryRequest;
import com.huigou.uasp.annotation.ControllerMapping;
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.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import java.util.List;
import java.util.Map;
@Controller
@ControllerMapping("/sapCostReimbursement")
public class SapCostReimbursementController extends CommonController {
protected String getPagePath() {
return "/biz/topsun/sap/costReimbursement/";
}
@Autowired
SapCostReimbursementApplication costReimbursementApplication;
@Autowired
SapCostReimbursementDetailApplication costReimbursementDetailApplication;
public String forwardCostReimbursementList(){
return forward("costReimbursementList");
}
public String forwardCostReimbursement(){
//定义流程
this.putAttribute("processDefinitionKey", SapCostReimbursementApplication.PROCESS_DEFINITION_KEY);
this.putAttribute("procUnitId", "Apply");//定义流程环节的id
SapCostReimbursement sapCostReimbursement = new SapCostReimbursement();
sapCostReimbursement.setStatusId(BizBillStatus.APPLYING.getId());
Operator operator = getOperator();//获取当前操作员的详情信息
sapCostReimbursement.setDefaultValues(new OrgUnit(operator.getFullId(), operator.getFullName()));
return forward("costReimbursement",sapCostReimbursement);
}
public String slicedSapCostReimbursementList(){
SDO sdo = this.getSDO();
SapCostReimbursementQueryRequest queryRequest = sdo.toQueryRequest(SapCostReimbursementQueryRequest.class);
Map<String, Object> map = costReimbursementApplication.slicedSapCostReimbursementQuery(queryRequest);
return toResult(map);
}
public String slicedSapCostReimbursementDetailList(){
SDO sdo = this.getSDO();
List<SapCostReimbursementDetail> CRDetailAll = costReimbursementDetailApplication.getAllByCRId(sdo.getId());
return toResult(CRDetailAll);
}
/**
* 工作流审核跳转页面
* @return
*/
public String showSapCostReimbursement() {
SDO sdo = this.getSDO();
String id = sdo.getBizId();
String isDetailPage = sdo.getString("isDetailPage");
if("true".equals(isDetailPage))this.putAttribute("isReadOnly","true");
SapCostReimbursement costReimbursement = costReimbursementApplication.loadSapCostReimbursementById(id);
return forward("costReimbursement",costReimbursement);
}
public String deleteStatsIndicators(){
SDO sdo = this.getSDO();
List<String> ids = sdo.getIds();
costReimbursementApplication.deleteSapCostReimbursementByIds(ids);
return success();
}
//
// /**
// * 手动发送数据到sap
// * @return
// */
// public String againSendSapDate(){
// SDO sdo = this.getSDO();
// String id = sdo.getBizId();
// sapStatsIndicatorsApplication.sendSapDate(id);
// return success();
// }
}
\ No newline at end of file
package com.huigou.topsun.sap.costReimbursement.domain;
import java.math.BigDecimal;
import java.util.Date;
import javax.persistence.*;
import com.huigou.data.domain.model.FlowBillAbstractEntity;
import lombok.Data;
/**
*
* @TableName sap_cost_reimbursement_base_info
*/
@Table(name="sap_cost_reimbursement_base_info")
@Entity
@Data
public class SapCostReimbursement extends FlowBillAbstractEntity {
/**
* EP付款申请类别
*/
@Column(name = "ZEP_FTYPE")
private String zepFtype;
/**
* EP付款申请类别名称
*/
@Column(name = "ZEP_FTYPENAME")
private String zepFtypename;
/**
* 公司代码
*/
@Column(name = "BUKRS")
private String bukrs;
/**
* 公司代码名称
*/
@Column(name = "BUTXT")
private String butxt;
/**
* EP部门代码
*/
@Column(name = "ZEP_DEPART")
private String zepDepart;
/**
* EP部门名称
*/
@Column(name = "ZEP_DEPARTNAME")
private String zepDepartname;
/**
* EP流程申请人代码
*/
@Column(name = "ZEP_APPLI")
private String zepAppli;
/**
* EP流程申请人
*/
@Column(name = "ZEP_APPLINAME")
private String zepAppliname;
/**
* 付款申请创建日期
*/
@Column(name = "ZEP_FCRDATE")
private Date zepFcrdate;
/**
* EP流程单号
*/
@Column(name = "ZEP_NO")
private String zepNo;
/**
* 付款申请内容
*/
@Column(name = "ZEP_TXT")
private String zepTxt;
/**
* 申请总金额(本位币)
*/
@Column(name = "ZEP_FTAMOUNT")
private BigDecimal zepFtamount;
/**
* 申请总税额(本位币)
*/
@Column(name = "ZEP_FTTAX")
private BigDecimal zepFttax;
/**
* 申请总金额
*/
@Column(name = "ZEP_FTAMOUNT1")
private BigDecimal zepFtamount1;
/**
* 申请总税额
*/
@Column(name = "ZEP_FTTAX1")
private BigDecimal zepFttax1;
/**
* 审批总金额(本位币)
*/
@Column(name = "ZEP_PTAMOUNT")
private BigDecimal zepPtamount;
/**
* 审批总税额(本位币)
*/
@Column(name = "ZEP_PTTAX")
private BigDecimal zepPttax;
/**
* 审批总金额
*/
@Column(name = "ZEP_PTAMOUNT1")
private BigDecimal zepPtamount1;
/**
* 审批总税额
*/
@Column(name = "ZEP_PTTAX1")
private BigDecimal zepPttax1;
@Override
protected String getCodeRuleId() {
return "sapCostReimbursement";
}
}
\ No newline at end of file
package com.huigou.topsun.sap.costReimbursement.domain;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import javax.persistence.*;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.Data;
import org.hibernate.annotations.GenericGenerator;
/**
*
* @TableName sap_cost_reimbursement_detail
*/
@Table(name="sap_cost_reimbursement_detail")
@Entity
@Data
@JsonIgnoreProperties(ignoreUnknown = true)
public class SapCostReimbursementDetail implements Serializable {
/**
*
*/
@Id
@GeneratedValue(
generator = "system-uuid"
)
@GenericGenerator(
name = "system-uuid",
strategy = "guid"
)
@Column(name = "reimbursement_detail_id")
private String reimbursementDetailId;
/**
*
*/
@Column(name = "reimbursement_base_info_id")
private String reimbursementBaseInfoId;
/**
* BP标识
*/
@Column(name = "ZEP_BPTYPE")
private String zepBptype;
/**
* BP标识描述
*/
@Column(name = "ZEP_BPTYPENAME")
private String zepBptypename;
/**
* BP
*/
@Column(name = "PARTNER")
private String partner;
/**
* BP银行账号
*/
@Column(name = "BANKN")
private String bankn;
/**
* BP账号名称
*/
@Column(name = "KOINH")
private String koinh;
/**
* BP联行号
*/
@Column(name = "BANKL")
private String bankl;
/**
* SWIFT/BIC
*/
@Column(name = "SWIFT")
private String swift;
/**
* BP联行号名称
*/
@Column(name = "BANKA")
private String banka;
/**
* EP流程子序号
*/
@Column(name = "ZEP_ITEMNO")
private String zepItemno;
/**
* 计划内外付款标识
*/
@Column(name = "ZEP_PLAN")
private String zepPlan;
/**
* 计划内外标识名称
*/
@Column(name = "ZEP_PLANNAME")
private String zepPlanname;
/**
* 费用类型代码
*/
@Column(name = "ZEP_EXTYPE")
private String zepExtype;
/**
* 费用类型名称
*/
@Column(name = "ZEP_EXTYPENAME")
private String zepExtypename;
/**
* 费用会计科目
*/
@Column(name = "HKONT")
private String hkont;
/**
* 总账科目描述
*/
@Column(name = "TXT50")
private String txt50;
/**
* 计划付款日期
*/
@Column(name = "ZEP_FPLDATE")
private Date zepFpldate;
/**
* 成本中心
*/
@Column(name = "KOSTL")
private String kostl;
/**
* 成本中心名称
*/
@Column(name = "KTEXT1")
private String ktext1;
/**
* 内部订单
*/
@Column(name = "AUFNR")
private String aufnr;
/**
* 内部订单描述
*/
@Column(name = "KTEXT")
private String ktext;
/**
* 币别
*/
@Column(name = "WAERS")
private String waers;
/**
* 汇率
*/
@Column(name = "KURSF")
private BigDecimal kursf;
/**
* 不含税金额(本位币)
*/
@Column(name = "NETWR1")
private BigDecimal netwr1;
/**
* 税额(本位币)
*/
@Column(name = "KWETR1")
private BigDecimal kwetr1;
/**
* 含税金额(本位币)
*/
@Column(name = "KZWI11")
private BigDecimal kzwi11;
/**
* 税码
*/
@Column(name = "MWSKZ")
private String mwskz;
/**
* 不含税金额
*/
@Column(name = "NETWR")
private BigDecimal netwr;
/**
* 税额
*/
@Column(name = "KWETR")
private BigDecimal kwetr;
/**
* 含税金额
*/
@Column(name = "KZWI1")
private BigDecimal kzwi1;
/**
* 不含税金额(审批-本位币)
*/
@Column(name = "ZEP_PDAMOUNT")
private BigDecimal zepPdamount;
/**
* 税额(审批-本位币)
*/
@Column(name = "ZEP_PDTAX")
private BigDecimal zepPdtax;
/**
* 含税金额(审批-本位币)
*/
@Column(name = "ZEP_PTDAMOUNT")
private BigDecimal zepPtdamount;
/**
* 不含税金额(审批)
*/
@Column(name = "ZEP_PDAMOUNT1")
private BigDecimal zepPdamount1;
/**
* 税额(审批)
*/
@Column(name = "ZEP_PDTAX1")
private BigDecimal zepPdtax1;
/**
* 含税金额(审批)
*/
@Column(name = "ZEP_PTDAMOUNT1")
private BigDecimal zepPtdamount1;
/**
* 付款方式代码
*/
@Column(name = "ZLSCH")
private String zlsch;
/**
* 付款方式名称
*/
@Column(name = "ZLSCH_TEXT1")
private String zlschText1;
/**
* 是否付款
*/
@Column(name = "ZEP_PAY")
private String zepPay;
/**
* 直联付款标识
*/
@Column(name = "ZEP_BANK")
private String zepBank;
/**
* 记账凭证编号
*/
@Column(name = "BELNR")
private String belnr;
/**
* 记账凭证财年
*/
@Column(name = "GJAHR")
private String gjahr;
/**
* 记账过账日期
*/
@Column(name = "BUDAT")
private Date budat;
/**
* 记账凭证日期
*/
@Column(name = "BLDAT")
private Date bldat;
/**
* 付款凭证编号
*/
@Column(name = "BELNR1")
private String belnr1;
/**
* 付款凭证财年
*/
@Column(name = "GJAHR1")
private String gjahr1;
/**
* 付款过账日期
*/
@Column(name = "BUDAT1")
private Date budat1;
/**
* 付款凭证日期
*/
@Column(name = "BLDAT1")
private Date bldat1;
/**
* 付款状态
*/
@Column(name = "ZPAY_STAUS")
private String zpayStaus;
/**
* 原因代码
*/
@Column(name = "RSTGR")
private String rstgr;
/**
* 付款附言
*/
@Column(name = "ZEP_TXT1")
private String zepTxt1;
/**
* 付款银行账号
*/
@Column(name = "BANKN1")
private String bankn1;
/**
* 付款银行账号名称
*/
@Column(name = "ZT012K_TEXT1")
private String zt012kText1;
/**
* 返回状态
*/
@Column(name = "MSGTY")
private String msgty;
/**
* 返回消息
*/
@Column(name = "MSGTX")
private String msgtx;
private static final long serialVersionUID = 1L;
}
\ No newline at end of file
package com.huigou.topsun.sap.costReimbursement.domain.query;
import com.huigou.data.domain.query.QueryAbstractRequest;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
/**
*
* @TableName sap_cost_reimbursement_base_info
*/
@Data
public class SapCostReimbursementQueryRequest extends QueryAbstractRequest {
/**
* EP付款申请类别
*/
private String zepFtype;
/**
* EP付款申请类别名称
*/
private String zepFtypename;
/**
* 公司代码
*/
private String bukrs;
/**
* 公司代码名称
*/
private String butxt;
/**
* EP部门代码
*/
private String zepDepart;
/**
* EP部门名称
*/
private String zepDepartname;
/**
* EP流程申请人代码
*/
private String zepAppli;
/**
* EP流程申请人
*/
private String zepAppliname;
/**
* 付款申请创建日期
*/
private Date zepFcrdate;
/**
* EP流程单号
*/
private String zepNo;
/**
* 付款申请内容
*/
private String zepTxt;
/**
* 申请总金额(本位币)
*/
private BigDecimal zepFtamount;
/**
* 申请总税额(本位币)
*/
private BigDecimal zepFttax;
/**
* 申请总金额
*/
private BigDecimal zepFtamount1;
/**
* 申请总税额
*/
private BigDecimal zepFttax1;
/**
* 审批总金额(本位币)
*/
private BigDecimal zepPtamount;
/**
* 审批总税额(本位币)
*/
private BigDecimal zepPttax;
/**
* 审批总金额
*/
private BigDecimal zepPtamount1;
/**
* 审批总税额
*/
private BigDecimal zepPttax1;
/**
* 填报日期
*/
private Date fillinDate;
}
\ No newline at end of file
package com.huigou.topsun.sap.costReimbursement.repostiory;
import com.huigou.topsun.sap.costReimbursement.domain.SapCostReimbursementDetail;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
public interface SapCostReimbursementDetailRepository extends JpaRepository<SapCostReimbursementDetail,String> {
List<SapCostReimbursementDetail> findAllByReimbursementBaseInfoId(String baseInfoId);
}
package com.huigou.topsun.sap.costReimbursement.repostiory;
import com.huigou.topsun.sap.costReimbursement.domain.SapCostReimbursement;
import org.springframework.data.jpa.repository.JpaRepository;
public interface SapCostReimbursementRepository extends JpaRepository<SapCostReimbursement,String> {
}
package com.huigou.topsun.sap.nonProdApply.application;
import com.fasterxml.jackson.core.JsonProcessingException;
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;
......
package com.huigou.topsun.sap.nonProdApply.application.impl;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.huigou.context.Operator;
import com.huigou.topsun.base.bsnMessage.domain.ActiveStatus;
import com.huigou.topsun.base.bsnMessage.domain.BsnMessage;
import com.huigou.topsun.base.bsnMessage.repository.BsnMessageRepository;
import com.huigou.topsun.proofing.domain.proofingApply.model.ProofingApplyProcess;
......@@ -16,10 +19,7 @@ import com.huigou.util.SDO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
@Service
public class NonProdApplyDeptApplicationImpl extends BaseApplication implements NonProdApplyDeptApplication {
......@@ -30,24 +30,49 @@ public class NonProdApplyDeptApplicationImpl extends BaseApplication implements
BsnMessageRepository bsnMessageRepository;
@Override
public Map<String,Object> saveSapNonProdApplyDept(SDO sdo) {
public Map<String,Object> saveSapNonProdApplyDept(SDO sdo){
Map<String,Object> map = new HashMap<>();
SapNonProdApplyDept nonProdApplyDept = sdo.toObject(SapNonProdApplyDept.class);
nonProdApplyDept = nonProdApplyDeptRepository.save(nonProdApplyDept);
//获取分发的部门与人员信息
ObjectMapper objectMapper = new ObjectMapper();
String deptStaffJSON = sdo.getString("deptStaff");
// List<BsnMessage> processList = objectMapper.readValue(processJSON, new TypeReference<List<ProofingApplyProcess>>() {
// });
SapNonProdApplyDept save = nonProdApplyDeptRepository.save(nonProdApplyDept);
List<Map<String, String>> deptStaffList = null;
try {
deptStaffList = objectMapper.readValue(deptStaffJSON, new TypeReference<List<Map<String, String>>>() {});
} catch (JsonProcessingException e) {
throw new RuntimeException("JSON转换失败:"+e);
}
map.put("applyDeptId",save.getApplyDeptId());
Operator operator = getOperator();//获取当前操作员的详情信息
//封装分发数据
List<BsnMessage> bsnMessageList = new ArrayList<>();
for (Map<String, String> stringMap : deptStaffList) {
BsnMessage bsnMessage = new BsnMessage();
String userCode = stringMap.get("userCode");
String deptName = stringMap.get("deptName");
String deptCode = stringMap.get("deptCode");
bsnMessage.setListners(userCode);
bsnMessage.setBusinessCode(deptCode);
bsnMessage.setActive(ActiveStatus.SAVED.getValue());
bsnMessage.setCreateDate(new Date());
bsnMessage.setTitle("非产品/非本成品类物料:"+deptName+"部门数据维护");
bsnMessage.setExecutorUrl("sapNonProdApplyNext/fillInNonProdApplyDept.do");
bsnMessage.setBusinessId(nonProdApplyDept.getApplyDeptId());
bsnMessageList.add(bsnMessage);
}
bsnMessageRepository.save(bsnMessageList);
map.put("applyDeptId",nonProdApplyDept.getApplyDeptId());
return map;
}
@Override
public void distributeSapNonProdApplyDept(SDO sdo) {
//将状态为保存为分发的全部修改为分发未完成
Map<String, Object> map = this.saveSapNonProdApplyDept(sdo);
List<BsnMessage> nonProdApplyDeptList = bsnMessageRepository.findAllByBusinessId((String) map.get("applyDeptId"));
nonProdApplyDeptList.forEach(item->item.setActive(0));
nonProdApplyDeptList.forEach(item->item.setActive(ActiveStatus.UNFINISHED.getValue()));
bsnMessageRepository.save(nonProdApplyDeptList);
}
......@@ -56,6 +81,7 @@ public class NonProdApplyDeptApplicationImpl extends BaseApplication implements
return nonProdApplyDeptRepository.findOne(id);
}
@Override
public void rejectNonProdApplyDept(SDO sdo) {
String septString = sdo.getString("dept");
......@@ -64,10 +90,9 @@ public class NonProdApplyDeptApplicationImpl extends BaseApplication implements
String bdid = sdo.getString("表单的id");
//更改状态此对象为驳回状态
SapNonProdApplyDept one = nonProdApplyDeptRepository.findOne(bdid);
one.setStatus(2);
one.setStatus(ActiveStatus.REJECTED.getValue());
nonProdApplyDeptRepository.save(one);
//获取此条数据的相关部门信息
List<BsnMessage> allByBusinessId = bsnMessageRepository.findAllByBusinessId(bdid);
}
}
......@@ -67,13 +67,12 @@ public class NonProdApplyNextController extends CommonController {
}
/**
* 添加指导申请书
* 添加
*/
public String saveSapNonProdApplyDept(){
SDO sdo = this.getSDO();
SapNonProdApplyDept nonProdApplyDept = sdo.toObject(SapNonProdApplyDept.class);
nonProdApplyDeptApplication.saveSapNonProdApplyDept(sdo);
return toResult(nonProdApplyDept);
Map<String, Object> map = nonProdApplyDeptApplication.saveSapNonProdApplyDept(sdo);
return toResult(map);
}
......@@ -102,8 +101,8 @@ public class NonProdApplyNextController extends CommonController {
}
@EasySearch(queryName = "userNameSelect")
public Map<String, Object> queryResourceNameGroup(SDO sdo){
// @EasySearch(queryName = "userNameSelect")
// public Map<String, Object> queryResourceNameGroup(SDO sdo){
// Integer intPage = sdo.getInteger("intPage", 1);
// Integer pageSize = sdo.getInteger("pageSize",10);
// PageRequest pageRequest = new PageRequest(intPage - 1, pageSize);
......@@ -122,8 +121,8 @@ public class NonProdApplyNextController extends CommonController {
// MemEasySearcher<Map<String, Object>> memEasySearcher = new MemEasySearcherImpl<>();
// Map<String, Object> model = memEasySearcher.search(mapList, easySearchParse, pageRequest, null);
// return model;
return null;
}
// return null;
// }
public void rejectNonProdApplyDept(){
......
......@@ -25,4 +25,8 @@ public class test extends HomePageController {
public String queryTasksByViewKind() {
return super.queryTasksByViewKind();
}
public static void main(String[] args) {
System.out.println("266870e2b1b311ee80140242ac110002@BDA53701278249BCB740086C1CB3384A".length());
}
}
<?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">
<process id="sapCostReimbursementProc" name="费用报销" isExecutable="true">
<extensionElements>
<activiti:executionListener event="start" delegateExpression="#{sapCostReimbursementApplication}"></activiti:executionListener>
<activiti:executionListener event="end" delegateExpression="#{sapCostReimbursementApplication}"></activiti:executionListener>
</extensionElements>
<startEvent id="startevent1" name="Start"></startEvent>
<endEvent id="endevent1" name="End"></endEvent>
<userTask id="Apply" name="费用报销申请" activiti:formKey="sapCostReimbursement/showSapCostReimbursement.job">
<extensionElements>
<activiti:taskListener event="all" delegateExpression="#{sapCostReimbursementApplication}"></activiti:taskListener>
<activiti:taskListener event="saveBizData" delegateExpression="#{sapCostReimbursementApplication}"></activiti:taskListener>
</extensionElements>
</userTask>
<userTask id="Approve" name="费用报销审批" activiti:assignee="${assignee} " activiti:formKey="sapCostReimbursement/showSapCostReimbursement.job">
<extensionElements>
<activiti:taskListener event="all" delegateExpression="#{sapCostReimbursementApplication}"></activiti:taskListener>
<activiti:taskListener event="saveBizData" delegateExpression="#{sapCostReimbursementApplication}"></activiti:taskListener>
</extensionElements>
<multiInstanceLoopCharacteristics isSequential="false" activiti:collection="handlerList" activiti:elementVariable="assignee">
<completionCondition>${chiefApprovePassed}</completionCondition>
</multiInstanceLoopCharacteristics>
</userTask>
<sequenceFlow id="flow1" sourceRef="startevent1" targetRef="Apply"></sequenceFlow>
<sequenceFlow id="flow2" sourceRef="Apply" targetRef="Approve"></sequenceFlow>
<exclusiveGateway id="ApproveFinished" name="审批结束"></exclusiveGateway>
<sequenceFlow id="flow3" name="审批通过" sourceRef="ApprovePassed" targetRef="ApproveFinished">
<conditionExpression xsi:type="tFormalExpression"><![CDATA[${approvePassed}]]></conditionExpression>
</sequenceFlow>
<sequenceFlow id="flow4" name="审批结束" sourceRef="ApproveFinished" targetRef="endevent1">
<conditionExpression xsi:type="tFormalExpression"><![CDATA[${approveFinished}]]></conditionExpression>
</sequenceFlow>
<sequenceFlow id="flow5" name="审批未结束" sourceRef="ApproveFinished" targetRef="Approve">
<conditionExpression xsi:type="tFormalExpression"><![CDATA[${!approveFinished}]]></conditionExpression>
</sequenceFlow>
<exclusiveGateway id="ApprovePassed" name="审批通过"></exclusiveGateway>
<sequenceFlow id="flow6" sourceRef="Approve" targetRef="ApprovePassed"></sequenceFlow>
<sequenceFlow id="flow9" name="审批未通过" sourceRef="ApprovePassed" targetRef="Apply">
<conditionExpression xsi:type="tFormalExpression"><![CDATA[${!approvePassed}]]></conditionExpression>
</sequenceFlow>
</process>
<bpmndi:BPMNDiagram id="BPMNDiagram_sapCostReimbursementProc">
<bpmndi:BPMNPlane bpmnElement="sapCostReimbursementProc" id="BPMNPlane_sapCostReimbursementProc">
<bpmndi:BPMNShape bpmnElement="startevent1" id="BPMNShape_startevent1">
<omgdc:Bounds height="35.0" width="35.0" x="355.0" y="50.0"></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="endevent1" id="BPMNShape_endevent1">
<omgdc:Bounds height="35.0" width="35.0" x="355.0" y="550.0"></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="Apply" id="BPMNShape_Apply">
<omgdc:Bounds height="55.0" width="161.0" x="292.0" y="140.0"></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="Approve" id="BPMNShape_Approve">
<omgdc:Bounds height="55.0" width="161.0" x="292.0" y="240.0"></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="ApproveFinished" id="BPMNShape_ApproveFinished">
<omgdc:Bounds height="40.0" width="40.0" x="352.0" y="440.0"></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNShape bpmnElement="ApprovePassed" id="BPMNShape_ApprovePassed">
<omgdc:Bounds height="40.0" width="40.0" x="352.0" y="349.0"></omgdc:Bounds>
</bpmndi:BPMNShape>
<bpmndi:BPMNEdge bpmnElement="flow1" id="BPMNEdge_flow1">
<omgdi:waypoint x="372.0" y="85.0"></omgdi:waypoint>
<omgdi:waypoint x="372.0" y="140.0"></omgdi:waypoint>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="flow2" id="BPMNEdge_flow2">
<omgdi:waypoint x="372.0" y="195.0"></omgdi:waypoint>
<omgdi:waypoint x="372.0" y="240.0"></omgdi:waypoint>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="flow3" id="BPMNEdge_flow3">
<omgdi:waypoint x="372.0" y="389.0"></omgdi:waypoint>
<omgdi:waypoint x="372.0" y="440.0"></omgdi:waypoint>
<bpmndi:BPMNLabel>
<omgdc:Bounds height="14.0" width="48.0" x="320.0" y="396.0"></omgdc:Bounds>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="flow4" id="BPMNEdge_flow4">
<omgdi:waypoint x="372.0" y="480.0"></omgdi:waypoint>
<omgdi:waypoint x="372.0" y="550.0"></omgdi:waypoint>
<bpmndi:BPMNLabel>
<omgdc:Bounds height="14.0" width="48.0" x="382.0" y="489.0"></omgdc:Bounds>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="flow5" id="BPMNEdge_flow5">
<omgdi:waypoint x="392.0" y="460.0"></omgdi:waypoint>
<omgdi:waypoint x="519.0" y="459.0"></omgdi:waypoint>
<omgdi:waypoint x="519.0" y="317.0"></omgdi:waypoint>
<omgdi:waypoint x="519.0" y="267.0"></omgdi:waypoint>
<omgdi:waypoint x="489.0" y="267.0"></omgdi:waypoint>
<omgdi:waypoint x="453.0" y="267.0"></omgdi:waypoint>
<bpmndi:BPMNLabel>
<omgdc:Bounds height="14.0" width="60.0" x="459.0" y="411.0"></omgdc:Bounds>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="flow6" id="BPMNEdge_flow6">
<omgdi:waypoint x="372.0" y="295.0"></omgdi:waypoint>
<omgdi:waypoint x="372.0" y="349.0"></omgdi:waypoint>
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge bpmnElement="flow9" id="BPMNEdge_flow9">
<omgdi:waypoint x="352.0" y="369.0"></omgdi:waypoint>
<omgdi:waypoint x="231.0" y="369.0"></omgdi:waypoint>
<omgdi:waypoint x="231.0" y="167.0"></omgdi:waypoint>
<omgdi:waypoint x="292.0" y="167.0"></omgdi:waypoint>
<bpmndi:BPMNLabel>
<omgdc:Bounds height="14.0" width="60.0" x="257.0" y="376.0"></omgdc:Bounds>
</bpmndi:BPMNLabel>
</bpmndi:BPMNEdge>
</bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
</definitions>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8" ?>
<query-mappings>
<query name="slicedSapCostReimbursementQuery" table="sap_cost_reimbursement_base_info">
<sql-query>
select t.*
from sap_cost_reimbursement_base_info t
where 1=1
</sql-query>
<condition column="id" name="id" 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