Commit 0ab66938 authored by 刘学辉's avatar 刘学辉

品质异常单调整

parent 962cd961
......@@ -9,8 +9,9 @@
</head>
<body>
<div class="container-fluid">
<x:billTitle title="品质异常报告" needStatus="true" needPerson="true"/>
<x:billTitle title="品质异常报告(生产)" needStatus="true" needPerson="true"/>
<form class="hg-form" method="post" action="" id="submitForm">
<x:hidden name="type"/>
<x:hidden name="id"/>
<x:hidden name="version"/>
<x:hidden name="attbizId"/>
......
var itemGridManager,dutyPersonGridManager = null
$(function () {
initialize();
initItemGrid();
initDutyPersonGridGrid();
});
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: "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 toolbarOptions = UICtrl.getDefaultToolbarOptions({
addHandler: function(){
UICtrl.addGridRow(itemGridManager);
},
deleteHandler: function (){
var _grid = UICtrl.getGridManager('#maingrid');
DataUtil.delSelectedRows({
action: 'exceptionReport/deleteExceptionReport.ajax',
param: {},
gridManager: _grid,
idFieldName: 'id',
onSuccess: function () {
countSum();
reloadGrid();
}
});
},
});
itemGridManager = UICtrl.grid('#maingrid', {
columns: getGridColumns(),
dataAction: 'server',
url: web_app.name + '/exceptionReport/slicedExceptionReportItemList.ajax',
parms: {exceptionReportId: getId()},
height: '300px',
heightDiff: -4,
sortName: 'id',
sortOrder: 'asc',
checkbox: true,
usePager: true,
rownumbers: true,
enabledEdit: true,
fixedCellHeight: true,
selectRowButtonOnly: true,
//autoApplyNextEditor:false,
toolbar: toolbarOptions,
onAfterEdit: function (item) {
if (item.column.name=='rmbMoney' ){
countSum();
}
},
onAfterShowData(){
countSum();
}
})
UICtrl.setSearchAreaToggle(itemGridManager);
}
function getGridColumns() {
var columns = [];
columns = [
{
display: "采购/外发单号", name: "produceNo", width: "160", align: "left", type: "string",
editor: {type: 'text',required:true}
},
{display: "产品类别", name: "productType", width: "160", align: "left", type: "string"
,editor: {type: 'text',required:true}
},
{display: "产品编码", name: "productCode", width: "160", align: "left", type: "string"
,editor: {type: 'text',required:true}
},
{display: "产品名称", name: "productName", width: "200", align: "left", type: "string"
,editor: {type: 'text',required:true}
},
{display: "数量", name: "number", width: "100", align: "left", type: "string"
,editor: {type: "text",mask: '9999999.999'}
},
{display: "单位", name: "unitName", width: "80", align: "left", type: "string"
// ,editor: {type: "text"}
,editor: {
required: true, 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: "rmbMoney", width: "100", align: "left", type: "string",
editor: {type: "text",mask: '9999999.999'}
},
{display: "出货日期", name: "sendDate", width: "140", align: "left", type: "date"
,editor: {type: "date"}
}
]
return columns;
}
function initDutyPersonGridGrid() {
var toolbarOptions = UICtrl.getDefaultToolbarOptions({
addHandler: function(){
UICtrl.addGridRow(dutyPersonGridManager);
},
deleteHandler: function (){
var _grid = UICtrl.getGridManager('#dutyPersonGrid');
DataUtil.delSelectedRows({
action: 'exceptionReport/deleteExceptionReportDutyPerson.ajax',
param: {},
gridManager: _grid,
idFieldName: 'id',
onSuccess: function () {
reloadGrid();
}
});
},
});
dutyPersonGridManager = UICtrl.grid('#dutyPersonGrid', {
columns: getDutyPersonGridColumns(),
dataAction: 'server',
url: web_app.name + '/exceptionReport/slicedExceptionReportDutyPersonList.ajax',
parms:{exceptionReportId:getId()},
height: '300px',
heightDiff: -4,
sortName: 'id',
sortOrder: 'asc',
checkbox: true,
usePager: true,
rownumbers: true,
enabledEdit: true,
fixedCellHeight: true,
selectRowButtonOnly: true,
//autoApplyNextEditor:false,
toolbar: toolbarOptions,
}
);
UICtrl.setSearchAreaToggle(dutyPersonGridManager);
}
function countSum(){
//var row=itemGridManager.rows;
var zrow=itemGridManager.rows;
var money=0;
for (var r=0;r<zrow.length;r++){
money = MathUtil.add(zrow[r].rmbMoney,money);
}
money = MathUtil.add($('#payMoney').val(),money);
// for (var x=0;x<row.length;x++){
// money = MathUtil.add(row[x].dutyMoney,money);
// }
$('#loseMoney').val(money);
}
function getDutyPersonGridColumns() {
var columns = [];
columns = [
{display: "工号/供应商编码/客户编码", name: "personNo", width: "180", align: "left", type: "string",
editor: { type: 'text'}
},
{display: "姓名/供应商/客户", name: "personName", width: "180", align: "left", type: "string",
editor: {type: 'text'}
},
{display: "部门/供应名称/客户名称", name: "deptName", width: "200", align: "left", type: "string",
editor: {type: 'text'}
},
{display: "定责比例(%)", name: "dutyRate", width: "100", align: "left", type: "string",
editor: {type: "text",mask: '999.99'}
},
{display: "个人责任比例(%)", name: "personDutyRate", width: "100", align: "left", type: "string",
editor: {type: "text",mask: '999.99'}
},
{display: "责任金额", name: "dutyMoney", width: "100", align: "left", type: "string",
editor: {type: "text",mask: '9999999.999'}
},
{display: "备注", name: "remark", width: "300", align: "left", type: "string",
editor: {type: "text"}
},
]
return columns;
}
//获取数据保存的参数
function getExtendedData(processAction) {
//回退、打回、转交时,不需要验证必填项是否已经填写;
if (processAction == ProcessAction.BACK
|| processAction == ProcessAction.REPLENISH
|| processAction == ProcessAction.TRANSMIT) {
//不验证
$('#submitForm').attr('check', false);
}
var extendedData = {};
var _grid = UICtrl.getGridManager('#maingrid');
if (_grid) {
var datas = DataUtil.getGridData({
gridManager: _grid,
isAllData: true
});
if (!datas) {
return false;
}
extendedData.exceptionReportItems = Public.encodeJSONURI(datas);
}
var _dutyPersonGrid = UICtrl.getGridManager('#dutyPersonGrid');
if (_dutyPersonGrid) {
var datas = DataUtil.getGridData({
gridManager: _dutyPersonGrid,
isAllData: true
});
if (!datas) {
return false;
}
extendedData.personList = Public.encodeJSONURI(datas);
}
return extendedData;
}
function getId() {
return $('#id').val();
}
function setId(value) {
$("#id").val(value);
var _grid=UICtrl.getGridManager('#maingrid');
_grid.options.parms.exceptionReportId = value;
var _dutyPersonGrid=UICtrl.getGridManager('#dutyPersonGrid');
_dutyPersonGrid.options.parms.exceptionReportId = value;
}
function reloadGrid() {
itemGridManager.loadData();
dutyPersonGridManager.loadData();
countSum();
}
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/exceptionReportDetailPurchase.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="type"/>
<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="statusId"/>
<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="werksName" required="false" label="工厂" labelCol="1" wrapper="select" fieldCol="2"/>
<x:hidden name="werks"/>
<x:inputC name="exceptionTitle" label="异常标题" labelCol="1" fieldCol="2" required="true"/>
</div>
<div class="hg-form-row">
<x:selectC name="exceptionReasonType" label="异常原因分类" labelCol="1" fieldCol="2" required="true" dictionary="exceptionReasonType"/>
<x:inputC name="appealNo" label="客诉编号" labelCol="1" fieldCol="2" required="false"/>
<x:inputC name="customerName" label="客户名称" labelCol="1" fieldCol="2" required="true"/>
<x:inputC name="customerOrderNo" label="客户单号" labelCol="1" fieldCol="2" required="true"/>
<x:selectC name="urgency" label="紧急程度" labelCol="1" fieldCol="2" required="true" dictionary="urgency"/>
<x:inputC name="problemTimes" label="问题发生次数" labelCol="1" fieldCol="2" required="false"/>
<x:inputC name="brandName" label="品牌名称" labelCol="1" fieldCol="2" required="true"/>
<x:inputC name="exceptionDate" label="异常日期" labelCol="1" fieldCol="2" required="false" wrapper="date"/>
<x:checkbox name="needImproveReport" id="needImproveReport" cssStyle="margin-left:10px;" label="客户是否需要改善报告"/>
<x:checkbox name="needGuarantee" id="needGuarantee" cssStyle="margin-left:10px;" label="客户是否需要保证书"/>
</div>
</div>
<x:title title="单号信息" name="group" hideTable="#info" />
<div id="maingrid"></div>
<div class="hg-form-cols">
<div class="hg-form-row">
<x:textareaC name="exceptionState" required="false" label="异常陈诉" maxLength="120" labelCol="1" fieldCol="11" rows="3"/>
</div>
<div style="padding-top: 15px;">
<x:fileList bizCode="exceptionStateInfo" bizId="attbizId" id="exceptionStateInfoList" title="相关资料" />
</div>
<div class="hg-form-row">
<x:textareaC name="exceptionReason" required="false" label="异常原因" maxLength="120" labelCol="1" fieldCol="11" rows="3"/>
</div>
<div class="hg-form-row">
<x:textareaC name="dealMethod" required="false" label="改善措施" maxLength="120" labelCol="1" fieldCol="11" rows="3"/>
</div>
<div class="hg-form-row">
<x:inputC name="dutyDeptName" label="责任部门" labelCol="1" fieldCol="2" required="false"/>
<x:hidden name="dutyDept"/>
<x:inputC name="checkOperatorName" label="责任人" labelCol="1" fieldCol="2" required="false"/>
<x:hidden name="checkOperator"/>
</div>
<div class="hg-form-row">
<x:textareaC name="dealResult" required="false" label="处理结果" maxLength="120" labelCol="1" fieldCol="11" rows="3"/>
</div>
<div class="hg-form-row">
<x:inputC name="manager" label="单位主管" labelCol="1" fieldCol="2" required="false"/>
<x:inputC name="deputyManager" label="副理" labelCol="1" fieldCol="2" required="false"/>
<x:inputC name="generalManager" label="经理" labelCol="1" fieldCol="2" required="false"/>
</div>
<div class="hg-form-row">
<x:textareaC name="remark" required="false" label="备注" maxLength="120" labelCol="1" fieldCol="11" rows="3"/>
</div>
</div>
<x:title title="责任人信息" name="group" hideTable="#info" />
<div id="dutyPersonGrid"></div>
<div class="hg-form-row">
<x:inputC name="payMoney" label="赔付金额" labelCol="1" fieldCol="2" required="false" readonly="false" />
<x:inputC name="loseMoney" label="损失金额" labelCol="1" fieldCol="2" required="false" readonly="true" />
</div>
</form>
</div>
</body>
\ No newline at end of file
......@@ -12,7 +12,24 @@ function initUI() {
function initGrid() {
var toolbarOptions = UICtrl.getDefaultToolbarOptions({
addHandler: addHandler,
addProduceHandler: {id: 'produceException', text: '添加生产异常单', img: 'fa-music', className: 'btn-gray',
click: function () {
UICtrl.addTabItem({
tabid: 'addExceptionReportProduce',
text: '新增生产异常报告',
url: web_app.name + '/exceptionReport/addExceptionReportDetail.job?type=produce'
});
}
},
addPurchaseHandler: {id: 'purchaseException', text: '添加采购异常单', img: 'fa-building-o', className: 'btn-gray',
click: function () {
UICtrl.addTabItem({
tabid: 'addExceptionReportPurchase',
text: '新增采购异常报告',
url: web_app.name + '/exceptionReport/addExceptionReportDetail.job?type=purchase'
});
}
},
});
gridManager = UICtrl.grid('#maingrid', {
columns: [
......@@ -21,7 +38,7 @@ function initGrid() {
, {display: "报告编号", name: "billCode", width: 150, minWidth: 60, type: "string", align: "center"}
, {display: "异常类型", name: "exceptionTypeTextView", width: 100, minWidth: 60, type: "string", align: "center"}
, {display: "呈报日期", name: "reportDate", width: 140, minWidth: 60, type: "date", align: "center"}
, {display: "客户编号", name: "customerName", width: 200, minWidth: 60, type: "date", align: "center"}
// , {display: "客户编号", name: "customerName", width: 200, minWidth: 60, type: "date", align: "center"}
, {display: "客户名称", name: "customerName", width: 200, minWidth: 60, type: "date", align: "center"}
, {display: "客户单号", name: "customerOrderNo", width: 180, minWidth: 60, type: "date", align: "center"}
// , {display: "异常陈诉", name: "exceptionState", width: 200, minWidth: 60, type: "date", align: "center"}
......@@ -88,13 +105,6 @@ function viewHandler(id) {
});
}
function addHandler() {
UICtrl.addTabItem({
tabid: 'addExceptionReport',
text: '新增品质异常报告',
url: web_app.name + '/exceptionReport/addExceptionReportDetail.job'
});
}
function deleteHandler() {
var rows = DataUtil.getObjectBagData("maingrid");
......
......@@ -68,6 +68,9 @@ public class ExceptionReportController extends CommonController {
ExceptionReport exceptionReport = new ExceptionReport();
exceptionReport.setStatusId(BizBillStatus.APPLYING.getId());
exceptionReport.setAttbizId(CommonUtil.createGUID()); // 自动生成附件id
SDO sdo = this.getSDO();
String type=sdo.getString("type");
this.putAttribute("type",type);
List<Map<String,Object>> list= exceptionReportApplication.getCustomerOrders("");
Map map=new HashMap();
......@@ -81,7 +84,11 @@ public class ExceptionReportController extends CommonController {
*/
Operator operator = getOperator();
exceptionReport.setDefaultValues(new OrgUnit(operator.getFullId(), operator.getFullName()));
return forward("exceptionReportDetail", exceptionReport);
if ("purchase".equals(type)) {
return forward("exceptionReportDetailPurchase", exceptionReport);
} else {
return forward("exceptionReportDetail", exceptionReport);
}
}
/**
......@@ -92,7 +99,11 @@ public class ExceptionReportController extends CommonController {
SDO sdo = this.getSDO();
String id = sdo.getBizId();
ExceptionReport exceptionReport = exceptionReportApplication.findById(id);
return forward("exceptionReportDetail", exceptionReport);
if ("purchase".equals(exceptionReport.getType())){
return forward("exceptionReportDetailPurchase", exceptionReport);
} else {
return forward("exceptionReportDetail", exceptionReport);
}
}
/**
......
......@@ -136,8 +136,39 @@ public class ExceptionReport extends FlowBillAbstractEntity {
@Column(name = "lose_money")
private BigDecimal loseMoney;
@Column(name = "type")
private String type;
@Override
@Column(name = "exception_title")
private String exceptionTitle;
@Column(name = "exception_reason_type")
private String exceptionReasonType;
@Column(name = "appeal_no")
private String appealNo;
@Column(name = "urgency")
private String urgency;
@Column(name = "exception_date")
private Date exceptionDate;
@Column(name = "problem_times")
private Integer problemTimes;
@Column(name = "brand_name")
private String brandName;
@Column(name = "need_improve_report")
private String needImproveReport;
@Column(name = "need_guarantee")
private String needGuarantee;
@Override
protected String getCodeRuleId() {
return "exceptionReport";
}
......
......@@ -31,6 +31,10 @@ public class ExceptionReportItem extends AbstractEntity {
@Column(name = "produce_no")
private String produceNo;
@Column(name = "product_type")
private String productType;
/**
* 产品/原材料编码
*/
......
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