Commit 38f5ed4f authored by 刘学辉's avatar 刘学辉

品质异常单根据异常类型获取不同接口数据

parent c6015faa
var itemGridManager, purchaseGridManager, dutyPersonGridManager = null
//var purchaseToolbarOptions=null;
var clientGridManager,produceGridManager, purchaseGridManager, dutyPersonGridManager = null
$(function () {
initialize();
initSerachBox();
initProduceGrid();
initClientGrid();
initPurchaseGrid();
initDutyPersonGridGrid();
});
......@@ -42,11 +43,16 @@ function initialize() {
});
if ($('#exceptionReasonType').val() == "1") {
showPurchaseDiv();
} else {
} else if ($('#exceptionReasonType').val() == "2") {
showProduceDiv();
} else {
showClientDiv();
}
$('#exceptionReasonType').combox({
onChange: function (v) {
$('#customerOrderNo').val("");
$('#customerName').val("");
$('#customerNo').val("");
if (v.value == 1) { //供应商原料问题
if ($('#exceptionType').val()=="in"){
Public.tip("供应商原料问题的异常类型只能是外部!");
......@@ -60,8 +66,15 @@ function initialize() {
clearExceptionType();
// return false;
}
if (v.value== "3"){
showClientDiv();
UICtrl.setElRequiredFlag("#customerNo", true);
} else {
UICtrl.setElRequiredFlag("#customerNo", false);
showProduceDiv();
}
}
}
});
$('#exceptionType').combox({
......@@ -92,8 +105,25 @@ function showProduceDiv() {
$("#purchaseDiv").hide();
$("#produceDiv").show();
$("#producegridDiv").show();
$("#clientgridDiv").hide();
try {
produceGridManager.loadData();
} catch(e){
// alert(e.error);
}
setPurchaseMustInput(false);
setProduceMustInput(true);
}
function showClientDiv() {
$("#purchaseDiv").hide();
$("#produceDiv").show();
$("#clientgridDiv").show();
$("#producegridDiv").hide();
try {
itemGridManager.loadData();
clientGridManager.loadData();
} catch(e){
// alert(e.error);
}
......@@ -126,11 +156,13 @@ function setPurchaseMustInput(flag) {
}
function setProduceMustInput(flag) {
if ($('#exceptionReasonType').val() == "3"){
UICtrl.setElRequiredFlag("#customerNo", flag);
}
UICtrl.setElRequiredFlag("#customerOrderNo", flag);
}
function initProduceGrid() {
function initSerachBox(){
//工厂
$('#werksName').searchbox({
type: "system", name: "dictionary",
......@@ -151,22 +183,7 @@ function initProduceGrid() {
}
countSumChange();
})
/*$('#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);
}
});*/
$('#customerOrderNo').searchbox({
type: "system", name: "sapCustomerOrderSelect",
getParam: function (item) {
......@@ -174,7 +191,7 @@ function initProduceGrid() {
Public.tip("请先选择工厂!")
return false
}
if (Public.isBlank($('#customerNo').val())) {
if ($('#exceptionReasonType').val()=="3"&&Public.isBlank($('#customerNo').val())) {
Public.tip("请先输入客户编号!")
return false
}
......@@ -185,17 +202,28 @@ function initProduceGrid() {
}
},
onChange: function (value, data) {
$('#customerOrderNo').val(data.VBELN);
if ($('#exceptionReasonType').val()=="3") { //客户异常
$('#customerName').val(data.NAME1);
}
if ($('#exceptionReasonType').val()=="2"&&data.VBELN!=undefined) { //生产异常
produceGridManager.addRows({
produceNo:data.VBELN,
productCode: data.MATNR,
productName: data.MAKTX,
unitName: data.MEINS,
number: data.PSMNG
});
var toolbarOptions = UICtrl.getDefaultToolbarOptions({
}
$('#customerOrderNo').val(data.VBELN);
}
});
}
function initProduceGrid() {
var produceToolbarOptions = UICtrl.getDefaultToolbarOptions({
addHandler: function () {
/* if (Public.isBlank($('#customerOrderNo').val())) {
Public.tip("请先输入客户订单号!")
return false
}*/
UICtrl.addGridRow(itemGridManager);
UICtrl.addGridRow(produceGridManager);
},
deleteHandler: function () {
var _grid = UICtrl.getGridManager('#producegrid');
......@@ -205,14 +233,14 @@ function initProduceGrid() {
gridManager: _grid,
idFieldName: 'id',
onSuccess: function () {
countSum(itemGridManager.rows);
countSum(produceGridManager.rows);
reloadGrid();
}
});
},
});
itemGridManager = UICtrl.grid('#producegrid', {
columns: getGridColumns(),
produceGridManager = UICtrl.grid('#producegrid', {
columns: getProcduceGridColumns(),
dataAction: 'server',
url: web_app.name + '/exceptionReport/slicedExceptionReportItemList.ajax',
parms: {exceptionReportId: getId(),exceptionReasonType:"2"},
......@@ -227,38 +255,93 @@ function initProduceGrid() {
fixedCellHeight: true,
selectRowButtonOnly: true,
//autoApplyNextEditor:false,
toolbar: toolbarOptions,
toolbar: produceToolbarOptions,
onAfterEdit: function (item) {
if (item.column.name == 'rmbMoney') {
countSum(itemGridManager.rows);
countSum(produceGridManager.rows);
var money = MathUtil.add(item.record.money, item.value);
itemGridManager.updateRow(item.record, {totalMoney:money });
produceGridManager.updateRow(item.record, {totalMoney:money });
}
},
onAfterShowData() {
countSum(itemGridManager.rows);
for (var r = 0; r < itemGridManager.rows.length; r++) {
var money = MathUtil.add(itemGridManager.rows[r].rmbMoney, itemGridManager.rows[r].money);
itemGridManager.updateRow(itemGridManager.rows[r], {totalMoney:money });
countSum(produceGridManager.rows);
for (var r = 0; r < produceGridManager.rows.length; r++) {
var money = MathUtil.add(produceGridManager.rows[r].rmbMoney, produceGridManager.rows[r].money);
produceGridManager.updateRow(produceGridManager.rows[r], {totalMoney:money });
}
}
})
UICtrl.setSearchAreaToggle(produceGridManager);
}
function initClientGrid() {
produceToolbarOptions=null;
var clientToolbarOptions = UICtrl.getDefaultToolbarOptions({
addHandler: function () {
UICtrl.addGridRow(clientGridManager);
},
deleteHandler: function () {
var _grid = UICtrl.getGridManager('#clientgrid');
DataUtil.delSelectedRows({
action: 'exceptionReport/deleteExceptionReportItem.ajax',
param: {},
gridManager: _grid,
idFieldName: 'id',
onSuccess: function () {
countSum(clientGridManager.rows);
reloadGrid();
}
});
},
});
clientGridManager = UICtrl.grid('#clientgrid', {
columns: getClientGridColumns(),
dataAction: 'server',
url: web_app.name + '/exceptionReport/slicedExceptionReportItemList.ajax',
parms: {exceptionReportId: getId(),exceptionReasonType:"2"},
height:'auto', // colRowNum*35+90
heightDiff: -4,
sortName: 'id',
sortOrder: 'asc',
checkbox: true,
usePager: true,
rownumbers: true,
enabledEdit: true,
fixedCellHeight: true,
selectRowButtonOnly: true,
//autoApplyNextEditor:false,
toolbar: clientToolbarOptions,
onAfterEdit: function (item) {
if (item.column.name == 'rmbMoney') {
countSum(clientGridManager.rows);
var money = MathUtil.add(item.record.money, item.value);
clientGridManager.updateRow(item.record, {totalMoney:money });
}
},
onAfterShowData() {
countSum(clientGridManager.rows);
for (var r = 0; r < clientGridManager.rows.length; r++) {
var money = MathUtil.add(clientGridManager.rows[r].rmbMoney, clientGridManager.rows[r].money);
clientGridManager.updateRow(clientGridManager.rows[r], {totalMoney:money });
}
}
})
UICtrl.setSearchAreaToggle(itemGridManager);
UICtrl.setSearchAreaToggle(clientGridManager);
}
function countSumChange() {
if ($('#exceptionReasonType').val() == "1") {
countSum(purchaseGridManager.rows);
} else if ($('#exceptionReasonType').val() == "2") {
countSum(produceGridManager.rows);
} else {
countSum(itemGridManager.rows);
countSum(clientGridManager.rows);
}
}
function getGridColumns() {
function getClientGridColumns() {
var columns = [];
columns = [
{
columns.push({
display: "生产单号", name: "produceNo", width: "160", align: "left", type: "string",
editor: {
required: false, type: "select",
......@@ -267,13 +350,14 @@ function getGridColumns() {
name: "sapCustomerProduceNo",
getParam: function (item) {
if (Public.isBlank($('#customerOrderNo').val())) {
Public.tip("请先输入客户单号!")
Public.tip("请先输入客户单号!")
return false;
}
return {
werks: $("#werks").val(),
kunnr: $("#customerNo").val(),
vbeln: $("#customerOrderNo").val(),
reasonType: $('#exceptionReasonType').val()
}
},
back: {
......@@ -288,7 +372,51 @@ function getGridColumns() {
}
}
}
},
});
columns.push(
{display: "产品编码", name: "productCode", width: "160", align: "left", type: "string"
,editor: {type: 'text'}
} );
columns.push(
{display: "产品名称", name: "productName", width: "200", align: "left", type: "string"
,editor: {type: 'text'}
} );
columns.push(
{display: "数量", name: "number", width: "100", align: "left", type: "string"
,editor: {type: "text",mask: '9999999.999'}
} );
columns.push(
{display: "单位", name: "unitName", width: "80", align: "left", type: "string"
,editor: {type: "text"}
} );
columns.push(
{display: "币别", name: "currencyName", width: "100", align: "left", type: "string"
,editor: {type: "text"}
} );
columns.push(
{display: "金额", name: "money", width: "100", align: "left", type: "string"
,editor: {type: "text",mask: '9999999.999'}
} );
columns.push(
{
display: "折算金额", name: "rmbMoney", width: "100", align: "left", type: "string",
editor: {type: "text", mask: '9999999.999'}
} );
columns.push(
{display: "出货日期", name: "sendDate", width: "140", align: "left", type: "date"
,editor: {type: "date"}
} );
return columns;
}
function getProcduceGridColumns() {
var columns = [];
columns.push({
display: "生产单号", name: "produceNo", width: "160", align: "left", type: "string",
editor: {type: 'text'}
});
columns.push(
{display: "产品编码", name: "productCode", width: "160", align: "left", type: "string"
,editor: {type: 'text'}
},
......@@ -317,7 +445,7 @@ function getGridColumns() {
{display: "出货日期", name: "sendDate", width: "140", align: "left", type: "date"
,editor: {type: "date"}
}
]
);
return columns;
}
......@@ -360,7 +488,7 @@ function initDutyPersonGridGrid() {
);
UICtrl.setSearchAreaToggle(dutyPersonGridManager);
}
/*
function initPurchaseToolBar(){
purchaseToolbarOptions = UICtrl.getDefaultToolbarOptions({
addHandler: function () {
......@@ -380,7 +508,7 @@ function initPurchaseToolBar(){
});
},
});
}
} */
function initPurchaseGrid() {
var purchaseToolbarOptions = UICtrl.getDefaultToolbarOptions({
......@@ -599,6 +727,9 @@ function getExtendedData(processAction) {
if ($('#exceptionReasonType').val() == "1") { //供应商材料问题
_grid = UICtrl.getGridManager('#purchasegrid');
}
if ($('#exceptionReasonType').val() == "3") { //客户异常
_grid = UICtrl.getGridManager('#clientgrid');
}
if (_grid) {
var datas = DataUtil.getGridData({
gridManager: _grid,
......@@ -612,14 +743,14 @@ function getExtendedData(processAction) {
var _dutyPersonGrid = UICtrl.getGridManager('#dutyPersonGrid');
if (_dutyPersonGrid) {
var datas = DataUtil.getGridData({
var datas2 = DataUtil.getGridData({
gridManager: _dutyPersonGrid,
isAllData: true
});
if (!datas) {
if (!datas2) {
return false;
}
extendedData.personList = Public.encodeJSONURI(datas);
extendedData.personList = Public.encodeJSONURI(datas2);
}
return extendedData;
}
......@@ -633,6 +764,9 @@ function setId(value) {
var _grid = UICtrl.getGridManager('#producegrid');
_grid.options.parms.exceptionReportId = value;
var _grid = UICtrl.getGridManager('#clientgrid');
_grid.options.parms.exceptionReportId = value;
var _purchasegrid = UICtrl.getGridManager('#purchasegrid');
_purchasegrid.options.parms.exceptionReportId = value;
......@@ -641,7 +775,8 @@ function setId(value) {
}
function reloadGrid() {
itemGridManager.loadData();
clientGridManager.loadData();
produceGridManager.loadData();
purchaseGridManager.loadData();
dutyPersonGridManager.loadData();
countSumChange();
......
......@@ -65,12 +65,17 @@
<div class="hg-form-cols" id="produceDiv">
<div class="hg-form-row">
<x:inputC name="customerNo" label="客户编号" labelCol="1" fieldCol="2" required="false"/>
<x:inputC name="customerOrderNo" label="生产订单号/销售订单号" labelCol="2" fieldCol="4" wrapper="select" required="false"/>
<x:inputC name="customerOrderNo" label="生产单号/客户单号" labelCol="2" fieldCol="4" wrapper="select" required="false"/>
<x:inputC name="customerName" label="客户名称" labelCol="1" fieldCol="2" required="false" readonly="true"/>
</div>
<x:title title="单号信息" name="group" hideTable="#info" />
<div class="hg-form-cols" id="producegridDiv">
<div id="producegrid"></div>
</div>
<div class="hg-form-cols" id="clientgridDiv">
<div id="clientgrid"></div>
</div>
</div>
<div class="hg-form-cols">
<div style="padding-top: 15px;">
......
......@@ -306,12 +306,25 @@ public class ResourceSearchController {
Integer pageSize = sdo.getInteger("pageSize",10);
PageRequest pageRequest = new PageRequest(intPage - 1, pageSize);
EasySearchParse easySearchParse = new EasySearchParse();
List<QuerySchemeField> fields =
List<QuerySchemeField> fields =new ArrayList<>();
if ("2".equals(queryRequest.getReasonType())){ //生产异常
fields =
Arrays.asList(
new QuerySchemeField("订单号", "VBELN", "string", 150L),
// new QuerySchemeField("订单描述", "KTEXT", "string", 160L),
new QuerySchemeField("物料编码", "MATNR", "string", 160L),
new QuerySchemeField("物料描述", "MAKTX", "string", 160L),
new QuerySchemeField("数量", "PSMNG", "string", 100L),
new QuerySchemeField("单位", "MEINS", "string", 100L)
);
} else {
fields =
Arrays.asList(
new QuerySchemeField("订单号", "VBELN", "string", 130L),
new QuerySchemeField("客户编号", "KUNNR", "string", 60L),
new QuerySchemeField("客户名称", "NAME1", "string", 150L),
new QuerySchemeField("订单号", "VBELN", "string", 160L)
new QuerySchemeField("客户名称", "NAME1", "string", 150L)
);
}
easySearchParse.setFields(fields);
easySearchParse.setWidth(500L);
MemEasySearcher<Map<String, String>> memEasySearcher = new MemEasySearcherImpl<>();
......
......@@ -64,6 +64,7 @@ public class SapMaterialApplicationImpl implements SapMaterialApplication {
OrderQueryVo orderQueryVo=new OrderQueryVo();
SignVo signVo=null;
String InterfaceName="SALES_ORDERS/SALES"; //客户异常 查询销售订单接口
if (StringUtils.isNotBlank(queryRequest.getWerks())) { //工厂
signVo=new SignVo();
signVo.setLow(queryRequest.getWerks());
......@@ -71,19 +72,24 @@ public class SapMaterialApplicationImpl implements SapMaterialApplication {
werksList.add(signVo);
orderQueryVo.setWERKS(werksList);
}
if (StringUtils.isNotBlank(queryRequest.getKunnr())) { //客户
signVo=new SignVo();
if (StringUtils.isNotBlank(queryRequest.getKunnr())&&"3".equals(queryRequest.getReasonType())) { //客户编号
signVo = new SignVo();
signVo.setLow(queryRequest.getKunnr());
List <SignVo> kunnrList=new ArrayList<>();
List<SignVo> kunnrList = new ArrayList<>();
kunnrList.add(signVo);
orderQueryVo.setKUNNR(kunnrList);
if (StringUtils.isNotBlank(queryRequest.getParamValue())) { //过滤参数
}
if (StringUtils.isNotBlank(queryRequest.getParamValue())) { //过滤参数 按订单号查询
signVo=new SignVo();
signVo.setLow("*"+queryRequest.getParamValue()+"*");
signVo.setOption("CP");
List <SignVo> vbelnList=new ArrayList<>();
vbelnList.add(signVo);
orderQueryVo.setVBELN(vbelnList);
if ("3".equals(queryRequest.getReasonType())) { //如果是客户异常
orderQueryVo.setBSTNK(vbelnList);
} else { // 是生产异常
orderQueryVo.setAUFNR(vbelnList);
}
}
if ("3".equals(queryRequest.getReasonType())){ //如果是客户异常
List <SignVo>auartList=new ArrayList<>();
......@@ -94,20 +100,75 @@ public class SapMaterialApplicationImpl implements SapMaterialApplication {
signVo2.setLow("ZEO");
auartList.add(signVo2);
orderQueryVo.setAUART(auartList);
} else{ //生产异常
InterfaceName="SEARCH/SCH_AUFNR";
}
}
if (StringUtils.isNotBlank(queryRequest.getVbeln())) { //客户销售订单号
if (StringUtils.isNotBlank(queryRequest.getVbeln())&&"3".equals(queryRequest.getReasonType())) { //客户单号
signVo=new SignVo();
signVo.setLow(queryRequest.getVbeln());
List <SignVo> vbelnList=new ArrayList<>();
vbelnList.add(signVo);
orderQueryVo.setVBELN(vbelnList);
orderQueryVo.setBSTNK(vbelnList);
}
Object obj = JSONObject.toJSON(orderQueryVo);
try {
String json = httpClient.execute(obj, "SALES_ORDERS/SALES");
List<Map<String, Object>> mapList = JSONUtil.toListMap(json);
String json ="";
List<Map<String, Object>> mapList=new ArrayList<>();
if ("3".equals(queryRequest.getReasonType())) { //如果是客户异常
if (StringUtils.isNotBlank(queryRequest.getParamValue())||StringUtils.isNotBlank(queryRequest.getVbeln())) { //必须输入参数
json = httpClient.execute(obj, InterfaceName);
mapList = JSONUtil.toListMap(json);
}
} else { //生产异常
Map<String,Object> param = new HashMap<>();
param.put("BUKRS",queryRequest.getWerks());
if (StringUtils.isNotBlank(queryRequest.getVbeln())){ //生产订单号
param.put("AUFNR",queryRequest.getVbeln());
}
if (StringUtils.isNotBlank(queryRequest.getParamValue())){
param.put("AUFNR",queryRequest.getParamValue());
}
List<Map<String,String>> mapList2 = new ArrayList<>();
json=httpClient.execute(param, "search/sch_aufnr");
Map<String, String> map = JSONObject.parseObject(json, Map.class);
SapResult sapResult = JSONObject.parseObject(cn.hutool.json.JSONUtil.toJsonStr(map.get("MSG")), SapResult.class);
if ("S".equals(sapResult.getTYPE())) {
ObjectMapper objectMapper = SAPUtils.objectMapper();
mapList2 = objectMapper.readValue(com.huigou.util.JSONUtil.toString(map.get("RDATA")), new TypeReference<List<Map<String, String>>>() {
});
if (StringUtils.isNotBlank(queryRequest.getVbeln())) {
for (Map mapItem : mapList2) {
Map newMap = new HashMap();
newMap.put("MATNR", mapItem.get("PLNBEZ")); //物料编号
newMap.put("MAKTX", mapItem.get("MAKTX")); //物料描述
newMap.put("PSMNG", mapItem.get("GAMNG")); //数量
newMap.put("MEINS", mapItem.get("GMEIN")); //单位
sapOrderVoList.add(newMap);
}
} else {
for (Map mapItem : mapList2) {
Map newMap = new HashMap();
newMap.put("VBELN", mapItem.get("AUFNR")); //订单号
newMap.put("KTEXT", mapItem.get("KTEXT")); //订单描述
newMap.put("MATNR", mapItem.get("PLNBEZ")); //物料编号
newMap.put("MAKTX", mapItem.get("MAKTX")!=null?mapItem.get("MAKTX"):""); //物料描述
newMap.put("PSMNG", mapItem.get("GAMNG")); //数量
newMap.put("MEINS", mapItem.get("GMEIN")); //单位
if (StringUtils.isNotBlank(queryRequest.getParamValue())
&&mapItem.get("AUFNR").toString().indexOf(queryRequest.getParamValue())>-1
) { //过滤参数
sapOrderVoList.add(newMap);
break;
}
//sapOrderVoList.add(newMap);
}
}
}
}
if (StringUtils.isNotBlank(queryRequest.getVbeln())) { //按生产订单号
for (Map map : mapList) {
Map newMap = new HashMap();
......@@ -117,7 +178,12 @@ public class SapMaterialApplicationImpl implements SapMaterialApplication {
newMap.put("MAKTX", mapItem.get("MAKTX")); //物料名称
newMap.put("AUFNR", mapItem.get("AUFNR")); //生产单号
newMap.put("PSMNG", mapItem.get("PSMNG")); //生产数量
newMap.put("LFDAT", mapItem.get("LFDAT")); //出货日期
String sendDate="";
if (!"00000000".equals(mapItem.get("LFDAT").toString())){
sendDate=mapItem.get("LFDAT").toString();
sendDate=sendDate.substring(0,4)+"-"+sendDate.substring(4,6)+"-"+sendDate.substring(6,8);
}
newMap.put("LFDAT", sendDate); //出货日期
newMap.put("MEINS", mapItem.get("MEINS_O")); //单位
// KPEIN //定价单位
......
......@@ -105,6 +105,7 @@ public class SapPaymentApplicationImpl implements SapPaymentApplication {
public List<Map<String, String>> getCompanyOrders(String BUKRS) throws IOException {
Map<String,Object> param = new HashMap<>();
param.put("BUKRS",BUKRS);
param.put("ZTYPE","N");
String execute = null;
List<Map<String,String>> mapList = new ArrayList<>();
try {
......@@ -114,7 +115,6 @@ public class SapPaymentApplicationImpl implements SapPaymentApplication {
if ("S".equals(sapResult.getTYPE())) {
ObjectMapper objectMapper = SAPUtils.objectMapper();
mapList = objectMapper.readValue(com.huigou.util.JSONUtil.toString(map.get("RDATA")), new TypeReference<List<Map<String, String>>>() {});
}
// else {
// throw new RuntimeException("查询公司内部订单失败:" + sapResult.getMESSAGE());
......
......@@ -14,6 +14,8 @@ public class SapDialogOrderQuery {
private String vbeln; //销售订单号
private String aufnr; //生产订单号
private String werks; //工厂
private String reasonType; //异常原因类型
......
......@@ -11,10 +11,17 @@ public class OrderQueryVo {
private List<SignVo> KUNNR;
@JSONField(name="WERKS")
private List<SignVo> WERKS;
@JSONField(name="VBELN")
private List<SignVo> VBELN;
@JSONField(name="BSTNK")
private List<SignVo> BSTNK;
@JSONField(name="AUART")
private List<SignVo> AUART;
@JSONField(name="AUFNR")
private List<SignVo> AUFNR;
}
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