Commit cbb87e72 authored by 鲁鑫's avatar 鲁鑫

新增人员才同步到SAP;成本中心选择调用SAP接口;费用报销修改不含税金额,税额后,相关值自动计算;

parent 2e7a36dd
......@@ -81,11 +81,6 @@ $(function () {
params.personId = personData.personId;
params.personMemberId = mainOrgData.id;
Public.ajax(web_app.name + "/org/changePersonMainOrg.ajax", params,function () {
Public.ajax(web_app.name + "/syncOrg/updatePersonToSap.ajax",
{personIds:personData.personId},
function () {
})
});
return true;
}
......@@ -578,7 +573,7 @@ function sapMesShow(){
UICtrl.setElRequiredFlag("#companyCode",true);
UICtrl.setElRequiredFlag("#bankAccountNumber",true);
UICtrl.setElRequiredFlag("#langu",true);
UICtrl.setElRequiredFlag("#regionName",true);
UICtrl.setElRequiredFlag("#regionName",false);
}
function sapMesHide(){
......@@ -623,9 +618,9 @@ function doSavePerson() {
var param = {};
var url = web_app.name + (id ? '/org/updatePerson.ajax' : '/org/insertPerson.ajax');
$('#submitForm').ajaxSubmit({ url: url, param: param, success: function () {
if (isSapPerson=="1"){
if (isSapPerson=="1" && Public.isBlank(type)){
Public.ajax(web_app.name + "/syncOrg/insertOrUpdatePersonToSap.ajax",
{code:$("#code").val(),flag:type=='S'?"U":"I"},
{code:$("#code").val(),flag:"I"},
function () {
})
......@@ -781,7 +776,6 @@ function enableOrg() {
param: params,
message: msg,
onSuccess: function () {
//Public.ajax("/syncOrg/enableOrDisablePerson.ajax",{id:row.id,flag:""})
Public.tip("启用“" + name + "”成功。");
reloadGrid();
}
......@@ -814,10 +808,7 @@ function disableOrg() {
param: params,
message: msg,
onSuccess: function () {
Public.ajax(web_app.name + "/syncOrg/enableOrDisablePerson.ajax",{id:row.id,flag:"D"},function () {
Public.tip("禁用“" + name + "”成功。");
reloadGrid();
})
}
});
}
......
......@@ -671,6 +671,50 @@ function loadGrid(obj) {
var _secondGrid = UICtrl.getGridManager('#financialAuditGrid');
if (_secondGrid != null){
var secondRows = _secondGrid.currentData.Rows;
//先计算值
var _grid = UICtrl.getGridManager('#reimbursementApplierGrid');
if (_grid != null){
var datas = _grid.getData();
if (datas.length > 0 && secondRows.length > 0){
$.each(datas, function (i, data) {
$.each(secondRows, function (i, row) {
if (data.zepItemno === row.zepItemno ){
var mwskzTextView = data.mwskzTextView;//税率
var waers = data.waers;//币别
var kursf = data.kursf;//汇率
//编辑含税金额审批,税额审批、不含税金额审批变化。
if (item.column.name == "zepPtdamount1"){
//税额计算
//等于含税金额/(1+税码对应的税率)*税码对应税率,可手工修改
var value = MathUtil.div(item.record.zepPtdamount1, MathUtil.add(1 , mwskzTextView));
var zepPdtax1 = MathUtil.mul(value, mwskzTextView).toFixed(2);
//不含税金额=含税金额-税额
var zepPdamount1 = MathUtil.sub(item.record.zepPtdamount1,zepPdtax1);
obj.gridManager.updateRow(item.record, {
zepPdtax1: zepPdtax1,//税额(审批)
zepPdamount1: zepPdamount1,//不含税金额(审批)
zepPdamount: MathUtil.mul(zepPdamount1,kursf),//不含税金额(审批-本位币)
zepPdtax: MathUtil.mul(zepPdtax1,kursf),//税额(审批-本位币)
zepPtdamount: MathUtil.add(MathUtil.mul(zepPdamount1,kursf),MathUtil.mul(zepPdtax1,kursf))//含税金额(审批-本位币)
});
}
//编辑税额,含税金额审批=不含税金额审批-修改后的税额
if (item.column.name == "zepPdtax1"){
//不含税金额=含税金额-税额
var zepPdamount1 = MathUtil.sub(item.record.zepPtdamount1,item.record.zepPdtax1);
obj.gridManager.updateRow(item.record, {
zepPdamount1: zepPdamount1,//不含税金额(审批)
zepPdtax: MathUtil.mul(item.record.zepPdtax1,kursf),//税额(审批-本位币)
zepPdamount: MathUtil.sub(item.record.zepPtdamount,MathUtil.mul(item.record.zepPdtax1,kursf)),//不含税金额(审批-本位币)
});
}
}
});
});
}
}
totalFinancialAuditGrid(secondRows);
}
}
......@@ -738,6 +782,7 @@ function bindQueryEvent() {
},
onChange: function (value, data) {
$('#employeeLoanBillCode').val(data.billCode);
$('#employeeLoanText').val(data.zepTxt);
}
});
......@@ -795,6 +840,48 @@ function getExtendedData(processAction) {
return mergedObj;
});
//原因代码、是否付款、直联付款标识必输,且如果为多行的话,这三个字段的值必须相同,不相同报错提示,不允许提交
var subProcUnitId = getSubProcUnitId();
//财务审核
if ("financeNode" === subProcUnitId){
var _grid = UICtrl.getGridManager('#financialAuditGrid');
var datas = DataUtil.getGridData({
gridManager: _grid,
isAllData: isAllData,
onCheck: function () {
return true;
}
});
if (!datas) {
return false;
}
var checked4 = false
var checked5 = false
var num = 0;
$.each(datas, function (i, o) {
//判断不含税金额(审批)=含税金额(审批)- 税额(审批)
var value = MathUtil.add(o.zepPdamount1,o.zepPdtax1);
if (MathUtil.compare(value,o.zepPtdamount1) !== 0){
checked4 = true;
num = i + 1
}
//判断不含税金额(审批-本位币)= 含税金额(审批-本位币) - 税额(审批-本位币)
var value1 = MathUtil.add(o.zepPdamount,o.zepPdtax);
if (MathUtil.compare(value1,o.zepPtdamount) !== 0){
checked5 = true;
num = i + 1
}
});
if (checked4) {
Public.tip("行项目:" + num + "中,不含税金额(审批)+ 税额(审批)不等于 含税金额(审批)请检查")
return false
}
if (checked5) {
Public.tip("行项目:" + num + "中,不含税金额(审批-本位币)+ 税额(审批-本位币)不等于 含税金额(审批-本位币)请检查")
return false
}
}
let extendedData = {};
extendedData.CRDetail = Public.encodeJSONURI(result);
return extendedData;
......@@ -1014,6 +1101,15 @@ function totalFinancialAuditGrid(data){
});
}
function totalZepMount(secondRows){
var _grid = UICtrl.getGridManager('#reimbursementApplierGrid');
var _secondGrid = UICtrl.getGridManager('#financialAuditGrid');
if (_grid != null && _secondGrid != null){
var datas = _grid.getData();
}
}
function reloadGrid(){
//获取数据源初始化表格
Public.ajax(web_app.name + '/sapCostReimbursement/slicedSapCostReimbursementDetailList.ajax', {reimbursementBaseInfoId: getId()}, function (data) {
......
......@@ -41,8 +41,11 @@
</div>
<div class="hg-form-row">
<x:inputC name="zepAppliname" required="false" readonly="true" label="EP流程申请人" labelCol="2" fieldCol="2"/>
<x:inputC name="zepTxt" required="true" label="付款申请内容" labelCol="2" fieldCol="2"/>
<x:inputC name="zepTxt" required="true" label="付款申请内容" labelCol="2" fieldCol="6"/>
</div>
<div class="hg-form-row">
<x:inputC name="employeeLoanBillCode" required="false" label="员工借款编号" labelCol="2" fieldCol="2" wrapper="select"/>
<x:inputC name="employeeLoanText" required="false" label="员工借款内容" labelCol="2" fieldCol="6" readonly="true"/>
</div>
<div id="capitalPost">
<div class="hg-form-row">
......
......@@ -17,16 +17,26 @@ function initializateUI() {
function bindQueryEvent() {
$('#kostl').searchbox({
type: "system", name: "queryCostCenter",
type: "system", name: "dictionary",
getParam: function (item) {
return {
fieldName: "KOSTL"
}
},
onChange: function (value, data) {
$('#kostl').val(data.kostl);
$('#kostlv').val(data.kostl);
$('#kostl').val(data.KOSTL);
$('#kostlv').val(data.LTEXT);
}
});
$('#kostlv').searchbox({
type: "system", name: "queryCostCenter",
type: "system", name: "dictionary",
getParam: function (item) {
return {
fieldName: "KOSTL"
}
},
onChange: function (value, data) {
$('#kostlv').val(data.kostl);
$('#kostlv').val(data.LTEXT);
}
});
$('#anlkl').searchbox({
......
......@@ -85,12 +85,15 @@ function loadGrid() {
{
display: "成本中心", name: "kostl", width: 140, minWidth: 60, type: "string", align: "left",
editor: {
required: true, type: "select",
required: false, type: "select",
data: {
type: 'system',
name: "queryCostCenter",
name: "dictionary",
getParam: function (item) {
return {fieldName: "KOSTL"}
},
back: {
kostl: "kostl",
KOSTL: "kostl"
}
},
}
......
......@@ -20,11 +20,28 @@ function bindEvent(){
$('#werksName').val(data.NAME1);
}
});
// $('#kostlName').searchbox({
// type: "system", name: "queryCostCenter",
// onChange: function (value, data) {
// $('#kostl').val(data.kostl);
// $('#kostlName').val(data.ktext);
// if (Public.isNotBlank($('#aufnr').val())){
// $('#aufnr').val(null);
// $('#aufnrName').val(null);
// Public.tip("选择成本中心,不能选择内部订单");
// }
// }
// });
$('#kostlName').searchbox({
type: "system", name: "queryCostCenter",
type: "system", name: "dictionary",
getParam: function (item) {
return {
fieldName: "KOSTL"
}
},
onChange: function (value, data) {
$('#kostl').val(data.kostl);
$('#kostlName').val(data.ktext);
$('#kostl').val(data.KOSTL);
$('#kostlName').val(data.LTEXT);
if (Public.isNotBlank($('#aufnr').val())){
$('#aufnr').val(null);
$('#aufnrName').val(null);
......
......@@ -73,10 +73,12 @@ function loadStatsIndicatorsDetailListGrid() {
required: false, type: "select",
data: {
type: 'system',
name: "queryCostCenter",
name: "dictionary",
getParam: function (item) {
return {fieldName: "KOSTL"}
},
back: {
kostl: "kostl",
// ktext:"ekostlTextView",
KOSTL: "kostl",
null:"aufnr"
}
},
......
......@@ -170,7 +170,7 @@ public class CostCenterController extends CommonController {
/**
* 成本中心ES查询接口
*/
@EasySearch(queryName = "queryCostCenter")
/*@EasySearch(queryName = "queryCostCenter")
public Map<String, Object> queryCostCenter(SDO sdo) {
Integer intPage = sdo.getInteger("intPage", 1);
Integer pageSize = sdo.getInteger("pageSize", 10);
......@@ -203,7 +203,7 @@ public class CostCenterController extends CommonController {
MemEasySearcher<Map<String, String>> memEasySearcher = new MemEasySearcherImpl<>();
Map<String, Object> model = memEasySearcher.search(mapList, easySearchParse, pageRequest, null);
return model;
}
}*/
/**
* 冻结成本中心
......
......@@ -28,4 +28,6 @@ public interface SapCostReimbursementApplication {
void sendSapDate( SapCostReimbursement sapCostReimbursement);
void savePaymentReceiptVo(PaymentReceiptVo paymentReceiptVo);
String queryTaskByBizId(String bizId);
}
\ No newline at end of file
......@@ -6,6 +6,8 @@ import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.huigou.cache.DictUtil;
import com.huigou.context.Operator;
import com.huigou.context.ThreadLocalUtil;
import com.huigou.data.domain.model.CommonDomainConstants;
import com.huigou.data.query.model.QueryDescriptor;
import com.huigou.data.query.model.QueryModel;
......@@ -20,13 +22,13 @@ import com.huigou.topsun.sap.costReimbursement.repostiory.SapCostReimbursementDe
import com.huigou.topsun.sap.costReimbursement.repostiory.SapCostReimbursementRepository;
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.util.ClassHelper;
import com.huigou.util.DateUtil;
import com.huigou.util.SDO;
import com.huigou.util.*;
import lombok.SneakyThrows;
import org.activiti.engine.delegate.DelegateExecution;
import org.activiti.engine.delegate.DelegateTask;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -36,9 +38,12 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.Assert;
import javax.annotation.Resource;
import java.io.IOException;
import java.util.*;
import static com.huigou.uasp.bpm.ApprovalParameterUtil.getApprovalParameter;
@Service("sapCostReimbursementApplication")
public class SapCostReimbursementApplicationImpl extends FlowBroker implements SapCostReimbursementApplication {
......@@ -47,7 +52,8 @@ public class SapCostReimbursementApplicationImpl extends FlowBroker implements S
private SapCostReimbursementDetailRepository costReimbursementDetailRepository;
@Autowired
private SapCostReimbursementRepository costReimbursementRepository;
@Resource
private OperatorApplication operatorApplication;
@Autowired
DefaultHttpClient defaultHttpClient;
......@@ -313,6 +319,25 @@ public class SapCostReimbursementApplicationImpl extends FlowBroker implements S
sapCostReimbursementDetail.setGjahr1(paymentReceiptVo.getGjahr1());
costReimbursementDetailRepository.save(sapCostReimbursementDetail);
}
this.makeACopyFor(reimbursement);
}
@Override
public String queryTaskByBizId(String bizId) {
QueryDescriptor queryDescriptor = this.sqlExecutorDao.getQuery(QUERY_XML_FILE_PATH, "queryTaskByBizId");
String sql = queryDescriptor.getSql();
String taskId = this.sqlExecutorDao.queryToString(sql, bizId);
return taskId;
}
public void makeACopyFor(SapCostReimbursement reimbursement) {
// 流程结束给申请人发送抄送
List<String> executorIds = new ArrayList<>(1);
executorIds.add(reimbursement.getPersonMemberId());
String taskId = this.queryTaskByBizId(reimbursement.getId());
Operator operator = operatorApplication.createOperatorByPersonMemberId(reimbursement.getPersonMemberId());
ThreadLocalUtil.putOperator(operator);
this.workflowService.makeACopyFor(taskId, executorIds,"付款完成、sap回执:"+reimbursement.getZepFtypename()+"-"+reimbursement.getBillCode());
}
public static void main(String[] args) throws JsonProcessingException {
......
......@@ -6,23 +6,13 @@ 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.costReimbursement.domain.vo.PaymentReceiptVo;
import com.huigou.topsun.sap.purchaseApproval.controller.SapPurchaseApprovalController;
import com.huigou.topsun.sap.purchaseApproval.domain.vo.SapPurchaseApprovalDto;
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.annotation.SkipAuth;
import com.huigou.uasp.bmp.common.BizBillStatus;
import com.huigou.uasp.client.CommonController;
import com.huigou.util.JSONUtil;
import com.huigou.util.SDO;
import com.huigou.util.StringUtil;
import com.huigou.util.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
......
......@@ -201,6 +201,12 @@ public class SapCostReimbursement extends FlowBillAbstractEntity {
@Column(name = "employee_loan_bill_code")
private String employeeLoanBillCode;
/**
* 员工借款单据付款内容
*/
@Column(name = "employee_Loan_text")
private String employeeLoanText;
/**
* 付款附言
*/
......
......@@ -5,12 +5,14 @@
<sql>
SELECT
t.bill_code,
t.zep_txt,
t.person_member_id
FROM
sap_cost_reimbursement_base_info t
WHERE t.ZEP_FTYPE = 'B' and t.status = 3
</sql>
<field name="员工借款编号" title="员工借款编号" code="billCode" width="200"/>
<field name="员工借款申请内容" title="员工借款申请内容" code="zepTxt" width="200"/>
<condition column="bill_code" name="billCode" symbol="like" alias="t"/>
<condition column="person_member_id" name="personMemberId" symbol="=" alias="t"/>
</easy-search>
......
......@@ -48,7 +48,7 @@
SELECT o.PARENT_ID FROM sa_oporg o WHERE o.id IN (
SELECT o.PARENT_ID FROM sa_oporg o WHERE 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' ));
AND o.CODE IN ( 'JL', 'ZZ','FL' ));
</sql>
<!--根据业务主表id和业务表名查询对应申请人的一级部门领导-->
<sql name="queryyjbmld">
......
......@@ -20,4 +20,13 @@
</sql-query>
<condition column="reimbursement_base_info_id" name="reimbursementBaseInfoId" type="java.lang.String" symbol="=" alias="t"/>
</query>
<query name="queryTaskByBizId" table="act_hi_taskinst">
<sql-query>
SELECT t.ID_ as task_id
FROM act_hi_taskinst t
WHERE t.PROC_INST_ID_ = ( SELECT DISTINCT te.proc_inst_id_ proc_inst_id FROM act_hi_taskinst_extension te WHERE te.BUSINESS_KEY_ = ? AND te.kind_id_ = 'task' AND te.TASK_DEF_KEY_ = 'Apply' )
AND t.TASK_DEF_KEY_ = 'Apply' ORDER BY t.START_TIME_ desc LIMIT 1
</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