Merge branch 'master' of http://121.40.234.130:8899/root/wuHanXinRui
This commit is contained in:
@@ -619,8 +619,8 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
/*
|
/*
|
||||||
* 判断确认类型,并进行相对应的操作
|
* 判断确认类型,并进行相对应的操作
|
||||||
*/
|
*/
|
||||||
// 投料确认: 1.1
|
// 大称投料确认: 1.1;小称投料确认:1.3
|
||||||
if (StrUtil.equals(type, "1.1")) {
|
if (StrUtil.equals(type, "1.1") || StrUtil.equals(type, "1.3")) {
|
||||||
// 更新称重记录表上报人
|
// 更新称重记录表上报人
|
||||||
JSONObject jsonDtl = dtlTab.query("formuladtl_id = '" + jsonObject.getString("formuladtl_id") + "'").uniqueResult(0);
|
JSONObject jsonDtl = dtlTab.query("formuladtl_id = '" + jsonObject.getString("formuladtl_id") + "'").uniqueResult(0);
|
||||||
jsonWeight.put("record_optid", jsonDtl.get("start_id"));
|
jsonWeight.put("record_optid", jsonDtl.get("start_id"));
|
||||||
@@ -652,8 +652,8 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
|||||||
result.put("status", "400");
|
result.put("status", "400");
|
||||||
result.put("message", "称重成功,自动确认失败");
|
result.put("message", "称重成功,自动确认失败");
|
||||||
}
|
}
|
||||||
// 投料强制确认: 1.2
|
// 大称投料强制确认: 1.2;小称投料强制确认:1.4
|
||||||
} else if (StrUtil.equals(type, "1.2")) {
|
} else if (StrUtil.equals(type, "1.2") || StrUtil.equals(type, "1.4")) {
|
||||||
// 更新称重记录表上报人
|
// 更新称重记录表上报人
|
||||||
JSONObject jsonDtl = dtlTab.query("formuladtl_id = '" + jsonObject.getString("formuladtl_id") + "'").uniqueResult(0);
|
JSONObject jsonDtl = dtlTab.query("formuladtl_id = '" + jsonObject.getString("formuladtl_id") + "'").uniqueResult(0);
|
||||||
jsonWeight.put("record_optid", jsonDtl.get("start_id"));
|
jsonWeight.put("record_optid", jsonDtl.get("start_id"));
|
||||||
|
|||||||
@@ -215,6 +215,7 @@ public class DailyplanServiceImpl implements DailyplanService {
|
|||||||
if(jret.size()>0){
|
if(jret.size()>0){
|
||||||
JSONObject form = new JSONObject();
|
JSONObject form = new JSONObject();
|
||||||
form.put("rows",jret);
|
form.put("rows",jret);
|
||||||
|
form.put("query",whereJson);
|
||||||
this.submit2(form);
|
this.submit2(form);
|
||||||
}
|
}
|
||||||
jret = WQL.getWO("QPDM_PRODUCTDAILYPLAN")
|
jret = WQL.getWO("QPDM_PRODUCTDAILYPLAN")
|
||||||
@@ -437,12 +438,16 @@ public class DailyplanServiceImpl implements DailyplanService {
|
|||||||
}
|
}
|
||||||
String captemplate_id = captemplate.getString("id");
|
String captemplate_id = captemplate.getString("id");
|
||||||
JSONArray ja = form.getJSONArray("rows");
|
JSONArray ja = form.getJSONArray("rows");
|
||||||
|
JSONObject query = form.getJSONObject("query");
|
||||||
|
String checked = query.getString("checked");
|
||||||
|
if (StrUtil.isEmpty(checked)) {
|
||||||
|
checked = "false";
|
||||||
|
}
|
||||||
|
|
||||||
JSONObject last = MPS_BD_ProductDailyPlan.query("device_id='"+ja.getJSONObject(0).getString("device_id")+"' and status='01'","planstart_date").uniqueResult(0);
|
JSONObject last = MPS_BD_ProductDailyPlan.query("device_id='"+ja.getJSONObject(0).getString("device_id")+"' and status='01'","planstart_date").uniqueResult(0);
|
||||||
if(last ==null ){
|
if(last ==null ){
|
||||||
throw new BadRequestException("日计划表此分组设备的最早一个日计划为空,没有可重排数据!");
|
throw new BadRequestException("日计划表此分组设备的最早一个日计划为空,没有可重排数据!");
|
||||||
}
|
}
|
||||||
|
|
||||||
JSONArray ja_new = new JSONArray();
|
JSONArray ja_new = new JSONArray();
|
||||||
for (int i = 0; i < ja.size(); i++) {
|
for (int i = 0; i < ja.size(); i++) {
|
||||||
JSONObject jo = ja.getJSONObject(i);
|
JSONObject jo = ja.getJSONObject(i);
|
||||||
@@ -452,8 +457,21 @@ public class DailyplanServiceImpl implements DailyplanService {
|
|||||||
MPS_BD_ProductDailyPlan.delete(jo);
|
MPS_BD_ProductDailyPlan.delete(jo);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
String nowstart_date = last.getString("planstart_date");
|
String nowstart_date = last.getString("planstart_date");
|
||||||
Date date = DateUtil.parse(nowstart_date);
|
Date date = DateUtil.parse(nowstart_date);
|
||||||
|
if(checked.equals("true")){
|
||||||
|
if (StrUtil.isNotEmpty(query.getString("nowstart_date"))) {
|
||||||
|
String nowstart_date2 = query.getString("nowstart_date").substring(0,10);
|
||||||
|
Date date2 = DateUtil.parse(nowstart_date2);
|
||||||
|
//指定日期小于最晚的日计划日期
|
||||||
|
if(date2.getTime() >= date.getTime()){
|
||||||
|
nowstart_date = nowstart_date2;
|
||||||
|
date = date2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//当天产能是否有剩余
|
//当天产能是否有剩余
|
||||||
double pcsn_num_day = 0;
|
double pcsn_num_day = 0;
|
||||||
|
|
||||||
@@ -474,7 +492,7 @@ public class DailyplanServiceImpl implements DailyplanService {
|
|||||||
int totalproducecapacity_qty = series.getInteger("totalproducecapacity_qty");
|
int totalproducecapacity_qty = series.getInteger("totalproducecapacity_qty");
|
||||||
//第一条查数据库
|
//第一条查数据库
|
||||||
if(StrUtil.isNotEmpty(nowstart_date)){
|
if(StrUtil.isNotEmpty(nowstart_date)){
|
||||||
JSONObject last2 = MPS_BD_ProductDailyPlan.query("device_id='"+jo.getString("device_id")+"'","planstart_date desc,create_time desc").uniqueResult(0);
|
JSONObject last2 = MPS_BD_ProductDailyPlan.query("device_id='"+jo.getString("device_id")+"' and planstart_date>='"+nowstart_date+"'","planstart_date desc,create_time desc").uniqueResult(0);
|
||||||
String standard_mark = jo.getString("standard_mark");
|
String standard_mark = jo.getString("standard_mark");
|
||||||
if(last2 != null ){
|
if(last2 != null ){
|
||||||
nowstart_date = last2.getString("planstart_date");
|
nowstart_date = last2.getString("planstart_date");
|
||||||
|
|||||||
@@ -127,6 +127,15 @@ public class WorkOrderServiceImpl implements WorkOrdereService {
|
|||||||
json.put("create_time", now);
|
json.put("create_time", now);
|
||||||
json.put("sysdeptid", deptId);
|
json.put("sysdeptid", deptId);
|
||||||
json.put("syscompanyid", deptId);
|
json.put("syscompanyid", deptId);
|
||||||
|
String create_mode = json.getString("create_mode");
|
||||||
|
if("01".equals(create_mode)){
|
||||||
|
String planstart_time = json.getString("planstart_time");
|
||||||
|
Date date = DateUtil.parse(planstart_time);
|
||||||
|
int days = this.getDays(json.getString("material_id"));
|
||||||
|
Date planend_date = DateUtil.offsetDay(date,days-1);
|
||||||
|
String planend_time = DateUtil.formatDate(planend_date).substring(0,10);
|
||||||
|
json.put("planend_time",planend_time+" 23:59:59");
|
||||||
|
}
|
||||||
mstTab.insert(json);
|
mstTab.insert(json);
|
||||||
this.updatePcsn(json);
|
this.updatePcsn(json);
|
||||||
}
|
}
|
||||||
@@ -167,6 +176,15 @@ public class WorkOrderServiceImpl implements WorkOrdereService {
|
|||||||
this.updatePcsn(whereJson);
|
this.updatePcsn(whereJson);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
String create_mode = whereJson.getString("create_mode");
|
||||||
|
if("01".equals(create_mode)){
|
||||||
|
String planstart_time = whereJson.getString("planstart_time");
|
||||||
|
Date date = DateUtil.parse(planstart_time);
|
||||||
|
int days = this.getDays(whereJson.getString("material_id"));
|
||||||
|
Date planend_date = DateUtil.offsetDay(date,days-1);
|
||||||
|
String planend_time = DateUtil.formatDate(planend_date).substring(0,10);
|
||||||
|
whereJson.put("planend_time",planend_time+" 23:59:59");
|
||||||
|
}
|
||||||
mstTab.update(whereJson);
|
mstTab.update(whereJson);
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -275,11 +293,12 @@ public class WorkOrderServiceImpl implements WorkOrdereService {
|
|||||||
String factorycalendar_id = calendar.getJSONObject(0).getString("factorycalendar_id");
|
String factorycalendar_id = calendar.getJSONObject(0).getString("factorycalendar_id");
|
||||||
for (int i = 0; i < ja.size(); i++) {
|
for (int i = 0; i < ja.size(); i++) {
|
||||||
JSONObject jo = ja.getJSONObject(i);
|
JSONObject jo = ja.getJSONObject(i);
|
||||||
|
|
||||||
JSONObject jsonMst = PDM_BI_WorkOrder.query("workorder_id ='" + jo.getString("workorder_id") + "' and is_delete = '0'").uniqueResult(0);
|
JSONObject jsonMst = PDM_BI_WorkOrder.query("workorder_id ='" + jo.getString("workorder_id") + "' and is_delete = '0'").uniqueResult(0);
|
||||||
if (jsonMst == null) {
|
if (jsonMst == null) {
|
||||||
throw new BadRequestException(jo.getString("workorder_code") + "当前工令记录状态异常,操作失败!");
|
throw new BadRequestException(jo.getString("workorder_code") + "当前工令记录状态异常,操作失败!");
|
||||||
}
|
}
|
||||||
|
String jo_device_id = jsonMst.getString("device_id");
|
||||||
JSONObject Formula = PDM_BI_Formula.query("workorder_id ='" + jo.getString("workorder_id") + "' and is_delete = '0' and is_audit='0' ").uniqueResult(0);
|
JSONObject Formula = PDM_BI_Formula.query("workorder_id ='" + jo.getString("workorder_id") + "' and is_delete = '0' and is_audit='0' ").uniqueResult(0);
|
||||||
if (Formula != null) {
|
if (Formula != null) {
|
||||||
throw new BadRequestException(jo.getString("workorder_code") + "工令对应配方未审核,操作失败!");
|
throw new BadRequestException(jo.getString("workorder_code") + "工令对应配方未审核,操作失败!");
|
||||||
@@ -376,7 +395,9 @@ public class WorkOrderServiceImpl implements WorkOrdereService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}else if("GX001".equals(workprocedure_code)){//配粉工序
|
}else
|
||||||
|
//配粉工序
|
||||||
|
if("GX001".equals(workprocedure_code)){
|
||||||
String planstart_date = jsonMst.getString("planstart_time").substring(0,10);
|
String planstart_date = jsonMst.getString("planstart_time").substring(0,10);
|
||||||
String nowTime = planstart_date+" 24:00:00";
|
String nowTime = planstart_date+" 24:00:00";
|
||||||
if(devices.size()>=0){
|
if(devices.size()>=0){
|
||||||
@@ -404,6 +425,12 @@ public class WorkOrderServiceImpl implements WorkOrdereService {
|
|||||||
}else{
|
}else{
|
||||||
throw new BadRequestException("未查询到满足条件的排产模板!");
|
throw new BadRequestException("未查询到满足条件的排产模板!");
|
||||||
}
|
}
|
||||||
|
//喷雾工序使用工令指定的设备生产工序任务
|
||||||
|
if("GX003".equals(workprocedure_code)){
|
||||||
|
if (StrUtil.isNotEmpty(jo_device_id)) {
|
||||||
|
jsonMst.put("device_id", jo_device_id);
|
||||||
|
}
|
||||||
|
}
|
||||||
String planstart_date = jsonMst.getString("planstart_time").substring(0,10);
|
String planstart_date = jsonMst.getString("planstart_time").substring(0,10);
|
||||||
String planstart_time = jsonMst.getString("planstart_time");
|
String planstart_time = jsonMst.getString("planstart_time");
|
||||||
//设置开始时间
|
//设置开始时间
|
||||||
@@ -818,6 +845,19 @@ public class WorkOrderServiceImpl implements WorkOrdereService {
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
public int getDays(String material_id) {
|
||||||
|
JSONArray ProcessRoutes = WQL.getWO("QPDM_PRODUCTPLANPROC").addParam("flag","5")
|
||||||
|
.addParam("material_code",material_id).process().getResultJSONArray(0);
|
||||||
|
int days = 0;
|
||||||
|
for(int i=0;i<ProcessRoutes.size();i++){
|
||||||
|
JSONObject jo = ProcessRoutes.getJSONObject(i);
|
||||||
|
int plan_time = jo.getInteger("plan_time");
|
||||||
|
days = days + (int) Math.ceil(plan_time/24.0);
|
||||||
|
}
|
||||||
|
return days;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void download(Map whereJson, HttpServletResponse response) throws IOException {
|
public void download(Map whereJson, HttpServletResponse response) throws IOException {
|
||||||
|
|||||||
@@ -255,7 +255,7 @@
|
|||||||
QUERY
|
QUERY
|
||||||
SELECT
|
SELECT
|
||||||
sum(ProcedureOffline.qty) AS total_qty,
|
sum(ProcedureOffline.qty) AS total_qty,
|
||||||
WorkOrder.device_id
|
MAX(WorkOrder.device_id) AS device_id
|
||||||
FROM
|
FROM
|
||||||
PDM_BI_WorkOrder WorkOrder
|
PDM_BI_WorkOrder WorkOrder
|
||||||
LEFT JOIN PDM_BI_ProcedureOffline ProcedureOffline ON ProcedureOffline.workorder_id = WorkOrder.workorder_id
|
LEFT JOIN PDM_BI_ProcedureOffline ProcedureOffline ON ProcedureOffline.workorder_id = WorkOrder.workorder_id
|
||||||
@@ -377,7 +377,7 @@
|
|||||||
SELECT
|
SELECT
|
||||||
sum(ProcedureOffline.qty) AS total_qty,
|
sum(ProcedureOffline.qty) AS total_qty,
|
||||||
count(WorkOrder.workorder_id) AS in_num,
|
count(WorkOrder.workorder_id) AS in_num,
|
||||||
WorkOrder.device_id
|
MAX(WorkOrder.device_id) AS device_id
|
||||||
FROM
|
FROM
|
||||||
PDM_BI_WorkOrder WorkOrder
|
PDM_BI_WorkOrder WorkOrder
|
||||||
LEFT JOIN PDM_BI_ProcedureOffline ProcedureOffline ON ProcedureOffline.workorder_id = WorkOrder.workorder_id
|
LEFT JOIN PDM_BI_ProcedureOffline ProcedureOffline ON ProcedureOffline.workorder_id = WorkOrder.workorder_id
|
||||||
|
|||||||
@@ -216,11 +216,15 @@ public class FormulaServiceImpl implements FormulaService {
|
|||||||
double RF_total = 0;
|
double RF_total = 0;
|
||||||
//删除明细
|
//删除明细
|
||||||
PDM_BI_FormulaDtl.delete("formula_id='"+formula_id+"'");
|
PDM_BI_FormulaDtl.delete("formula_id='"+formula_id+"'");
|
||||||
|
int mn =1;
|
||||||
for(int i = 0;i<tableDtl.size();i++){
|
for(int i = 0;i<tableDtl.size();i++){
|
||||||
JSONObject jo = tableDtl.getJSONObject(i);
|
JSONObject jo = tableDtl.getJSONObject(i);
|
||||||
String formuladtl_id = jo.getString("formuladtl_id");
|
String formuladtl_id = jo.getString("formuladtl_id");
|
||||||
jo.put("seq_no",(i+1)+"");
|
if(jo.getDouble("formula_qty")<=0){
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
jo.put("seq_no",(mn)+"");
|
||||||
|
mn++;
|
||||||
if("1".equals(jo.getString("is_need_manage"))){
|
if("1".equals(jo.getString("is_need_manage"))){
|
||||||
billpure_qty = billpure_qty+jo.getDouble("formula_qty");
|
billpure_qty = billpure_qty+jo.getDouble("formula_qty");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -336,6 +336,33 @@ public class DevicerepairmstServiceImpl implements DevicerepairmstService {
|
|||||||
WQLObject reDtlTab = WQLObject.getWQLObject("EM_BI_DeviceRepairDtl"); // 设备维修单明细表
|
WQLObject reDtlTab = WQLObject.getWQLObject("EM_BI_DeviceRepairDtl"); // 设备维修单明细表
|
||||||
WQLObject fileTab = WQLObject.getWQLObject("EM_BI_EquipmentFile"); // 档案表
|
WQLObject fileTab = WQLObject.getWQLObject("EM_BI_EquipmentFile"); // 档案表
|
||||||
WQLObject lifeTab = WQLObject.getWQLObject("EM_BI_DeviceLifeCycle"); // 设备生命周期表
|
WQLObject lifeTab = WQLObject.getWQLObject("EM_BI_DeviceLifeCycle"); // 设备生命周期表
|
||||||
|
WQLObject recordTab = WQLObject.getWQLObject("EM_BI_DeviceRepairRecord"); // 设备维修单情况记录表
|
||||||
|
|
||||||
|
// 校验设备维修情况不能为空
|
||||||
|
String fault_comment = whereJson.getString("fault_comment"); // 故障描述
|
||||||
|
String fault_cause = whereJson.getString("fault_cause"); // 故障原因
|
||||||
|
String fault_analysis = whereJson.getString("fault_analysis"); // 问题分析
|
||||||
|
String measure = whereJson.getString("measure"); // 处理措施
|
||||||
|
if (ObjectUtil.isEmpty(fault_comment)) throw new BadRequestException("故障描述不能为空");
|
||||||
|
if (ObjectUtil.isEmpty(fault_cause)) throw new BadRequestException("故障原因不能为空");
|
||||||
|
if (ObjectUtil.isEmpty(fault_analysis)) throw new BadRequestException("问题分析不能为空");
|
||||||
|
if (ObjectUtil.isEmpty(measure)) throw new BadRequestException("处理措施不能为空");
|
||||||
|
|
||||||
|
JSONObject jsonRord = recordTab.query("repair_id = '" + whereJson.getString("repair_id") + "'").uniqueResult(0);
|
||||||
|
if (ObjectUtil.isNotEmpty(jsonRord)) {
|
||||||
|
recordTab.delete("repair_id = '"+whereJson.getString("repair_id")+"'");
|
||||||
|
}
|
||||||
|
// 重新插入表
|
||||||
|
JSONObject jsonObject = new JSONObject();
|
||||||
|
jsonObject.put("repair_record_id", IdUtil.getSnowflake(1,1).nextId());
|
||||||
|
jsonObject.put("repair_id", whereJson.getString("repair_id"));
|
||||||
|
jsonObject.put("devicerecord_id", whereJson.getString("devicerecord_id"));
|
||||||
|
jsonObject.put("inputdate", DateUtil.today());
|
||||||
|
jsonObject.put("fault_comment", fault_comment);
|
||||||
|
jsonObject.put("fault_cause", fault_cause);
|
||||||
|
jsonObject.put("fault_analysis", fault_analysis);
|
||||||
|
jsonObject.put("measure", measure);
|
||||||
|
recordTab.insert(jsonObject);
|
||||||
|
|
||||||
// 1.判断维修单明细中是否完成 都为是,不是则报错
|
// 1.判断维修单明细中是否完成 都为是,不是则报错
|
||||||
JSONArray reDtlArr = reDtlTab.query("repair_id = '" + whereJson.getString("repair_id") + "'").getResultJSONArray(0);
|
JSONArray reDtlArr = reDtlTab.query("repair_id = '" + whereJson.getString("repair_id") + "'").getResultJSONArray(0);
|
||||||
@@ -379,6 +406,7 @@ public class DevicerepairmstServiceImpl implements DevicerepairmstService {
|
|||||||
|
|
||||||
WQLObject reMstTab = WQLObject.getWQLObject("EM_BI_DeviceRepairMst"); // 设备维修单主表
|
WQLObject reMstTab = WQLObject.getWQLObject("EM_BI_DeviceRepairMst"); // 设备维修单主表
|
||||||
WQLObject reDtlTab = WQLObject.getWQLObject("EM_BI_DeviceRepairDtl"); // 设备维修单明细表
|
WQLObject reDtlTab = WQLObject.getWQLObject("EM_BI_DeviceRepairDtl"); // 设备维修单明细表
|
||||||
|
WQLObject recordTab = WQLObject.getWQLObject("EM_BI_DeviceRepairRecord"); // 设备维修单情况记录表
|
||||||
|
|
||||||
// 1.更新维修主表
|
// 1.更新维修主表
|
||||||
JSONObject jsonReMst = reMstTab.query("repair_id = '" + whereJson.getString("repair_id") + "'").uniqueResult(0);
|
JSONObject jsonReMst = reMstTab.query("repair_id = '" + whereJson.getString("repair_id") + "'").uniqueResult(0);
|
||||||
@@ -394,6 +422,23 @@ public class DevicerepairmstServiceImpl implements DevicerepairmstService {
|
|||||||
reDtlTab.update(jsonRedtl);
|
reDtlTab.update(jsonRedtl);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 3.插入设备维修单情况记录表
|
||||||
|
JSONObject jsonRd = recordTab.query("repair_id = '" + whereJson.getString("repair_id") + "'").uniqueResult(0);
|
||||||
|
if (ObjectUtil.isNotEmpty(jsonRd)) {
|
||||||
|
recordTab.delete("repair_id = '"+whereJson.getString("repair_id")+"'");
|
||||||
|
}
|
||||||
|
|
||||||
|
JSONObject json = new JSONObject();
|
||||||
|
json.put("repair_record_id", IdUtil.getSnowflake(1,1).nextId());
|
||||||
|
json.put("repair_id", whereJson.getString("repair_id"));
|
||||||
|
json.put("devicerecord_id", whereJson.getString("devicerecord_id"));
|
||||||
|
json.put("inputdate", DateUtil.today());
|
||||||
|
json.put("fault_comment", whereJson.getString("fault_comment"));
|
||||||
|
json.put("fault_cause", whereJson.getString("fault_cause"));
|
||||||
|
json.put("fault_analysis", whereJson.getString("fault_analysis"));
|
||||||
|
json.put("measure", whereJson.getString("measure"));
|
||||||
|
recordTab.insert(json);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -266,17 +266,22 @@
|
|||||||
file.device_name,
|
file.device_name,
|
||||||
file.extend_code,
|
file.extend_code,
|
||||||
d1.name AS dept_name,
|
d1.name AS dept_name,
|
||||||
d2.name AS use_name
|
d2.name AS use_name,
|
||||||
|
r.fault_comment,
|
||||||
|
r.fault_cause,
|
||||||
|
r.fault_analysis,
|
||||||
|
r.measure
|
||||||
FROM
|
FROM
|
||||||
EM_BI_DeviceRepairMst mst
|
EM_BI_DeviceRepairMst mst
|
||||||
LEFT JOIN EM_BI_EquipmentFile file ON file.devicerecord_id = mst.devicerecord_id
|
LEFT JOIN EM_BI_EquipmentFile file ON file.devicerecord_id = mst.devicerecord_id
|
||||||
LEFT JOIN md_pb_classstandard class ON file.material_type_id = class.class_id
|
LEFT JOIN md_pb_classstandard class ON file.material_type_id = class.class_id
|
||||||
LEFT JOIN sys_dept d1 ON file.belong_deptid = d1.dept_id
|
LEFT JOIN sys_dept d1 ON file.belong_deptid = d1.dept_id
|
||||||
LEFT JOIN sys_dept d2 ON file.use_groupid = d2.dept_id
|
LEFT JOIN sys_dept d2 ON file.use_groupid = d2.dept_id
|
||||||
|
LEFT JOIN EM_BI_DeviceRepairRecord r ON r.repair_id = mst.repair_id
|
||||||
WHERE
|
WHERE
|
||||||
mst.is_delete = '0'
|
mst.is_delete = '0'
|
||||||
AND file.is_delete = '0'
|
AND file.is_delete = '0'
|
||||||
AND mst.invstatus not in ('01')
|
AND mst.invstatus not in ('01','04')
|
||||||
|
|
||||||
OPTION 输入.device_code <> ""
|
OPTION 输入.device_code <> ""
|
||||||
(file.device_code like 输入.device_code or
|
(file.device_code like 输入.device_code or
|
||||||
@@ -331,7 +336,7 @@
|
|||||||
WHERE
|
WHERE
|
||||||
mst.is_delete = '0'
|
mst.is_delete = '0'
|
||||||
AND file.is_delete = '0'
|
AND file.is_delete = '0'
|
||||||
AND mst.invstatus in ('03','04','05')
|
AND mst.invstatus in ('04')
|
||||||
|
|
||||||
OPTION 输入.device_code <> ""
|
OPTION 输入.device_code <> ""
|
||||||
(file.device_code like 输入.device_code or
|
(file.device_code like 输入.device_code or
|
||||||
|
|||||||
@@ -54,7 +54,9 @@
|
|||||||
MAX(class.class_name) AS class_name,
|
MAX(class.class_name) AS class_name,
|
||||||
MAX(file.device_code) AS device_code,
|
MAX(file.device_code) AS device_code,
|
||||||
MAX(file.device_model) AS device_model,
|
MAX(file.device_model) AS device_model,
|
||||||
re.devicerecord_id
|
re.devicerecord_id,
|
||||||
|
file.device_name,
|
||||||
|
file.extend_code
|
||||||
FROM
|
FROM
|
||||||
EM_BI_DeviceRepairRequest re
|
EM_BI_DeviceRepairRequest re
|
||||||
LEFT JOIN EM_BI_EquipmentFile file ON file.devicerecord_id = re.devicerecord_id
|
LEFT JOIN EM_BI_EquipmentFile file ON file.devicerecord_id = re.devicerecord_id
|
||||||
@@ -106,7 +108,6 @@
|
|||||||
pari.outsourceaskfor_optid,
|
pari.outsourceaskfor_optid,
|
||||||
pari.confirm_time,
|
pari.confirm_time,
|
||||||
pari.audit_time,
|
pari.audit_time,
|
||||||
pari.product_person_name,
|
|
||||||
pari.update_optname
|
pari.update_optname
|
||||||
FROM
|
FROM
|
||||||
EM_BI_DeviceRepairRequest re
|
EM_BI_DeviceRepairRequest re
|
||||||
|
|||||||
@@ -276,12 +276,12 @@
|
|||||||
mst.invstatus
|
mst.invstatus
|
||||||
WHEN '01' THEN '生成'
|
WHEN '01' THEN '生成'
|
||||||
WHEN '02' THEN '提交'
|
WHEN '02' THEN '提交'
|
||||||
WHEN '03' THEN '开始'
|
WHEN '03' THEN '维修开始'
|
||||||
WHEN '04' THEN '委外维修'
|
WHEN '04' THEN '委外维修'
|
||||||
WHEN '05' THEN '委外验收'
|
WHEN '05' THEN '委外验收'
|
||||||
WHEN '06' THEN '结束'
|
WHEN '06' THEN '维修结束'
|
||||||
WHEN '07' THEN '确认'
|
WHEN '07' THEN '班组确认'
|
||||||
WHEN '99' THEN '审核'
|
WHEN '99' THEN '审核完毕'
|
||||||
END
|
END
|
||||||
) AS invstatus,
|
) AS invstatus,
|
||||||
mst.real_start_date,
|
mst.real_start_date,
|
||||||
@@ -332,12 +332,12 @@
|
|||||||
CASE mst.invstatus
|
CASE mst.invstatus
|
||||||
WHEN '01' THEN '生成'
|
WHEN '01' THEN '生成'
|
||||||
WHEN '02' THEN '提交'
|
WHEN '02' THEN '提交'
|
||||||
WHEN '03' THEN '开始'
|
WHEN '03' THEN '维修开始'
|
||||||
WHEN '04' THEN '委外维修'
|
WHEN '04' THEN '委外维修'
|
||||||
WHEN '05' THEN '委外验收'
|
WHEN '05' THEN '委外验收'
|
||||||
WHEN '06' THEN '结束'
|
WHEN '06' THEN '维修结束'
|
||||||
WHEN '07' THEN '确认'
|
WHEN '07' THEN '班组确认'
|
||||||
WHEN '99' THEN '审核'
|
WHEN '99' THEN '审核完毕'
|
||||||
END
|
END
|
||||||
)
|
)
|
||||||
END
|
END
|
||||||
@@ -368,6 +368,7 @@
|
|||||||
st.is_delete = '0'
|
st.is_delete = '0'
|
||||||
AND (st.status <> '99')
|
AND (st.status <> '99')
|
||||||
AND mst.source_bill_type = 'BXD'
|
AND mst.source_bill_type = 'BXD'
|
||||||
|
AND st.is_passed = '1'
|
||||||
|
|
||||||
UNION
|
UNION
|
||||||
|
|
||||||
@@ -388,10 +389,10 @@
|
|||||||
mst.invstatus
|
mst.invstatus
|
||||||
WHEN '01' THEN '生成'
|
WHEN '01' THEN '生成'
|
||||||
WHEN '02' THEN '提交'
|
WHEN '02' THEN '提交'
|
||||||
WHEN '03' THEN '开始'
|
WHEN '03' THEN '保养开始'
|
||||||
WHEN '04' THEN '结束'
|
WHEN '04' THEN '保养结束'
|
||||||
WHEN '05' THEN '确认'
|
WHEN '05' THEN '班组确认'
|
||||||
WHEN '99' THEN '审核'
|
WHEN '99' THEN '审核完毕'
|
||||||
END
|
END
|
||||||
) AS invstatus,
|
) AS invstatus,
|
||||||
mst.real_start_date,
|
mst.real_start_date,
|
||||||
|
|||||||
@@ -47,6 +47,13 @@ public class DevicemaintenanceplanmstController {
|
|||||||
return new ResponseEntity<>(devicemaintenanceplanmstService.queryDevice(whereJson, page), HttpStatus.OK);
|
return new ResponseEntity<>(devicemaintenanceplanmstService.queryDevice(whereJson, page), HttpStatus.OK);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@GetMapping("/queryDevice2")
|
||||||
|
@Log("查询设备档案2")
|
||||||
|
@ApiOperation("查询设备档案2")
|
||||||
|
public ResponseEntity<Object> queryDevice2(@RequestParam Map whereJson, Pageable page) {
|
||||||
|
return new ResponseEntity<>(devicemaintenanceplanmstService.queryDevice2(whereJson, page), HttpStatus.OK);
|
||||||
|
}
|
||||||
|
|
||||||
@PostMapping
|
@PostMapping
|
||||||
@Log("新增设备保养计划维护")
|
@Log("新增设备保养计划维护")
|
||||||
@ApiOperation("新增设备保养计划维护")
|
@ApiOperation("新增设备保养计划维护")
|
||||||
|
|||||||
@@ -82,6 +82,15 @@ public interface DevicemaintenanceplanmstService {
|
|||||||
*/
|
*/
|
||||||
Map<String, Object> queryDevice(Map whereJson, Pageable page);
|
Map<String, Object> queryDevice(Map whereJson, Pageable page);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询数据分页
|
||||||
|
*
|
||||||
|
* @param whereJson 条件
|
||||||
|
* @param page 分页参数
|
||||||
|
* @return Map<String, Object>
|
||||||
|
*/
|
||||||
|
Map<String, Object> queryDevice2(Map whereJson, Pageable page);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取明细
|
* 获取明细
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -45,6 +45,7 @@ import cn.hutool.core.util.ObjectUtil;
|
|||||||
@Slf4j
|
@Slf4j
|
||||||
public class DevicemaintenanceplanmstServiceImpl implements DevicemaintenanceplanmstService {
|
public class DevicemaintenanceplanmstServiceImpl implements DevicemaintenanceplanmstService {
|
||||||
private final ClassstandardService classstandardService;
|
private final ClassstandardService classstandardService;
|
||||||
|
private final DeptService deptService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Map<String, Object> queryAll(Map whereJson, Pageable page) {
|
public Map<String, Object> queryAll(Map whereJson, Pageable page) {
|
||||||
@@ -244,6 +245,38 @@ public class DevicemaintenanceplanmstServiceImpl implements Devicemaintenancepla
|
|||||||
return json;
|
return json;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Map<String, Object> queryDevice2(Map whereJson, Pageable page) {
|
||||||
|
DeptService deptService = SpringContextHolder.getBean(DeptService.class);
|
||||||
|
String device_code = MapUtil.getStr(whereJson, "device_code");
|
||||||
|
// 查询设备档案
|
||||||
|
HashMap<String, String> map = new HashMap<>();
|
||||||
|
map.put("flag", "4");
|
||||||
|
if (ObjectUtil.isNotEmpty(device_code)) map.put("device_code", "%"+device_code+"%");
|
||||||
|
|
||||||
|
String dept_id = MapUtil.getStr(whereJson, "dept_id");
|
||||||
|
if (!StrUtil.isEmpty(dept_id)) {
|
||||||
|
String deptIds = deptService.getChildIdStr(Long.parseLong(dept_id));
|
||||||
|
map.put("deptIds", deptIds);
|
||||||
|
}
|
||||||
|
|
||||||
|
String use_id = MapUtil.getStr(whereJson, "use_id");
|
||||||
|
if (!StrUtil.isEmpty(use_id)) {
|
||||||
|
String useIds = deptService.getChildIdStr(Long.parseLong(use_id));
|
||||||
|
map.put("useIds", useIds);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取当前登陆用户
|
||||||
|
Long currentUserId = SecurityUtils.getCurrentUserId();
|
||||||
|
String dept_str = deptService.getChildIdStr(currentUserId);
|
||||||
|
if (ObjectUtil.isNotEmpty(dept_str)) {
|
||||||
|
map.put("dept_str",dept_str);
|
||||||
|
}
|
||||||
|
|
||||||
|
JSONObject json = WQL.getWO("EM_BIDEVICEMAINTENANCEPLAN001").addParamMap(map).pageQuery(WqlUtil.getHttpContext(page), "file.update_time DESC");
|
||||||
|
return json;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public JSONArray getDtl(JSONObject whereJson) {
|
public JSONArray getDtl(JSONObject whereJson) {
|
||||||
|
|||||||
@@ -115,7 +115,7 @@
|
|||||||
WHERE
|
WHERE
|
||||||
mst.is_delete = '0'
|
mst.is_delete = '0'
|
||||||
AND file.is_delete = '0'
|
AND file.is_delete = '0'
|
||||||
AND mst.invstatus in ('07','99')
|
AND mst.invstatus in ('05','99')
|
||||||
|
|
||||||
OPTION 输入.device_code <> ""
|
OPTION 输入.device_code <> ""
|
||||||
(file.device_code like 输入.device_code or
|
(file.device_code like 输入.device_code or
|
||||||
|
|||||||
@@ -15,6 +15,7 @@
|
|||||||
#################################################
|
#################################################
|
||||||
输入.flag TYPEAS s_string
|
输入.flag TYPEAS s_string
|
||||||
输入.classIds TYPEAS f_string
|
输入.classIds TYPEAS f_string
|
||||||
|
输入.dept_str TYPEAS f_string
|
||||||
输入.deptIds TYPEAS f_string
|
输入.deptIds TYPEAS f_string
|
||||||
输入.useIds TYPEAS f_string
|
输入.useIds TYPEAS f_string
|
||||||
输入.device_code TYPEAS s_string
|
输入.device_code TYPEAS s_string
|
||||||
@@ -154,5 +155,41 @@
|
|||||||
ENDQUERY
|
ENDQUERY
|
||||||
ENDIF
|
ENDIF
|
||||||
|
|
||||||
|
IF 输入.flag = "4"
|
||||||
|
PAGEQUERY
|
||||||
|
SELECT
|
||||||
|
file.*,
|
||||||
|
class.class_name,
|
||||||
|
work.workprocedure_name,
|
||||||
|
d1.name AS dept_name,
|
||||||
|
d2.name AS use_name
|
||||||
|
FROM
|
||||||
|
EM_BI_EquipmentFile file
|
||||||
|
LEFT JOIN md_pb_classstandard class ON file.material_type_id = class.class_id
|
||||||
|
LEFT JOIN pdm_bi_workprocedure work ON file.workprocedure_id = work.workprocedure_id
|
||||||
|
LEFT JOIN sys_dept d1 ON file.belong_deptid = d1.dept_id
|
||||||
|
LEFT JOIN sys_dept d2 ON file.use_groupid = d2.dept_id
|
||||||
|
WHERE
|
||||||
|
file.is_delete = '0'
|
||||||
|
AND file.status not in (90,91)
|
||||||
|
AND d2.dept_id in 输入.dept_str
|
||||||
|
|
||||||
|
OPTION 输入.device_code <> ""
|
||||||
|
(file.device_code like 输入.device_code or
|
||||||
|
file.device_name like 输入.device_code)
|
||||||
|
ENDOPTION
|
||||||
|
|
||||||
|
OPTION 输入.deptIds <> ""
|
||||||
|
d1.dept_id in 输入.deptIds
|
||||||
|
ENDOPTION
|
||||||
|
|
||||||
|
OPTION 输入.useIds <> ""
|
||||||
|
d2.dept_id in 输入.useIds
|
||||||
|
ENDOPTION
|
||||||
|
|
||||||
|
ENDSELECT
|
||||||
|
ENDPAGEQUERY
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -212,9 +212,10 @@ public class StatisticalReportServiceImpl implements StatisticalReportService {
|
|||||||
JSONArray rows = new JSONArray();
|
JSONArray rows = new JSONArray();
|
||||||
for (int i = 0; i < jsonArr.size(); i++) {
|
for (int i = 0; i < jsonArr.size(); i++) {
|
||||||
JSONObject row = jsonArr.getJSONObject(i);
|
JSONObject row = jsonArr.getJSONObject(i);
|
||||||
|
String material_code = row.getString("material_code");
|
||||||
JSONObject bom = WQLObject.getWQLObject("md_pd_productbom").query("material_id = '"+row.get("material_id")+"'").uniqueResult(0);
|
JSONObject bom = WQLObject.getWQLObject("md_pd_productbom").query("material_id = '"+row.get("material_id")+"'").uniqueResult(0);
|
||||||
if (ObjectUtil.isEmpty(bom)){
|
if (ObjectUtil.isEmpty(bom)){
|
||||||
throw new BadRequestException("未查询到该产品对应BOM信息");
|
throw new BadRequestException("未查询到该产品 "+material_code+" 对应BOM信息");
|
||||||
}
|
}
|
||||||
row.put("1",row.getString("planstart_date"));
|
row.put("1",row.getString("planstart_date"));
|
||||||
row.put("2",row.getString("old_mark"));
|
row.put("2",row.getString("old_mark"));
|
||||||
|
|||||||
@@ -58,14 +58,14 @@
|
|||||||
SELECT
|
SELECT
|
||||||
MAX( mb.material_code ) AS material_code,
|
MAX( mb.material_code ) AS material_code,
|
||||||
SUM( off.qty ) AS qty,
|
SUM( off.qty ) AS qty,
|
||||||
off.material_id,
|
MAX( off.material_id) AS material_id,
|
||||||
off.pcsn,
|
MAX( off.pcsn) AS pcsn,
|
||||||
MAX( off.create_time ) AS create_time,
|
MAX( off.create_time ) AS create_time,
|
||||||
MAX( off.create_name ) AS create_name,
|
MAX( off.create_name ) AS create_name,
|
||||||
MAX( wo.planend_time ) AS planend_time,
|
MAX( wo.planend_time ) AS planend_time,
|
||||||
MAX( wo.realend_time ) AS realend_time,
|
MAX( wo.realend_time ) AS realend_time,
|
||||||
datediff (MAX( wo.planend_time ),MAX( wo.realend_time )) AS off_days,
|
datediff (MAX( wo.planend_time ),MAX( wo.realend_time )) AS off_days,
|
||||||
ext.old_mark
|
MAX( ext.old_mark) AS old_mark
|
||||||
FROM
|
FROM
|
||||||
pdm_bi_procedureoffline off
|
pdm_bi_procedureoffline off
|
||||||
LEFT JOIN pdm_bi_workorder wo ON wo.workorder_id = off.workorder_id
|
LEFT JOIN pdm_bi_workorder wo ON wo.workorder_id = off.workorder_id
|
||||||
@@ -446,10 +446,12 @@
|
|||||||
plan.product_num,
|
plan.product_num,
|
||||||
ext.old_mark,
|
ext.old_mark,
|
||||||
plan.product_weight,
|
plan.product_weight,
|
||||||
plan.material_id
|
plan.material_id,
|
||||||
|
materialbase.material_code
|
||||||
FROM
|
FROM
|
||||||
mps_bd_productdailyplan plan
|
mps_bd_productdailyplan plan
|
||||||
LEFT JOIN md_me_producmaterialext ext ON ext.material_id = plan.material_id
|
LEFT JOIN md_me_producmaterialext ext ON ext.material_id = plan.material_id
|
||||||
|
LEFT JOIN md_me_materialbase materialbase ON materialbase.material_id = plan.material_id
|
||||||
WHERE
|
WHERE
|
||||||
1=1
|
1=1
|
||||||
OPTION 输入.begin_time <> ""
|
OPTION 输入.begin_time <> ""
|
||||||
|
|||||||
@@ -57,7 +57,18 @@
|
|||||||
</el-form>
|
</el-form>
|
||||||
</div>
|
</div>
|
||||||
<!--如果想在工具栏加入更多按钮,可以使用插槽方式, slot = 'left' or 'right'-->
|
<!--如果想在工具栏加入更多按钮,可以使用插槽方式, slot = 'left' or 'right'-->
|
||||||
<crudOperation :permission="permission" />
|
<crudOperation :permission="permission">
|
||||||
|
<el-button
|
||||||
|
slot="right"
|
||||||
|
class="filter-item"
|
||||||
|
type="success"
|
||||||
|
icon="el-icon-printer"
|
||||||
|
size="mini"
|
||||||
|
@click="print"
|
||||||
|
>
|
||||||
|
打印
|
||||||
|
</el-button>
|
||||||
|
</crudOperation>
|
||||||
<!--表单组件-->
|
<!--表单组件-->
|
||||||
<el-dialog :close-on-click-modal="false" :before-close="crud.cancelCU" :visible.sync="crud.status.cu > 0 || crud.status.view" :title="crud.status.title" width="700px">
|
<el-dialog :close-on-click-modal="false" :before-close="crud.cancelCU" :visible.sync="crud.status.cu > 0 || crud.status.view" :title="crud.status.title" width="700px">
|
||||||
<el-form ref="form" :model="form" :rules="rules" size="mini" label-width="100px">
|
<el-form ref="form" :model="form" :rules="rules" size="mini" label-width="100px">
|
||||||
@@ -253,6 +264,7 @@ import crudOperation from '@crud/CRUD.operation'
|
|||||||
import udOperation from '@crud/UD.operation'
|
import udOperation from '@crud/UD.operation'
|
||||||
import pagination from '@crud/Pagination'
|
import pagination from '@crud/Pagination'
|
||||||
import crudWorkProcedure from '@/api/wms/basedata/pdm/workProcedure'
|
import crudWorkProcedure from '@/api/wms/basedata/pdm/workProcedure'
|
||||||
|
import {getLodop} from "@/assets/js/lodop/LodopFuncs";
|
||||||
|
|
||||||
const defaultForm = { device_id: null, device_code: null, device_name: null, device_model: null, device_specification: null, device_attribute_scode: null, is_produceuse: null, manufacturer: null, remark: null, is_active: '1', extend_code: null, workprocedure_id: null, workprocedure_code: null, workprocedure_name: null, create_id: null, create_name: null, create_time: null, is_delete: null, devicebill_id: null, device_capacity_qty: null, honor_time: null }
|
const defaultForm = { device_id: null, device_code: null, device_name: null, device_model: null, device_specification: null, device_attribute_scode: null, is_produceuse: null, manufacturer: null, remark: null, is_active: '1', extend_code: null, workprocedure_id: null, workprocedure_code: null, workprocedure_name: null, create_id: null, create_name: null, create_time: null, is_delete: null, devicebill_id: null, device_capacity_qty: null, honor_time: null }
|
||||||
export default {
|
export default {
|
||||||
@@ -356,6 +368,26 @@ export default {
|
|||||||
return item.name
|
return item.name
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
print() {
|
||||||
|
const _selectData = this.$refs.table.selection
|
||||||
|
if (!_selectData || _selectData.length < 1) {
|
||||||
|
this.crud.notify('请选择一条记录', CRUD.NOTIFICATION_TYPE.INFO)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
for (let i = 0; i < _selectData.length; i++) {
|
||||||
|
const code = _selectData[i].device_code
|
||||||
|
const LODOP = getLodop()
|
||||||
|
LODOP.SET_SHOW_MODE('HIDE_DISBUTTIN_SETUP', 1)// 隐藏那些无效按钮
|
||||||
|
// 打印纸张大小设置https://www.it610.com/article/2094844.html
|
||||||
|
LODOP.SET_PRINT_PAGESIZE(1, '50mm', '30mm', '')
|
||||||
|
// LODOP.ADD_PRINT_RECT('0mm', '0mm', '48mm', '28mm', 0, 1)
|
||||||
|
LODOP.ADD_PRINT_BARCODE('4.3mm', '8.2mm', '40mm', '20mm', '128Auto', code)
|
||||||
|
// LODOP.PREVIEW()// 预览
|
||||||
|
LODOP.PRINT()// 打印
|
||||||
|
this.crud.notify('打印成功', CRUD.NOTIFICATION_TYPE.SUCCESS)
|
||||||
|
this.crud.toQuery()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="app-container">
|
<div class="app-container" v-loading.fullscreen.lock="fullscreenLoading">
|
||||||
<!--工具栏-->
|
<!--工具栏-->
|
||||||
<div class="head-container">
|
<div class="head-container">
|
||||||
<div v-if="crud.props.searchToggle">
|
<div v-if="crud.props.searchToggle">
|
||||||
@@ -51,7 +51,18 @@
|
|||||||
</el-form>
|
</el-form>
|
||||||
</div>
|
</div>
|
||||||
<!--如果想在工具栏加入更多按钮,可以使用插槽方式, slot = 'left' or 'right'-->
|
<!--如果想在工具栏加入更多按钮,可以使用插槽方式, slot = 'left' or 'right'-->
|
||||||
<crudOperation :permission="permission" />
|
<crudOperation :permission="permission">
|
||||||
|
<el-button
|
||||||
|
slot="right"
|
||||||
|
class="filter-item"
|
||||||
|
type="success"
|
||||||
|
icon="el-icon-position"
|
||||||
|
size="mini"
|
||||||
|
@click="synchronize"
|
||||||
|
>
|
||||||
|
同步物料编码
|
||||||
|
</el-button>
|
||||||
|
</crudOperation>
|
||||||
<!--表格渲染-->
|
<!--表格渲染-->
|
||||||
<el-table ref="table" v-loading="crud.loading" :data="crud.data" size="mini" style="width: 100%;" @selection-change="crud.selectionChangeHandler">
|
<el-table ref="table" v-loading="crud.loading" :data="crud.data" size="mini" style="width: 100%;" @selection-change="crud.selectionChangeHandler">
|
||||||
<el-table-column type="selection" width="55" />
|
<el-table-column type="selection" width="55" />
|
||||||
@@ -125,6 +136,7 @@ export default {
|
|||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
fullscreenLoading: false,
|
||||||
classes: [],
|
classes: [],
|
||||||
class_idStr: null,
|
class_idStr: null,
|
||||||
materOpt_code: '23',
|
materOpt_code: '23',
|
||||||
@@ -200,6 +212,15 @@ export default {
|
|||||||
return obj
|
return obj
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
},
|
||||||
|
synchronize() {
|
||||||
|
this.fullscreenLoading = true
|
||||||
|
crudMaterialbase.synchronize(this.crud.query).then(res => {
|
||||||
|
this.fullscreenLoading = false
|
||||||
|
this.crud.notify('同步成功!', CRUD.NOTIFICATION_TYPE.SUCCESS)
|
||||||
|
}).catch(() => {
|
||||||
|
this.fullscreenLoading = false
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -34,7 +34,6 @@
|
|||||||
<!--左侧插槽-->
|
<!--左侧插槽-->
|
||||||
<slot name="left" />
|
<slot name="left" />
|
||||||
<el-button slot="left" type="info" @click="dialogVisible = false">关闭</el-button>
|
<el-button slot="left" type="info" @click="dialogVisible = false">关闭</el-button>
|
||||||
<el-button slot="left" type="primary" @click="submit">保存</el-button>
|
|
||||||
</span>
|
</span>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
@@ -99,7 +98,7 @@ export default {
|
|||||||
cxjList: [],
|
cxjList: [],
|
||||||
XLList: [],
|
XLList: [],
|
||||||
fullscreenLoading: false,
|
fullscreenLoading: false,
|
||||||
queryrow: { device_id: '', status: '01' },
|
queryrow: { device_id: '', status: '01', nowstart_date: '', checked: '' },
|
||||||
sortable: null,
|
sortable: null,
|
||||||
rows: []
|
rows: []
|
||||||
}
|
}
|
||||||
@@ -127,8 +126,10 @@ export default {
|
|||||||
* 接受父组件传值
|
* 接受父组件传值
|
||||||
* @param msg
|
* @param msg
|
||||||
*/
|
*/
|
||||||
getMsg(msg) {
|
getMsg(msg, msg2, msg3) {
|
||||||
this.queryrow.device_id = msg
|
this.queryrow.device_id = msg
|
||||||
|
this.queryrow.nowstart_date = msg2
|
||||||
|
this.queryrow.checked = msg3
|
||||||
this.queryrow.status = '01'
|
this.queryrow.status = '01'
|
||||||
},
|
},
|
||||||
queryStruct() {
|
queryStruct() {
|
||||||
@@ -172,6 +173,9 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
close() {
|
close() {
|
||||||
|
this.queryrow.device_id = ''
|
||||||
|
this.queryrow.nowstart_date = ''
|
||||||
|
this.queryrow.checked = ''
|
||||||
this.tableDtl = []
|
this.tableDtl = []
|
||||||
this.$emit('update:dialogShow', false)
|
this.$emit('update:dialogShow', false)
|
||||||
this.$emit('StructIvtClosed', this.rows)
|
this.$emit('StructIvtClosed', this.rows)
|
||||||
|
|||||||
@@ -99,6 +99,16 @@
|
|||||||
:value="item.value"
|
:value="item.value"
|
||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="初始日期">
|
||||||
|
<label slot="label">初始日期:</label>
|
||||||
|
<el-date-picker
|
||||||
|
v-model="query.nowstart_date"
|
||||||
|
type="date"
|
||||||
|
style="width: 200px"
|
||||||
|
placeholder="选择日期">
|
||||||
|
</el-date-picker>
|
||||||
|
<el-checkbox v-model="query.checked">启用</el-checkbox>
|
||||||
<rrOperation />
|
<rrOperation />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
@@ -155,26 +165,25 @@
|
|||||||
/>
|
/>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column type="index" label="序号" width="55" align="center" />
|
<el-table-column :selectable="checkboxT" type="selection" width="45" />
|
||||||
<el-table-column :selectable="checkboxT" type="selection" width="55" />
|
<el-table-column prop="plan_code" label="日计划编码" width="110" />
|
||||||
<el-table-column prop="plan_code" label="日计划编码" width="120" />
|
|
||||||
<el-table-column :formatter="seriesFormat" min-width="80" prop="product_series_id" label="系列产线" />
|
<el-table-column :formatter="seriesFormat" min-width="80" prop="product_series_id" label="系列产线" />
|
||||||
<el-table-column prop="device_name" label="关键设备" width="100" />
|
<el-table-column prop="device_name" label="关键设备" width="80" />
|
||||||
<el-table-column prop="planstart_date" label="计划开始日期" width="100" />
|
<el-table-column prop="planstart_date" label="计划开始日期" width="100" />
|
||||||
<el-table-column prop="plan_org_name" label="申报单位" width="100" />
|
<el-table-column prop="plan_org_name" label="申报单位" width="100" />
|
||||||
<el-table-column prop="workorder_type" label="计划类型" :formatter="workorder_typeFormat" min-width="120" />
|
<el-table-column prop="workorder_type" label="计划类型" :formatter="workorder_typeFormat" min-width="80" />
|
||||||
<el-table-column prop="material_code" label="物料编码" min-width="120"/>
|
<el-table-column prop="material_code" label="物料编码" min-width="130"/>
|
||||||
<el-table-column prop="old_mark" label="牌号" />
|
<el-table-column prop="old_mark" label="牌号" min-width="100" />
|
||||||
<el-table-column :formatter="seriesFormat2" min-width="80" prop="mater_product_series" label="产品系列" />
|
<el-table-column :formatter="seriesFormat2" min-width="80" prop="mater_product_series" label="产品系列" />
|
||||||
<el-table-column prop="product_weight" label="生产重量(kg)" :formatter="crud.formatNum3" min-width="120" />
|
<el-table-column prop="product_weight" label="生产重量(kg)" :formatter="crud.formatNum0" min-width="95" />
|
||||||
<el-table-column prop="product_num" label="批数" width="80" />
|
<el-table-column prop="product_num" label="批数" width="45" />
|
||||||
<el-table-column prop="planend_date" label="计划结束日期" width="100" />
|
<el-table-column prop="planend_date" label="计划结束日期" width="100" />
|
||||||
<el-table-column prop="plan_finish_date" label="交货日期" width="100" />
|
<el-table-column prop="plan_finish_date" label="交货日期" width="90" />
|
||||||
<el-table-column prop="day_num" label="提前天数" width="90" :formatter="crud.formatNum0" />
|
<el-table-column prop="day_num" label="提前天数" width="70" :formatter="crud.formatNum0" />
|
||||||
<el-table-column :formatter="stateFormat" min-width="80" prop="status" label="状态" />
|
<el-table-column :formatter="stateFormat" min-width="45" prop="status" label="状态" />
|
||||||
<el-table-column prop="task_code" label="生产任务号" width="120" />
|
<el-table-column prop="task_code" label="生产任务号" width="110" />
|
||||||
<el-table-column prop="create_time" label="创建时间" width="140px" />
|
<el-table-column prop="create_time" label="创建时间" width="135" />
|
||||||
<el-table-column prop="create_name" label="创建人" width="100" />
|
<el-table-column prop="create_name" label="创建人" width="70" />
|
||||||
<el-table-column prop="remark" label="备注" />
|
<el-table-column prop="remark" label="备注" />
|
||||||
</el-table>
|
</el-table>
|
||||||
<!--分页组件-->
|
<!--分页组件-->
|
||||||
@@ -201,6 +210,7 @@ import workorder from '@/api/wms/pdm/workorder'
|
|||||||
import crudseriesProcessRoute from '@/api/wms/pdm/seriesProcessRoute'
|
import crudseriesProcessRoute from '@/api/wms/pdm/seriesProcessRoute'
|
||||||
import { download } from '@/api/data'
|
import { download } from '@/api/data'
|
||||||
import { downloadFile } from '@/utils'
|
import { downloadFile } from '@/utils'
|
||||||
|
import Date from '@/utils/datetime'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'dailyplan',
|
name: 'dailyplan',
|
||||||
@@ -213,7 +223,7 @@ export default {
|
|||||||
url: 'api/dailyplan',
|
url: 'api/dailyplan',
|
||||||
idField: 'dailyplan_id',
|
idField: 'dailyplan_id',
|
||||||
sort: '',
|
sort: '',
|
||||||
query: { device_id: '' },
|
query: { nowstart_date: new Date(),device_id: '' },
|
||||||
crudMethod: { ...dailyplan },
|
crudMethod: { ...dailyplan },
|
||||||
optShow: {
|
optShow: {
|
||||||
add: true,
|
add: true,
|
||||||
@@ -316,7 +326,7 @@ export default {
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
this.form.device_id = this.crud.query.device_id
|
this.form.device_id = this.crud.query.device_id
|
||||||
this.$refs.child.getMsg(this.crud.query.device_id)
|
this.$refs.child.getMsg(this.crud.query.device_id, this.crud.query.nowstart_date, this.crud.query.checked)
|
||||||
this.structshow = true
|
this.structshow = true
|
||||||
},
|
},
|
||||||
downdtl() {
|
downdtl() {
|
||||||
|
|||||||
@@ -90,11 +90,21 @@
|
|||||||
<el-form-item label="计划开始时间" prop="planstart_time">
|
<el-form-item label="计划开始时间" prop="planstart_time">
|
||||||
<el-date-picker v-model="form.planstart_time" default-time="08:00:00" value-format="yyyy-MM-dd HH:mm:ss" type="datetime" placeholder="选择开始时间" style="width: 210px" :disabled="crud.status.view > 0" />
|
<el-date-picker v-model="form.planstart_time" default-time="08:00:00" value-format="yyyy-MM-dd HH:mm:ss" type="datetime" placeholder="选择开始时间" style="width: 210px" :disabled="crud.status.view > 0" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="关键设备" prop="device_name">
|
<el-form-item label="关键设备" prop="device_id">
|
||||||
<label slot="label">关键设备:</label>
|
<label slot="label">关键设备:</label>
|
||||||
<el-input v-model="form.device_name" style="width: 210px" disabled class="input-with-select">
|
<el-select
|
||||||
<el-button slot="append" icon="el-icon-search" @click="queryDtl" />
|
v-model="form.device_id"
|
||||||
</el-input>
|
size="mini"
|
||||||
|
placeholder="关键设备"
|
||||||
|
class="filter-item"
|
||||||
|
style="width: 210px"
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
v-for="item in Devices"
|
||||||
|
:key="item.id"
|
||||||
|
:label="item.name"
|
||||||
|
:value="item.id"
|
||||||
|
/></el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="批数" prop="pcsn_num">
|
<el-form-item label="批数" prop="pcsn_num">
|
||||||
<label slot="label">批数:</label>
|
<label slot="label">批数:</label>
|
||||||
@@ -127,6 +137,7 @@ import DeviceDialog from '@/views/wms/pub/DeviceDialog'
|
|||||||
import MaterDialog from '@/views/wms/pub/MaterDialog'
|
import MaterDialog from '@/views/wms/pub/MaterDialog'
|
||||||
import workorder from '@/api/wms/pdm/workorder'
|
import workorder from '@/api/wms/pdm/workorder'
|
||||||
import crudseriesProcessRoute from '@/api/wms/pdm/seriesProcessRoute'
|
import crudseriesProcessRoute from '@/api/wms/pdm/seriesProcessRoute'
|
||||||
|
import producetask from '@/api/wms/pdm/producetask'
|
||||||
|
|
||||||
const defaultForm = {
|
const defaultForm = {
|
||||||
workorder_code: '',
|
workorder_code: '',
|
||||||
@@ -164,6 +175,7 @@ export default {
|
|||||||
materType: '05',
|
materType: '05',
|
||||||
XLList: [],
|
XLList: [],
|
||||||
Depts: [],
|
Depts: [],
|
||||||
|
Devices: [],
|
||||||
materShow: false,
|
materShow: false,
|
||||||
rules: {
|
rules: {
|
||||||
pcsn: [
|
pcsn: [
|
||||||
@@ -204,6 +216,9 @@ export default {
|
|||||||
workorder.getDepts().then(res => {
|
workorder.getDepts().then(res => {
|
||||||
this.Depts = res
|
this.Depts = res
|
||||||
})
|
})
|
||||||
|
producetask.getDevices().then(res => {
|
||||||
|
this.Devices = res
|
||||||
|
})
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
close() {
|
close() {
|
||||||
|
|||||||
@@ -235,23 +235,23 @@
|
|||||||
/>
|
/>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column :selectable="checkboxT" type="selection" width="55" />
|
<el-table-column :selectable="checkboxT" type="selection" width="45" />
|
||||||
<el-table-column prop="workorder_date" min-width="85" label="工令日期" :formatter="workorder_dateFormat"/>
|
<el-table-column prop="workorder_date" min-width="85" label="工令日期" :formatter="workorder_dateFormat"/>
|
||||||
<el-table-column prop="workorder_code" width="130" label="工令号">
|
<el-table-column prop="workorder_code" width="130" label="工令号">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-link type="warning" @click="toView(scope.$index, scope.row)">{{ scope.row.workorder_code }}</el-link>
|
<el-link type="warning" @click="toView(scope.$index, scope.row)">{{ scope.row.workorder_code }}</el-link>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="org_id" :formatter="orgFormat" min-width="110" label="所属组织" />
|
<el-table-column prop="org_id" :formatter="orgFormat" min-width="105" label="所属组织" />
|
||||||
<el-table-column prop="workorder_type" :formatter="bill_typeFormat" min-width="80" label="工令类型" />
|
<el-table-column prop="workorder_type" :formatter="bill_typeFormat" min-width="70" label="工令类型" />
|
||||||
<el-table-column :formatter="stateFormat" min-width="80" prop="status" label="工令状态" />
|
<el-table-column :formatter="stateFormat" min-width="70" prop="status" label="工令状态" />
|
||||||
<el-table-column prop="device_name" min-width="100" label="设备"/>
|
<el-table-column prop="device_name" min-width="80" label="设备"/>
|
||||||
<el-table-column prop="material_code" min-width="130" label="物料编码"/>
|
<el-table-column prop="material_code" min-width="130" label="物料编码"/>
|
||||||
<el-table-column prop="old_mark" min-width="80" label="牌号"/>
|
<el-table-column prop="old_mark" min-width="110" label="牌号"/>
|
||||||
<el-table-column :formatter="seriesFormat" min-width="80" prop="product_series_id" label="系列" />
|
<el-table-column :formatter="seriesFormat" min-width="80" prop="product_series_id" label="系列" />
|
||||||
<el-table-column prop="pcsn" min-width="80" label="批次"/>
|
<el-table-column prop="pcsn" min-width="80" label="批次"/>
|
||||||
<el-table-column prop="workorder_qty" min-width="80" label="重量" :formatter="crud.formatNum3"/>
|
<el-table-column prop="workorder_qty" min-width="70" label="重量" :formatter="crud.formatNum0"/>
|
||||||
<el-table-column prop="bill_qty" min-width="80" label="开单总重量" :formatter="crud.formatNum3" />
|
<el-table-column prop="bill_qty" min-width="90" label="开单总重量" :formatter="crud.formatNum3" />
|
||||||
<el-table-column prop="productin_qty" min-width="100" label="实际生产重量" :formatter="crud.formatNum3"/>
|
<el-table-column prop="productin_qty" min-width="100" label="实际生产重量" :formatter="crud.formatNum3"/>
|
||||||
<el-table-column prop="qty_unit_name" min-width="80" label="单位"/>
|
<el-table-column prop="qty_unit_name" min-width="80" label="单位"/>
|
||||||
<el-table-column prop="planstart_time" min-width="140" label="计划开始时间"/>
|
<el-table-column prop="planstart_time" min-width="140" label="计划开始时间"/>
|
||||||
|
|||||||
@@ -139,24 +139,24 @@
|
|||||||
:highlight-current-row="true"
|
:highlight-current-row="true"
|
||||||
@selection-change="mySelectionChange"
|
@selection-change="mySelectionChange"
|
||||||
>
|
>
|
||||||
<el-table-column :selectable="checkboxT" type="selection" width="55" />
|
<el-table-column :selectable="checkboxT" type="selection" width="45" />
|
||||||
<el-table-column prop="workorder_date" min-width="90" label="工令日期" :formatter="workorder_dateFormat"/>
|
<el-table-column prop="workorder_date" min-width="85" label="工令日期" :formatter="workorder_dateFormat"/>
|
||||||
<el-table-column prop="workorder_code" width="130" label="工令号">
|
<el-table-column prop="workorder_code" width="130" label="工令号">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-link type="warning" @click="toView(scope.$index, scope.row)">{{ scope.row.workorder_code }}</el-link>
|
<el-link type="warning" @click="toView(scope.$index, scope.row)">{{ scope.row.workorder_code }}</el-link>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="workorder_type" :formatter="bill_typeFormat" min-width="80" label="工令类型" />
|
<el-table-column prop="workorder_type" :formatter="bill_typeFormat" min-width="70" label="工令类型" />
|
||||||
<el-table-column :formatter="stateFormat" min-width="100" prop="status" label="工令状态" />
|
<el-table-column :formatter="stateFormat" min-width="70" prop="status" label="工令状态" />
|
||||||
<el-table-column prop="material_code" min-width="130" label="物料编码"/>
|
<el-table-column prop="material_code" min-width="130" label="物料编码"/>
|
||||||
<el-table-column :formatter="seriesFormat" min-width="130" prop="product_series_id" label="系列" />
|
<el-table-column :formatter="seriesFormat" min-width="80" prop="product_series_id" label="系列" />
|
||||||
<el-table-column prop="pcsn" min-width="130" label="批次"/>
|
<el-table-column prop="pcsn" min-width="80" label="批次"/>
|
||||||
<el-table-column prop="workorder_qty" min-width="100" label="重量" :formatter="crud.formatNum3"/>
|
<el-table-column prop="workorder_qty" min-width="70" label="重量" :formatter="crud.formatNum0"/>
|
||||||
<el-table-column prop="bill_qty" min-width="100" label="开单总重量" :formatter="crud.formatNum3" />
|
<el-table-column prop="bill_qty" min-width="90" label="开单总重量" :formatter="crud.formatNum3" />
|
||||||
<el-table-column :formatter="create_modeFormat" min-width="170" prop="create_mode" label="生成方式" />
|
<el-table-column :formatter="create_modeFormat" min-width="160" prop="create_mode" label="生成方式" />
|
||||||
<el-table-column prop="qty_unit_name" min-width="100" label="单位"/>
|
<el-table-column prop="qty_unit_name" min-width="80" label="单位"/>
|
||||||
<el-table-column prop="formula_time" min-width="150" label="开单时间"/>
|
<el-table-column prop="formula_time" min-width="135" label="开单时间"/>
|
||||||
<el-table-column prop="formula_name" min-width="150" label="开单人"/>
|
<el-table-column prop="formula_name" min-width="80" label="开单人"/>
|
||||||
</el-table>
|
</el-table>
|
||||||
<!--分页组件-->
|
<!--分页组件-->
|
||||||
<pagination />
|
<pagination />
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="6">
|
<el-col :span="6">
|
||||||
<span>
|
<span>
|
||||||
<el-button icon="el-icon-check" size="mini" type="primary" @click="endRepair">结束维修</el-button>
|
<el-button icon="el-icon-check" size="mini" type="primary" @click="endRepair">保存并结束</el-button>
|
||||||
<el-button icon="el-icon-check" size="mini" type="primary" @click="submitMain">保存</el-button>
|
<el-button icon="el-icon-check" size="mini" type="primary" @click="submitMain">保存</el-button>
|
||||||
<el-button icon="el-icon-close" size="mini" type="info" @click="close">关闭</el-button>
|
<el-button icon="el-icon-close" size="mini" type="info" @click="close">关闭</el-button>
|
||||||
</span>
|
</span>
|
||||||
@@ -81,6 +81,38 @@
|
|||||||
</el-row>
|
</el-row>
|
||||||
</el-form>
|
</el-form>
|
||||||
|
|
||||||
|
<div class="crud-opts2">
|
||||||
|
<span class="role-span">结果录入</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<el-form ref="form" style="border: 1px solid #cfe0df;margin-top: 10px;padding-top: 10px;" :inline="true" :model="form" size="mini" label-width="120px" label-suffix=":">
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="故障描述" prop="fault_comment">
|
||||||
|
<el-input v-model="form.fault_comment" style="width: 580px;" rows="2" type="textarea" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="故障原因" prop="fault_cause">
|
||||||
|
<el-input v-model="form.fault_cause" style="width: 580px;" rows="2" type="textarea" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="问题分析" prop="fault_analysis">
|
||||||
|
<el-input v-model="form.fault_analysis" style="width: 580px;" rows="2" type="textarea" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="处理措施" prop="measure">
|
||||||
|
<el-input v-model="form.measure" style="width: 580px;" rows="2" type="textarea" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</el-form>
|
||||||
|
|
||||||
<div class="crud-opts2">
|
<div class="crud-opts2">
|
||||||
<span class="role-span">项目明细</span>
|
<span class="role-span">项目明细</span>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -89,6 +89,17 @@
|
|||||||
>
|
>
|
||||||
开始维修
|
开始维修
|
||||||
</el-button>
|
</el-button>
|
||||||
|
<el-button
|
||||||
|
slot="right"
|
||||||
|
class="filter-item"
|
||||||
|
type="success"
|
||||||
|
icon="el-icon-position"
|
||||||
|
size="mini"
|
||||||
|
:disabled="execu_flag"
|
||||||
|
@click="outRepair"
|
||||||
|
>
|
||||||
|
委外维修
|
||||||
|
</el-button>
|
||||||
<!-- <el-button
|
<!-- <el-button
|
||||||
slot="right"
|
slot="right"
|
||||||
class="filter-item"
|
class="filter-item"
|
||||||
@@ -133,7 +144,7 @@
|
|||||||
>
|
>
|
||||||
班组验收
|
班组验收
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button
|
<!-- <el-button
|
||||||
slot="right"
|
slot="right"
|
||||||
class="filter-item"
|
class="filter-item"
|
||||||
type="success"
|
type="success"
|
||||||
@@ -143,7 +154,7 @@
|
|||||||
@click="resuftRepair"
|
@click="resuftRepair"
|
||||||
>
|
>
|
||||||
结果录入
|
结果录入
|
||||||
</el-button>
|
</el-button>-->
|
||||||
</crudOperation>
|
</crudOperation>
|
||||||
<!--表格渲染-->
|
<!--表格渲染-->
|
||||||
<el-table ref="table" v-loading="crud.loading" :data="crud.data" size="mini" style="width: 100%;" @selection-change="mySelectionChange">
|
<el-table ref="table" v-loading="crud.loading" :data="crud.data" size="mini" style="width: 100%;" @selection-change="mySelectionChange">
|
||||||
@@ -370,6 +381,17 @@ export default {
|
|||||||
this.crud.notify('状态不正确', CRUD.NOTIFICATION_TYPE.INFO)
|
this.crud.notify('状态不正确', CRUD.NOTIFICATION_TYPE.INFO)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
outRepair() {
|
||||||
|
const _selectData = this.$refs.table.selection
|
||||||
|
const data = _selectData[0]
|
||||||
|
if (data.invstatus !== '03') {
|
||||||
|
return this.crud.notify('只能对开始状态的单据维修', CRUD.NOTIFICATION_TYPE.INFO)
|
||||||
|
}
|
||||||
|
crudDevicerepairmst.outRepair(data).then(res => {
|
||||||
|
this.crud.notify('操作成功', CRUD.NOTIFICATION_TYPE.SUCCESS)
|
||||||
|
this.crud.toQuery()
|
||||||
|
})
|
||||||
|
},
|
||||||
mySelectionChange(rows) {
|
mySelectionChange(rows) {
|
||||||
this.buttonChange(rows)
|
this.buttonChange(rows)
|
||||||
},
|
},
|
||||||
@@ -386,7 +408,7 @@ export default {
|
|||||||
if ('01,03,04,05,06,07,99'.includes(rows[i].invstatus)) {
|
if ('01,03,04,05,06,07,99'.includes(rows[i].invstatus)) {
|
||||||
this.start_flag = true
|
this.start_flag = true
|
||||||
}
|
}
|
||||||
if ('01,02,06,07,99'.includes(rows[i].invstatus)) {
|
if ('01,02,04,05,06,07,99'.includes(rows[i].invstatus)) {
|
||||||
this.execu_flag = true
|
this.execu_flag = true
|
||||||
}
|
}
|
||||||
if ('01,02,04,06,07,99'.includes(rows[i].invstatus)) {
|
if ('01,02,04,06,07,99'.includes(rows[i].invstatus)) {
|
||||||
|
|||||||
@@ -78,7 +78,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<!--如果想在工具栏加入更多按钮,可以使用插槽方式, slot = 'left' or 'right'-->
|
<!--如果想在工具栏加入更多按钮,可以使用插槽方式, slot = 'left' or 'right'-->
|
||||||
<crudOperation :permission="permission">
|
<crudOperation :permission="permission">
|
||||||
<el-button
|
<!-- <el-button
|
||||||
slot="right"
|
slot="right"
|
||||||
class="filter-item"
|
class="filter-item"
|
||||||
type="success"
|
type="success"
|
||||||
@@ -88,7 +88,7 @@
|
|||||||
@click="outRepair"
|
@click="outRepair"
|
||||||
>
|
>
|
||||||
委外维修
|
委外维修
|
||||||
</el-button>
|
</el-button>-->
|
||||||
<el-button
|
<el-button
|
||||||
slot="right"
|
slot="right"
|
||||||
class="filter-item"
|
class="filter-item"
|
||||||
|
|||||||
221
mes/qd/src/views/wms/sb/repair/devicevprs/DeviceDialog.vue
Normal file
221
mes/qd/src/views/wms/sb/repair/devicevprs/DeviceDialog.vue
Normal file
@@ -0,0 +1,221 @@
|
|||||||
|
<template>
|
||||||
|
<el-dialog
|
||||||
|
title="设备选择"
|
||||||
|
append-to-body
|
||||||
|
:visible.sync="dialogVisible"
|
||||||
|
destroy-on-close
|
||||||
|
width="1000px"
|
||||||
|
@close="close"
|
||||||
|
>
|
||||||
|
<el-form
|
||||||
|
:inline="true"
|
||||||
|
class="demo-form-inline"
|
||||||
|
label-position="right"
|
||||||
|
label-width="80px"
|
||||||
|
label-suffix=":"
|
||||||
|
>
|
||||||
|
<el-form-item label="设备">
|
||||||
|
<el-input
|
||||||
|
v-model="query.device_code"
|
||||||
|
clearable
|
||||||
|
size="mini"
|
||||||
|
placeholder="编码、名称"
|
||||||
|
@keyup.enter.native="crud.toQuery"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="所属部门">
|
||||||
|
<treeselect
|
||||||
|
v-model="query.dept_id"
|
||||||
|
:load-options="loadDepts"
|
||||||
|
:options="depts"
|
||||||
|
style="width: 200px;"
|
||||||
|
placeholder="请选择"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="使用班组">
|
||||||
|
<treeselect
|
||||||
|
v-model="query.use_id"
|
||||||
|
:load-options="loadDepts"
|
||||||
|
:options="depts"
|
||||||
|
style="width: 200px;"
|
||||||
|
placeholder="请选择"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<rrOperation />
|
||||||
|
</el-form>
|
||||||
|
|
||||||
|
<!--表格渲染-->
|
||||||
|
<el-table
|
||||||
|
ref="table"
|
||||||
|
v-loading="crud.loading"
|
||||||
|
:data="crud.data"
|
||||||
|
style="width: 100%;"
|
||||||
|
size="mini"
|
||||||
|
border
|
||||||
|
:header-cell-style="{background:'#f5f7fa',color:'#606266'}"
|
||||||
|
@select="handleSelectionChange"
|
||||||
|
@select-all="onSelectAll"
|
||||||
|
@current-change="clickChange"
|
||||||
|
>
|
||||||
|
<el-table-column v-if="!isSingle" type="selection" width="55" />
|
||||||
|
<el-table-column v-if="isSingle" label="选择" width="55">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<el-radio v-model="tableRadio" :label="scope.row"><i /></el-radio>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
|
||||||
|
<el-table-column prop="device_code" label="设备编码" min-width="130" show-overflow-tooltip />
|
||||||
|
<el-table-column prop="device_name" label="设备名称" min-width="130" show-overflow-tooltip />
|
||||||
|
<el-table-column prop="extend_code" label="设备自编码" width="90px" show-overflow-tooltip />
|
||||||
|
<el-table-column prop="class_name" label="设备类型" show-overflow-tooltip />
|
||||||
|
<el-table-column prop="dept_name" label="归属部门" show-overflow-tooltip />
|
||||||
|
<el-table-column prop="use_name" label="使用班组" show-overflow-tooltip />
|
||||||
|
<el-table-column prop="device_spec" label="规格" min-width="130" show-overflow-tooltip />
|
||||||
|
<el-table-column prop="device_model" label="型号" show-overflow-tooltip />
|
||||||
|
<el-table-column prop="supplier_name" label="供应商" show-overflow-tooltip />
|
||||||
|
<el-table-column prop="device_type" label="设备属性" :formatter="formatTypeName"/>
|
||||||
|
<el-table-column prop="workprocedure_name" label="工序" />
|
||||||
|
<el-table-column prop="is_produceuse" label="生产用途" show-overflow-tooltip />
|
||||||
|
<el-table-column prop="remark" label="备注" show-overflow-tooltip />
|
||||||
|
</el-table>
|
||||||
|
<!--分页组件-->
|
||||||
|
<pagination />
|
||||||
|
<span slot="footer" class="dialog-footer">
|
||||||
|
<el-button @click="dialogVisible = false">取 消</el-button>
|
||||||
|
<el-button type="primary" @click="submit">确 定</el-button>
|
||||||
|
</span>
|
||||||
|
</el-dialog>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
|
||||||
|
import CRUD, { header, presenter } from '@crud/crud'
|
||||||
|
import rrOperation from '@crud/RR.operation'
|
||||||
|
import pagination from '@crud/Pagination'
|
||||||
|
import crudDevicemaintenanceplanmst from '@/api/wms/sb/devicemaintenanceplanmst'
|
||||||
|
import Treeselect, { LOAD_CHILDREN_OPTIONS } from '@riophae/vue-treeselect'
|
||||||
|
import '@riophae/vue-treeselect/dist/vue-treeselect.css'
|
||||||
|
import { getDepts } from '@/api/system/dept'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'Device',
|
||||||
|
components: { rrOperation, pagination, Treeselect },
|
||||||
|
cruds() {
|
||||||
|
return CRUD({
|
||||||
|
title: '设备',
|
||||||
|
url: 'api/devicemaintenanceplanmst/queryDevice2',
|
||||||
|
crudMethod: { ...crudDevicemaintenanceplanmst }, optShow: {}})
|
||||||
|
},
|
||||||
|
mixins: [presenter(), header()],
|
||||||
|
props: {
|
||||||
|
dialogShow: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false
|
||||||
|
},
|
||||||
|
isSingle: {
|
||||||
|
type: Boolean,
|
||||||
|
default: true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
dialogVisible: false,
|
||||||
|
tableRadio: null,
|
||||||
|
checkrow: null,
|
||||||
|
class_idStr: null,
|
||||||
|
depts: [],
|
||||||
|
rows: [],
|
||||||
|
XLList: []
|
||||||
|
}
|
||||||
|
},
|
||||||
|
watch: {
|
||||||
|
dialogShow: {
|
||||||
|
handler(newValue) {
|
||||||
|
this.dialogVisible = newValue
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
this.getDepts()
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
clickChange(item) {
|
||||||
|
this.tableRadio = item
|
||||||
|
},
|
||||||
|
formatTypeName(row, cloum) {
|
||||||
|
if (row.device_type === '01') {
|
||||||
|
return '资产'
|
||||||
|
} else if (row.device_type === '02') {
|
||||||
|
return '普通设备'
|
||||||
|
} else if (row.device_type === '03') {
|
||||||
|
return '其他'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
handleSelectionChange(val, row) {
|
||||||
|
if (this.isSingle) {
|
||||||
|
if (val.length > 1) {
|
||||||
|
this.$refs.table.clearSelection()
|
||||||
|
this.$refs.table.toggleRowSelection(val.pop())
|
||||||
|
} else {
|
||||||
|
this.checkrow = row
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
onSelectAll() {
|
||||||
|
this.$refs.table.clearSelection()
|
||||||
|
},
|
||||||
|
close() {
|
||||||
|
this.crud.resetQuery(false)
|
||||||
|
this.$emit('update:dialogShow', false)
|
||||||
|
},
|
||||||
|
submit() {
|
||||||
|
// 处理单选
|
||||||
|
if (this.isSingle && this.tableRadio) {
|
||||||
|
this.$emit('update:dialogShow', false)
|
||||||
|
this.$emit('tableChanged2', this.tableRadio)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
this.rows = this.$refs.table.selection
|
||||||
|
if (this.rows.length <= 0) {
|
||||||
|
this.$message('请先勾选设备')
|
||||||
|
return
|
||||||
|
}
|
||||||
|
this.crud.resetQuery(false)
|
||||||
|
this.$emit('update:dialogShow', false)
|
||||||
|
this.$emit('tableChanged2', this.rows)
|
||||||
|
},
|
||||||
|
// 获取弹窗内部门数据
|
||||||
|
loadDepts({ action, parentNode, callback }) {
|
||||||
|
if (action === LOAD_CHILDREN_OPTIONS) {
|
||||||
|
getDepts({ enabled: true, pid: parentNode.id }).then(res => {
|
||||||
|
parentNode.children = res.content.map(function(obj) {
|
||||||
|
if (obj.hasChildren) {
|
||||||
|
obj.children = null
|
||||||
|
}
|
||||||
|
return obj
|
||||||
|
})
|
||||||
|
setTimeout(() => {
|
||||||
|
callback()
|
||||||
|
}, 200)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
getDepts() {
|
||||||
|
getDepts({ enabled: true }).then(res => {
|
||||||
|
this.depts = res.content.map(function(obj) {
|
||||||
|
if (obj.hasChildren) {
|
||||||
|
obj.children = null
|
||||||
|
}
|
||||||
|
return obj
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<style rel="stylesheet/scss" lang="scss" scoped>
|
||||||
|
::v-deep .el-dialog__body {
|
||||||
|
padding-top: 0px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
@@ -96,19 +96,6 @@
|
|||||||
</el-input>
|
</el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col span="12">
|
|
||||||
<el-form-item label="故障描述:" prop="solutions">
|
|
||||||
<el-input v-model="form.fault_desc" style="width: 200px;" />
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
|
|
||||||
<el-row>
|
|
||||||
<el-col span="12">
|
|
||||||
<el-form-item label="班组配合人:" prop="product_person_name">
|
|
||||||
<el-input v-model="form.product_person_name" style="width: 200px;" />
|
|
||||||
</el-form-item>
|
|
||||||
</el-col>
|
|
||||||
<el-col span="12">
|
<el-col span="12">
|
||||||
<el-form-item label="故障等级:" prop="fault_level">
|
<el-form-item label="故障等级:" prop="fault_level">
|
||||||
<el-select
|
<el-select
|
||||||
@@ -129,6 +116,22 @@
|
|||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
|
<el-row>
|
||||||
|
<el-col span="12">
|
||||||
|
<el-form-item label="班组配合人:" prop="product_person_name">
|
||||||
|
<el-input v-model="form.product_person_name" style="width: 200px;" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
|
||||||
|
<el-row>
|
||||||
|
<el-col span="24">
|
||||||
|
<el-form-item label="故障描述:" prop="solutions">
|
||||||
|
<el-input v-model="form.fault_desc" style="width: 650px;" rows="2" type="textarea" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
|
||||||
<el-row>
|
<el-row>
|
||||||
<el-col span="24">
|
<el-col span="24">
|
||||||
<el-form-item label="备注:" prop="remark">
|
<el-form-item label="备注:" prop="remark">
|
||||||
@@ -202,7 +205,7 @@ import Treeselect, { LOAD_CHILDREN_OPTIONS } from '@riophae/vue-treeselect'
|
|||||||
import '@riophae/vue-treeselect/dist/vue-treeselect.css'
|
import '@riophae/vue-treeselect/dist/vue-treeselect.css'
|
||||||
import crudMaterialbase from '@/api/wms/basedata/master/materialbase'
|
import crudMaterialbase from '@/api/wms/basedata/master/materialbase'
|
||||||
import PicDialog from '@/views/wms/sb/repair/devicerepairrequest/PicDialog'
|
import PicDialog from '@/views/wms/sb/repair/devicerepairrequest/PicDialog'
|
||||||
import DeviceDialog from '@/views/wms/sb/upkeep/devicemaintenanceplan/DeviceDialog'
|
import DeviceDialog from '@/views/wms/sb/repair/devicevprs/DeviceDialog'
|
||||||
import FaultDialog from '@/views/wms/sb/repair/devicevprs/FaultDialog'
|
import FaultDialog from '@/views/wms/sb/repair/devicevprs/FaultDialog'
|
||||||
import { getDepts } from '@/api/system/dept'
|
import { getDepts } from '@/api/system/dept'
|
||||||
|
|
||||||
@@ -309,13 +312,7 @@ export default {
|
|||||||
})
|
})
|
||||||
},
|
},
|
||||||
formaLevelName(row, cloum) {
|
formaLevelName(row, cloum) {
|
||||||
if (row.fault_level === '01') {
|
return this.dict.label.EM_FAULT_LEVEL[row.fault_level]
|
||||||
return '一级'
|
|
||||||
} else if (row.fault_level === '02') {
|
|
||||||
return '二级'
|
|
||||||
} else if (row.fault_level === '03') {
|
|
||||||
return '三级'
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
formatStatusName(row, cloum) {
|
formatStatusName(row, cloum) {
|
||||||
if (row.status === '01') {
|
if (row.status === '01') {
|
||||||
|
|||||||
@@ -69,11 +69,13 @@
|
|||||||
<el-table-column type="selection" width="55" />
|
<el-table-column type="selection" width="55" />
|
||||||
<el-table-column prop="dept_name" label="使用部门" />
|
<el-table-column prop="dept_name" label="使用部门" />
|
||||||
<el-table-column prop="class_name" label="设备类型" />
|
<el-table-column prop="class_name" label="设备类型" />
|
||||||
|
<el-table-column prop="device_name" label="设备名称" />
|
||||||
<el-table-column prop="device_code" label="设备编码">
|
<el-table-column prop="device_code" label="设备编码">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-link type="warning" @click="openDtl(scope.row)">{{ scope.row.device_code }}</el-link>
|
<el-link type="warning" @click="openDtl(scope.row)">{{ scope.row.device_code }}</el-link>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
<el-table-column prop="extend_code" label="自编码" />
|
||||||
<el-table-column prop="device_model" label="型号规格" />
|
<el-table-column prop="device_model" label="型号规格" />
|
||||||
<el-table-column prop="nunm" label="故障次数" />
|
<el-table-column prop="nunm" label="故障次数" />
|
||||||
<el-table-column prop="avgVal_time" label="平均故障间隔时间(小时)" :formatter="crud.formatNum2" />
|
<el-table-column prop="avgVal_time" label="平均故障间隔时间(小时)" :formatter="crud.formatNum2" />
|
||||||
|
|||||||
@@ -9,14 +9,14 @@
|
|||||||
<el-table-column prop="maintenancecycle" label="任务类型" />
|
<el-table-column prop="maintenancecycle" label="任务类型" />
|
||||||
<el-table-column prop="fault_level" label="故障等级" />
|
<el-table-column prop="fault_level" label="故障等级" />
|
||||||
<!-- <el-table-column prop="" label="部门" />-->
|
<!-- <el-table-column prop="" label="部门" />-->
|
||||||
<el-table-column prop="fault_desc" label="故障描述" show-overflow-tooltip />
|
<el-table-column prop="fault_desc" width="170px" label="故障描述" />
|
||||||
<el-table-column prop="device_name" label="设备名称" show-overflow-tooltip />
|
<el-table-column prop="device_name" width="150px" label="设备名称" />
|
||||||
<el-table-column prop="extend_code" label="自编号" show-overflow-tooltip />
|
<el-table-column prop="extend_code" label="自编号" show-overflow-tooltip />
|
||||||
<el-table-column prop="dept_name" label="使用部门" show-overflow-tooltip />
|
<el-table-column prop="dept_name" label="使用部门" show-overflow-tooltip />
|
||||||
<el-table-column prop="invstatus" label="状态" />
|
<el-table-column prop="invstatus" label="状态" />
|
||||||
<el-table-column prop="user_name" label="维修/保养人" show-overflow-tooltip />
|
<el-table-column prop="user_name" width="170px" label="维修/保养人" />
|
||||||
<el-table-column prop="real_start_date" label="开始时间" show-overflow-tooltip />
|
<el-table-column prop="real_start_date" width="150px" label="开始时间" show-overflow-tooltip />
|
||||||
<el-table-column prop="real_end_date" label="结束时间" show-overflow-tooltip />
|
<el-table-column prop="real_end_date" width="150px" label="结束时间" show-overflow-tooltip />
|
||||||
</el-table>
|
</el-table>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -148,7 +148,7 @@ export default {
|
|||||||
}
|
}
|
||||||
.t_btn2 >>> .el-table--enable-row-transition .el-table__body td,
|
.t_btn2 >>> .el-table--enable-row-transition .el-table__body td,
|
||||||
.el-table .cell {
|
.el-table .cell {
|
||||||
padding: 0;
|
padding: 5px 0px;
|
||||||
background-color: transparent;
|
background-color: transparent;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -111,6 +111,7 @@
|
|||||||
<el-table-column prop="device_name" label="设备名称" show-overflow-tooltip />
|
<el-table-column prop="device_name" label="设备名称" show-overflow-tooltip />
|
||||||
<el-table-column prop="extend_code" label="设备自编码" width="90px" show-overflow-tooltip />
|
<el-table-column prop="extend_code" label="设备自编码" width="90px" show-overflow-tooltip />
|
||||||
<el-table-column prop="maintenancecycle" label="保养周期" :formatter="formatMainName"/>
|
<el-table-column prop="maintenancecycle" label="保养周期" :formatter="formatMainName"/>
|
||||||
|
<el-table-column prop="detail_count" label="明细数" />
|
||||||
<el-table-column prop="plan_start_date" label="计划开始日期" width="150px" />
|
<el-table-column prop="plan_start_date" label="计划开始日期" width="150px" />
|
||||||
<el-table-column prop="real_start_date" label="实际开始日期" width="150px" />
|
<el-table-column prop="real_start_date" label="实际开始日期" width="150px" />
|
||||||
<el-table-column prop="real_end_date" label="实际结束日期" width="150px" />
|
<el-table-column prop="real_end_date" label="实际结束日期" width="150px" />
|
||||||
|
|||||||
Reference in New Issue
Block a user