Commit 40914985 by liuyang

工序质检单

parent c1f1566f
package com.baosight.hpjx.common;
/**
* @author LiuYang
* @version 1.0 2024/11/16
* @description
*/
public enum CheckStatusEnum {
CHECKING(0,"质检中"),
CHECKED(1,"质检完成");
private Integer code;
private String value;
CheckStatusEnum(Integer code, String value) {
this.code = code;
this.value = value;
}
public static CheckStatusEnum getEnumByCode(Integer code){
for (CheckStatusEnum en : CheckStatusEnum.values()){
if(code.compareTo(en.code)==0){
return en;
}
}
return null;
}
public Integer getCode() {
return code;
}
public void setCode(Integer code) {
this.code = code;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
}
......@@ -144,7 +144,7 @@ public enum DdynamicEnum {
* 用途:组管理下拉框
* 编写:songx
*/
GROUP_RECORD_BLOCK_ID("group_record_block_id","orgId","orgCname","HPXSOrg.queryGroupComboBox"),
GROUP_RECORD_BLOCK_ID("group_record_block_id","orgId","orgCname","factoryCode","HPXSOrg.queryGroupComboBox"),
/**
* 模块:组管理
......@@ -430,6 +430,13 @@ public enum DdynamicEnum {
* 编写:ly
*/
ITEM_CODE_BLOCK_ID("itemCode_block_id","itemCode","itemName","itemModel","itemType","itemUnit","invQty","whCode","whName","HPBG001.queryItemCodeBox"),
/**
* 模块:协同办公
* 用途:用户用品下拉框
* 编写:ly
*/
PRDT_CODE_BLOCK_ID("prdtCode_block_id","prdtCode","prdtName","prodOrderNo","prdtSpec","partCode","partName","partSpec","workDate","assignedNum","unitWt","childId","HPSC005B.queryComboBox"),
;
......
......@@ -131,6 +131,8 @@ public class HPConstant {
public static final String MAINTENANCE_NUMBER = "MAINTENANCE_NUMBER";
//会议室管理申请单号
public static final String CONFERENCE_APPLY_NO = "CONFERENCE_APPLY_NO";
public static final String HPZL002_CHECK_CODE = "HPZL002_CHECK_CODE";
}
/**
......
......@@ -64,6 +64,19 @@ public class ServiceHPSC005B extends ServiceBase {
return inInfo;
}
public EiInfo queryComboBox(EiInfo inInfo){
Map queryRow = EiInfoUtils.getFirstRow(inInfo);
List<DdynamicEnum> list = new ArrayList<>();
list.add(DdynamicEnum.PRDT_CODE_BLOCK_ID);
boolean isSplicingSymbol = false;
if (inInfo.getString("isSplicingSymbol") != null) {
isSplicingSymbol = Boolean.parseBoolean(inInfo.getString("isSplicingSymbol"));
} else {
isSplicingSymbol = MapUtils.getBooleanValue(queryRow, "isSplicingSymbol");
}
CommonMethod.initBlock(inInfo, list, queryRow, isSplicingSymbol);
return inInfo;
}
@OperationLogAnnotation(operModul = "生产任务",operType = "导出",operDesc = "导出操作")
public EiInfo export(EiInfo inEiInfo) {
......
......@@ -177,4 +177,47 @@
<include refid="customCondition"/>
</select>
<select id="queryComboBox" resultClass="java.util.HashMap">
SELECT
A.ID as "id",
A.PROD_ORDER_NO as "prodOrderNo", <!-- 生产订单号 -->
A.PRDT_CODE as "prdtCode", <!-- 部件编码 -->
CONCAT('[',A.PART_NAME,']',A.PRDT_NAME) as "prdtName", <!-- 部件名称 -->
A.PRDT_SPEC as "prdtSpec",
A.PART_TYPE as "partType",
A.PART_CODE as "partCode",
A.PART_NAME as "partName",
A.PART_SPEC as "partSpec",
A.PRDT_LENGTH as "prdtLength", <!-- 长 -->
A.PRDT_WIDTH as "prdtWidth", <!-- 宽 -->
A.PRDT_THICK as "prdtThick", <!-- 厚 -->
A.PART_LENGTH as "partLength", <!-- 长 -->
A.PART_WIDTH as "partWidth", <!-- 宽 -->
A.PART_THICK as "partThick", <!-- 厚 -->
A.UNIT_WT as "unitWt", <!-- 单重 -->
A.STATUS as "status", <!-- 状态 -->
A.WORK_DATE as "workDate",
A.PLAN_COMPLETION_DATE as "planCompletionDate", <!-- 计划完成日期 -->
A.FILE_PATH1 as "filePath1",
A.ASSIGNED_NUM as "assignedNum", <!-- 已派工数量 -->
A.UNASSIGNED_NUM as "unassignedNum", <!-- 未派工数量 -->
B.ID as "childId",
B.PROD_TASK_NO as "prodTaskNo",
B.PROD_ORDER_NO as "prodOrderNo",
B.NUM as "num",
B.TOTAL_WT as "totalWt",
B.COMPLETE_NUM as "completeNum", <!-- 完成数量 -->
B.FACTORY_CODE as "factoryCode", <!-- 厂区编码 -->
B.FACTORY_NAME as "factoryName", <!-- 工厂 -->
B.ORG_NO as "orgNo",
B.ORG_NAME as "orgName",
A.DELIVERY_DATE as "deliveryDate"
FROM ${hpjxSchema}.T_HPSC005 A
INNER JOIN ${hpjxSchema}.T_HPSC005A B ON A.PROD_ORDER_NO = B.PROD_ORDER_NO
WHERE 1=1 AND A.STATUS != 0
<include refid="condition"/>
<include refid="customCondition"/>
<include refid="order"/>
</select>
</sqlMap>
package com.baosight.hpjx.hp.zl.service;
import com.baosight.hpjx.aspect.annotation.OperationLogAnnotation;
import com.baosight.hpjx.common.CheckStatusEnum;
import com.baosight.hpjx.common.DdynamicEnum;
import com.baosight.hpjx.core.dao.DaoUtils;
import com.baosight.hpjx.hp.constant.HPConstant;
import com.baosight.hpjx.hp.zl.domain.HPZL003;
import com.baosight.hpjx.util.*;
import com.baosight.iplat4j.core.ei.EiBlock;
import com.baosight.iplat4j.core.ei.EiBlockMeta;
import com.baosight.iplat4j.core.ei.EiConstant;
import com.baosight.iplat4j.core.ei.EiInfo;
import com.baosight.iplat4j.core.exception.PlatException;
import com.baosight.iplat4j.core.service.impl.ServiceEPBase;
import com.baosight.iplat4j.ed.util.SequenceGenerator;
import java.util.*;
/**
* @author LiuYang
* @version 1.0 2024/11/16
* @description 工序质检
*/
public class ServiceHPZL003 extends ServiceEPBase {
/**
* 画面初始化
*
* @param inInfo
* @return
*/
@Override
public EiInfo initLoad(EiInfo inInfo) {
try {
CommonMethod.initBlock(inInfo,
Arrays.asList(
DdynamicEnum.PROJ_RECORD_BLOCK_ID,
DdynamicEnum.FACTORY_CODE_BOX_BLOCK_ID,
DdynamicEnum.GROUP_RECORD_BLOCK_ID,
DdynamicEnum.USER_ID_BOX_BLOCK_ID),
new HashMap<String,Object>(){}
);
Map<String, Object> map = new HashMap<>();
map.put("itemCode", "ITEM_CODE in ('2','3','4')");
CommonMethod.initBlock(inInfo,
Arrays.asList(DdynamicEnum.INVENT_NAME_BLOCK_ID), map,
false);
inInfo.addBlock(EiConstant.resultBlock).addBlockMeta(new HPZL003().eiMetadata);
} catch (Exception e) {
LogUtils.setDetailMsg(inInfo, e, "初始化失败");
}
return inInfo;
}
/**
* 查询操作
*
* @param inInfo
* @return
*/
@Override
public EiInfo query(EiInfo inInfo) {
try {
inInfo = super.query(inInfo, HPZL003.QUERY, new HPZL003());
} catch (Exception e) {
LogUtils.setDetailMsg(inInfo, e, "查询失败");
}
return inInfo;
}
@OperationLogAnnotation(operModul = "工序质检单",operType = "删除",operDesc = "删除操作")
@Override
public EiInfo delete(EiInfo inInfo) {
int i = 0;
try {
List<HPZL003> hgzl002List = MapUtils.toDaoEPBases(inInfo, HPZL003.class);
for (HPZL003 hpzl002 : hgzl002List) {
DaoUtils.update(HPZL003.DELETE, hpzl002);
}
inInfo.setStatus(EiConstant.STATUS_SUCCESS);
inInfo.setMsg("操作成功!本次对[" + hgzl002List.size() + "]条数据删除成功!");
} catch (PlatException e) {
LogUtils.setMsg(inInfo,e, "删除失败");
}
return inInfo;
}
@OperationLogAnnotation(operModul = "工序质检单",operType = "保存",operDesc = "操作")
public EiInfo save(EiInfo inInfo) {
try {
List<HPZL003> hgzl002List = MapUtils.toDaoEPBases(inInfo, HPZL003.class);
//List<Long> ids = Optional.ofNullable(hgzl002List).orElse(new ArrayList<>()).stream().map(HPZL002::getId).collect(Collectors.toList());
//List<HPZL002> dbList = HPZLTools.THGZL002.list(ids);
// 写入数据
for (HPZL003 hpzl002 : hgzl002List) {
AssertUtils.isTrue(hpzl002.getCheckStatus().compareTo(CheckStatusEnum.CHECKED.getCode())==0,String.format("质检单号[%s]已经质检完成不能修改!",hpzl002.getCheckCode()));
if (hpzl002.getId() == null || hpzl002.getId() == 0) {
this.add(hpzl002);
} else {
this.modify(hpzl002);
}
}
inInfo.setStatus(EiConstant.STATUS_DEFAULT);
inInfo.setMsg("操作成功!本次对[" + hgzl002List.size() + "]条数据保存成功!");
} catch (Exception e) {
LogUtils.setDetailMsg(inInfo, e, "保存失败");
}
return inInfo;
}
/**
* 新增操作
*/
public void add(HPZL003 hpzl002) {
hpzl002.setCheckCode(SequenceGenerator.getNextSequence(HPConstant.SequenceId.HPZL002_CHECK_CODE));
DaoUtils.insert(HPZL003.INSERT, hpzl002);
}
/**
* 修改操作
*/
public void modify(HPZL003 hpsb002) {
DaoUtils.update(HPZL003.UPDATE, hpsb002);
}
@OperationLogAnnotation(operModul = "工序质检单",operType = "提交",operDesc = "修改状态操作")
public EiInfo updateStatus(EiInfo inInfo){
int i = 0;
try {
EiBlock eiBlock = inInfo.getBlock(EiConstant.resultBlock);
for (i = 0; i < eiBlock.getRowCount(); i++) {
Map<?, ?> map = eiBlock.getRow(i);
HPZL003 hpzl003 = new HPZL003();
hpzl003.fromMap(map);
DaoUtils.update(HPZL003.UPDATE_STATUS, hpzl003);
}
inInfo.setStatus(EiConstant.STATUS_SUCCESS);
inInfo.setMsg("操作成功!本次对[" + i + "]条数据修改状态成功!");
} catch (PlatException e) {
LogUtils.setDetailMsg(inInfo, e, "审批失败");
return inInfo;
}
return inInfo;
}
}
......@@ -3,6 +3,7 @@ package com.baosight.hpjx.hp.zl.tools;
import com.baosight.hpjx.core.dao.DaoBase;
import com.baosight.hpjx.hp.constant.HPSqlConstant;
import com.baosight.hpjx.hp.zl.domain.HPZL001;
import com.baosight.hpjx.hp.zl.domain.HPZL003;
import com.baosight.hpjx.hp.zl.domain.HPZL004;
import com.baosight.hpjx.hp.zl.domain.HPZL004C;
import com.baosight.hpjx.util.AssertUtils;
......@@ -67,6 +68,50 @@ public class HPZLTools {
return CollectionUtils.isEmpty(results)? null:results;
}
public static class THGZL002 {
/**
* @param id
*/
public static HPZL003 get(Long id) {
AssertUtils.isNull(id, "ID不能为空");
Map paramMap = new HashMap();
paramMap.put(HPZL003.FIELD_id, id);
List<HPZL003> results = DaoBase.getInstance().query(HPZL003.QUERY, paramMap);
return CollectionUtils.isEmpty(results) ? null : results.get(0);
}
/**
* @param ids
*/
public static List<HPZL003> list(List<Long> ids) {
AssertUtils.isEmpty(ids, "ID不能为空");
Map paramMap = new HashMap();
paramMap.put("ids", ids);
List<HPZL003> results = DaoBase.getInstance().query(HPZL003.QUERY, paramMap);
return results;
}
private static void cleanBaseInfo(HPZL003 hgzl002) {
hgzl002.setCreatedBy(null);
hgzl002.setCreatedName(null);
hgzl002.setCreatedTime(null);
hgzl002.setUpdatedBy(null);
hgzl002.setUpdatedName(null);
hgzl002.setUpdatedTime(null);
hgzl002.setDepCode(null);
hgzl002.setId(null);
}
public static List<HPZL003> listByWorkIds(List<Long> workIds) {
if (CollectionUtils.isEmpty(workIds)) {
return null;
}
Map queryMap = new HashMap();
queryMap.put("workIds", workIds);
return DaoBase.getInstance().query(HPZL003.QUERY, queryMap);
}
}
/**
* 整改通知单
......
$(function () {
let prdtNameGlobalData = [];
var projRecordBox = __eiInfo.getBlock("proj_record_block_id").getMappedRows();
var factoryCodeBox_block_id = __eiInfo.getBlock("factoryCodeBox_block_id").getMappedRows();
var groupRecordBox = __eiInfo.getBlock("group_record_block_id").getMappedRows();
var inventNameBox = __eiInfo.getBlock("invent_name_block_id").getMappedRows();
var userIdBox = __eiInfo.getBlock("userIdBox_block_id").getMappedRows();
IPLATUI.EFGrid = {
"result": {
pageable: {
input: true,
numeric: false,
pageSize: 20,
pageSizes: [10, 20, 30, 50, 100, 200]
},
columns: [
{
field: "orgNo",
filter: function (options) {
var province = options.model['factoryCode'];
if(province) {
// 返回我们过滤后的数据集
return _.filter(groupRecordBox, function (item) {
return item["param1Field"]==province;
})
}
return options.values;
},
template: function (dataItem) {
for (let i = 0; i < groupRecordBox.length; i++) {
if (groupRecordBox[i]['valueField'] === dataItem['orgNo']) {
return groupRecordBox[i]['textField'].split(']')[1]
}
}
return dataItem["orgNo"];
},
}, {
field: "prdtCode",
template: function (dataItem) {
for (let i = 0; i < inventNameBox.length; i++) {
if (inventNameBox[i]['valueField'] === dataItem['prdtCode']) {
return inventNameBox[i]['textField']
}
}
return dataItem["prdtCode"];
},
editor: function (container, options) {
let inInfo = new EiInfo();
inInfo.set("inqu_status-0-factoryCode", options.model["factoryCode"]);
inInfo.set("inqu_status-0-orgNo", options.model["orgNo"]);
inInfo.set("inqu_status-0-projCode", options.model["projCode"]);
inInfo.set("inqu_status-0-isSplicingSymbol", false);
inInfo.set("serviceName", "HPSC005B");
inInfo.set("methodName", "queryComboBox");
inInfo.set("blockId", "prdtCode_block_id");
inInfo.set("field", options.field);
prdtNameGlobalData = refreshSelect(container, inInfo);
}
}, {
field: "checkDate",
attributes: {
class: "i-input-readonly"
},
defaultValue: function () {
return currShortDate();
}
},
],
onSuccess: function (e) {
if(e.eiInfo.extAttr.methodName == 'save'||e.eiInfo.extAttr.methodName == 'delete' ){
query();
}
},
loadComplete: function(grid) {
$("#SUBMIT").on("click", updateStatus)
// 此 grid 对象
grid.dataSource.bind("change", function(e) {
// 判断父级节点是否发生变化
/*if (e.field == "unpassQuantity") {
// loadChange(grid,e,"passQuantity");
var passQuantity = parseFloat(e.items[0]['quantity'])
- parseFloat(e.items[0]['unpassQuantity']);
resultGrid.setCellValue(e.items[0], "passQuantity", passQuantity);
}
if (e.field == "passQuantity") {
// loadChange(grid,e,"unpassQuantity");
var unpassQuantity = parseFloat(e.items[0]['quantity'])
- parseFloat(e.items[0]['passQuantity']);
resultGrid.setCellValue(e.items[0], "unpassQuantity", unpassQuantity);
}*/
/*if (e.field == "prdtCode"){
var item = e.items[0];
for (let i = 0; i < prdtNameGlobalData.length; i++) {
if (prdtNameGlobalData[i]['valueField'] === item["prdtCode"]) {
resultGrid.setCellValue(item, "prdtName", prdtNameGlobalData[i]['textField'].split(']')[1]);
resultGrid.setCellValue(item, "workCode", prdtNameGlobalData[i]['param1Field']);
resultGrid.setCellValue(item, "prdtSpec", prdtNameGlobalData[i]['param2Field']);
resultGrid.setCellValue(item, "partCode", prdtNameGlobalData[i]['param3Field']);
resultGrid.setCellValue(item, "partName", prdtNameGlobalData[i]['param4Field']);
resultGrid.setCellValue(item, "partSpec", prdtNameGlobalData[i]['param5Field']);
resultGrid.setCellValue(item, "registerDate", prdtNameGlobalData[i]['param6Field']);
resultGrid.setCellValue(item, "quantity", prdtNameGlobalData[i]['param7Field']);
resultGrid.setCellValue(item, "unitWt", prdtNameGlobalData[i]['param8Field']);
resultGrid.setCellValue(item, "childId", prdtNameGlobalData[i]['param9Field']);
break
}
}
}*/
var item = e.items[0];
if (e.field == "projCode"){
for (let i = 0; i < projRecordBox.length; i++) {
if (projRecordBox[i]['valueField'] === item['projCode']) {
resultGrid.setCellValue(item, "projName", projRecordBox[i]['textField']);
break
}
}
}else if (e.field == "factoryCode"){
for (let i = 0; i < factoryCodeBox_block_id.length; i++) {
if (factoryCodeBox_block_id[i]['valueField'] === item['factoryCode']) {
resultGrid.setCellValue(item, "factoryName", factoryCodeBox_block_id[i]['textField']);
break
}
}
}else if (e.field == "orgNo"){
for (let i = 0; i < groupRecordBox.length; i++) {
if (groupRecordBox[i]['valueField'] === item['orgNo']) {
resultGrid.setCellValue(item, "orgName", groupRecordBox[i]['textField']);
break
}
}
}
});
},
onSave: function(e){
// 阻止默认请求,使用自定义保存
e.preventDefault();
let btnNode = $(this);
//禁用按钮
btnNode.attr("disabled", true);
save(btnNode);
}
}
}
// 查询
$("#QUERY").on("click", query);
});
$(window).load(function () {
// 查
query();
});
/**
* 查询
*/
function query() {
resultGrid.dataSource.page(1);
}
/**
* 提交操作
*
* @param id
* @param checkNo
*/
let save = function () {
let rows = resultGrid.getCheckedRows();
if (rows.length < 1) {
message("请选择数据")
return;
}
for (let i = 0; i < rows.length; i++) {
let passQuantity = rows[i]['passQuantity'];
let unpassQuantity = rows[i]['unpassQuantity'];
let quantity = rows[i]['quantity'];
let checkBy = rows[i]['checkBy'];
let checkCode = rows[i]['checkCode'];
let checkStatus = rows[i]['checkStatus'];
if (!isNumber(passQuantity)||!isNumber(unpassQuantity)) {
message("质检单号[" + checkCode + "]合格数量与不合格数量必须是大于等于0的数字!");
return;
}
/*if (passQuantity > quantity) {
message("质检单号[" + checkCode + "]合格数量不能大于报工数量!");
return;
}
if (unpassQuantity > quantity) {
message("质检单号[" + checkCode + "]不合格数量不能大于报工数量!");
return;
}*/
if(!checkBy||checkBy===' '){
message("质检单号[" + checkCode + "]质检人员不能为空!");
return;
}
if(checkStatus === '1'){
message("质检单号[" + checkCode + "]已经质检完成不能修改!");
return;
}
}
JSUtils.confirm("确定对勾选中的[" + rows.length + "]条数据做保存操作吗? ", {
ok: function () {
JSUtils.submitGridsData("result", "HPZL003", "save", true);
}
});
}
function updateStatus() {
let rows = resultGrid.getCheckedRows();
if (rows.length < 1) {
message("请选择数据")
return;
}
for (let i = 0; i < rows.length; i++) {
let checkStatus = rows[i]['checkStatus'];
if(checkStatus === '1'){
message("质检单号[" + checkCode + "]已经质检完成不能提交!");
return;
}
}
JSUtils.confirm("确定对勾选中的[" + rows.length + "]条数据做质检完成操作吗? ", {
ok: function () {
JSUtils.submitGridsData("result", "HPZL003", "updateStatus", true,
function (res) {
if (res.status > -1) {
query();
} else {
message(res.msg);
}
});
}
});
}
<%@ page import="com.baosight.iplat4j.core.web.threadlocal.UserSession" %><%--
Created by IntelliJ IDEA.
User: 1
Date: 2024/11/16
Time: 20:40
To change this template use File | Settings | File Templates.
--%>
<!DOCTYPE html>
<%@ page contentType="text/html; charset=UTF-8" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib prefix="EF" tagdir="/WEB-INF/tags/EF" %>
<%
String loginName = UserSession.getLoginName();
String loginCName = UserSession.getLoginCName();
%>
<c:set var="ctx" value="${pageContext.request.contextPath}"/>
<c:set var="loginName" value="<%=loginName%>" />
<c:set var="loginCName" value="<%=loginCName%>" />
<EF:EFPage title="工序质检单">
<EF:EFRegion id="inqu" title="查询条件">
<div class="row">
<EF:EFDateSpan startCname="质检日期" endCname="到" blockId="inqu_status"
startName="checkDateFrom" endName="checkDateTo" row="0" role="date"
format="yyyy-MM-dd" ratio="3:3" satrtRatio="4:8" endRatio="4:8" readonly="true">
</EF:EFDateSpan>
<EF:EFInput blockId="inqu_status" row="0" ename="checkCode" cname="质检单号" placeholder="模糊查询" colWidth="3"/>
<EF:EFInput blockId="inqu_status" row="0" ename="checkName" cname="质检员" placeholder="模糊查询" colWidth="3"/>
</div>
<div class="row">
<EF:EFInput blockId="inqu_status" row="0" ename="factoryName" cname="工厂名称" placeholder="模糊查询" colWidth="3"/>
<EF:EFSelect cname="质检状态" ename="checkStatus" blockId="inqu_status" row="0" colWidth="3">
<EF:EFOption label="全部" value=""/>
<EF:EFOption label="质检中" value="0"/>
<EF:EFOption label="已质检" value="1"/>
</EF:EFSelect>
</div>
</EF:EFRegion>
<EF:EFRegion id="result" title="明细信息">
<EF:EFGrid blockId="result" autoDraw="override" isFloat="true" checkMode="row">
<EF:EFColumn ename="id" cname="内码" hidden="true"/>
<EF:EFColumn ename="companyCode" cname="企业编码" hidden="true"/>
<EF:EFComboColumn ename="factoryCode" cname="工厂"
columnTemplate="#=textField#" itemTemplate="#=textField#"
textField="textField" valueField="valueField"
maxLength="16" readonly="true" width="120" required="true"
align="center" filter="contains" sort="true">
<EF:EFOptions blockId="factoryCodeBox_block_id" textField="textField" valueField="valueField"/>
</EF:EFComboColumn>
<EF:EFColumn ename="factoryName" cname="工厂名称" hidden="true"/>
<EF:EFComboColumn ename="orgNo" cname="生产组"
columnTemplate="#=textField#" itemTemplate="#=textField#"
textField="textField" valueField="valueField"
maxLength="16" readonly="true" width="120" required="true"
align="center" filter="contains" sort="true">
<EF:EFOptions blockId="group_record_block_id" textField="textField" valueField="valueField"/>
</EF:EFComboColumn>
<EF:EFColumn ename="orgName" cname="生产组" hidden="true"/>
<EF:EFComboColumn ename="projCode" cname="项目名称"
columnTemplate="#=textField#" itemTemplate="#=textField#"
textField="textField" valueField="valueField"
maxLength="16" readonly="true" width="120" required="true"
align="center" filter="contains" sort="true">
<EF:EFOptions blockId="proj_record_block_id" textField="textField" valueField="valueField"/>
</EF:EFComboColumn>
<EF:EFColumn ename="projName" cname="项目名称" hidden="true"/>
<EF:EFColumn ename="workCode" cname="生产任务单号" width="130" hidden="true"/>
<EF:EFColumn ename="checkCode" cname="质检单号" width="130" enable="false" readonly="true" align="center"/>
<EF:EFColumn ename="processName" cname="工序" width="100" hidden="true"/>
<EF:EFComboColumn ename="prdtCode" cname="产品名称"
columnTemplate="#=textField#" itemTemplate="#=textField#"
textField="textField" valueField="valueField"
maxLength="16" readonly="true" width="120" required="true"
align="center" filter="contains" sort="true">
<EF:EFOptions blockId="invent_name_block_id" textField="textField" valueField="valueField"/>
</EF:EFComboColumn>
<EF:EFColumn ename="prdtName" cname="产品名称" width="100" hidden="true"/>
<EF:EFColumn ename="prdtSpec" cname="产品规格" enable="false" width="120" align="center" hidden="true"/>
<EF:EFColumn ename="partCode" cname="零件名称" enable="false" width="120" align="center" hidden="true"/>
<EF:EFColumn ename="partName" cname="零件名称" enable="false" width="120" align="center" hidden="true"/>
<EF:EFColumn ename="partSpec" cname="零件规格" enable="false" width="120" align="center" hidden="true"/>
<EF:EFColumn ename="quantity" cname="派工数量" width="90" enable="false" readonly="true" align="center" hidden="true"/>
<EF:EFColumn ename="registerDate" cname="派工日期" width="120" enable="true" align="center" editType="date" hidden="true"
dateFormat="yyyy-MM-dd" parseFormats="['yyyyMMdd']" required="true"/>
<EF:EFColumn ename="passQuantity" cname="合格数量" format="{0:0.0}" width="90" align="center" required="true"/>
<EF:EFColumn ename="unpassQuantity" cname="不合格数量" format="{0:0.0}" width="100" align="center"
required="true"/>
<EF:EFColumn ename="checkDate" cname="质检日期" width="120" enable="true" align="center" editType="date"
dateFormat="yyyy-MM-dd" parseFormats="['yyyyMMdd']" required="true"/>
<EF:EFComboColumn ename="checkBy" cname="质检员" columnTemplate="#=textField#" itemTemplate="#=textField#"
textField="textField" valueField="valueField" defaultValue="${loginName}"
maxLength="16" width="100" readonly="false" required="true"
align="center" filter="contains" sort="true">
<EF:EFOptions blockId="userIdBox_block_id" textField="textField" valueField="valueField"/>
</EF:EFComboColumn>
<EF:EFColumn ename="checkName" cname="质检员" width="100" enable="" readonly="true" align="center" hidden="true"
defaultValue="${loginCName}"/>
<EF:EFComboColumn ename="checkStatus" cname="质检状态" width="80" align="center" enable="false"
readonly="true" defaultValue="0">
<EF:EFOption label="质检中" value="0"/>
<EF:EFOption label="已质检" value="1"/>
</EF:EFComboColumn>
</EF:EFGrid>
</EF:EFRegion>
</EF:EFPage>
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