<%@page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@page import="org.apache.commons.lang.StringUtils"%>
<%@page import="com.oletech.triangle.utils.TriangleUIHelper"%>
<%@page import="com.oletech.triangle.utils.TriangleDefinition"%>
<%@page import="com.oletech.triangle.component.*"%>
<%@page import="com.oletech.triangle.pojo.*"%>
<%@page import="com.oletech.triangle.utils.*"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
DataBean paramDataBean = (DataBean) request.getAttribute("paramDataBean");
TableBean inspectMaterialRelativeTableBean = paramDataBean.getTableBean("inspectMaterialRelativeTableBean");//根据暂收,暂收明细 显示到材料检验列表
FormBean queryParamFormBean = paramDataBean.getFormBean("queryParamFormBean");
String purchNo = queryParamFormBean.getCellBeanValue("purchNo");
String receiptNo = queryParamFormBean.getCellBeanValue("receiptNo");
String vendName = queryParamFormBean.getCellBeanValue("vendName");
String purchTableId = queryParamFormBean.getCellBeanValue("purchTableId");
String receiveTableId = queryParamFormBean.getCellBeanValue("receiveTableId");
//多国语
String search_purchaseNo = TriangleUIHelper.getMessageResources(request,"oletech.triangle.multilanguage.title.purchaseNo");
String search_vendors = TriangleUIHelper.getMessageResources(request, "oletech.triangle.multilanguage.title.vendTable");
String search_vendName = TriangleUIHelper.getMessageResources(request,"oletech.triangle.multilanguage.title.vendors");
String search_deliveryDate = TriangleUIHelper.getMessageResources(request,"oletech.triangle.multilanguage.title.deliveryDate");
String search_receiveNo = TriangleUIHelper.getMessageResources(request,"oletech.triangle.multilanguage.title.receiveNo");
String title_receiveNo = TriangleUIHelper.getMessageResources(request,"oletech.triangle.multilanguage.title.receiveNo");
String title_vendorsName = TriangleUIHelper.getMessageResources(request,"oletech.triangle.multilanguage.title.vendorsName");
String title_materialNo = TriangleUIHelper.getMessageResources(request,"oletech.triangle.multilanguage.title.materialNo");
String title_materialName = TriangleUIHelper.getMessageResources(request,"oletech.triangle.multilanguage.title.materialName");
String title_unit = TriangleUIHelper.getMessageResources(request,"oletech.triangle.multilanguage.title.unit");
String title_trailerMessage = TriangleUIHelper.getMessageResources(request,"oletech.triangle.multilanguage.title.trailerMessage");//预告信息
String title_trailerQty = TriangleUIHelper.getMessageResources(request,"oletech.triangle.multilanguage.title.trailerQty");//预告数量
String title_iqcDate = TriangleUIHelper.getMessageResources(request,"oletech.triangle.multilanguage.title.iqcDate");//检验日期
String title_receiveQuantity = TriangleUIHelper.getMessageResources(request,"oletech.triangle.multilanguage.title.receiveQuantity");//收料数量
String title_checkQualifiedQuantity = TriangleUIHelper.getMessageResources(request,"oletech.triangle.multilanguage.title.checkQualifiedQuantity");//检验合格量
String title_noOkQty = TriangleUIHelper.getMessageResources(request,"oletech.triangle.multilanguage.title.noOkQty");//不合格数量
String title_freePayQty = TriangleUIHelper.getMessageResources(request,"oletech.triangle.multilanguage.title.freePayQty");//折补数量
String title_unqualifiedCause = TriangleUIHelper.getMessageResources(request,"oletech.triangle.multilanguage.title.unqualifiedCause");//不合格原因
String title_iqcWay = TriangleUIHelper.getMessageResources(request, "oletech.triangle.multilanguage.title.checkMehtod");//检验方式
String title_index = TriangleUIHelper.getMessageResources(request,"oletech.triangle.multilanguage.title.index");
String button_search = TriangleUIHelper.getMessageResources(request,"oletech.triangle.multilanguage.button.search");
String title_remark = TriangleUIHelper.getMessageResources(request,"oletech.triangle.multilanguage.title.note"); //by Walter 马隆记 2016/11/03
int height = 25;
int fixRowNum = inspectMaterialRelativeTableBean.size();//固定20行显示(包括表头),超过20行滚动条
if(fixRowNum > 20){
fixRowNum = 20;
}
int fixHeight = (10)*height;
%>
<script type="text/javascript">
//固定表头,列
function changeDivSize() {
var screenWidth = parseInt(document.body.offsetWidth);
var A_xFirstDivWidth = parseInt(document.getElementById('A_xFirstDiv').style.width);
var A_xFirstDivHeight = parseInt(document.getElementById('A_xFirstDiv').style.height);
var curAvailableDivWidth = (screenWidth*92/100)-A_xFirstDivWidth;
var curAvailableDivHeight = parseFloat("<%=fixHeight%>");
document.getElementById('scrollTitle').style.width = curAvailableDivWidth;
document.getElementById('A_xDiv').style.width = curAvailableDivWidth;
document.getElementById('A_xyDiv').style.width = curAvailableDivWidth+16;
document.getElementById('A_xyDiv').style.height = curAvailableDivHeight +18;
document.getElementById('A_xyFirstDiv').style.height = curAvailableDivHeight+1;
}
//文档加载,控制table
$(function() {
changeDivSize();
});
//生成检验单
function saveInspectOrderFunc(){
if(validateChooseRecord()) {
if(validateSearchConditionIsNotEmpty()) {
if(validateInspectQty()) {
$("#dynbean").attr("action","<%= path %>/materialsWarehouse/newInspectMaterial.do");
$("#dynbean").submit();
$("#saveButton").attr("disabled",true);
}
}
} else {
var key = "oletech.triangle.multilanguage.alert.notChooseRecord";
showMessageFunc(key);
}
}
//必须勾选保存
function validateChooseRecord() {
var flag = true
var chooseRecordObj = $("#inspectMaterialTrailerBodyLeft input[type='checkbox']:checked");
if(chooseRecordObj.length == 0) {
flag = false;
var key = "oletech.triangle.multilanguage.alert.notChooseRecord";
showMessageFunc(key);
}
return flag;
}
//若校验合格数量 + 不合格数量 + 折补数量 = 暂收数量,进行提交操作
function validateInspectQty() {
var flag = true;
$("#inspectMaterialTrailerBodyLeft tr td input[type='checkbox'][id^='primaryId_']:checked").each(function() {
var startIndex = $(this).attr("id").indexOf("_");
var index = $(this).attr("id").substring(startIndex + 1);
//暂收数量
var inventQty = $("#inventQty_"+index).text();
//不合格数量
var noOkQty = $("#noOkQty_"+index).val();
//合格数量
var okQty = $("#okQty_"+index).val();
//折补数量
var freePayQty = $("#freePayQty_"+index).val();
//调整数量和
var adjustSumQty = noOkQty * 1 + okQty * 1 + freePayQty * 1;
if(inventQty * 1 > adjustSumQty.toFixed(4) * 1) {
flag = false;
var key = "oletech.triangle.multilanguage.alert.receiveQtyInspectNotFinished";
showMessageFunc(key);
return flag;
}
});
return flag;
}
//必填项不允许为空
function validateSearchConditionIsNotEmpty() {
var flag = false
var purchTableId = $("#hidden_purchTableId").val();
var receiveTableId = $("#hidden_receiveTableId").val();
if(purchTableId != "" | receiveTableId != "") {
flag = true;
} else {
flag = false;
var key = "oletech.triangle.multilanguage.alert.searchConditionNotEmpty";
showMessageFunc(key);
}
return flag;
}
//采购单回调执行查询功能
function openpageFunction_callback_purchTableId() {
searchInspectMaterialTrailerFunc();
}
//材料暂收单回调执行查询功能
function openpageFunction_callback_receiveTableId() {
searchInspectMaterialTrailerFunc();
}
//查询产生检验单预告信息
function searchInspectMaterialTrailerFunc() {
var purchaseId = $("#purchNo").val();
var receiveId = $("#receiptNo").val();
if(purchaseId != "" | receiveId != "") {
$("#dynbean").attr("action","<%=path%>/materialsWarehouse/inspectMaterialList.do");
$("#dynbean").submit();
} else {
var key = "oletech.triangle.multilanguage.alert.searchConditionNotEmpty";
showMessageFunc(key);
}
}
//选中所有
function selectAllOrderFunc() {
var selectedAll = $("#all").attr("checked");
if(selectedAll == "checked") {
$("#inspectMaterialTrailerBodyLeft tr td input[type='checkbox']").each(function() {
$(this).attr("checked",true);
});
} else {
$("#inspectMaterialTrailerBodyLeft tr td input[type='checkbox']").each(function() {
$(this).removeProp("checked");
});
}
}
//文档加载事务
$(function() {
//不合格数量栏位绑定change Event 暂收数量 = 检验合格数量 + 不合格数量(改变) + 折补数量
$("#inspectMaterialTrailerBodyRight tr td").delegate("input[type='text'][id^='noOkQty_']","change",function() {
var startIndex = $(this).attr("id").indexOf("_");
var index = $(this).attr("id").substring(startIndex + 1);
//暂收数量
var inventQty = $("#inventQty_"+index).text();
//不合格数量
var noOkQty = $("#noOkQty_"+index).val();
//合格数量
var okQty = $("#okQty_"+index).val();
//折补数量
var freePayQty = $("#freePayQty_"+index).val();
//若折补数量 + 不合格数量 < 暂收数量成立, 则合格数量 = 暂收数量 - 折补数量 - 不合格数量;
var adjustQty = noOkQty * 1 + freePayQty * 1;
if(inventQty * 1 < adjustQty * 1) {
$(this).val("0.0000");
var key = "oletech.triangle.multilanguage.alert.notOkQtyNotGreaterReceiveQty";
showMessageFunc(key);
noOkQty = inventQty * 1 - (okQty * 1 + freePayQty * 1);
$("#noOkQty_"+index).val(noOkQty.toFixed(4));
} else {
//合格数量 = 暂收数量 - 不合格数量
if(adjustQty * 1 >= 0) {
var okQty = inventQty * 1 - adjustQty * 1;
$("#okQty_"+index).val(okQty.toFixed(4));
$("#okQtySpan_"+index).text(okQty.toFixed(4));
}
}
//不合格数量不允许为空
if(noOkQty == "") {
$(this).val("0.0000");
var key = "oletech.triangle.multilanguage.alert.notEmptyNoOkQty";
showMessageFunc(key);
}
});
//当折补数量改变时:控制折补数量 + 不合格数量 不能大于暂收数量
$("#inspectMaterialTrailerBodyRight tr td").delegate("input[type='text'][id^='freePayQty_']","change",function() {
var startIndex = $(this).attr("id").indexOf("_");
var index = $(this).attr("id").substring(startIndex + 1);
//暂收数量
var inventQty = $("#inventQty_"+index).text();
//不合格数量
var noOkQty = $("#noOkQty_"+index).val();
//合格数量
var okQty = $("#okQty_"+index).val();
//折补数量
var freePayQty = $("#freePayQty_"+index).val();
//若折补数量 + 不合格数量 < 暂收数量成立, 则合格数量 = 暂收数量 - 折补数量 - 不合格数量;
var adjustQty = noOkQty * 1 + freePayQty * 1;
if(inventQty * 1 < adjustQty * 1) {
$(this).val("0.0000");
var key = "oletech.triangle.multilanguage.alert.freePayQtyAddNoOkQtyNotGreaterReceiveQty";
showMessageFunc(key);
freePayQty = inventQty * 1 - (okQty * 1 + noOkQty * 1);
$("#freePayQty_"+index).val(freePayQty.toFixed(4));
} else {
//合格数量 = 暂收数量 - 不合格数量
if(adjustQty * 1 >= 0) {
var okQty = inventQty * 1 - adjustQty * 1;
$("#okQty_"+index).val(okQty.toFixed(4));
$("#okQtySpan_"+index).text(okQty.toFixed(4));
}
}
//折补数量不允许为空
if(freePayQty == "") {
$(this).val("0.0000");
var key = "oletech.triangle.multilanguage.alert.notEmptyFreePayQty";
showMessageFunc(key);
}
});
});
//显示提示信息
function showMessageFunc(obj) {
var message = getMessageResources(obj);
alertE(message);
}
/**
*判断是否为数字
*/
function checkNumbers(obj){
var value = $(obj).val();
//判断是否数字
if(isNaN(value)){
var key = "oletech.triangle.multilanguage.alert.pleaseInputNumber";
var message = getMessageResources(key);
alertW(message);
$(obj).val('');
}
}
//打开材料暂收未检验列表页
function openNoIqcReceiveMaterialList(){
url = contentPath + '/selectpage/noIqcReceiveMaterialList.do';
window.open(url);
}
</script>
<style type="text/css">
.mateiralName {
width:220px; white-space:nowrap;text-overflow:ellipsis;overflow:hidden;
}
.vendorsName {
width: 190px;
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
}
#inspectMaterialTrailerBodyLeft tr th,td {padding:0px 0px;margin:0px;}
#inspectMaterialTrailerBodyRight tr th,td {padding:0px 0px;margin:0px;}
#inspectMaterialTrailerTitleLeft tr th,td {padding:0px 0px;margin:0px;}
#inspectMaterialTrailerTitleRight tr th,td {padding:0px 0px;margin:0px;}
</style>
<table width="96%" cellpadding="0" cellspacing="0" style="overflow: hidden">
<tbody>
<tr>
<td>
<table>
<tr>
<th class="th"><%= search_purchaseNo %>:</th>
<td>
<input type="hidden" id="hidden_purchTableId" name="purchTableId" value="<%= purchTableId %>"/>
<%-- <span id="span_purchTableId"><%= purchTableNo %></span>
<img src="<%=path%>/images/query.gif" onclick="openPageForTriangleFun('gts.erp.view.page.purchNo', 'purchTableId', this)"/>
<img src="<%=path%>/images/delete.jpg" onclick="deleteOpenPageFun('purchTableId', this);"/> --%>
<input type="text" id="purchNo" name="purchNo" value="<%=purchNo%>"/>
</td>
<td style="width:100px;"> </td>
<th class="th"><%= search_receiveNo %>:</th>
<td>
<input type="hidden" id="hidden_receiveTableId" name="receiveTableId" value="<%= receiveTableId %>"/>
<%-- <span id="span_receiveTableId"><%= receiveTableNo %></span>
<img src="<%=path%>/images/query.gif" onclick="openPageForTriangleFun('gts.erp.view.page.receiptShowNo', 'receiveTableId', this)"/>
<img src="<%=path%>/images/delete.jpg" onclick="deleteOpenPageFun('receiveTableId', this);"/> --%>
<input type="text" id="receiptNo" name="receiptNo" value="<%=receiptNo%>"/>
</td>
<td style="width:100px;"> </td>
<th><%= search_vendName %>:</th>
<td>
<span id="span_vendId"><%= vendName %></span>
</td>
<td style="width:100px"> </td>
<td class="button">
<input value="<%= button_search %>" class="adidasToolbarButton" onclick="searchInspectMaterialTrailerFunc()" type="button"/>
</td>
</tr>
</table>
</td>
</tr>
<tr valign="top">
<td align="left" width="100%">
<table cellpadding="0" cellspacing="0" width="100%" align="left">
<tr>
<td><table class="table" style="margin:10px auto 2px 0;"><tr><th><%= title_trailerMessage %></th></tr></table></td>
</tr>
<tr>
<td align="left">
<table class="table" width="100%" cellpadding="0" cellspacing="0" align="left">
<thead>
<tr>
<!-- 固定行,列 分成四个区域,固定头信息,滚动头信息,固定数据信息,滚头数据信息 -->
<!-- fixTitle 固定的title信息 -->
<td align="left" valign="bottom">
<div name="A_xFirstDiv" id="A_xFirstDiv" style="width:573px;height:25px;overflow-x:hidden;overflow-y:hidden;">
<table style="border-collapse: collapse;" cellpadding="0" cellspacing="0" id="inspectMaterialTrailerTitleLeft" width="573px">
<thead>
<tr>
<th style="width:36px;"><input id="all" name="selectAll" type="checkbox" onclick="selectAllOrderFunc();"/></th>
<th style="width:35px;"><%= title_index %></th>
<th style="width:150px;"><%= title_receiveNo %></th>
<th style="width:100px;"><%= title_materialNo %></th>
<th style="width:250px;"><%= title_materialName %></th>
</tr>
</thead>
</table>
</div>
</td>
<!-- rowTitle 滚动的title信息-->
<td align="left" valign="bottom">
<div name="scrollTitle" id="scrollTitle" style="width:-1px;overflow-x:hidden;overflow-y:hidden;height:25px;" onscroll="">
<div name="A_xDiv" id="A_xDiv" style="width:-1px;overflow-x:hidden;overflow-y:hidden;" onscroll="">
<table style="border-collapse: collapse;" cellpadding="0" cellspacing="0" id="inspectMaterialTrailerTitleRight" width="1300px">
<thead>
<tr>
<th style="width:100px;"><%= title_unit %></th>
<th style="width:100px;"><%= title_trailerQty %></th>
<th style="width:100px;"><%= title_iqcDate %></th>
<th style="width:100px;"><%= title_receiveQuantity %></th>
<th style="width:100px;"><%= title_checkQualifiedQuantity %></th>
<th style="width:100px;"><%= title_noOkQty %></th>
<th style="width:100px;"><%= title_freePayQty %></th>
<th style="width:100px;"><%= title_unqualifiedCause %></th>
<th style="width:100px;"><%= title_iqcWay %></th>
<th style="width:100px;"><%= title_remark %></th>
</tr>
</thead>
</table>
</div>
</div>
</td>
</tr>
</thead>
<tbody>
<tr>
<!-- 因为栏位是固定的,所有固定数据,滚动数据只需要到相应的区域读取即可 -->
<!-- column -->
<td align="left" valign="top">
<div name="A_xyFirstDiv" id="A_xyFirstDiv" style="width:-1;overflow-x:hidden;overflow-y:hidden;" onscroll="">
<table style="border-collapse: collapse;" cellpadding="0" cellspacing="0" width="575px" id="inspectMaterialTrailerBodyLeft">
<tbody>
<%
for (int i = 0; i < 25; i++) {
RowBean rowBean = inspectMaterialRelativeTableBean.get(0);
String materialName = rowBean.getCellBeanValue("materialName");
String materialNo = rowBean.getCellBeanValue("materialNo");
String materialId = rowBean.getCellBeanValue("materialId");
String receiptListId = rowBean.getCellBeanValue("receiptListId");//暂收单主键
String receiptListNo = rowBean.getCellBeanValue("receiptListNo");//暂收单编号
String receiptsListLineId = rowBean.getCellBeanValue("receiptsListLineId");
%>
<tr>
<td style="width:36px; text-align:center;"><input id="primaryId_<%= i %>" name="primaryId_<%= i %>" value="<%= receiptsListLineId %>" type="checkbox" /></td>
<td style="width:35px; text-align:center;"><span id="index_<%= i %>"><%= (i+1) %></span></td>
<td style="width:150px; text-align:center;"><span id="receiptListNo_<%= i %>" ><%= receiptListNo %></span> </td>
<td style="width:100px; text-align:center;">
<span id="materialNo_<%= i %>"><%= materialNo %></span>
<input type="hidden" id="materialId_<%= i%>" name="materialId_<%= i%>" value="<%= materialId%>"/>
</td>
<td style="width:250px;"><abbr style="cursor:pointer;" title="<%= materialName %>"><div class="mateiralName"><span id="materialName_<%= i %>"><%= materialName %></span></div></abbr></td>
<%
}
%>
</tr>
</tbody>
</table>
</div>
</td>
<!-- data -->
<td align="left" valign="top">
<div name="A_xyDiv" id="A_xyDiv" style="height:-8;width:-8;overflow-x:scroll;overflow-y:scroll;" onscroll="document.getElementById('A_xDiv').scrollLeft=this.scrollLeft;document.getElementById('A_xyDiv').scrollTop=this.scrollTop;document.getElementById('A_xyFirstDiv').scrollTop=this.scrollTop">
<table style="border-collapse: collapse;" cellpadding="0" cellspacing="0" width="1300px" id="inspectMaterialTrailerBodyRight">
<tbody>
<%
for (int i = 0; i < 25; i++) {
RowBean rowBean = inspectMaterialRelativeTableBean.get(0);
String materialId = rowBean.getCellBeanValue("materialId");
String unitId = rowBean.getCellBeanValue("unitId");
String unitName = rowBean.getCellBeanValue("unitName");
String inspectDate = rowBean.getCellBeanValue("inspectDate");
String purchQty = rowBean.getCellBeanValue("purchQty");
String inventQty = rowBean.getCellBeanValue("inventQty");
String noOkQty = "0.0000";
String freePayQty = "0.0000";
String iqcWayId = rowBean.getCellBeanValue("iqcWayId");
String iqcClassName = rowBean.getCellBeanValue("iqcClassName");
String remark = rowBean.getCellBeanValue("remark");
TableBean iqcTypeTableBean = paramDataBean.getTableBean(materialId);
%>
<tr>
<td style="width:100px; text-align:left;">
<span id="unitName_<%= i %>"><%= unitName %></span>
<input type="hidden" id="unitId_<%= i%>" name="unitId_<%= i%>" value="<%= unitId%>"/>
</td>
<td style="width:100px; text-align:right;"><span id="purchQty_<%= i %>"><%= purchQty %></span></td>
<td style="width:100px; text-align:center;"><span id="iqcDate_<%= i %>" name="iqcDate_<%= i %>" ><%= inspectDate %></span></td>
<td style="width:100px; text-align:right;"><span id="inventQty_<%= i %>" ><%= inventQty %></span></td>
<td style="width:100px; text-align:right;">
<span id="okQtySpan_<%= i %>"><%= inventQty %></span>
<input type="hidden" id="okQty_<%= i %>" name="okQty_<%= i %>" value="<%= inventQty %>"/>
</td>
<td style="width:100px;"><input type="text" id="noOkQty_<%= i %>" name="noOkQty_<%= i %>" value="<%= noOkQty %>" onblur="checkNumbers(this)"/></td>
<td style="width:100px;"><input type="text" id="freePayQty_<%= i %>" name="freePayQty_<%= i %>" value="<%= freePayQty %>" onblur="checkNumbers(this)"/></td>
<td style="width:100px;">
<select id="iqcTypeId_<%= i %>" name="iqcTypeId_<%= i %>">
<option value=''>N/A</option>
<%
for (int j = 0; j < iqcTypeTableBean.size(); j++) {
RowBean iqcTypeRowBean = iqcTypeTableBean.get(j);
String primaryId = iqcTypeRowBean.getCellBeanValue("CN_ID");
String name = iqcTypeRowBean.getCellBeanValue("CN_IQC_TYPE_REASON");
%>
<option value="<%= primaryId %>"><%= name %></option>
<%
}
%>
</select>
</td>
<td style="width:100px;text-align:center;">
<input type="hidden" id="iqcWayId_<%= i %>" name="iqcWayId_<%= i %>" value="<%= iqcWayId %>"/><span><%= TriangleUIHelper.getMessageResources(request, iqcClassName) %></span>
</td>
<td style="width:100px;" >
<span id="remark_<%= i %>"><%= remark %></span>
</td>
</tr>
<%
}
%>
</tbody>
</table>
</div>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
</table>
</td>
</tr>
</tbody>
</table>
相关推荐
双向全桥CLLC谐振变换器仿真模型(Simulink仿真实现)
内容概要:本文系统介绍了双向全桥CLLC谐振变换器的Simulink仿真模型,重点阐述了变频控制、闭环仿真及其与多种电力电子拓扑(如维也纳整流器、DAB变换器、图腾柱PFC等)的联合仿真设计。资源包涵盖2.5kW双向全桥LLC、V2G电动汽车充放电系统、三相PFC、多相交错LLC等多种变换器的仿真案例,并深入展示了三电平VIENNA整流器在双闭环PI控制与SVPWM调制策略下,结合上下电容电压差值补偿实现中点电位平衡的先进控制方法。通过仿真验证,该策略不仅有效维持了800V直流母线电压的稳定,还在动态工况下显著提升了电容电压的均衡度,同时保持了较低的输入电流THD,充分体现了SVPWM与中点平衡控制协同优化的技术优势。; 适合人群:具备电力电子与自动控制理论基础,从事新能源发电、电动汽车、工业电源、微电网等领域的研究生、工程师及科研人员。; 使用场景及目标:① 学习并构建高频谐振变换器(如LLC、CLLC)的Simulink仿真模型,掌握其变频与混合控制策略;② 深入理解并应用中点电位平衡、双闭环PI控制、SVPWM调制等核心技术于VIENNA等三电平变换器中;③ 复现高水平期刊论文中的控制算法,服务于科研项目申报、学术论文撰写或工程产品开发。; 阅读建议:该资源为综合性仿真资料库,建议使用者结合自身研究方向(如电动汽车充电、新能源并网)选择对应案例进行精学,重点关注控制策略的设计逻辑、仿真参数的整定方法以及SVPWM与中点平衡的协同机制,并充分利用附带的计算书和参考文献深化理解,以实现从仿真模型到实际工程应用的顺利转化。
ItemDecoration固定头部(分组+分割线)
参考资料:https://www.jianshu.com/p/b46a4ff7c10a先来张最终效果图具体说明代码注释有了,这里就不说了。public class BudgetContrastDataStickHeaderDecoration extends RecyclerView.ItemDecoration { private Context context; private...
全桥LLC谐振(变频+移相混合控制)变换器闭环仿真模型(Simulink仿真实现)
全桥LLC谐振(变频+移相混合控制)变换器闭环仿真模型(Simulink仿真实现)
字符串 拼接方法,公司内部的方法,用集合转换成拼接的字符串
nameSum += StringUtils.isEmpty(nameSum)?name:","+name; 三目运算符,拼接。 List sizeNameList = new ArrayList(); for (int i = 0; i < basesizeTB.size(); i++) { RowBean rowBean= basesizeTB.get(i
组态王|组态王通过选择日期实现历史数据的查询
②在弹出的【插入通用控件】对话框选择【Calender Control】控件,然后点击【确定】按钮,关闭对话框,然后在画面上适当的位置按住鼠标左键并拖动,绘制出一个矩形框,放开鼠标,就完成了控件的绘制。此函数将指定的时间格式(年,月,日,时,分,秒)转换为以秒为单位的长整型数,转换的时间基准是UTC(格林尼治)1970年1月1日00:00:00。实现内容,通过两个日历控件选择开始日期和结束日期,然后点击【历史数据查询】按钮,在报表中显示对应时间段的数据集。另外你用过哪些组态软件?
构建高可用CephFS NFS网关:NFS-Ganesha与RADOS集群的深度整合
本文详细介绍了如何构建高可用的CephFS NFS网关,通过NFS-Ganesha与RADOS集群的深度整合,实现高效文件共享。文章涵盖核心架构、部署实战、性能调优及避坑指南,帮助用户解决Ceph客户端兼容性问题,提升存储访问效率。特别强调高可用设计,确保服务稳定性,适用于金融、电商等高要求场景。
jQuery 选择器 的应用规范 公司 获得选中项 ID的模糊查询
$(obj).parent('td').parent('tr').find("td input[id^='hidden_attributeTypeId_']").val(); var spanId = $(obj).parent('td').find('span[id^="span_attributeName_"]').attr('id'); var hiddenId = $(obj).pa
【测开求职】面试题:JAVA 吐血整理
本篇文章包含本次测开工程师秋招过程中遇到的所有JAVA面试题,全文两万字,亲测应对各个大厂的面试毫无压力👉
表格td超出部分隐藏,显示...
页面 '+array[i].showMaterialName+' action packingSizeJsonObj.put("materialName",materialName); packingSizeJsonObj.put("showMaterialName", TriangleUIHelper.splitShowValue(materialName,
如何利用Dpabi,AFNI,FSL软件计算种子点的功能连接?
fsl_glm 得到的是线性回归系数(beta coefficient),由于在自变量和因变量标准化(均值为 0,标准差为 1)的情况下,简单线性回归的回归系数和皮尔逊相关系数是相同的,因此这是一种间接的方法。(3)上一步得到的 PCC.nii.gz 文件是 Harvard-Oxford 概率模板中的后扣带回,每个体素中的数值(1-100)表示该体素属于 PCC 的概率,反映 PCC 在不同被试中的变异大小,也表示我们对于某个体素属于PCC 的信心。接下来,我们来聊聊功能连接在数据处理里的具体应用。
【C++】开源:cpp-httplib HTTP协议库配置与使用
cpp-httplib HTTP协议库配置与使用
公司内部将多国语言key转换成中文javaScript
//alert Message function alertMssageInfoFunc(key) { var message = getMessageResources(key); alertE(message); }
15 媒体存储的封装3
CMediaDisk类真正实现了录像文件的存储、查询和点播。存储录像文件时,需要满足以下的几个基本需求:1、异常断电不能丢失数据。2、录像既支持普通文件的查询方式,也支持时间轴的查询方式。3、修改设备时间时,不能够丢失已有录像和数据。向后修改时间时,如果当前时间已有录像,则不覆盖老数据;直到有未录像的时间段时,才再次写入新数据。4、支持删除媒体文件,也支持按时间段删除。5、支持标记录像文件、抓拍文件,也支持按时间段标记。6、支持自动覆盖最老的文件。7、支持多个设备、多路视频的录像存储。
公司内部SQL联合查询
String prodTableId = assignWorkTB.get(0).getCellBeanValue("CR_PROD_TABLE_ID"); ClassPOJO classPOJO = new ClassPOJO("TN_PROD_ASSIGN_WORK a INNER JOIN TN_PROD_ASSIGN_WORK_OPERATION b ON a.CN_ID = b.CR_P
RNA-seq分析:Step8(富集分析)
RNA-seq富集分析是一种用于分析基因表达数据中特定基因或通路是否富集的分析方法。其基本思想是比较不同基因对应的转录本/基因之间的表达差异及其对应的基因注释信息,通过统计学方法评估差异的显著性,从而确定是否存在某些特定的功能通路或基因集合富集的情况。常用的RNA-seq富集分析工具包括GOseq、KEGG(KEGG enrichment analysis)、DAVID(Database for Annotation, Visualization and Integrated Discovery)等。这
Ubuntu Rtx3090 Cuda11.7 安装 pytorch3d
pytorch ubuntu pytorch3d 安装
公司 表名规则 TN基础表 TR关系表 TL定义表
公司 表名规则 TN基础表 TR关系表 TL定义表
Devexpress16.2.6破解工具
Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具
公司-->保存时验证数据是否保存重复
js内容: //提交校验,如果article,工段,部门一致则不能进行保存 function checkSave(){ var primaryId=$("#primaryId").val(); var articleId=$("#hidden_articleId").val(); var sectionId=$("#sectionId").val(); var departmentId=
深度学习工具包 DeepLearningToolbox
深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[](https://bitdeli.com/free "Bitdeli Badge")
NTscan扫描工具
ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。
公司内部多表查询 sql在实现类的应用
//读取数据库 DataBean dataBean = this.getERPServiceDelegation().getMasterProductionScheduleService().getModifyPHSetup(parameterFB); TableBean tableBean = dataBean.getTableBean("tradingDataTableBean");
数学建模模型总结
这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!
公司 判断当前表是否隐藏
if($("#"+currentTableName).parent().css("display")=="block"){} var attdefTableKey = 'gts.erp.view.table.accountRecordTable'; attdefTableKey = attdefTableKey.replace(/\./g,"\\."); if($("#"+attdef
公司内部对ID转义
var currentTableKey = "gts.erp.view.table.accountGroupDomainAttribute"; //后面的是页面ID currentTableKey = currentTableKey.replace(/\./g,"\\."); //对这个ID做转义
左右下拉选框内值的互相转换 公司用过这样的
function addOption(theSel, theText, theValue){ var newOpt = new Option(theText, theValue); var selLength = theSel.length; theSel.options[selLength] = newOpt; } function deleteOption(theSel, the
公司内部用分页
/** * 设定分页信息 * @author caohong * @date 2016年9月3日16:40:06 * @param request * @param dataBean * @param condSetBean */ private void setSplitPageData(HttpServletRequest request, DataBean da
页面打印错误 抛出异常 公司内部用
//页面打印错误 String errorMsg = ""; try { FormBean returnFB = this.getTriangleServiceDelegation().getTriangleService().deleteFactoryManager(parameterFB); errorMsg = returnFB.getCellBeanValue("error
timer 公司内部用法
init中 WebApplicationContext wac = WebApplicationContextUtils.getRequiredWebApplicationContext(servletContext); //创建 线程 Timer timer = new Timer(); timer.schedule(new ReinitializationSerialNu
sql 保留小数+四舍五入
SELECT sampleInStockTable.CN_ID AS primaryId, sampleInStockTable.CN_NO AS no, salesTable.CN_NO AS salesTableNo, article.CN_NO AS articleNo, sampleInStockTable.CN_REAL_INSTOCK_DATE AS realInstockDat...
561



被折叠的 条评论
为什么被折叠?



