Commit 2bf582fb authored by 刘学辉's avatar 刘学辉

品质异常单(供应商)

parent 5f2287fd
......@@ -11,7 +11,7 @@
<div class="container-fluid">
<x:billTitle title="品质异常报告(生产)" needStatus="true" needPerson="true"/>
<form class="hg-form" method="post" action="" id="submitForm">
<x:hidden name="type"/>
<x:hidden name="billType"/>
<x:hidden name="id"/>
<x:hidden name="version"/>
<x:hidden name="attbizId"/>
......@@ -34,7 +34,7 @@
<button id="save" title="" type="button" onclick="printPage()" class="btn btn-gray"><i
class="fa fa-save"></i>打印
</button>
</div>
</div
</c:if>
<div class="hg-form-row">
<x:selectC name="exceptionType" label="异常类型" labelCol="1" fieldCol="2" required="true" dictionary="exceptionType"/>
......
......@@ -11,7 +11,7 @@
<div class="container-fluid">
<x:billTitle title="品质异常报告(采购/外发)" needStatus="true" needPerson="true"/>
<form class="hg-form" method="post" action="" id="submitForm">
<x:hidden name="type"/>
<x:hidden name="billType"/>
<x:hidden name="id"/>
<x:hidden name="version"/>
<x:hidden name="attbizId"/>
......
var itemGridManager1,itemGridManager2,itemGridManager3=null
$(function () {
initialize();
initItemGrid();
});
function initialize() {
var mainFileTable = $('#exceptionStateInfoList').fileList();
mainFileTable.find('table').css({
borderTopWidth : 0
});
$('#exceptionStateInfoList').fileList({
bizId : $("#attbizId").val()
});
}
function initItemGrid() {
//工厂
$('#werksName').searchbox({
type: "system", name: "dictionary",
getParam: function (item) {
return {fieldName: "WERKS"}
},
onChange: function (value, data) {
$('#werks').val(data.WERKS);
$('#werksName').val(data.NAME1);
}
});
$('input[name="payMoney"]').change(function () {
if (isNaN(Number($('#payMoney').val()))){
Public.errorTip("赔付金额必须输入数字!");
$('#payMoney').val("");
countSum();
return false;
}
countSum();
})
//供应商
$('#customerName').searchbox({
type: "system", name: "selectSuppliersDatas",
getParam: function (item) {
return {
/// fieldName: "sapMaterialSelect",
//filterValue: $('#werks').val()
}
},
onChange: function (value, data) {
$('#customerNo').val(data.partner);
$('#customerName').val(data.nameOrg1);
}
});
//物料编码
$('#maktx').searchbox({
type: "system", name: "sapMaterialSelect",
getParam: function (item) {
return {
filterValue: $('#werks').val()
}
},
onChange: function (value, data) {
$('#matnr').val(data.MATNR);
$('#maktx').val(data.MAKTX);
// $('#matkl').val(data.MATKL); // alert(data.MATKL+"--"+data.WGBEZ);
// $('#matklName').val(data.WGBEZ);
// $('#ekgrp').val(data.EKGRP);
// $('#ekgrpName').val(data.EKNAM);
// $('#bprme').val(data.MEINS);
// $('#bprmeName').val(data.MSEHL);
}
});
/*$('#customerName').searchbox({
type: "system", name: "sapCustomerOrderSelect",
getParam: function (item) {
if (Public.isBlank($('#werksName').val())){
Public.tip("请先选择工厂!")
return false
}
return {
werks: $('#werks').val(),
}
},
onChange: function (value, data) {
$('#customerName').val(data.NAME1);
$('#customerNo').val(data.KUNNR);
}
});*/
var toolbarOptions1 = UICtrl.getDefaultToolbarOptions({
addHandler: function(){
UICtrl.addGridRow(itemGridManager1);
},
deleteHandler: function (){
var _grid = UICtrl.getGridManager('#maingrid1');
DataUtil.delSelectedRows({
action: 'exceptionReport/deleteExceptionReportPayable.ajax',
param: {},
gridManager: _grid,
idFieldName: 'id',
onSuccess: function () {
// countSum();
reloadGrid();
}
});
},
});
itemGridManager1 = UICtrl.grid('#maingrid1', {
columns: getGridColumns1(),
dataAction: 'server',
url: web_app.name + '/exceptionReport/slicedExceptionReportPayableList.ajax',
parms: {exceptionReportId: getId()},
height: '150px',
heightDiff: -4,
sortName: 'id',
sortOrder: 'asc',
checkbox: true,
usePager: true,
rownumbers: true,
enabledEdit: true,
fixedCellHeight: true,
selectRowButtonOnly: true,
//autoApplyNextEditor:false,
toolbar: toolbarOptions1
})
UICtrl.setSearchAreaToggle(itemGridManager1);
var toolbarOptions2 = UICtrl.getDefaultToolbarOptions({
addHandler: function(){
UICtrl.addGridRow(itemGridManager2);
},
deleteHandler: function (){
var _grid = UICtrl.getGridManager('#maingrid2');
DataUtil.delSelectedRows({
action: 'exceptionReport/deleteExceptionReportCash.ajax',
param: {},
gridManager: _grid,
idFieldName: 'id',
onSuccess: function () {
reloadGrid();
}
});
},
});
itemGridManager2 = UICtrl.grid('#maingrid2', {
columns: getGridColumns2(),
dataAction: 'server',
url: web_app.name + '/exceptionReport/slicedExceptionReportCashList.ajax',
parms: {exceptionReportId: getId()},
height: '150px',
heightDiff: -4,
sortName: 'id',
sortOrder: 'asc',
checkbox: true,
usePager: true,
rownumbers: true,
enabledEdit: true,
fixedCellHeight: true,
selectRowButtonOnly: true,
//autoApplyNextEditor:false,
toolbar: toolbarOptions2,
onAfterEdit: function (item) {
},
onAfterShowData(){
}
})
UICtrl.setSearchAreaToggle(itemGridManager2);
var toolbarOptions3 = UICtrl.getDefaultToolbarOptions({
addHandler: function(){
UICtrl.addGridRow(itemGridManager3);
},
deleteHandler: function (){
var _grid = UICtrl.getGridManager('#maingrid3');
DataUtil.delSelectedRows({
action: 'exceptionReport/deleteExceptionReportGoods.ajax',
param: {},
gridManager: _grid,
idFieldName: 'id',
onSuccess: function () {
// countSum();
reloadGrid();
}
});
},
});
itemGridManager3 = UICtrl.grid('#maingrid3', {
columns: getGridColumns3(),
dataAction: 'server',
url: web_app.name + '/exceptionReport/slicedExceptionReportGoodsList.ajax',
parms: {exceptionReportId: getId()},
height: '150px',
heightDiff: -4,
sortName: 'id',
sortOrder: 'asc',
checkbox: true,
usePager: true,
rownumbers: true,
enabledEdit: true,
fixedCellHeight: true,
selectRowButtonOnly: true,
//autoApplyNextEditor:false,
toolbar: toolbarOptions3
})
UICtrl.setSearchAreaToggle(itemGridManager3);
}
function getGridColumns1() {
var columns1 = [];
columns1 = [
{ display: "采购订单", name: "purchaseNo", width: "160", align: "left", type: "string",
editor: {type: 'text',required:false}
},
{display: "金额", name: "money", width: "100", align: "left", type: "string"
,editor: {type: "text",mask: '9999999.999'}
},
{display: "日期", name: "sendDate", width: "140", align: "left", type: "date"
,editor: {type: "date"}
},
{display: "备注", name: "remark", width: "200", align: "left", type: "string"
,editor: {type: 'text',required:false}
}]
return columns1;
}
function getGridColumns2() {
var columns2 = [];
columns2 = [
{display: "", name: "payment", width: 80, minwidth: 80, type: "string", align: "left", hide: true},
{display: "付款方式", name: "paymentTextView", width: "160", align: "left", type: "string",
editor: {
type: 'dictionary',
data: {name: 'zwels'},
textField: 'paymentTextView',
valueField: 'payment',
// checkbox:true,
required: false,
render: function (item) {
return item.paymentTextView;
}
},
},
{display: "金额", name: "money", width: "100", align: "left", type: "string"
,editor: {type: "text",mask: '9999999.999'}
},
{display: "币别", name: "currencyName", width: "100", align: "left", type: "string"
,editor: {type: "text"}
},
{display: "账期", name: "period", width: "140", align: "left", type: "text"
,editor: {type: "text"}
},
{display: "备注", name: "remark", width: "200", align: "left", type: "string"
,editor: {type: 'text',required:false}
}
]
return columns2;
}
function getGridColumns3() {
var columns3 = [];
columns3 = [
{display: "公司", name: "company", width: "100", align: "left", type: "string",hide:"true"},
{display: "公司名称", name: "companyName", width: "180", align: "left", type: "string",
editor: {
required: false, type: "select",
data: {
type: 'system',
name: "dictionary",
getParam: function (item) {
return {fieldName: "BUKRS"}
},
back: {
BUKRS: "company",
BUTXT: "companyName"
}
}
}
},
{display: "采购组织", name: "purchaseTeam", width: "100", align: "left", type: "string",hide:"true"},
{display: "采购组织名称", name: "purchaseTeamName", width: "160", align: "left", type: "string"
,editor: {
required: false, type: "select",
data: {
type: 'system',
name: "dictionary",
getParam: function (item) {
return {
fieldName: "EKORG",
filterValue:item.company
}
},
back: {
EKORG: "purchaseTeam",
EKOTX: "purchaseTeamName",
}
}
}
},
{display: "物料编码", name: "productCode", width: "160", align: "left", type: "string",hide:"true"},
{display: "采购组", name: "ekgrp", width: "120", align: "left", type: "string",hide:"true"},
{display: "物料名称", name: "productName", width: "180", align: "left", type: "string"
,editor: {
required: false, type: "select",
data: {
type: 'system',
name: "sapMaterialSelect",
getParam: function (item) {
return {
filterValue:item.company
}
},
back: {
MATNR: "productCode",
MAKTX: "productName",
EKGRP: "ekgrp",
MEINS: "unit",
MSEHL: "unitName"
}
}
}
},
{display: "数量", name: "number", width: "100", align: "left", type: "string"
,editor: {type: "text",mask: '9999999.999'}
},
{display: "单位", name: "unit", width: "120", align: "left", type: "string",hide:"true"},
{display: "单位名称", name: "unitName", width: "80", align: "left", type: "string"
/* ,editor: {
required: false, type: "select",
data: {
type: 'system',
name: "dictionary",
getParam: function (item) {
return {fieldName: "MEINS"}
},
back: {
MSEHI: "unit",
MSEHL: "unitName"
}
}
}*/
},
// {display: "币别", name: "currencyName", width: "100", align: "left", type: "string"
// ,editor: {type: "text"}
// },
// {display: "金额", name: "money", width: "100", align: "left", type: "string"
// ,editor: {type: "text",mask: '9999999.999'}
// },
{display: "需求日期", name: "needDate", width: "140", align: "left", type: "date"
,editor: {type: "date"}
},
{display: "工厂", name: "werks", width: "140", align: "left", type: "string",hide:"true"},
{display: "收货工厂", name: "werksName", width: "160", align: "left", type: "string",
// editor: {type: "text"}
editor: {
required: false, type: "select",
data: {
type: 'system',
name: "dictionary",
getParam: function (item) {
return {fieldName: "WERKS"}
},
back: {
WERKS: "werks",
NAME1: "werksName",
}
}
}
},
{display: "收货地点", name: "locationName", width: "160", align: "left", type: "string",
editor: {
required: false, type: "select",
data: {
type: 'system',
name: "dictionary",
getParam: function (item) {
return {fieldName: "LGORT"}
},
back: {
LGORT: "location",
LGOBE: "locationName"
}
}
}
},
{display: "备注", name: "remark", width: "200", align: "left", type: "string"
,editor: {type: 'text',required:false}
}
]
return columns3;
}
//获取数据保存的参数
function getExtendedData(processAction) {
//回退、打回、转交时,不需要验证必填项是否已经填写;
if (processAction == ProcessAction.BACK
|| processAction == ProcessAction.REPLENISH
|| processAction == ProcessAction.TRANSMIT) {
//不验证
$('#submitForm').attr('check', false);
}
var extendedData = {};
var _grid = UICtrl.getGridManager('#maingrid1');
if (_grid) {
var datas = DataUtil.getGridData({
gridManager: _grid,
isAllData: true
});
if (!datas) {
return false;
}
extendedData.handlePayable = Public.encodeJSONURI(datas);
}
var _cashGrid = UICtrl.getGridManager('#maingrid2');
if (_cashGrid) {
var datas = DataUtil.getGridData({
gridManager: _cashGrid,
isAllData: true
});
if (!datas) {
return false;
}
extendedData.handleCash = Public.encodeJSONURI(datas);
}
var _goodsGrid = UICtrl.getGridManager('#maingrid3');
if (_goodsGrid) {
var datas = DataUtil.getGridData({
gridManager: _goodsGrid,
isAllData: true
});
if (!datas) {
return false;
}
extendedData.handleGoods = Public.encodeJSONURI(datas);
}
return extendedData;
}
function getId() {
return $('#id').val();
}
function setId(value) {
$("#id").val(value);
var _grid=UICtrl.getGridManager('#maingrid1');
_grid.options.parms.exceptionReportId = value;
var _cashGrid=UICtrl.getGridManager('#maingrid2');
_cashGrid.options.parms.exceptionReportId = value;
var _goodsGrid=UICtrl.getGridManager('#maingrid3');
_goodsGrid.options.parms.exceptionReportId = value;
}
function reloadGrid() {
itemGridManager1.loadData();
itemGridManager2.loadData();
itemGridManager3.loadData();
}
function printPage() {
Public.openPostWindow(web_app.name + '/PDFViewer/PDFViewer.do',{id: $("#id").val(),applicationType:"exceptionReport"});
}
function isNumber(val){
var regPos = /^\+?[1-9][0-9]*$/;
// var regNeg = /^\-[1-9][0-9]*$/; // 负整数
if(regPos.test(val)){
return true;
}else{
return false;
}
}
<%--采购申请--%>
<%@ 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,dateTime,combox,attachment,commonTree,comboDialog"/>
<x:script src="/biz/topsun/sap/exceptionReport/exceptionReportDetailSupplier.js"/>
</head>
<body>
<div class="container-fluid">
<x:billTitle title="品质异常报告(供应商)" needStatus="true" needPerson="true"/>
<form class="hg-form" method="post" action="" id="submitForm">
<x:hidden name="billType"/>
<x:hidden name="id"/>
<x:hidden name="version"/>
<x:hidden name="attbizId"/>
<x:hidden name="billCode"/>
<x:hidden name="fillinDate"/>
<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"/>
<x:hidden name="frgdt"/>
<div class="hg-form-cols">
<c:if test="${statusId==3}">
<div style="float: right; margin-right: 10px;" class="btn-group" id="buttonBox">
<button id="save" title="" type="button" onclick="printPage()" class="btn btn-gray"><i
class="fa fa-save"></i>打印
</button>
</div>
</c:if>
<div class="hg-form-row">
<x:selectC name="exceptionType" label="异常类型" labelCol="1" fieldCol="2" required="true" dictionary="exceptionType"/>
<x:inputC name="reportDate" label="呈报日期" labelCol="1" fieldCol="2" required="true" wrapper="date"/>
<x:inputC name="exceptionTitle" label="异常标题" labelCol="1" fieldCol="2" required="true"/>
<x:inputC name="exceptionDate" label="发现日期" labelCol="1" fieldCol="2" required="true" wrapper="date"/>
</div>
<div class="hg-form-row">
<x:selectC name="exceptionReasonType" label="异常原因分类" labelCol="1" fieldCol="2" required="true" dictionary="exceptionReasonType"/>
<x:hidden name="customerNo"/>
<x:inputC name="customerName" required="true" label="供应商名称" labelCol="1" wrapper="select" fieldCol="2"/>
<x:inputC name="matnr" label="材料编码" labelCol="1" fieldCol="2" required="false" readonly="true"/>
<x:inputC name="maktx" label="材料名称" labelCol="1" fieldCol="2" required="true" wrapper="select"/>
<x:inputC name="customerOrderNo" label="采购单号" labelCol="1" fieldCol="2" required="true"/>
<x:inputC name="loseMoney" label="损失金额" labelCol="1" fieldCol="2" required="true" mask="nnnnnn.nn" />
<x:selectC name="statusId" label="处理进度" labelCol="1" fieldCol="2" disabled="true" required="false" dictionary="bizBillStatus"/>
</div>
</div>
<x:title title="处理方式:货币结算(扣除应付款)" name="group" hideTable="#maingrid1" />
<div id="maingrid1"></div>
<x:title title="处理方式:货币结算(现金/转账)" name="group" hideTable="#maingrid2" />
<div id="maingrid2"></div>
<x:title title="处理方式:商品结算" name="group" hideTable="#maingrid3" />
<div id="maingrid3"></div>
<div class="hg-form-cols">
<div class="hg-form-row">
<x:textareaC name="dealResult" required="false" label="处理结果" maxLength="120" labelCol="1" fieldCol="11" rows="2" readonly="true"/>
</div>
<div class="hg-form-row">
<x:textareaC name="remark" required="false" label="备注" maxLength="120" labelCol="1" fieldCol="11" rows="2"/>
</div>
<div style="padding-top: 15px;">
<x:fileList bizCode="exceptionStateInfo" bizId="attbizId" id="exceptionStateInfoList" title="相关资料" />
</div>
</div>
</form>
</div>
</body>
\ No newline at end of file
......@@ -17,7 +17,7 @@ function initGrid() {
UICtrl.addTabItem({
tabid: 'addExceptionReportProduce',
text: '新增生产异常报告',
url: web_app.name + '/exceptionReport/addExceptionReportDetail.job?type=produce'
url: web_app.name + '/exceptionReport/addExceptionReportDetail.job?billType=produce'
});
}
},
......@@ -26,7 +26,16 @@ function initGrid() {
UICtrl.addTabItem({
tabid: 'addExceptionReportPurchase',
text: '新增采购异常报告',
url: web_app.name + '/exceptionReport/addExceptionReportDetail.job?type=purchase'
url: web_app.name + '/exceptionReport/addExceptionReportDetail.job?billType=purchase'
});
}
},
addSupplierHandler: {id: 'supplierException', text: '添加供应商异常单', img: 'fa-building-o', className: 'btn-gray',
click: function () {
UICtrl.addTabItem({
tabid: 'addExceptionReportSupplier',
text: '新增供应商异常报告',
url: web_app.name + '/exceptionReport/addExceptionReportDetail.job?billType=supplier'
});
}
},
......
package com.huigou.topsun.sap.exceptionReport.application;
import com.huigou.topsun.sap.exceptionReport.domain.ExceptionReportCash;
import com.huigou.topsun.sap.exceptionReport.domain.ExceptionReportDutyPerson;
import com.huigou.topsun.sap.exceptionReport.domain.query.ExceptionReportQueryRequest;
import java.util.List;
import java.util.Map;
/**
* @Auther: lxh
* @Date: 2024/08/21/19:35
* @Description:
*/
public interface ExceptionReportCashApplication {
public static final String QUERY_XML_FILE_PATH = "config/topsun/sap/exceptionReport/exceptionReport.xml";
List<ExceptionReportCash> findByExceptionReportId(String exceptionReportId);
void saveExceptionReportCashList(String exceptionReportId,List<ExceptionReportCash> cashList);
Map<String,Object> slicedExceptionReportCashList(ExceptionReportQueryRequest queryRequest);
void deleteByIds(List<String> ids);
void saveExceptionReportCash(ExceptionReportCash exceptionReportCash);
}
package com.huigou.topsun.sap.exceptionReport.application;
import com.huigou.topsun.sap.exceptionReport.domain.ExceptionReportDutyPerson;
import com.huigou.topsun.sap.exceptionReport.domain.ExceptionReportGoods;
import com.huigou.topsun.sap.exceptionReport.domain.query.ExceptionReportQueryRequest;
import java.util.List;
import java.util.Map;
/**
* @Auther: lxh
* @Date: 2024/08/21/19:35
* @Description:
*/
public interface ExceptionReportGoodsApplication {
public static final String QUERY_XML_FILE_PATH = "config/topsun/sap/exceptionReport/exceptionReport.xml";
List<ExceptionReportGoods> findByExceptionReportId(String exceptionReportId);
void saveExceptionReportGoodsList(String exceptionReportId,List<ExceptionReportGoods> goodsList);
Map<String,Object> slicedExceptionReportGoodsList(ExceptionReportQueryRequest queryRequest);
void deleteByIds(List<String> ids);
void saveExceptionReportGoods(ExceptionReportGoods exceptionReportGoods);
}
package com.huigou.topsun.sap.exceptionReport.application;
import com.huigou.topsun.sap.exceptionReport.domain.ExceptionReportDutyPerson;
import com.huigou.topsun.sap.exceptionReport.domain.ExceptionReportPayable;
import com.huigou.topsun.sap.exceptionReport.domain.query.ExceptionReportQueryRequest;
import java.util.List;
import java.util.Map;
/**
* @Auther: lxh
* @Date: 2024/08/21/19:35
* @Description:
*/
public interface ExceptionReportPayableApplication {
public static final String QUERY_XML_FILE_PATH = "config/topsun/sap/exceptionReport/exceptionReport.xml";
List<ExceptionReportPayable> findByExceptionReportId(String exceptionReportId);
void saveExceptionReportPayableList(String exceptionReportId,List<ExceptionReportPayable> payableList);
Map<String,Object> slicedExceptionReportPayableList(ExceptionReportQueryRequest queryRequest);
void deleteByIds(List<String> ids);
void saveExceptionReportPayable(ExceptionReportPayable exceptionReportPayable);
}
package com.huigou.topsun.sap.exceptionReport.application.impl;
import cn.hutool.core.collection.CollectionUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.huigou.cache.DictUtil;
import com.huigou.data.domain.model.CommonDomainConstants;
import com.huigou.data.query.model.QueryDescriptor;
import com.huigou.data.query.model.QueryModel;
import com.huigou.topsun.common.CommonUtils;
import com.huigou.topsun.sap.exceptionReport.application.ExceptionReportApplication;
import com.huigou.topsun.sap.exceptionReport.application.ExceptionReportDutyPersonApplication;
import com.huigou.topsun.sap.exceptionReport.application.ExceptionReportItemApplication;
import com.huigou.topsun.sap.exceptionReport.domain.ExceptionReport;
import com.huigou.topsun.sap.exceptionReport.domain.ExceptionReportDutyPerson;
import com.huigou.topsun.sap.exceptionReport.domain.ExceptionReportItem;
import com.huigou.topsun.sap.common.HttpClient;
import com.huigou.topsun.sap.common.application.SapMutualEpLogApplication;
import com.huigou.topsun.sap.common.domain.SapResult;
import com.huigou.topsun.sap.exceptionReport.application.*;
import com.huigou.topsun.sap.exceptionReport.domain.*;
import com.huigou.topsun.sap.exceptionReport.domain.query.ExceptionReportQueryRequest;
import com.huigou.topsun.sap.exceptionReport.domain.vo.PurchaseOrderItemVo;
import com.huigou.topsun.sap.exceptionReport.domain.vo.PurchaseOrderVo;
import com.huigou.topsun.sap.exceptionReport.repository.ExceptionReportPayableRepository;
import com.huigou.topsun.sap.exceptionReport.repository.ExceptionReportRepository;
import com.huigou.topsun.sap.permit.domain.SapPermit;
import com.huigou.topsun.sap.permit.domain.SapPermitItem;
import com.huigou.topsun.sap.processOutsource.domain.vo.ProcessOutsourceItemVo;
import com.huigou.topsun.sap.processOutsource.domain.vo.ProcessOutsourceVo;
import com.huigou.uasp.bmp.common.BizBillStatus;
import com.huigou.uasp.bpm.FlowBroker;
import com.huigou.util.*;
import freemarker.template.Template;
import org.activiti.engine.delegate.DelegateExecution;
import org.activiti.engine.delegate.DelegateTask;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
......@@ -30,11 +38,11 @@ import org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer;
import javax.servlet.http.HttpServletResponse;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
import java.math.BigDecimal;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.stream.Collectors;
/**
* @Auther: xin.lu
......@@ -52,6 +60,18 @@ public class ExceptionReportApplicationImpl extends FlowBroker implements Except
@Autowired
private ExceptionReportDutyPersonApplication exceptionReportDutyPersonApplication;
@Autowired
private ExceptionReportPayableApplication exceptionReportPayableApplication;
@Autowired
private ExceptionReportCashApplication exceptionReportCashApplication;
@Autowired
private ExceptionReportGoodsApplication exceptionReportGoodsApplication;
@Autowired
private HttpClient httpClient;
@Autowired
private SapMutualEpLogApplication sapMutualEpLogApplication;
@Autowired
private FreeMarkerConfigurer freemarkerConfigurer;
@Override
public Map<String, Object> slicedExceptionReportList(ExceptionReportQueryRequest queryRequest) {
......@@ -102,8 +122,34 @@ public class ExceptionReportApplicationImpl extends FlowBroker implements Except
List<ExceptionReportItem> exceptionReportItems = this.getBizEntities(ExceptionReportItem.class, "exceptionReportItems");
List<ExceptionReportDutyPerson> exceptionReportDutyPersonList = this.getBizEntities(ExceptionReportDutyPerson.class, "personList");
exceptionReport = this.saveExceptionReport(exceptionReport);
this.exceptionReportItemApplication.saveExceptionReportItemList(exceptionReport.getId(),exceptionReportItems);
this.exceptionReportDutyPersonApplication.saveExceptionReportDutyPersonList(exceptionReport.getId(),exceptionReportDutyPersonList);
if (CollectionUtil.isNotEmpty(exceptionReportItems)){
this.exceptionReportItemApplication.saveExceptionReportItemList(exceptionReport.getId(), exceptionReportItems);
}
if (CollectionUtil.isNotEmpty(exceptionReportDutyPersonList)) {
this.exceptionReportDutyPersonApplication.saveExceptionReportDutyPersonList(exceptionReport.getId(), exceptionReportDutyPersonList);
}
List<ExceptionReportPayable> exceptionReportPayableList = this.getBizEntities(ExceptionReportPayable.class, "handlePayable");
List<ExceptionReportCash> exceptionReportCashList = this.getBizEntities(ExceptionReportCash.class, "handleCash");
List<ExceptionReportGoods> exceptionReportGoodsList = this.getBizEntities(ExceptionReportGoods.class, "handleGoods");
if (CollectionUtil.isEmpty(exceptionReportPayableList)
&&CollectionUtil.isEmpty(exceptionReportCashList)
&&CollectionUtil.isEmpty(exceptionReportGoodsList)
) {
throw new IllegalArgumentException("处理方式必须填写一项!");
}
if (CollectionUtil.isNotEmpty(exceptionReportPayableList)) {
exceptionReportPayableApplication.saveExceptionReportPayableList(exceptionReport.getId(),exceptionReportPayableList);
}
if (CollectionUtil.isNotEmpty(exceptionReportCashList)) {
exceptionReportCashApplication.saveExceptionReportCashList(exceptionReport.getId(),exceptionReportCashList);
}
if (CollectionUtil.isNotEmpty(exceptionReportGoodsList)) {
exceptionReportGoodsApplication.saveExceptionReportGoodsList(exceptionReport.getId(),exceptionReportGoodsList);
}
return exceptionReport.getId();
}
......@@ -145,6 +191,77 @@ public class ExceptionReportApplicationImpl extends FlowBroker implements Except
String bizId = delegateExecution.getProcessBusinessKey();
ExceptionReport exceptionReport = this.findById(bizId);
exceptionReport.setStatusId(status.getId());
List <ExceptionReportGoods> goodslist=exceptionReportGoodsApplication.findByExceptionReportId(exceptionReport.getId());
if ("supplier".equals(exceptionReport.getBillType())) {
int u=0;
for (ExceptionReportGoods goods:goodslist ) {
u++;
PurchaseOrderVo purchaseOrderVo = new PurchaseOrderVo();
purchaseOrderVo.setBsart("ZMF");
purchaseOrderVo.setBukrs(goods.getCompany()); //公司代码
purchaseOrderVo.setEkorg(goods.getPurchaseTeam()); // 采购组织
purchaseOrderVo.setEkgrp(goods.getEkgrp()); //采购组
purchaseOrderVo.setAfnam(exceptionReport.getPersonMemberName());
purchaseOrderVo.setLifnr(exceptionReport.getCustomerNo());// 供应商编码
List<PurchaseOrderItemVo> itemVos = new ArrayList<>();
PurchaseOrderItemVo itemVo = new PurchaseOrderItemVo();
itemVo.setMatnr(goods.getProductCode());
itemVo.setMenge(goods.getNumber());
itemVo.setMeins(goods.getUnit());
itemVo.setEeind(DateUtil.getDateFormat("yyyyMMdd", goods.getNeedDate()));
itemVo.setLgort(goods.getLocation()); //收货地点
itemVo.setWerks(goods.getWerks()); //收货工厂
itemVo.setEbelp(Integer.toString(u));
itemVo.setKoein("CNY");
itemVo.setKpein(new BigDecimal(0)); //定价基数
itemVo.setKbetr(new BigDecimal(0)); //价格
itemVo.setPurchaseMwskz("J0"); //税码
itemVo.setUmson("X"); //免费项目
itemVos.add(itemVo);
purchaseOrderVo.setItem(itemVos);
Map<String, Object> resultMap = new HashMap<>();
resultMap.put("businessType", "供应商异常的采购订单");
resultMap.put("businessId", exceptionReport.getId());
resultMap.put("parameter", JSON.toJSONString(purchaseOrderVo));
try {
String url = "cud_po_zub/po_zub";
//String url = SystemCache.getParameter("", String.class);
String execute = httpClient.execute(purchaseOrderVo, url);
List<SapResult> resultList = JSONObject.parseArray(execute, SapResult.class);
//TODO 待SAP返回数据结构
SapResult sapResult = resultList.get(0);
if (!"S".equals(sapResult.getTYPE())) {
List<String> messages = resultList
.stream()
.map(SapResult::getMESSAGE).collect(Collectors.toList());
throw new RuntimeException("数据传输失败," + String.join(";", messages));
} else {
resultMap.put("TYPE", sapResult.getTYPE());
resultMap.put("MESSAGE", sapResult.getMESSAGE());
}
// orderItems.stream().forEach(orderItem->{
//根据供应商来匹配赋值采购订单号
// if (lifnrSet.equals(orderItem.getLifnr())){
exceptionReport.setDealResult(sapResult.getMESSAGE_V1());
// processOutsourceOrderItemRepository.save(orderItem);
// }
// });
} catch (IOException e) {
resultMap.put("TYPE", "E");
resultMap.put("MESSAGE", e.getMessage());
throw new RuntimeException(e);
} finally {
sapMutualEpLogApplication.saveSapMutualEpLog(resultMap);
}
}
}
this.saveExceptionReport(exceptionReport);
}
......
package com.huigou.topsun.sap.exceptionReport.application.impl;
import com.huigou.cache.DictUtil;
import com.huigou.data.query.model.QueryDescriptor;
import com.huigou.data.query.model.QueryModel;
import com.huigou.topsun.sap.exceptionReport.application.ExceptionReportCashApplication;
import com.huigou.topsun.sap.exceptionReport.application.ExceptionReportDutyPersonApplication;
import com.huigou.topsun.sap.exceptionReport.domain.ExceptionReportCash;
import com.huigou.topsun.sap.exceptionReport.domain.ExceptionReportDutyPerson;
import com.huigou.topsun.sap.exceptionReport.domain.query.ExceptionReportQueryRequest;
import com.huigou.topsun.sap.exceptionReport.repository.ExceptionReportCashRepository;
import com.huigou.topsun.sap.exceptionReport.repository.ExceptionReportDutyPersonRepository;
import com.huigou.uasp.bmp.common.application.BaseApplication;
import com.huigou.util.StringUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @Auther: lxh
* @Date: 2024/08/21/19:36
* @Description: 品质异常报告现金处理方式信息
*/
@Service("exceptionReportCashApplication")
public class ExceptionReportCashApplicationImpl extends BaseApplication implements ExceptionReportCashApplication {
@Autowired
private ExceptionReportCashRepository exceptionReportCashRepository;
@Override
public List<ExceptionReportCash> findByExceptionReportId(String exceptionReportId) {
return exceptionReportCashRepository.findByExceptionReportId(exceptionReportId);
}
@Override
public void saveExceptionReportCashList(String exceptionReportId, List<ExceptionReportCash> cashList) {
for (ExceptionReportCash exceptionReportCash : cashList) {
exceptionReportCash.setExceptionReportId(exceptionReportId);
exceptionReportCashRepository.save(exceptionReportCash);
}
}
@Override
public Map<String, Object> slicedExceptionReportCashList(ExceptionReportQueryRequest queryRequest) {
Map<String, Object> map = new HashMap<>();
if (StringUtil.isNotBlank(queryRequest.getExceptionReportId())){
QueryDescriptor queryDescriptor = this.sqlExecutorDao.getQuery(QUERY_XML_FILE_PATH, "exceptionReportCash");
QueryModel queryModel = this.sqlExecutorDao.getQueryModel(queryDescriptor, queryRequest);
queryModel.putDictionary("payment", DictUtil.getDictionary("zwels"));
map = this.sqlExecutorDao.executeSlicedQuery(queryModel);
}
return map;
}
@Override
public void deleteByIds(List<String> ids) {
for (String id : ids) {
exceptionReportCashRepository.delete(id);
}
}
@Override
public void saveExceptionReportCash(ExceptionReportCash exceptionReportCash) {
exceptionReportCashRepository.save(exceptionReportCash);
}
}
package com.huigou.topsun.sap.exceptionReport.application.impl;
import com.huigou.data.query.model.QueryDescriptor;
import com.huigou.data.query.model.QueryModel;
import com.huigou.topsun.sap.exceptionReport.application.ExceptionReportCashApplication;
import com.huigou.topsun.sap.exceptionReport.application.ExceptionReportGoodsApplication;
import com.huigou.topsun.sap.exceptionReport.domain.ExceptionReportCash;
import com.huigou.topsun.sap.exceptionReport.domain.ExceptionReportGoods;
import com.huigou.topsun.sap.exceptionReport.domain.query.ExceptionReportQueryRequest;
import com.huigou.topsun.sap.exceptionReport.repository.ExceptionReportCashRepository;
import com.huigou.topsun.sap.exceptionReport.repository.ExceptionReportGoodsRepository;
import com.huigou.uasp.bmp.common.application.BaseApplication;
import com.huigou.util.StringUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @Auther: lxh
* @Date: 2024/08/21/19:36
* @Description: 品质异常报告商品赔付处理方式信息
*/
@Service("exceptionReportGoodsApplication")
public class ExceptionReportGoodsApplicationImpl extends BaseApplication implements ExceptionReportGoodsApplication {
@Autowired
private ExceptionReportGoodsRepository exceptionReportGoodsRepository;
@Override
public List<ExceptionReportGoods> findByExceptionReportId(String exceptionReportId) {
return exceptionReportGoodsRepository.findByExceptionReportId(exceptionReportId);
}
@Override
public void saveExceptionReportGoodsList(String exceptionReportId, List<ExceptionReportGoods> goodsList) {
for (ExceptionReportGoods exceptionReportGoods : goodsList) {
exceptionReportGoods.setExceptionReportId(exceptionReportId);
exceptionReportGoodsRepository.save(exceptionReportGoods);
}
}
@Override
public Map<String, Object> slicedExceptionReportGoodsList(ExceptionReportQueryRequest queryRequest) {
Map<String, Object> map = new HashMap<>();
if (StringUtil.isNotBlank(queryRequest.getExceptionReportId())){
QueryDescriptor queryDescriptor = this.sqlExecutorDao.getQuery(QUERY_XML_FILE_PATH, "exceptionReportGoods");
QueryModel queryModel = this.sqlExecutorDao.getQueryModel(queryDescriptor, queryRequest);
map = this.sqlExecutorDao.executeSlicedQuery(queryModel);
}
return map;
}
@Override
public void deleteByIds(List<String> ids) {
for (String id : ids) {
exceptionReportGoodsRepository.delete(id);
}
}
@Override
public void saveExceptionReportGoods(ExceptionReportGoods exceptionReportGoods) {
exceptionReportGoodsRepository.save(exceptionReportGoods);
}
}
package com.huigou.topsun.sap.exceptionReport.application.impl;
import com.huigou.data.query.model.QueryDescriptor;
import com.huigou.data.query.model.QueryModel;
import com.huigou.topsun.sap.exceptionReport.application.ExceptionReportCashApplication;
import com.huigou.topsun.sap.exceptionReport.application.ExceptionReportPayableApplication;
import com.huigou.topsun.sap.exceptionReport.domain.ExceptionReportCash;
import com.huigou.topsun.sap.exceptionReport.domain.ExceptionReportPayable;
import com.huigou.topsun.sap.exceptionReport.domain.query.ExceptionReportQueryRequest;
import com.huigou.topsun.sap.exceptionReport.repository.ExceptionReportCashRepository;
import com.huigou.topsun.sap.exceptionReport.repository.ExceptionReportPayableRepository;
import com.huigou.uasp.bmp.common.application.BaseApplication;
import com.huigou.util.StringUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @Auther: lxh
* @Date: 2024/08/21/19:36
* @Description: 品质异常报告扣除应付款处理方式信息
*/
@Service("exceptionReportPayableApplication")
public class ExceptionReportPayableApplicationImpl extends BaseApplication implements ExceptionReportPayableApplication {
@Autowired
private ExceptionReportPayableRepository exceptionReportPayableRepository;
@Override
public List<ExceptionReportPayable> findByExceptionReportId(String exceptionReportId) {
return exceptionReportPayableRepository.findByExceptionReportId(exceptionReportId);
}
@Override
public void saveExceptionReportPayableList(String exceptionReportId, List<ExceptionReportPayable> payableList) {
for (ExceptionReportPayable exceptionReportPayable : payableList) {
exceptionReportPayable.setExceptionReportId(exceptionReportId);
exceptionReportPayableRepository.save(exceptionReportPayable);
}
}
@Override
public Map<String, Object> slicedExceptionReportPayableList(ExceptionReportQueryRequest queryRequest) {
Map<String, Object> map = new HashMap<>();
if (StringUtil.isNotBlank(queryRequest.getExceptionReportId())){
QueryDescriptor queryDescriptor = this.sqlExecutorDao.getQuery(QUERY_XML_FILE_PATH, "exceptionReportPayable");
QueryModel queryModel = this.sqlExecutorDao.getQueryModel(queryDescriptor, queryRequest);
map = this.sqlExecutorDao.executeSlicedQuery(queryModel);
}
return map;
}
@Override
public void deleteByIds(List<String> ids) {
for (String id : ids) {
exceptionReportPayableRepository.delete(id);
}
}
@Override
public void saveExceptionReportPayable(ExceptionReportPayable exceptionReportPayable) {
exceptionReportPayableRepository.save(exceptionReportPayable);
}
}
......@@ -2,9 +2,7 @@ package com.huigou.topsun.sap.exceptionReport.controller;
import com.huigou.context.Operator;
import com.huigou.context.OrgUnit;
import com.huigou.topsun.sap.exceptionReport.application.ExceptionReportApplication;
import com.huigou.topsun.sap.exceptionReport.application.ExceptionReportDutyPersonApplication;
import com.huigou.topsun.sap.exceptionReport.application.ExceptionReportItemApplication;
import com.huigou.topsun.sap.exceptionReport.application.*;
import com.huigou.topsun.sap.exceptionReport.domain.ExceptionReport;
import com.huigou.topsun.sap.exceptionReport.domain.query.ExceptionReportQueryRequest;
import com.huigou.uasp.annotation.ControllerMapping;
......@@ -33,6 +31,14 @@ public class ExceptionReportController extends CommonController {
private ExceptionReportItemApplication exceptionReportItemApplication;
@Autowired
private ExceptionReportDutyPersonApplication exceptionReportDutyPersonApplication;
@Autowired
private ExceptionReportPayableApplication exceptionReportPayableApplication;
@Autowired
private ExceptionReportCashApplication exceptionReportCashApplication;
@Autowired
private ExceptionReportGoodsApplication exceptionReportGoodsApplication;
@Override
protected String getPagePath() {
return "/biz/topsun/sap/exceptionReport/";
......@@ -69,8 +75,8 @@ public class ExceptionReportController extends CommonController {
exceptionReport.setStatusId(BizBillStatus.APPLYING.getId());
exceptionReport.setAttbizId(CommonUtil.createGUID()); // 自动生成附件id
SDO sdo = this.getSDO();
String type=sdo.getString("type");
this.putAttribute("type",type);
String billType=sdo.getString("billType");
this.putAttribute("billType",billType);
List<Map<String,Object>> list= exceptionReportApplication.getCustomerOrders("");
Map map=new HashMap();
......@@ -84,8 +90,11 @@ public class ExceptionReportController extends CommonController {
*/
Operator operator = getOperator();
exceptionReport.setDefaultValues(new OrgUnit(operator.getFullId(), operator.getFullName()));
if ("purchase".equals(type)) {
exceptionReport.setBillType(billType);
if ("purchase".equals(billType)) {
return forward("exceptionReportDetailPurchase", exceptionReport);
} else if ("supplier".equals(billType)) {
return forward("exceptionReportDetailSupplier", exceptionReport);
} else {
return forward("exceptionReportDetail", exceptionReport);
}
......@@ -99,8 +108,10 @@ public class ExceptionReportController extends CommonController {
SDO sdo = this.getSDO();
String id = sdo.getBizId();
ExceptionReport exceptionReport = exceptionReportApplication.findById(id);
if ("purchase".equals(exceptionReport.getType())){
if ("purchase".equals(exceptionReport.getBillType())) {
return forward("exceptionReportDetailPurchase", exceptionReport);
} else if ("supplier".equals(exceptionReport.getBillType())){
return forward("exceptionReportDetailSupplier", exceptionReport);
} else {
return forward("exceptionReportDetail", exceptionReport);
}
......@@ -161,6 +172,68 @@ public class ExceptionReportController extends CommonController {
return success();
}
/**
* 查询品质异常报告扣除应付款处理方式
* @return
*/
public String slicedExceptionReportPayableList(){
SDO sdo = this.getSDO();
ExceptionReportQueryRequest queryRequest = sdo.toQueryRequest(ExceptionReportQueryRequest.class);
return toResult(exceptionReportPayableApplication.slicedExceptionReportPayableList(queryRequest));
}
/**
* 删除品质异常报告扣除应付款处理方式
* @return
*/
public String deleteExceptionReportPayable(){
SDO sdo = this.getSDO();
List<String> ids = sdo.getIds();
exceptionReportPayableApplication.deleteByIds(ids);
return success();
}
/**
* 查询品质异常报告现金处理方式
* @return
*/
public String slicedExceptionReportCashList(){
SDO sdo = this.getSDO();
ExceptionReportQueryRequest queryRequest = sdo.toQueryRequest(ExceptionReportQueryRequest.class);
return toResult(exceptionReportCashApplication.slicedExceptionReportCashList(queryRequest));
}
/**
* 删除品质异常报告现金处理方式
* @return
*/
public String deleteExceptionReportCash(){
SDO sdo = this.getSDO();
List<String> ids = sdo.getIds();
exceptionReportCashApplication.deleteByIds(ids);
return success();
}
/**
* 查询品质异常报告商品赔付处理方式
* @return
*/
public String slicedExceptionReportGoodsList(){
SDO sdo = this.getSDO();
ExceptionReportQueryRequest queryRequest = sdo.toQueryRequest(ExceptionReportQueryRequest.class);
return toResult(exceptionReportGoodsApplication.slicedExceptionReportGoodsList(queryRequest));
}
/**
* 删除品质异常报告商品赔付处理方式
* @return
*/
public String deleteExceptionReportGoods(){
SDO sdo = this.getSDO();
List<String> ids = sdo.getIds();
exceptionReportGoodsApplication.deleteByIds(ids);
return success();
}
public String getCustomerOrders(){
SDO sdo = this.getSDO();
List<String> ids = sdo.getIds();
......
......@@ -136,8 +136,16 @@ public class ExceptionReport extends FlowBillAbstractEntity {
@Column(name = "lose_money")
private BigDecimal loseMoney;
@Column(name = "type")
private String type;
//单据类型
@Column(name = "bill_type")
private String billType;
//材料编码
@Column(name = "matnr")
private String matnr;
//材料名称
@Column(name = "maktx")
private String maktx;
@Column(name = "exception_title")
......
package com.huigou.topsun.sap.exceptionReport.domain;
import com.huigou.data.domain.model.AbstractEntity;
import lombok.Data;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.math.BigDecimal;
import java.util.Date;
/**
* @Auther: lxh
* @Date: 2024/08/21/15:05
* @Description: 品质异常报告供应商 现金、转账处理方式
*/
@Data
@Entity
@Table(name = "sap_exception_report_cash")
public class ExceptionReportCash extends AbstractEntity {
/**
* 品质异常报告id
*/
@Column(name = "exception_report_id")
private String exceptionReportId;
/**
* 付款方式
*/
@Column(name = "payment")
private String payment;
/**
* 金额
*/
@Column(name = "money")
private BigDecimal money;
/**
* 币别
*/
@Column(name = "currency")
private String currency;
/**
* 币别描述
*/
@Column(name = "currency_name")
private String currencyName;
/**
* 账期
*/
@Column(name = "period")
private String period;
/*
*备注
*/
@Column(name = "remark")
private String remark;
}
package com.huigou.topsun.sap.exceptionReport.domain;
import com.huigou.data.domain.model.AbstractEntity;
import lombok.Data;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.math.BigDecimal;
import java.util.Date;
/**
* @Auther: lxh
* @Date: 2024/08/21/15:05
* @Description: 品质异常报告供应商 商品赔付处理方式
*/
@Data
@Entity
@Table(name = "sap_exception_report_goods")
public class ExceptionReportGoods extends AbstractEntity {
/**
* 品质异常报告id
*/
@Column(name = "exception_report_id")
private String exceptionReportId;
/**
* 公司
*/
@Column(name = "company")
private String company;
@Column(name = "company_name")
private String companyName;
//采购组织
@Column(name = "purchase_team")
private String purchaseTeam;
@Column(name = "purchase_team_name")
private String purchaseTeamName;
@Column(name = "ekgrp")
private String ekgrp;
/**
* 产品/原材料编码
*/
@Column(name = "product_code")
private String productCode;
/**
* 产品/原材料名称
*/
@Column(name = "product_name")
private String productName;
/**
* 单位
*/
@Column(name = "unit")
private String unit;
/**
* 单位描述
*/
@Column(name = "unit_name")
private String unitName;
/**
* 币别
*/
@Column(name = "currency")
private String currency;
/**
* 币别描述
*/
@Column(name = "currency_name")
private String currencyName;
/**
* 数量
*/
@Column(name = "number")
private BigDecimal number;
/**
* 金额
*/
@Column(name = "money")
private BigDecimal money;
/**
* 需求日期
*/
@Column(name = "need_date")
private Date needDate;
/*
*收货工厂
*/
@Column(name = "werks_name")
private String werksName;
@Column(name = "werks")
private String werks;
/*
*收货地点
*/
@Column(name = "location")
private String location;
/*
*收货地点
*/
@Column(name = "location_name")
private String locationName;
/*
*备注
*/
@Column(name = "remark")
private String remark;
}
package com.huigou.topsun.sap.exceptionReport.domain;
import com.huigou.data.domain.model.AbstractEntity;
import lombok.Data;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.math.BigDecimal;
import java.util.Date;
/**
* @Auther: lxh
* @Date: 2024/08/21/15:05
* @Description: 品质异常报告供应商 扣除应付款处理方式
*/
@Data
@Entity
@Table(name = "sap_exception_report_payable")
public class ExceptionReportPayable extends AbstractEntity {
/**
* 品质异常报告id
*/
@Column(name = "exception_report_id")
private String exceptionReportId;
/**
* 采购单号
*/
@Column(name = "purchase_no")
private String purchaseNo;
/**
* 金额
*/
@Column(name = "money")
private BigDecimal money;
/**
* 日期
*/
@Column(name = "send_date")
private Date sendDate;
/*
*备注
*/
@Column(name = "remark")
private String remark;
}
package com.huigou.topsun.sap.exceptionReport.domain.vo;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
@Data
public class PurchaseOrderItemVo implements Serializable {
/**
* SAP采购订单
*/
@JsonProperty("EBELN")
private String ebeln;
/**
* 订单行项目号
*/
@JsonProperty("EBELP")
private String ebelp;
/**
* 物料编码
*/
@JsonProperty("MATNR")
private String matnr;
/**
* 物料描述
*/
@JsonProperty("MAKTX")
private String txz01;
/**
* 数量
*/
@JsonProperty("MENGE")
private BigDecimal menge;
/**
* 单位
*/
@JsonProperty("MEINS")
private String meins;
/**
* 需求到货日期
*/
@JsonProperty("EEIND")
private String eeind;
/**
* 工厂
*/
@JsonProperty("WERKS")
private String werks;
/**
* 存储地点
*/
@JsonProperty("LGORT")
private String lgort;
/**
* 免费项目
*/
@JsonProperty("UMSON")
private String umson;
/**
* 操作/活动编号
*/
@JsonProperty("VORNR")
private String vornr;
/**
* 收货方
*/
@JsonProperty("WEMPF")
private String wempf;
/**
* 同一工序外发次数
* 自动计数器,匹配条件为“如果之前状态为通过的申请中有相同工单+工序,则计数器+1,起始为1”
*/
@JsonProperty("ABLAD")
private String ablad;
/**
* 单价
*/
@JsonProperty("KBETR")
private BigDecimal kbetr;
/**
* 税码
*/
@JsonProperty("MWSKZ")
private String purchaseMwskz;
/**
* 物料组
*/
@JsonProperty("MATKL")
private String matkl;
/**
* 科目分配类别
*/
@JsonProperty("KNTTP")
private String knttp;
/**
* 条件定价单位
*/
@JsonProperty("KPEIN")
private BigDecimal kpein;
/**
*货币码
*/
@JsonProperty("KOEIN")
private String koein;
}
package com.huigou.topsun.sap.exceptionReport.domain.vo;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.huigou.topsun.sap.processOutsource.domain.vo.ProcessOutsourceItemVo;
import lombok.Data;
import java.io.Serializable;
import java.util.List;
@Data
public class PurchaseOrderVo implements Serializable {
@JsonProperty("ZTYPE")
private String ztype;
/**
* 订单类型
*/
@JsonProperty("BSART")
private String bsart;
/**
* 申请人
*/
@JsonProperty("AFNAM")
private String afnam;
/**
* 公司代码
*/
@JsonProperty("BUKRS")
private String bukrs;
/**
* 采购组织
*/
@JsonProperty("EKORG")
private String ekorg;
/**
* 采购组
*/
@JsonProperty("EKGRP")
private String ekgrp;
/**
* 供应商编码
*/
@JsonProperty("LIFNR")
private String lifnr;
@JsonProperty("ITEM")
private List<PurchaseOrderItemVo> item;
}
package com.huigou.topsun.sap.exceptionReport.repository;
import com.huigou.topsun.sap.exceptionReport.domain.ExceptionReportCash;
import com.huigou.topsun.sap.exceptionReport.domain.ExceptionReportItem;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
/**
* @Auther: lxh
* @Date: 2024/08/20/19:35
* @Description:
*/
public interface ExceptionReportCashRepository extends JpaRepository<ExceptionReportCash,String> {
List<ExceptionReportCash> findByExceptionReportId(String exceptionReportId);
}
package com.huigou.topsun.sap.exceptionReport.repository;
import com.huigou.topsun.sap.exceptionReport.domain.ExceptionReportCash;
import com.huigou.topsun.sap.exceptionReport.domain.ExceptionReportGoods;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
/**
* @Auther: lxh
* @Date: 2024/08/21/19:35
* @Description:
*/
public interface ExceptionReportGoodsRepository extends JpaRepository<ExceptionReportGoods,String> {
List<ExceptionReportGoods> findByExceptionReportId(String exceptionReportId);
}
package com.huigou.topsun.sap.exceptionReport.repository;
import com.huigou.topsun.sap.exceptionReport.domain.ExceptionReportCash;
import com.huigou.topsun.sap.exceptionReport.domain.ExceptionReportPayable;
import org.springframework.data.jpa.repository.JpaRepository;
import java.util.List;
/**
* @Auther: lxh
* @Date: 2024/08/21/19:35
* @Description:
*/
public interface ExceptionReportPayableRepository extends JpaRepository<ExceptionReportPayable,String> {
List<ExceptionReportPayable> findByExceptionReportId(String exceptionReportId);
}
......@@ -23,11 +23,29 @@
<condition column="exception_report_id" name="exceptionReportId" type="java.lang.String" symbol="like" alias="t"/>
</query>
<query name="exceptionReportDutyPersons" label="品质异常报告" table="sap_exception_duty_person">
<query name="exceptionReportDutyPersons" label="品质异常报告责任人" table="sap_exception_duty_person">
<sql-query>
select t.* from sap_exception_duty_person t
</sql-query>
<condition column="exception_report_id" name="exceptionReportId" type="java.lang.String" symbol="like" alias="t"/>
</query>
<query name="exceptionReportCash" label="品质异常报告现金处理方式" table="sap_exception_report_cash">
<sql-query>
select t.* from sap_exception_report_cash t
</sql-query>
<condition column="exception_report_id" name="exceptionReportId" type="java.lang.String" symbol="like" alias="t"/>
</query>
<query name="exceptionReportPayable" label="品质异常报告扣除应付款处理方式" table="sap_exception_report_payable">
<sql-query>
select t.* from sap_exception_report_payable t
</sql-query>
<condition column="exception_report_id" name="exceptionReportId" type="java.lang.String" symbol="like" alias="t"/>
</query>
<query name="exceptionReportGoods" label="品质异常报告商品赔付处理方式" table="sap_exception_report_goods">
<sql-query>
select t.* from sap_exception_report_goods t
</sql-query>
<condition column="exception_report_id" name="exceptionReportId" type="java.lang.String" symbol="like" 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