Преглед на файлове

模具,返修,检查项优化,生产订单

sunxianglong преди 4 месеца
родител
ревизия
3e06449100

+ 10 - 0
src/main/java/com/jeesite/modules/erp/entity/MesProductOrder.java

@@ -23,6 +23,7 @@ import com.jeesite.modules.mes.entity.MesMaterialBl;
 		@Column(name="id", attrName="id", label="id", isPK=true),
 		@Column(name="sn", attrName="sn", label="订单编号"),
 		@Column(name="line_sn", attrName="lineSn", label="产线编号"),
+		@Column(name="doc_line_no", attrName="docLineNo", label="行号"),
 		@Column(name="nums", attrName="nums", label="生产数量", isUpdateForce=true),
 		@Column(name="now_num", attrName="nowNums", label="当前生产入库数量", isUpdateForce=true),
 		@Column(name="delivery_date", attrName="deliveryDate", label="交货日期", isUpdateForce=true),
@@ -40,6 +41,7 @@ public class MesProductOrder extends DataEntity<MesProductOrder> {
 	private static final long serialVersionUID = 1L;
 	private String sn;		// 订单编号
 	private String lineSn;		// 产线编号
+	private String docLineNo;   //行号
 	private Integer nums;		// 生产数量
 	private Integer nowNums;		// 当前生产入库数量
 	private Date deliveryDate;		// 交货日期
@@ -56,6 +58,14 @@ public class MesProductOrder extends DataEntity<MesProductOrder> {
 		this.list = list;
 	}
 
+	public String getDocLineNo() {
+		return docLineNo;
+	}
+
+	public void setDocLineNo(String docLineNo) {
+		this.docLineNo = docLineNo;
+	}
+
 	public MesProductOrder() {
 		this(null);
 	}

+ 3 - 0
src/main/java/com/jeesite/modules/erp/service/MesProductOrderService.java

@@ -113,6 +113,9 @@ public class MesProductOrderService extends CrudService<MesProductOrderDao, MesP
 		if (ListUtils.isEmpty(mesProductOrder.getList())) {
 			throw new ServiceException(text("备料清单不能为空!"));
 		}
+		if (mesProductOrder.getDocLineNo() == null) {
+			throw new ServiceException(text("行号不能为空!"));
+		}
 
 		MesProductOrder exist = dao.findBySn(mesProductOrder.getSn(), null);
 		if (exist != null) {

+ 7 - 0
src/main/java/com/jeesite/modules/mes/service/MesMaterialCheckService.java

@@ -5,6 +5,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import com.jeesite.common.entity.Page;
+import com.jeesite.common.lang.StringUtils;
 import com.jeesite.common.service.CrudService;
 import com.jeesite.modules.mes.entity.MesMaterialCheck;
 import com.jeesite.modules.mes.dao.MesMaterialCheckDao;
@@ -56,6 +57,12 @@ public class MesMaterialCheckService extends CrudService<MesMaterialCheckDao, Me
 	@Override
 	@Transactional
 	public void save(MesMaterialCheck mesMaterialCheck) {
+		if (StringUtils.isBlank(mesMaterialCheck.getMinValue())) {
+			mesMaterialCheck.setMinValue(null);
+		}
+		if (StringUtils.isBlank(mesMaterialCheck.getMaxValue())) {
+			mesMaterialCheck.setMaxValue(null);
+		}
 		super.save(mesMaterialCheck);
 		// 保存上传图片
 		FileUploadUtils.saveFileUpload(mesMaterialCheck, mesMaterialCheck.getId(), "mesMaterialCheck_image");

+ 13 - 11
src/main/java/com/jeesite/modules/mes/web/MesMaterialCheckRecordController.java

@@ -150,6 +150,9 @@ public class MesMaterialCheckRecordController extends BaseController {
 		}
 
 		mesMaterialCheckRecord.setState(result);
+		if (mesMaterialCheckRecord.getNums() == null && mesMaterialCheckRecord.getFaNums() != null) {
+			mesMaterialCheckRecord.setNums(mesMaterialCheckRecord.getFaNums());
+		}
 		mesMaterialCheckRecordService.save(mesMaterialCheckRecord);
 
 		// 更新报检编号相同的都更新
@@ -318,19 +321,10 @@ public class MesMaterialCheckRecordController extends BaseController {
 			item.setImg(imgList);
 		}
 
-		//根据来料码补充物料报检实际数量  如果查到关联物料则添加实际数量,查不到默认为发货数量
-		Long nums;//实际报检数量
-		MesMaterialReport mesMaterialReport = new MesMaterialReport();
-		mesMaterialReport.setSn(sn);
-		MesMaterialReport mesMaterialReport1 = mesMaterialReportService.findInfo(mesMaterialReport);
-		if (mesMaterialReport1!= null){
-			nums = mesMaterialReport1.getNums();
-		}else{
-			nums=Long.valueOf(result[2]);
-		}
 		Map<String, Object> map = MapUtils.newHashMap();
 		map.put("sn",sn);
-		map.put("nums",nums);
+		map.put("faDate", formatSnDate(result[4]));
+		map.put("faNums", result[6].trim());
 		map.put("result", result);
 		map.put("info", ma);
 		map.put("mitList", mitList);
@@ -452,4 +446,12 @@ public class MesMaterialCheckRecordController extends BaseController {
 		}
 	}
 
+	private String formatSnDate(String dateStr) {
+		if (StringUtils.isBlank(dateStr) || dateStr.trim().length() != 8) {
+			return StringUtils.trimToEmpty(dateStr);
+		}
+		String value = dateStr.trim();
+		return value.substring(0, 4) + "-" + value.substring(4, 6) + "-" + value.substring(6, 8);
+	}
+
 }

+ 10 - 0
src/main/java/com/jeesite/modules/mes/web/MesRepairItemsController.java

@@ -76,6 +76,16 @@ public class MesRepairItemsController extends BaseController {
 	}
 
 	/**
+	 * 查看详情
+	 */
+	@RequiresPermissions("mes:mesRepairItems:view")
+	@RequestMapping(value = "info")
+	public String info(MesRepairItems mesRepairItems, Model model) {
+		model.addAttribute("mesRepairItems", mesRepairItems);
+		return "modules/mes/mesRepairItemsInfo";
+	}
+
+	/**
 	 * 保存数据
 	 */
 	@RequiresPermissions("mes:mesRepairItems:edit")

+ 9 - 0
src/main/resources/views/modules/erp/mesProductOrderForm.html

@@ -35,6 +35,15 @@
 					<div class="col-xs-6">
 						<div class="form-group">
 							<label class="control-label col-sm-4" title="">
+								<span class="required hide">*</span> ${text('行号')}:<i class="fa icon-question hide"></i></label>
+							<div class="col-sm-8">
+								<#form:input path="docLineNo" maxlength="64" class="form-control"/>
+							</div>
+						</div>
+					</div>
+					<div class="col-xs-6">
+						<div class="form-group">
+							<label class="control-label col-sm-4" title="">
 								<span class="required hide">*</span> ${text('生产数量')}:<i class="fa icon-question hide"></i></label>
 							<div class="col-sm-8">
 								<#form:input path="nums" maxlength="8" class="form-control digits"/>

+ 1 - 0
src/main/resources/views/modules/erp/mesProductOrderList.html

@@ -80,6 +80,7 @@ $('#dataGrid').dataGrid({
 		// }},
 		{header:'${text("订单编号")}', name:'sn', index:'a.sn', width:150, align:"center"},
 		{header:'${text("产线编号")}', name:'lineSn', index:'a.line_sn', width:120, align:"center"},
+		{header:'${text("行号")}', name:'docLineNo', index:'a.doc_line_no', width:100, align:"center"},
 		{header:'${text("生产数量")}', name:'nums', index:'a.nums', width:150, align:"center"},
 		{header:'${text("交货日期")}', name:'deliveryDate', index:'a.delivery_date', width:150, align:"center"},
 		{header:'${text("备注")}', name:'remark', index:'a.remark', width:150, align:"center"},

+ 40 - 27
src/main/resources/views/modules/mes/mesMaterialCheckRecordForm.html

@@ -60,15 +60,7 @@
 							</div>
 						</div>
 					</div>
-					<div class="col-xs-12">
-						<div class="form-group">
-							<label class="control-label col-sm-2" title="">
-								<span class="required ">*</span> ${text('实际数量')}:<i class="fa icon-question hide"></i></label>
-							<div class="col-sm-10">
-								<input type="number" readonly class="form-control"  name="nums" v-model="nums"  >
-							</div>
-						</div>
-					</div>
+					<input type="hidden" name="nums" :value="faNums">
 					<div class="col-xs-12">
 						<div class="form-group">
 <!--							<label class="control-label col-sm-2" title="">-->
@@ -94,11 +86,14 @@
 												<img style="width: 60px" onclick="open_img(this)" :src="item1.url" alt="">
 											</span>
 										</td>
-										<td><input type="text" v-model="item.a1" class="form-control"></td>
-										<td><input type="text" v-model="item.a2" class="form-control"></td>
-										<td><input type="text" v-model="item.a3" class="form-control"></td>
-										<td><input type="text" v-model="item.a4" class="form-control"></td>
-										<td><input type="text" v-model="item.a5" class="form-control"></td>
+										<template v-if="hasMeasureRange(item)">
+											<td><input type="text" v-model="item.a1" class="form-control"></td>
+											<td><input type="text" v-model="item.a2" class="form-control"></td>
+											<td><input type="text" v-model="item.a3" class="form-control"></td>
+											<td><input type="text" v-model="item.a4" class="form-control"></td>
+											<td><input type="text" v-model="item.a5" class="form-control"></td>
+										</template>
+										<td v-else colspan="5"></td>
 										<td>
 											<div v-if="item.type == 1">
 												<label v-if="item.result == 1"><input type="radio" v-model="item.result" value="1">合格</label>
@@ -174,7 +169,6 @@ var vm = new Vue({
 		materialTitle:"",
 		materialId:"",
 		faDate:"",
-		nums:0,
 		faNums:0,
 		state:"1",
 		options:[]
@@ -200,6 +194,13 @@ var vm = new Vue({
 
 	},
 	methods: {
+		hasMeasureRange(item){
+			var min = item.minValue;
+			var max = item.maxValue;
+			var hasMin = min !== null && min !== undefined && min !== '' && !isNaN(Number(min));
+			var hasMax = max !== null && max !== undefined && max !== '' && !isNaN(Number(max));
+			return hasMin || hasMax;
+		},
 		formatData(){
 			for (let o in this.options){
 				// this.options[o]['result'] = "";
@@ -209,6 +210,11 @@ var vm = new Vue({
 					let fmaxval = parseFloat(this.options[o].maxValue?this.options[o].maxValue:'');
 					this.options[o].maxValue = fmaxval;
 
+					if (!this.hasMeasureRange(this.options[o])) {
+						this.options[o].result = this.options[o].result || "1";
+						continue;
+					}
+
 					let tret = "1";
 					let a1 = parseFloat(this.options[o].a1?this.options[o].a1:'');
 					let ret1 = this.checkResult(fminval,fmaxval,a1);
@@ -267,6 +273,16 @@ var vm = new Vue({
 			}
 			return result;
 		},
+		parseSnFields(sn){
+			var parts = (sn || '').split(',');
+			if (parts.length !== 7) {
+				return { faDate: '', faNums: 0 };
+			}
+			return {
+				faDate: this.convertNumberToDate(parseInt(parts[4], 10)),
+				faNums: parts[6]
+			};
+		},
 		getData(){
 			var that = this;
 			if(this.sn.trim() === ''){
@@ -280,30 +296,30 @@ var vm = new Vue({
 					that.materialTitle="";
 					that.materialId="";
 					that.faDate="";
-					that.nums=0;
 					that.faNums=0;
 					that.options=[];
 					that.formatData();
 				}else {
+					var snFields = that.parseSnFields(that.sn);
 					that.msg="";
 					that.is_show=true;
 					that.materialTitle=res.data.info.title;
 					that.materialId=res.data.info.id;
-					that.faDate=that.convertNumberToDate(res.data.result[1]);
-					that.faNums=res.data.result[2];//发货数量
-					that.nums=res.data.nums;//实际报检数量
+					that.faDate=res.data.faDate || snFields.faDate;
+					that.faNums=res.data.faNums || snFields.faNums;
 					that.options=res.data.mitList;
 
 					for (let o in that.options){
 						that.options[o]['result'] = "";
 					}
-					console.log(res);
-					console.log("--");
 					that.formatData();
 				}
 			})
 		},
 		convertNumberToDate(number) {
+			if (!number || isNaN(number)) {
+				return '';
+			}
 			let year = Math.floor(number / 10000);
 			let month = Math.floor((number % 10000) / 100);
 			let day = number % 100;
@@ -328,21 +344,18 @@ var vm = new Vue({
 								 that.materialTitle="";
 								 that.materialId="";
 								 that.faDate="";
-								 that.nums=0;
 								 that.faNums=0;
 								 that.options=[];
 								 that.formatData();
 							 }else {
+								 var snFields = that.parseSnFields(value);
 								 that.msg="";
 								 that.is_show=true;
 								 that.materialTitle=res.data.info.title;
 								 that.materialId=res.data.info.id;
-								 that.faDate=res.data.result[1];
-								 that.nums=res.data.result[2];
-								 that.nums=res.data.nums;
+								 that.faDate=res.data.faDate || snFields.faDate;
+								 that.faNums=res.data.faNums || snFields.faNums;
 								 that.options=res.data.mitList;
-								 console.log(res);
-								 console.log("--");
 								 that.formatData();
 							 }
 						})

+ 20 - 5
src/main/resources/views/modules/mes/mesMaterialCheckRecordForm2.html

@@ -87,11 +87,14 @@
 												<img style="width: 60px" onclick="open_img(this)" :src="item1.url" alt="">
 											</span>
 										</td>
-										<td><input type="text" v-model="item.a1" class="form-control"></td>
-										<td><input type="text" v-model="item.a2" class="form-control"></td>
-										<td><input type="text" v-model="item.a3" class="form-control"></td>
-										<td><input type="text" v-model="item.a4" class="form-control"></td>
-										<td><input type="text" v-model="item.a5" class="form-control"></td>
+										<template v-if="hasMeasureRange(item)">
+											<td><input type="text" v-model="item.a1" class="form-control"></td>
+											<td><input type="text" v-model="item.a2" class="form-control"></td>
+											<td><input type="text" v-model="item.a3" class="form-control"></td>
+											<td><input type="text" v-model="item.a4" class="form-control"></td>
+											<td><input type="text" v-model="item.a5" class="form-control"></td>
+										</template>
+										<td v-else colspan="5"></td>
 										<td>
 											<div v-if="item.type == 1">
 												<label v-if="item.result == 1"><input type="radio" v-model="item.result" value="1">合格</label>
@@ -182,6 +185,13 @@ var vm = new Vue({
 
 	},
 	methods: {
+		hasMeasureRange(item){
+			var min = item.minValue;
+			var max = item.maxValue;
+			var hasMin = min !== null && min !== undefined && min !== '' && !isNaN(Number(min));
+			var hasMax = max !== null && max !== undefined && max !== '' && !isNaN(Number(max));
+			return hasMin || hasMax;
+		},
 		formatData(){
 			for (let o in this.options){
 				// this.options[o]['result'] = "";
@@ -191,6 +201,11 @@ var vm = new Vue({
 					let fmaxval = parseFloat(this.options[o].maxValue?this.options[o].maxValue:'');
 					this.options[o].maxValue = fmaxval;
 
+					if (!this.hasMeasureRange(this.options[o])) {
+						this.options[o].result = this.options[o].result || "1";
+						continue;
+					}
+
 					let tret = "1";
 					let a1 = parseFloat(this.options[o].a1?this.options[o].a1:'');
 					let ret1 = this.checkResult(fminval,fmaxval,a1);

+ 3 - 3
src/main/resources/views/modules/mes/mesMaterialCheckRecordList.html

@@ -61,7 +61,7 @@
 $('#dataGrid').dataGrid({
 	searchForm: $("#searchForm"),
 	columnModel: [
-		{header:'${text("来料码")}', name:'sn', index:'a.sn', width:250, align:"center",frozen:true},
+		{header:'${text("来料码")}', name:'sn', index:'a.sn', width:450, align:"center",frozen:true},
 		{header:'${text("物料")}', name:'materialTitle', index:'b.title', width:200, align:"center"},
 		// {header:'${text("发货日期")}', name:'faDate', index:'a.fa_date', width:120, align:"center"},
 		// {header:'${text("发货数量")}', name:'faNums', index:'a.fa_nums', width:100, align:"center"},
@@ -85,7 +85,7 @@ $('#dataGrid').dataGrid({
 	frozen: true,
 	// 加载成功后执行事件
 	ajaxSuccess: function(data){
-		
+
 	}
 });
-</script>
+</script>

+ 28 - 30
src/main/resources/views/modules/mes/mesMoldMaintenanceForm.html

@@ -43,28 +43,6 @@
 							</div>
 						</div>
 					</div>
-				</div>
-				<div class="row">
-					<div class="col-xs-12">
-						<div class="form-group">
-							<label class="control-label col-sm-2" title="">
-								<span class="required hide">*</span> ${text('维保内容及过程')}:<i class="fa icon-question hide"></i></label>
-							<div class="col-sm-10">
-								<#form:textarea path="content" rows="4" maxlength="100" class="form-control"/>
-							</div>
-						</div>
-					</div>
-				</div>
-				<div class="row">
-					<div class="col-xs-6">
-						<div class="form-group">
-							<label class="control-label col-sm-4" title="">
-								<span class="required hide">*</span> ${text('修模类型')}:<i class="fa icon-question hide"></i></label>
-							<div class="col-sm-8">
-								<#form:input path="repairType" maxlength="64" class="form-control"/>
-							</div>
-						</div>
-					</div>
 					<div class="col-xs-6">
 						<div class="form-group">
 							<label class="control-label col-sm-4" title="">
@@ -86,18 +64,18 @@
 					<div class="col-xs-6">
 						<div class="form-group">
 							<label class="control-label col-sm-4" title="">
-								<span class="required hide">*</span> ${text('原因')}:<i class="fa icon-question hide"></i></label>
+								<span class="required hide">*</span> ${text('修模类型')}:<i class="fa icon-question hide"></i></label>
 							<div class="col-sm-8">
-								<#form:input path="reason" maxlength="64" class="form-control"/>
+								<#form:input path="repairType" maxlength="64" class="form-control"/>
 							</div>
 						</div>
 					</div>
 					<div class="col-xs-6">
 						<div class="form-group">
 							<label class="control-label col-sm-4" title="">
-								<span class="required hide">*</span> ${text('验收结果')}:<i class="fa icon-question hide"></i></label>
+								<span class="required hide">*</span> ${text('原因')}:<i class="fa icon-question hide"></i></label>
 							<div class="col-sm-8">
-								<#form:input path="acceptResult" maxlength="100" class="form-control"/>
+								<#form:input path="reason" maxlength="64" class="form-control"/>
 							</div>
 						</div>
 					</div>
@@ -106,9 +84,9 @@
 					<div class="col-xs-12">
 						<div class="form-group">
 							<label class="control-label col-sm-2" title="">
-								<span class="required hide">*</span> ${text('备注')}:<i class="fa icon-question hide"></i></label>
+								<span class="required hide">*</span> ${text('维保内容及过程')}:<i class="fa icon-question hide"></i></label>
 							<div class="col-sm-10">
-								<#form:textarea path="remarks" rows="4" maxlength="200" class="form-control"/>
+								<#form:textarea path="content" rows="4" maxlength="100" class="form-control"/>
 							</div>
 						</div>
 					</div>
@@ -117,7 +95,16 @@
 					<div class="col-xs-6">
 						<div class="form-group">
 							<label class="control-label col-sm-4" title="">
-								<span class="required hide">*</span> ${text('模数')}:<i class="fa icon-question hide"></i></label>
+								<span class="required hide">*</span> ${text('验收结果')}:<i class="fa icon-question hide"></i></label>
+							<div class="col-sm-8">
+								<#form:input path="acceptResult" maxlength="100" class="form-control"/>
+							</div>
+						</div>
+					</div>
+					<div class="col-xs-6">
+						<div class="form-group">
+							<label class="control-label col-sm-4" title="">
+								<span class="required hide">*</span> ${text('本批生产模数')}:<i class="fa icon-question hide"></i></label>
 							<div class="col-sm-8">
 								<#form:input path="munsMs" maxlength="64" class="form-control"/>
 							</div>
@@ -126,7 +113,7 @@
 					<div class="col-xs-6">
 						<div class="form-group">
 							<label class="control-label col-sm-4" title="">
-								<span class="required hide">*</span> ${text('累计模数')}:<i class="fa icon-question hide"></i></label>
+								<span class="required hide">*</span> ${text('累计生产模数')}:<i class="fa icon-question hide"></i></label>
 							<div class="col-sm-8">
 								<#form:input path="numsMsSum" maxlength="64" class="form-control"/>
 							</div>
@@ -145,6 +132,17 @@
 				<div class="row">
 					<div class="col-xs-12">
 						<div class="form-group">
+							<label class="control-label col-sm-2" title="">
+								<span class="required hide">*</span> ${text('备注')}:<i class="fa icon-question hide"></i></label>
+							<div class="col-sm-10">
+								<#form:textarea path="remarks" rows="4" maxlength="200" class="form-control"/>
+							</div>
+						</div>
+					</div>
+				</div>
+				<div class="row">
+					<div class="col-xs-12">
+						<div class="form-group">
 							<label class="control-label col-sm-2">
 								<span class="required hide">*</span> ${text('图片上传')}:</label>
 							<div class="col-sm-10">

+ 14 - 14
src/main/resources/views/modules/mes/mesMoldMaintenanceInfo.html

@@ -25,14 +25,6 @@
 					<td>${@DateUtils.formatDate(mesMoldMaintenance.maintenanceDate, 'yyyy-MM-dd HH:mm')}</td>
 				</tr>
 				<tr>
-					<th class="mpc-header">${text('维保内容及过程')}</th>
-					<td>${mesMoldMaintenance.content}</td>
-				</tr>
-				<tr>
-					<th class="mpc-header">${text('修模类型')}</th>
-					<td>${mesMoldMaintenance.repairType}</td>
-				</tr>
-				<tr>
 					<th class="mpc-header">${text('发起部门')}</th>
 					<td>${mesMoldMaintenance.initiateDept}</td>
 				</tr>
@@ -41,23 +33,27 @@
 					<td>${mesMoldMaintenance.initiateUser}</td>
 				</tr>
 				<tr>
+					<th class="mpc-header">${text('修模类型')}</th>
+					<td>${mesMoldMaintenance.repairType}</td>
+				</tr>
+				<tr>
 					<th class="mpc-header">${text('原因')}</th>
 					<td>${mesMoldMaintenance.reason}</td>
 				</tr>
 				<tr>
-					<th class="mpc-header">${text('验收结果')}</th>
-					<td>${mesMoldMaintenance.acceptResult}</td>
+					<th class="mpc-header">${text('维保内容及过程')}</th>
+					<td>${mesMoldMaintenance.content}</td>
 				</tr>
 				<tr>
-					<th class="mpc-header">${text('备注')}</th>
-					<td>${mesMoldMaintenance.remarks}</td>
+					<th class="mpc-header">${text('验收结果')}</th>
+					<td>${mesMoldMaintenance.acceptResult}</td>
 				</tr>
 				<tr>
-					<th class="mpc-header">${text('模数')}</th>
+					<th class="mpc-header">${text('本批生产模数')}</th>
 					<td>${mesMoldMaintenance.munsMs}</td>
 				</tr>
 				<tr>
-					<th class="mpc-header">${text('累计模数')}</th>
+					<th class="mpc-header">${text('累计生产模数')}</th>
 					<td>${mesMoldMaintenance.numsMsSum}</td>
 				</tr>
 				<tr>
@@ -65,6 +61,10 @@
 					<td>${mesMoldMaintenance.pcCode}</td>
 				</tr>
 				<tr>
+					<th class="mpc-header">${text('备注')}</th>
+					<td>${mesMoldMaintenance.remarks}</td>
+				</tr>
+				<tr>
 					<th class="mpc-header">${text('创建时间')}</th>
 					<td>${@DateUtils.formatDateTime(mesMoldMaintenance.createDate)}</td>
 				</tr>

+ 16 - 16
src/main/resources/views/modules/mes/mesMoldMaintenanceList.html

@@ -78,13 +78,13 @@
 					</div>
 				</div>
 				<div class="form-group">
-					<label class="control-label">${text('模数')}:</label>
+					<label class="control-label">${text('本批生产模数')}:</label>
 					<div class="control-inline">
 						<#form:input path="munsMs" maxlength="64" class="form-control width-120"/>
 					</div>
 				</div>
 				<div class="form-group">
-					<label class="control-label">${text('累计模数')}:</label>
+					<label class="control-label">${text('累计生产模数')}:</label>
 					<div class="control-inline">
 						<#form:input path="numsMsSum" maxlength="64" class="form-control width-120"/>
 					</div>
@@ -111,21 +111,21 @@
 $('#dataGrid').dataGrid({
 	searchForm: $("#searchForm"),
 	columnModel: [
-		{header:'${text("模具编号")}', name:'moldCode', index:'a.mold_code', width:120, align:"left", frozen:true, formatter: function(val, obj, row, act){
+		{header:'${text("模具编号")}', name:'moldCode', index:'a.mold_code', width:120, align:"center", frozen:true, formatter: function(val, obj, row, act){
 			return '<a href="${ctx}/mes/mesMoldMaintenance/info?id='+row.id+'" class="btnList" data-title="${text("模具维保详情")}">'+(val||row.id)+'</a>';
 		}},
-		{header:'${text("模具名称")}', name:'moldName', index:'b.mold_name', width:150, align:"left"},
+		{header:'${text("模具名称")}', name:'moldName', index:'b.mold_name', width:150, align:"center"},
 		{header:'${text("维保日期")}', name:'maintenanceDate', index:'a.maintenance_date', width:150, align:"center"},
-		{header:'${text("维保内容及过程")}', name:'content', index:'a.content', width:150, align:"left"},
-		{header:'${text("修模类型")}', name:'repairType', index:'a.repair_type', width:150, align:"left"},
-		{header:'${text("发起部门")}', name:'initiateDept', index:'a.initiate_dept', width:150, align:"left"},
-		{header:'${text("发起人")}', name:'initiateUser', index:'a.initiate_user', width:150, align:"left"},
-		{header:'${text("原因")}', name:'reason', index:'a.reason', width:150, align:"left"},
-		{header:'${text("验收结果")}', name:'acceptResult', index:'a.accept_result', width:150, align:"left"},
-		{header:'${text("备注")}', name:'remarks', index:'a.remarks', width:150, align:"left"},
-		{header:'${text("模数")}', name:'munsMs', index:'a.muns_ms', width:150, align:"left"},
-		{header:'${text("累计模数")}', name:'numsMsSum', index:'a.nums_ms_sum', width:150, align:"left"},
-		{header:'${text("批次号")}', name:'pcCode', index:'a.pc_code', width:150, align:"left"},
+		{header:'${text("发起部门")}', name:'initiateDept', index:'a.initiate_dept', width:150, align:"center"},
+		{header:'${text("发起人")}', name:'initiateUser', index:'a.initiate_user', width:150, align:"center"},
+		{header:'${text("修模类型")}', name:'repairType', index:'a.repair_type', width:150, align:"center"},
+		{header:'${text("原因")}', name:'reason', index:'a.reason', width:150, align:"center"},
+		{header:'${text("维保内容及过程")}', name:'content', index:'a.content', width:150, align:"center"},
+		{header:'${text("验收结果")}', name:'acceptResult', index:'a.accept_result', width:150, align:"center"},
+		{header:'${text("本批生产模数")}', name:'munsMs', index:'a.muns_ms', width:150, align:"center"},
+		{header:'${text("累计生产模数")}', name:'numsMsSum', index:'a.nums_ms_sum', width:150, align:"center"},
+		{header:'${text("批次号")}', name:'pcCode', index:'a.pc_code', width:150, align:"center"},
+		{header:'${text("备注")}', name:'remarks', index:'a.remarks', width:150, align:"center"},
 		{header:'${text("更新时间")}', name:'updateDate', index:'a.update_date', width:150, align:"center"},
 		{header:'${text("操作")}', name:'actions', width:120, formatter: function(val, obj, row, act){
 			var actions = [];
@@ -143,7 +143,7 @@ $('#dataGrid').dataGrid({
 	],
 	// 加载成功后执行事件
 	ajaxSuccess: function(data){
-		
+
 	}
 });
-</script>
+</script>

+ 70 - 0
src/main/resources/views/modules/mes/mesRepairItemsInfo.html

@@ -0,0 +1,70 @@
+<% layout('/layouts/default.html', {title: '返修问题清单详情', libs: []}){ %>
+<div class="main-content">
+	<div class="box box-main">
+		<div class="box-header with-border">
+			<div class="box-title">
+				<i class="fa icon-note"></i> ${text('返修问题清单详情')}
+			</div>
+			<div class="box-tools pull-right">
+				<button type="button" class="btn btn-box-tool" data-widget="collapse"><i class="fa fa-minus"></i></button>
+			</div>
+		</div>
+		<div class="box-body">
+			<div class="form-unit">${text('基本信息')}</div>
+			<table class="table table-bordered">
+				<tr>
+					<th class="mpc-header">${text('工位号')}</th>
+					<td>${mesRepairItems.oprno}</td>
+				</tr>
+				<tr>
+					<th class="mpc-header">${text('产线编号')}</th>
+					<td>${mesRepairItems.lineSn}</td>
+				</tr>
+				<tr>
+					<th class="mpc-header">${text('返修原因')}</th>
+					<td>${mesRepairItems.title}</td>
+				</tr>
+				<tr>
+					<th class="mpc-header">${text('返工动作介绍')}</th>
+					<td>${mesRepairItems.introduction}</td>
+				</tr>
+				<tr>
+					<th class="mpc-header">${text('检查要点')}</th>
+					<td>${mesRepairItems.inspectionPoints}</td>
+				</tr>
+				<tr>
+					<th class="mpc-header">${text('回归工位')}</th>
+					<td>${mesRepairItems.returnOprno}</td>
+				</tr>
+				<tr>
+					<th class="mpc-header">${text('返工类型')}</th>
+					<td>${@DictUtils.getDictLabel('mes_repair_type', mesRepairItems.type, '未知')}</td>
+				</tr>
+				<tr>
+					<th class="mpc-header">${text('是否重做总成气密')}</th>
+					<td>${@DictUtils.getDictLabel('mes_repair_item_qm', mesRepairItems.isCp, '未知')}</td>
+				</tr>
+				<tr>
+					<th class="mpc-header">${text('是否重做液冷气密')}</th>
+					<td>${@DictUtils.getDictLabel('mes_repair_item_qm', mesRepairItems.isYl, '未知')}</td>
+				</tr>
+				<tr>
+					<th class="mpc-header">${text('状态')}</th>
+					<td>${@DictUtils.getDictLabel('sys_search_status', mesRepairItems.status, '未知')}</td>
+				</tr>
+				<tr>
+					<th class="mpc-header">${text('更新日期')}</th>
+					<td>${@DateUtils.formatDateTime(mesRepairItems.updateDate)}</td>
+				</tr>
+			</table>
+		</div>
+		<div class="box-footer">
+			<div class="row">
+				<div class="col-sm-offset-2 col-sm-10">
+					<button type="button" class="btn btn-sm btn-default" id="btnCancel" onclick="js.closeCurrentTabPage()"><i class="fa fa-reply-all"></i> ${text('关 闭')}</button>
+				</div>
+			</div>
+		</div>
+	</div>
+</div>
+<% } %>

+ 4 - 2
src/main/resources/views/modules/mes/mesRepairItemsList.html

@@ -68,11 +68,13 @@ $('#dataGrid').dataGrid({
 		// }},
 		// {header:'${text("工位名称")}', name:'oprnoName', width:150, align:"center", frozen:true},
 		{header:'${text("产线编号")}', name:'lineSn', index:'a.line_sn', width:150, align:"center", frozen:true},
-		{header:'${text("返修原因")}', name:'title', index:'a.title', width:150, align:"center", frozen:true},
+		{header:'${text("返修原因")}', name:'title', index:'a.title', width:150, align:"center", frozen:true, formatter: function(val, obj, row, act){
+			return '<a href="${ctx}/mes/mesRepairItems/info?id='+row.id+'" class="btnList" data-title="${text("返修问题清单详情")}">'+(val||row.id)+'</a>';
+		}},
 		// {header:'${text("修复描述")}', name:'content', index:'a.content', width:150, align:"center"},
 		{header:'${text("返工动作介绍")}', name:'introduction', index:'a.introduction', width:150, align:"center"},
 		{header:'${text("检查要点")}', name:'inspectionPoints', index:'a.inspection_points', width:150, align:"center"},
-		// {header:'${text("回归工位")}', name:'returnOprno', index:'a.return_oprno', width:150, align:"center"},
+		{header:'${text("回归工位")}', name:'returnOprno', index:'a.return_oprno', width:150, align:"center"},
 		{header:'${text("返工类型")}', name:'type', index:'a.type', width:150, align:"center", formatter: function(val, obj, row, act){
 			return js.getDictLabel(${@DictUtils.getDictListJson('mes_repair_type')}, val, '${text("未知")}', true);
 		}},