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
|
||||
if (StrUtil.equals(type, "1.1")) {
|
||||
// 大称投料确认: 1.1;小称投料确认:1.3
|
||||
if (StrUtil.equals(type, "1.1") || StrUtil.equals(type, "1.3")) {
|
||||
// 更新称重记录表上报人
|
||||
JSONObject jsonDtl = dtlTab.query("formuladtl_id = '" + jsonObject.getString("formuladtl_id") + "'").uniqueResult(0);
|
||||
jsonWeight.put("record_optid", jsonDtl.get("start_id"));
|
||||
@@ -652,8 +652,8 @@ public class AcsToWmsServiceImpl implements AcsToWmsService {
|
||||
result.put("status", "400");
|
||||
result.put("message", "称重成功,自动确认失败");
|
||||
}
|
||||
// 投料强制确认: 1.2
|
||||
} else if (StrUtil.equals(type, "1.2")) {
|
||||
// 大称投料强制确认: 1.2;小称投料强制确认:1.4
|
||||
} else if (StrUtil.equals(type, "1.2") || StrUtil.equals(type, "1.4")) {
|
||||
// 更新称重记录表上报人
|
||||
JSONObject jsonDtl = dtlTab.query("formuladtl_id = '" + jsonObject.getString("formuladtl_id") + "'").uniqueResult(0);
|
||||
jsonWeight.put("record_optid", jsonDtl.get("start_id"));
|
||||
|
||||
@@ -215,6 +215,7 @@ public class DailyplanServiceImpl implements DailyplanService {
|
||||
if(jret.size()>0){
|
||||
JSONObject form = new JSONObject();
|
||||
form.put("rows",jret);
|
||||
form.put("query",whereJson);
|
||||
this.submit2(form);
|
||||
}
|
||||
jret = WQL.getWO("QPDM_PRODUCTDAILYPLAN")
|
||||
@@ -437,12 +438,16 @@ public class DailyplanServiceImpl implements DailyplanService {
|
||||
}
|
||||
String captemplate_id = captemplate.getString("id");
|
||||
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);
|
||||
if(last ==null ){
|
||||
throw new BadRequestException("日计划表此分组设备的最早一个日计划为空,没有可重排数据!");
|
||||
}
|
||||
|
||||
JSONArray ja_new = new JSONArray();
|
||||
for (int i = 0; i < ja.size(); i++) {
|
||||
JSONObject jo = ja.getJSONObject(i);
|
||||
@@ -452,8 +457,21 @@ public class DailyplanServiceImpl implements DailyplanService {
|
||||
MPS_BD_ProductDailyPlan.delete(jo);
|
||||
}
|
||||
}
|
||||
|
||||
String nowstart_date = last.getString("planstart_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;
|
||||
|
||||
@@ -474,7 +492,7 @@ public class DailyplanServiceImpl implements DailyplanService {
|
||||
int totalproducecapacity_qty = series.getInteger("totalproducecapacity_qty");
|
||||
//第一条查数据库
|
||||
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");
|
||||
if(last2 != null ){
|
||||
nowstart_date = last2.getString("planstart_date");
|
||||
|
||||
@@ -127,6 +127,15 @@ public class WorkOrderServiceImpl implements WorkOrdereService {
|
||||
json.put("create_time", now);
|
||||
json.put("sysdeptid", 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);
|
||||
this.updatePcsn(json);
|
||||
}
|
||||
@@ -167,6 +176,15 @@ public class WorkOrderServiceImpl implements WorkOrdereService {
|
||||
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);
|
||||
|
||||
}
|
||||
@@ -275,11 +293,12 @@ public class WorkOrderServiceImpl implements WorkOrdereService {
|
||||
String factorycalendar_id = calendar.getJSONObject(0).getString("factorycalendar_id");
|
||||
for (int i = 0; i < ja.size(); i++) {
|
||||
JSONObject jo = ja.getJSONObject(i);
|
||||
|
||||
JSONObject jsonMst = PDM_BI_WorkOrder.query("workorder_id ='" + jo.getString("workorder_id") + "' and is_delete = '0'").uniqueResult(0);
|
||||
if (jsonMst == null) {
|
||||
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);
|
||||
if (Formula != null) {
|
||||
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 nowTime = planstart_date+" 24:00:00";
|
||||
if(devices.size()>=0){
|
||||
@@ -404,6 +425,12 @@ public class WorkOrderServiceImpl implements WorkOrdereService {
|
||||
}else{
|
||||
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_time = jsonMst.getString("planstart_time");
|
||||
//设置开始时间
|
||||
@@ -818,6 +845,19 @@ public class WorkOrderServiceImpl implements WorkOrdereService {
|
||||
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
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void download(Map whereJson, HttpServletResponse response) throws IOException {
|
||||
|
||||
@@ -255,7 +255,7 @@
|
||||
QUERY
|
||||
SELECT
|
||||
sum(ProcedureOffline.qty) AS total_qty,
|
||||
WorkOrder.device_id
|
||||
MAX(WorkOrder.device_id) AS device_id
|
||||
FROM
|
||||
PDM_BI_WorkOrder WorkOrder
|
||||
LEFT JOIN PDM_BI_ProcedureOffline ProcedureOffline ON ProcedureOffline.workorder_id = WorkOrder.workorder_id
|
||||
@@ -377,7 +377,7 @@
|
||||
SELECT
|
||||
sum(ProcedureOffline.qty) AS total_qty,
|
||||
count(WorkOrder.workorder_id) AS in_num,
|
||||
WorkOrder.device_id
|
||||
MAX(WorkOrder.device_id) AS device_id
|
||||
FROM
|
||||
PDM_BI_WorkOrder WorkOrder
|
||||
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;
|
||||
//删除明细
|
||||
PDM_BI_FormulaDtl.delete("formula_id='"+formula_id+"'");
|
||||
int mn =1;
|
||||
for(int i = 0;i<tableDtl.size();i++){
|
||||
JSONObject jo = tableDtl.getJSONObject(i);
|
||||
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"))){
|
||||
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 fileTab = WQLObject.getWQLObject("EM_BI_EquipmentFile"); // 档案表
|
||||
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.判断维修单明细中是否完成 都为是,不是则报错
|
||||
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 reDtlTab = WQLObject.getWQLObject("EM_BI_DeviceRepairDtl"); // 设备维修单明细表
|
||||
WQLObject recordTab = WQLObject.getWQLObject("EM_BI_DeviceRepairRecord"); // 设备维修单情况记录表
|
||||
|
||||
// 1.更新维修主表
|
||||
JSONObject jsonReMst = reMstTab.query("repair_id = '" + whereJson.getString("repair_id") + "'").uniqueResult(0);
|
||||
@@ -394,6 +422,23 @@ public class DevicerepairmstServiceImpl implements DevicerepairmstService {
|
||||
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
|
||||
|
||||
@@ -266,17 +266,22 @@
|
||||
file.device_name,
|
||||
file.extend_code,
|
||||
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
|
||||
EM_BI_DeviceRepairMst mst
|
||||
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 sys_dept d1 ON file.belong_deptid = d1.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
|
||||
mst.is_delete = '0'
|
||||
AND file.is_delete = '0'
|
||||
AND mst.invstatus not in ('01')
|
||||
AND mst.invstatus not in ('01','04')
|
||||
|
||||
OPTION 输入.device_code <> ""
|
||||
(file.device_code like 输入.device_code or
|
||||
@@ -331,7 +336,7 @@
|
||||
WHERE
|
||||
mst.is_delete = '0'
|
||||
AND file.is_delete = '0'
|
||||
AND mst.invstatus in ('03','04','05')
|
||||
AND mst.invstatus in ('04')
|
||||
|
||||
OPTION 输入.device_code <> ""
|
||||
(file.device_code like 输入.device_code or
|
||||
|
||||
@@ -54,7 +54,9 @@
|
||||
MAX(class.class_name) AS class_name,
|
||||
MAX(file.device_code) AS device_code,
|
||||
MAX(file.device_model) AS device_model,
|
||||
re.devicerecord_id
|
||||
re.devicerecord_id,
|
||||
file.device_name,
|
||||
file.extend_code
|
||||
FROM
|
||||
EM_BI_DeviceRepairRequest re
|
||||
LEFT JOIN EM_BI_EquipmentFile file ON file.devicerecord_id = re.devicerecord_id
|
||||
@@ -106,7 +108,6 @@
|
||||
pari.outsourceaskfor_optid,
|
||||
pari.confirm_time,
|
||||
pari.audit_time,
|
||||
pari.product_person_name,
|
||||
pari.update_optname
|
||||
FROM
|
||||
EM_BI_DeviceRepairRequest re
|
||||
|
||||
@@ -276,12 +276,12 @@
|
||||
mst.invstatus
|
||||
WHEN '01' THEN '生成'
|
||||
WHEN '02' THEN '提交'
|
||||
WHEN '03' THEN '开始'
|
||||
WHEN '03' THEN '维修开始'
|
||||
WHEN '04' THEN '委外维修'
|
||||
WHEN '05' THEN '委外验收'
|
||||
WHEN '06' THEN '结束'
|
||||
WHEN '07' THEN '确认'
|
||||
WHEN '99' THEN '审核'
|
||||
WHEN '06' THEN '维修结束'
|
||||
WHEN '07' THEN '班组确认'
|
||||
WHEN '99' THEN '审核完毕'
|
||||
END
|
||||
) AS invstatus,
|
||||
mst.real_start_date,
|
||||
@@ -332,12 +332,12 @@
|
||||
CASE mst.invstatus
|
||||
WHEN '01' THEN '生成'
|
||||
WHEN '02' THEN '提交'
|
||||
WHEN '03' THEN '开始'
|
||||
WHEN '03' THEN '维修开始'
|
||||
WHEN '04' THEN '委外维修'
|
||||
WHEN '05' THEN '委外验收'
|
||||
WHEN '06' THEN '结束'
|
||||
WHEN '07' THEN '确认'
|
||||
WHEN '99' THEN '审核'
|
||||
WHEN '06' THEN '维修结束'
|
||||
WHEN '07' THEN '班组确认'
|
||||
WHEN '99' THEN '审核完毕'
|
||||
END
|
||||
)
|
||||
END
|
||||
@@ -368,6 +368,7 @@
|
||||
st.is_delete = '0'
|
||||
AND (st.status <> '99')
|
||||
AND mst.source_bill_type = 'BXD'
|
||||
AND st.is_passed = '1'
|
||||
|
||||
UNION
|
||||
|
||||
@@ -388,10 +389,10 @@
|
||||
mst.invstatus
|
||||
WHEN '01' THEN '生成'
|
||||
WHEN '02' THEN '提交'
|
||||
WHEN '03' THEN '开始'
|
||||
WHEN '04' THEN '结束'
|
||||
WHEN '05' THEN '确认'
|
||||
WHEN '99' THEN '审核'
|
||||
WHEN '03' THEN '保养开始'
|
||||
WHEN '04' THEN '保养结束'
|
||||
WHEN '05' THEN '班组确认'
|
||||
WHEN '99' THEN '审核完毕'
|
||||
END
|
||||
) AS invstatus,
|
||||
mst.real_start_date,
|
||||
|
||||
@@ -47,6 +47,13 @@ public class DevicemaintenanceplanmstController {
|
||||
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
|
||||
@Log("新增设备保养计划维护")
|
||||
@ApiOperation("新增设备保养计划维护")
|
||||
|
||||
@@ -82,6 +82,15 @@ public interface DevicemaintenanceplanmstService {
|
||||
*/
|
||||
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
|
||||
public class DevicemaintenanceplanmstServiceImpl implements DevicemaintenanceplanmstService {
|
||||
private final ClassstandardService classstandardService;
|
||||
private final DeptService deptService;
|
||||
|
||||
@Override
|
||||
public Map<String, Object> queryAll(Map whereJson, Pageable page) {
|
||||
@@ -244,6 +245,38 @@ public class DevicemaintenanceplanmstServiceImpl implements Devicemaintenancepla
|
||||
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
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public JSONArray getDtl(JSONObject whereJson) {
|
||||
|
||||
@@ -115,7 +115,7 @@
|
||||
WHERE
|
||||
mst.is_delete = '0'
|
||||
AND file.is_delete = '0'
|
||||
AND mst.invstatus in ('07','99')
|
||||
AND mst.invstatus in ('05','99')
|
||||
|
||||
OPTION 输入.device_code <> ""
|
||||
(file.device_code like 输入.device_code or
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
#################################################
|
||||
输入.flag TYPEAS s_string
|
||||
输入.classIds TYPEAS f_string
|
||||
输入.dept_str TYPEAS f_string
|
||||
输入.deptIds TYPEAS f_string
|
||||
输入.useIds TYPEAS f_string
|
||||
输入.device_code TYPEAS s_string
|
||||
@@ -154,5 +155,41 @@
|
||||
ENDQUERY
|
||||
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();
|
||||
for (int i = 0; i < jsonArr.size(); 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);
|
||||
if (ObjectUtil.isEmpty(bom)){
|
||||
throw new BadRequestException("未查询到该产品对应BOM信息");
|
||||
throw new BadRequestException("未查询到该产品 "+material_code+" 对应BOM信息");
|
||||
}
|
||||
row.put("1",row.getString("planstart_date"));
|
||||
row.put("2",row.getString("old_mark"));
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
[交易说明]
|
||||
交易名: 压制性能分页查询
|
||||
所属模块:
|
||||
功能简述:
|
||||
版权所有:
|
||||
表引用:
|
||||
版本经历:
|
||||
所属模块:
|
||||
功能简述:
|
||||
版权所有:
|
||||
表引用:
|
||||
版本经历:
|
||||
|
||||
[数据库]
|
||||
--指定数据库,为空采用默认值,默认为db.properties中列出的第一个库
|
||||
@@ -33,22 +33,22 @@
|
||||
|
||||
[临时表]
|
||||
--这边列出来的临时表就会在运行期动态创建
|
||||
|
||||
|
||||
[临时变量]
|
||||
--所有中间过程变量均可在此处定义
|
||||
|
||||
|
||||
[业务过程]
|
||||
|
||||
##########################################
|
||||
# 1、输入输出检查 #
|
||||
##########################################
|
||||
|
||||
|
||||
|
||||
##########################################
|
||||
# 2、主过程前处理 #
|
||||
##########################################
|
||||
|
||||
|
||||
|
||||
|
||||
##########################################
|
||||
# 3、业务主过程 #
|
||||
##########################################
|
||||
@@ -58,14 +58,14 @@
|
||||
SELECT
|
||||
MAX( mb.material_code ) AS material_code,
|
||||
SUM( off.qty ) AS qty,
|
||||
off.material_id,
|
||||
off.pcsn,
|
||||
MAX( off.material_id) AS material_id,
|
||||
MAX( off.pcsn) AS pcsn,
|
||||
MAX( off.create_time ) AS create_time,
|
||||
MAX( off.create_name ) AS create_name,
|
||||
MAX( wo.planend_time ) AS planend_time,
|
||||
MAX( wo.realend_time ) AS realend_time,
|
||||
datediff (MAX( wo.planend_time ),MAX( wo.realend_time )) AS off_days,
|
||||
ext.old_mark
|
||||
MAX( ext.old_mark) AS old_mark
|
||||
FROM
|
||||
pdm_bi_procedureoffline off
|
||||
LEFT JOIN pdm_bi_workorder wo ON wo.workorder_id = off.workorder_id
|
||||
@@ -446,10 +446,12 @@
|
||||
plan.product_num,
|
||||
ext.old_mark,
|
||||
plan.product_weight,
|
||||
plan.material_id
|
||||
plan.material_id,
|
||||
materialbase.material_code
|
||||
FROM
|
||||
mps_bd_productdailyplan plan
|
||||
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
|
||||
1=1
|
||||
OPTION 输入.begin_time <> ""
|
||||
|
||||
@@ -57,7 +57,18 @@
|
||||
</el-form>
|
||||
</div>
|
||||
<!--如果想在工具栏加入更多按钮,可以使用插槽方式, 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-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 pagination from '@crud/Pagination'
|
||||
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 }
|
||||
export default {
|
||||
@@ -356,6 +368,26 @@ export default {
|
||||
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>
|
||||
<div class="app-container">
|
||||
<div class="app-container" v-loading.fullscreen.lock="fullscreenLoading">
|
||||
<!--工具栏-->
|
||||
<div class="head-container">
|
||||
<div v-if="crud.props.searchToggle">
|
||||
@@ -51,7 +51,18 @@
|
||||
</el-form>
|
||||
</div>
|
||||
<!--如果想在工具栏加入更多按钮,可以使用插槽方式, 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-column type="selection" width="55" />
|
||||
@@ -125,6 +136,7 @@ export default {
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
fullscreenLoading: false,
|
||||
classes: [],
|
||||
class_idStr: null,
|
||||
materOpt_code: '23',
|
||||
@@ -200,6 +212,15 @@ export default {
|
||||
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" />
|
||||
<el-button slot="left" type="info" @click="dialogVisible = false">关闭</el-button>
|
||||
<el-button slot="left" type="primary" @click="submit">保存</el-button>
|
||||
</span>
|
||||
</el-col>
|
||||
</el-row>
|
||||
@@ -99,7 +98,7 @@ export default {
|
||||
cxjList: [],
|
||||
XLList: [],
|
||||
fullscreenLoading: false,
|
||||
queryrow: { device_id: '', status: '01' },
|
||||
queryrow: { device_id: '', status: '01', nowstart_date: '', checked: '' },
|
||||
sortable: null,
|
||||
rows: []
|
||||
}
|
||||
@@ -127,8 +126,10 @@ export default {
|
||||
* 接受父组件传值
|
||||
* @param msg
|
||||
*/
|
||||
getMsg(msg) {
|
||||
getMsg(msg, msg2, msg3) {
|
||||
this.queryrow.device_id = msg
|
||||
this.queryrow.nowstart_date = msg2
|
||||
this.queryrow.checked = msg3
|
||||
this.queryrow.status = '01'
|
||||
},
|
||||
queryStruct() {
|
||||
@@ -172,6 +173,9 @@ export default {
|
||||
}
|
||||
},
|
||||
close() {
|
||||
this.queryrow.device_id = ''
|
||||
this.queryrow.nowstart_date = ''
|
||||
this.queryrow.checked = ''
|
||||
this.tableDtl = []
|
||||
this.$emit('update:dialogShow', false)
|
||||
this.$emit('StructIvtClosed', this.rows)
|
||||
|
||||
@@ -99,6 +99,16 @@
|
||||
:value="item.value"
|
||||
/>
|
||||
</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 />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
@@ -155,26 +165,25 @@
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column type="index" label="序号" width="55" align="center" />
|
||||
<el-table-column :selectable="checkboxT" type="selection" width="55" />
|
||||
<el-table-column prop="plan_code" label="日计划编码" width="120" />
|
||||
<el-table-column :selectable="checkboxT" type="selection" width="45" />
|
||||
<el-table-column prop="plan_code" label="日计划编码" width="110" />
|
||||
<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="plan_org_name" label="申报单位" width="100" />
|
||||
<el-table-column prop="workorder_type" label="计划类型" :formatter="workorder_typeFormat" min-width="120" />
|
||||
<el-table-column prop="material_code" label="物料编码" min-width="120"/>
|
||||
<el-table-column prop="old_mark" label="牌号" />
|
||||
<el-table-column prop="workorder_type" label="计划类型" :formatter="workorder_typeFormat" min-width="80" />
|
||||
<el-table-column prop="material_code" label="物料编码" min-width="130"/>
|
||||
<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 prop="product_weight" label="生产重量(kg)" :formatter="crud.formatNum3" min-width="120" />
|
||||
<el-table-column prop="product_num" label="批数" width="80" />
|
||||
<el-table-column prop="product_weight" label="生产重量(kg)" :formatter="crud.formatNum0" min-width="95" />
|
||||
<el-table-column prop="product_num" label="批数" width="45" />
|
||||
<el-table-column prop="planend_date" label="计划结束日期" width="100" />
|
||||
<el-table-column prop="plan_finish_date" label="交货日期" width="100" />
|
||||
<el-table-column prop="day_num" label="提前天数" width="90" :formatter="crud.formatNum0" />
|
||||
<el-table-column :formatter="stateFormat" min-width="80" prop="status" label="状态" />
|
||||
<el-table-column prop="task_code" label="生产任务号" width="120" />
|
||||
<el-table-column prop="create_time" label="创建时间" width="140px" />
|
||||
<el-table-column prop="create_name" label="创建人" width="100" />
|
||||
<el-table-column prop="plan_finish_date" label="交货日期" width="90" />
|
||||
<el-table-column prop="day_num" label="提前天数" width="70" :formatter="crud.formatNum0" />
|
||||
<el-table-column :formatter="stateFormat" min-width="45" prop="status" label="状态" />
|
||||
<el-table-column prop="task_code" label="生产任务号" width="110" />
|
||||
<el-table-column prop="create_time" label="创建时间" width="135" />
|
||||
<el-table-column prop="create_name" label="创建人" width="70" />
|
||||
<el-table-column prop="remark" label="备注" />
|
||||
</el-table>
|
||||
<!--分页组件-->
|
||||
@@ -201,6 +210,7 @@ import workorder from '@/api/wms/pdm/workorder'
|
||||
import crudseriesProcessRoute from '@/api/wms/pdm/seriesProcessRoute'
|
||||
import { download } from '@/api/data'
|
||||
import { downloadFile } from '@/utils'
|
||||
import Date from '@/utils/datetime'
|
||||
|
||||
export default {
|
||||
name: 'dailyplan',
|
||||
@@ -213,7 +223,7 @@ export default {
|
||||
url: 'api/dailyplan',
|
||||
idField: 'dailyplan_id',
|
||||
sort: '',
|
||||
query: { device_id: '' },
|
||||
query: { nowstart_date: new Date(),device_id: '' },
|
||||
crudMethod: { ...dailyplan },
|
||||
optShow: {
|
||||
add: true,
|
||||
@@ -316,7 +326,7 @@ export default {
|
||||
return false
|
||||
}
|
||||
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
|
||||
},
|
||||
downdtl() {
|
||||
|
||||
@@ -90,11 +90,21 @@
|
||||
<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-form-item>
|
||||
<el-form-item label="关键设备" prop="device_name">
|
||||
<el-form-item label="关键设备" prop="device_id">
|
||||
<label slot="label">关键设备:</label>
|
||||
<el-input v-model="form.device_name" style="width: 210px" disabled class="input-with-select">
|
||||
<el-button slot="append" icon="el-icon-search" @click="queryDtl" />
|
||||
</el-input>
|
||||
<el-select
|
||||
v-model="form.device_id"
|
||||
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 label="批数" prop="pcsn_num">
|
||||
<label slot="label">批数:</label>
|
||||
@@ -127,6 +137,7 @@ import DeviceDialog from '@/views/wms/pub/DeviceDialog'
|
||||
import MaterDialog from '@/views/wms/pub/MaterDialog'
|
||||
import workorder from '@/api/wms/pdm/workorder'
|
||||
import crudseriesProcessRoute from '@/api/wms/pdm/seriesProcessRoute'
|
||||
import producetask from '@/api/wms/pdm/producetask'
|
||||
|
||||
const defaultForm = {
|
||||
workorder_code: '',
|
||||
@@ -164,6 +175,7 @@ export default {
|
||||
materType: '05',
|
||||
XLList: [],
|
||||
Depts: [],
|
||||
Devices: [],
|
||||
materShow: false,
|
||||
rules: {
|
||||
pcsn: [
|
||||
@@ -204,6 +216,9 @@ export default {
|
||||
workorder.getDepts().then(res => {
|
||||
this.Depts = res
|
||||
})
|
||||
producetask.getDevices().then(res => {
|
||||
this.Devices = res
|
||||
})
|
||||
},
|
||||
methods: {
|
||||
close() {
|
||||
|
||||
@@ -235,23 +235,23 @@
|
||||
/>
|
||||
</template>
|
||||
</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_code" width="130" label="工令号">
|
||||
<template slot-scope="scope">
|
||||
<el-link type="warning" @click="toView(scope.$index, scope.row)">{{ scope.row.workorder_code }}</el-link>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="org_id" :formatter="orgFormat" min-width="110" label="所属组织" />
|
||||
<el-table-column prop="workorder_type" :formatter="bill_typeFormat" min-width="80" label="工令类型" />
|
||||
<el-table-column :formatter="stateFormat" min-width="80" prop="status" label="工令状态" />
|
||||
<el-table-column prop="device_name" min-width="100" label="设备"/>
|
||||
<el-table-column prop="org_id" :formatter="orgFormat" min-width="105" label="所属组织" />
|
||||
<el-table-column prop="workorder_type" :formatter="bill_typeFormat" min-width="70" label="工令类型" />
|
||||
<el-table-column :formatter="stateFormat" min-width="70" prop="status" 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="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 prop="pcsn" min-width="80" label="批次"/>
|
||||
<el-table-column prop="workorder_qty" min-width="80" label="重量" :formatter="crud.formatNum3"/>
|
||||
<el-table-column prop="bill_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="90" 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="planstart_time" min-width="140" label="计划开始时间"/>
|
||||
|
||||
@@ -139,24 +139,24 @@
|
||||
:highlight-current-row="true"
|
||||
@selection-change="mySelectionChange"
|
||||
>
|
||||
<el-table-column :selectable="checkboxT" type="selection" width="55" />
|
||||
<el-table-column prop="workorder_date" min-width="90" label="工令日期" :formatter="workorder_dateFormat"/>
|
||||
<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_code" width="130" label="工令号">
|
||||
<template slot-scope="scope">
|
||||
<el-link type="warning" @click="toView(scope.$index, scope.row)">{{ scope.row.workorder_code }}</el-link>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="workorder_type" :formatter="bill_typeFormat" min-width="80" label="工令类型" />
|
||||
<el-table-column :formatter="stateFormat" min-width="100" prop="status" label="工令状态" />
|
||||
<el-table-column prop="workorder_type" :formatter="bill_typeFormat" min-width="70" 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 :formatter="seriesFormat" min-width="130" prop="product_series_id" label="系列" />
|
||||
<el-table-column prop="pcsn" min-width="130" label="批次"/>
|
||||
<el-table-column prop="workorder_qty" min-width="100" label="重量" :formatter="crud.formatNum3"/>
|
||||
<el-table-column prop="bill_qty" min-width="100" label="开单总重量" :formatter="crud.formatNum3" />
|
||||
<el-table-column :formatter="create_modeFormat" min-width="170" prop="create_mode" label="生成方式" />
|
||||
<el-table-column prop="qty_unit_name" min-width="100" label="单位"/>
|
||||
<el-table-column prop="formula_time" min-width="150" label="开单时间"/>
|
||||
<el-table-column prop="formula_name" min-width="150" 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="workorder_qty" min-width="70" label="重量" :formatter="crud.formatNum0"/>
|
||||
<el-table-column prop="bill_qty" min-width="90" label="开单总重量" :formatter="crud.formatNum3" />
|
||||
<el-table-column :formatter="create_modeFormat" min-width="160" prop="create_mode" label="生成方式" />
|
||||
<el-table-column prop="qty_unit_name" min-width="80" label="单位"/>
|
||||
<el-table-column prop="formula_time" min-width="135" label="开单时间"/>
|
||||
<el-table-column prop="formula_name" min-width="80" label="开单人"/>
|
||||
</el-table>
|
||||
<!--分页组件-->
|
||||
<pagination />
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<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-close" size="mini" type="info" @click="close">关闭</el-button>
|
||||
</span>
|
||||
@@ -81,6 +81,38 @@
|
||||
</el-row>
|
||||
</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">
|
||||
<span class="role-span">项目明细</span>
|
||||
</div>
|
||||
|
||||
@@ -89,6 +89,17 @@
|
||||
>
|
||||
开始维修
|
||||
</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
|
||||
slot="right"
|
||||
class="filter-item"
|
||||
@@ -133,7 +144,7 @@
|
||||
>
|
||||
班组验收
|
||||
</el-button>
|
||||
<el-button
|
||||
<!-- <el-button
|
||||
slot="right"
|
||||
class="filter-item"
|
||||
type="success"
|
||||
@@ -143,7 +154,7 @@
|
||||
@click="resuftRepair"
|
||||
>
|
||||
结果录入
|
||||
</el-button>
|
||||
</el-button>-->
|
||||
</crudOperation>
|
||||
<!--表格渲染-->
|
||||
<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)
|
||||
}
|
||||
},
|
||||
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) {
|
||||
this.buttonChange(rows)
|
||||
},
|
||||
@@ -386,7 +408,7 @@ export default {
|
||||
if ('01,03,04,05,06,07,99'.includes(rows[i].invstatus)) {
|
||||
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
|
||||
}
|
||||
if ('01,02,04,06,07,99'.includes(rows[i].invstatus)) {
|
||||
|
||||
@@ -78,7 +78,7 @@
|
||||
</div>
|
||||
<!--如果想在工具栏加入更多按钮,可以使用插槽方式, slot = 'left' or 'right'-->
|
||||
<crudOperation :permission="permission">
|
||||
<el-button
|
||||
<!-- <el-button
|
||||
slot="right"
|
||||
class="filter-item"
|
||||
type="success"
|
||||
@@ -88,7 +88,7 @@
|
||||
@click="outRepair"
|
||||
>
|
||||
委外维修
|
||||
</el-button>
|
||||
</el-button>-->
|
||||
<el-button
|
||||
slot="right"
|
||||
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-form-item>
|
||||
</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-form-item label="故障等级:" prop="fault_level">
|
||||
<el-select
|
||||
@@ -129,6 +116,22 @@
|
||||
</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-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-col span="24">
|
||||
<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 crudMaterialbase from '@/api/wms/basedata/master/materialbase'
|
||||
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 { getDepts } from '@/api/system/dept'
|
||||
|
||||
@@ -309,13 +312,7 @@ export default {
|
||||
})
|
||||
},
|
||||
formaLevelName(row, cloum) {
|
||||
if (row.fault_level === '01') {
|
||||
return '一级'
|
||||
} else if (row.fault_level === '02') {
|
||||
return '二级'
|
||||
} else if (row.fault_level === '03') {
|
||||
return '三级'
|
||||
}
|
||||
return this.dict.label.EM_FAULT_LEVEL[row.fault_level]
|
||||
},
|
||||
formatStatusName(row, cloum) {
|
||||
if (row.status === '01') {
|
||||
|
||||
@@ -69,11 +69,13 @@
|
||||
<el-table-column type="selection" width="55" />
|
||||
<el-table-column prop="dept_name" label="使用部门" />
|
||||
<el-table-column prop="class_name" label="设备类型" />
|
||||
<el-table-column prop="device_name" label="设备名称" />
|
||||
<el-table-column prop="device_code" label="设备编码">
|
||||
<template slot-scope="scope">
|
||||
<el-link type="warning" @click="openDtl(scope.row)">{{ scope.row.device_code }}</el-link>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="extend_code" label="自编码" />
|
||||
<el-table-column prop="device_model" label="型号规格" />
|
||||
<el-table-column prop="nunm" label="故障次数" />
|
||||
<el-table-column prop="avgVal_time" label="平均故障间隔时间(小时)" :formatter="crud.formatNum2" />
|
||||
|
||||
@@ -9,14 +9,14 @@
|
||||
<el-table-column prop="maintenancecycle" label="任务类型" />
|
||||
<el-table-column prop="fault_level" label="故障等级" />
|
||||
<!-- <el-table-column prop="" label="部门" />-->
|
||||
<el-table-column prop="fault_desc" label="故障描述" show-overflow-tooltip />
|
||||
<el-table-column prop="device_name" label="设备名称" show-overflow-tooltip />
|
||||
<el-table-column prop="fault_desc" width="170px" label="故障描述" />
|
||||
<el-table-column prop="device_name" width="150px" label="设备名称" />
|
||||
<el-table-column prop="extend_code" label="自编号" show-overflow-tooltip />
|
||||
<el-table-column prop="dept_name" label="使用部门" show-overflow-tooltip />
|
||||
<el-table-column prop="invstatus" label="状态" />
|
||||
<el-table-column prop="user_name" label="维修/保养人" show-overflow-tooltip />
|
||||
<el-table-column prop="real_start_date" label="开始时间" show-overflow-tooltip />
|
||||
<el-table-column prop="real_end_date" label="结束时间" show-overflow-tooltip />
|
||||
<el-table-column prop="user_name" width="170px" label="维修/保养人" />
|
||||
<el-table-column prop="real_start_date" width="150px" label="开始时间" show-overflow-tooltip />
|
||||
<el-table-column prop="real_end_date" width="150px" label="结束时间" show-overflow-tooltip />
|
||||
</el-table>
|
||||
</div>
|
||||
</div>
|
||||
@@ -148,7 +148,7 @@ export default {
|
||||
}
|
||||
.t_btn2 >>> .el-table--enable-row-transition .el-table__body td,
|
||||
.el-table .cell {
|
||||
padding: 0;
|
||||
padding: 5px 0px;
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
|
||||
@@ -111,6 +111,7 @@
|
||||
<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="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="real_start_date" label="实际开始日期" width="150px" />
|
||||
<el-table-column prop="real_end_date" label="实际结束日期" width="150px" />
|
||||
|
||||
Reference in New Issue
Block a user